Showing error 153

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: ldv-drivers/usb_urb-drivers-vhost-vhost_net.ko_safe.cil.out.i.pp.cil.c
Line in file: 20447
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

    1/* Generated by CIL v. 1.3.7 */
    2/* print_CIL_Input is true */
    3
    4#line 19 "include/asm-generic/int-ll64.h"
    5typedef signed char __s8;
    6#line 20 "include/asm-generic/int-ll64.h"
    7typedef unsigned char __u8;
    8#line 22 "include/asm-generic/int-ll64.h"
    9typedef short __s16;
   10#line 23 "include/asm-generic/int-ll64.h"
   11typedef unsigned short __u16;
   12#line 25 "include/asm-generic/int-ll64.h"
   13typedef int __s32;
   14#line 26 "include/asm-generic/int-ll64.h"
   15typedef unsigned int __u32;
   16#line 29 "include/asm-generic/int-ll64.h"
   17typedef long long __s64;
   18#line 30 "include/asm-generic/int-ll64.h"
   19typedef unsigned long long __u64;
   20#line 43 "include/asm-generic/int-ll64.h"
   21typedef unsigned char u8;
   22#line 46 "include/asm-generic/int-ll64.h"
   23typedef unsigned short u16;
   24#line 48 "include/asm-generic/int-ll64.h"
   25typedef int s32;
   26#line 49 "include/asm-generic/int-ll64.h"
   27typedef unsigned int u32;
   28#line 51 "include/asm-generic/int-ll64.h"
   29typedef long long s64;
   30#line 52 "include/asm-generic/int-ll64.h"
   31typedef unsigned long long u64;
   32#line 11 "include/asm-generic/types.h"
   33typedef unsigned short umode_t;
   34#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   35typedef unsigned int __kernel_mode_t;
   36#line 12 "/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 long __kernel_nlink_t;
   38#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"
   39typedef long __kernel_off_t;
   40#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"
   41typedef int __kernel_pid_t;
   42#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"
   43typedef unsigned int __kernel_uid_t;
   44#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"
   45typedef unsigned int __kernel_gid_t;
   46#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"
   47typedef unsigned long __kernel_size_t;
   48#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"
   49typedef long __kernel_ssize_t;
   50#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"
   51typedef long __kernel_time_t;
   52#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"
   53typedef long __kernel_clock_t;
   54#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"
   55typedef int __kernel_timer_t;
   56#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"
   57typedef int __kernel_clockid_t;
   58#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"
   59typedef long long __kernel_loff_t;
   60#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"
   61typedef __kernel_uid_t __kernel_uid32_t;
   62#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"
   63typedef __kernel_gid_t __kernel_gid32_t;
   64#line 21 "include/linux/types.h"
   65typedef __u32 __kernel_dev_t;
   66#line 24 "include/linux/types.h"
   67typedef __kernel_dev_t dev_t;
   68#line 26 "include/linux/types.h"
   69typedef __kernel_mode_t mode_t;
   70#line 27 "include/linux/types.h"
   71typedef __kernel_nlink_t nlink_t;
   72#line 28 "include/linux/types.h"
   73typedef __kernel_off_t off_t;
   74#line 29 "include/linux/types.h"
   75typedef __kernel_pid_t pid_t;
   76#line 34 "include/linux/types.h"
   77typedef __kernel_clockid_t clockid_t;
   78#line 37 "include/linux/types.h"
   79typedef _Bool bool;
   80#line 39 "include/linux/types.h"
   81typedef __kernel_uid32_t uid_t;
   82#line 40 "include/linux/types.h"
   83typedef __kernel_gid32_t gid_t;
   84#line 53 "include/linux/types.h"
   85typedef __kernel_loff_t loff_t;
   86#line 62 "include/linux/types.h"
   87typedef __kernel_size_t size_t;
   88#line 67 "include/linux/types.h"
   89typedef __kernel_ssize_t ssize_t;
   90#line 77 "include/linux/types.h"
   91typedef __kernel_time_t time_t;
   92#line 110 "include/linux/types.h"
   93typedef __s32 int32_t;
   94#line 116 "include/linux/types.h"
   95typedef __u32 uint32_t;
   96#line 141 "include/linux/types.h"
   97typedef unsigned long sector_t;
   98#line 142 "include/linux/types.h"
   99typedef unsigned long blkcnt_t;
  100#line 154 "include/linux/types.h"
  101typedef u64 dma_addr_t;
  102#line 177 "include/linux/types.h"
  103typedef __u16 __le16;
  104#line 201 "include/linux/types.h"
  105typedef unsigned int gfp_t;
  106#line 202 "include/linux/types.h"
  107typedef unsigned int fmode_t;
  108#line 205 "include/linux/types.h"
  109typedef u64 phys_addr_t;
  110#line 212 "include/linux/types.h"
  111struct __anonstruct_atomic_t_7 {
  112   int counter ;
  113};
  114#line 212 "include/linux/types.h"
  115typedef struct __anonstruct_atomic_t_7 atomic_t;
  116#line 217 "include/linux/types.h"
  117struct __anonstruct_atomic64_t_8 {
  118   long counter ;
  119};
  120#line 217 "include/linux/types.h"
  121typedef struct __anonstruct_atomic64_t_8 atomic64_t;
  122#line 222 "include/linux/types.h"
  123struct list_head {
  124   struct list_head *next ;
  125   struct list_head *prev ;
  126};
  127#line 226
  128struct hlist_node;
  129#line 226
  130struct hlist_node;
  131#line 226 "include/linux/types.h"
  132struct hlist_head {
  133   struct hlist_node *first ;
  134};
  135#line 230 "include/linux/types.h"
  136struct hlist_node {
  137   struct hlist_node *next ;
  138   struct hlist_node **pprev ;
  139};
  140#line 12 "include/linux/file.h"
  141struct file;
  142#line 12
  143struct file;
  144#line 17
  145struct file_operations;
  146#line 17
  147struct file_operations;
  148#line 18
  149struct vfsmount;
  150#line 18
  151struct vfsmount;
  152#line 19
  153struct dentry;
  154#line 19
  155struct dentry;
  156#line 20
  157struct path;
  158#line 20
  159struct path;
  160#line 12 "include/linux/thread_info.h"
  161struct timespec;
  162#line 12
  163struct timespec;
  164#line 13
  165struct compat_timespec;
  166#line 13
  167struct compat_timespec;
  168#line 18 "include/linux/thread_info.h"
  169struct __anonstruct_futex_10 {
  170   u32 *uaddr ;
  171   u32 val ;
  172   u32 flags ;
  173   u32 bitset ;
  174   u64 time ;
  175   u32 *uaddr2 ;
  176};
  177#line 18 "include/linux/thread_info.h"
  178struct __anonstruct_nanosleep_11 {
  179   clockid_t clockid ;
  180   struct timespec *rmtp ;
  181   struct compat_timespec *compat_rmtp ;
  182   u64 expires ;
  183};
  184#line 18
  185struct pollfd;
  186#line 18
  187struct pollfd;
  188#line 18 "include/linux/thread_info.h"
  189struct __anonstruct_poll_12 {
  190   struct pollfd *ufds ;
  191   int nfds ;
  192   int has_timeout ;
  193   unsigned long tv_sec ;
  194   unsigned long tv_nsec ;
  195};
  196#line 18 "include/linux/thread_info.h"
  197union __anonunion____missing_field_name_9 {
  198   struct __anonstruct_futex_10 futex ;
  199   struct __anonstruct_nanosleep_11 nanosleep ;
  200   struct __anonstruct_poll_12 poll ;
  201};
  202#line 18 "include/linux/thread_info.h"
  203struct restart_block {
  204   long (*fn)(struct restart_block * ) ;
  205   union __anonunion____missing_field_name_9 __annonCompField4 ;
  206};
  207#line 59 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/alternative.h"
  208struct module;
  209#line 59
  210struct module;
  211#line 18 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/page.h"
  212struct page;
  213#line 18
  214struct page;
  215#line 20 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
  216struct task_struct;
  217#line 20
  218struct task_struct;
  219#line 21
  220struct exec_domain;
  221#line 21
  222struct exec_domain;
  223#line 8 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  224struct mm_struct;
  225#line 8
  226struct mm_struct;
  227#line 99 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/ptrace.h"
  228struct pt_regs {
  229   unsigned long r15 ;
  230   unsigned long r14 ;
  231   unsigned long r13 ;
  232   unsigned long r12 ;
  233   unsigned long bp ;
  234   unsigned long bx ;
  235   unsigned long r11 ;
  236   unsigned long r10 ;
  237   unsigned long r9 ;
  238   unsigned long r8 ;
  239   unsigned long ax ;
  240   unsigned long cx ;
  241   unsigned long dx ;
  242   unsigned long si ;
  243   unsigned long di ;
  244   unsigned long orig_ax ;
  245   unsigned long ip ;
  246   unsigned long cs ;
  247   unsigned long flags ;
  248   unsigned long sp ;
  249   unsigned long ss ;
  250};
  251#line 145 "include/linux/init.h"
  252typedef void (*ctor_fn_t)(void);
  253#line 141 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/vm86.h"
  254struct kernel_vm86_regs {
  255   struct pt_regs pt ;
  256   unsigned short es ;
  257   unsigned short __esh ;
  258   unsigned short ds ;
  259   unsigned short __dsh ;
  260   unsigned short fs ;
  261   unsigned short __fsh ;
  262   unsigned short gs ;
  263   unsigned short __gsh ;
  264};
  265#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/math_emu.h"
  266union __anonunion____missing_field_name_13 {
  267   struct pt_regs *regs ;
  268   struct kernel_vm86_regs *vm86 ;
  269};
  270#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/math_emu.h"
  271struct math_emu_info {
  272   long ___orig_eip ;
  273   union __anonunion____missing_field_name_13 __annonCompField5 ;
  274};
  275#line 16 "include/linux/dynamic_debug.h"
  276struct _ddebug {
  277   char const   *modname ;
  278   char const   *function ;
  279   char const   *filename ;
  280   char const   *format ;
  281   unsigned int lineno : 24 ;
  282   unsigned int flags : 8 ;
  283   char enabled ;
  284} __attribute__((__aligned__(8))) ;
  285#line 10 "include/asm-generic/bug.h"
  286struct bug_entry {
  287   int bug_addr_disp ;
  288   int file_disp ;
  289   unsigned short line ;
  290   unsigned short flags ;
  291};
  292#line 113 "include/linux/kernel.h"
  293struct completion;
  294#line 113
  295struct completion;
  296#line 322
  297struct pid;
  298#line 322
  299struct pid;
  300#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"
  301typedef unsigned long pgdval_t;
  302#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"
  303typedef unsigned long pgprotval_t;
  304#line 190 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  305struct pgprot {
  306   pgprotval_t pgprot ;
  307};
  308#line 190 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  309typedef struct pgprot pgprot_t;
  310#line 192 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  311struct __anonstruct_pgd_t_17 {
  312   pgdval_t pgd ;
  313};
  314#line 192 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  315typedef struct __anonstruct_pgd_t_17 pgd_t;
  316#line 280 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  317typedef struct page *pgtable_t;
  318#line 311
  319struct seq_file;
  320#line 311
  321struct seq_file;
  322#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
  323struct __anonstruct____missing_field_name_22 {
  324   unsigned int a ;
  325   unsigned int b ;
  326};
  327#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
  328struct __anonstruct____missing_field_name_23 {
  329   u16 limit0 ;
  330   u16 base0 ;
  331   unsigned int base1 : 8 ;
  332   unsigned int type : 4 ;
  333   unsigned int s : 1 ;
  334   unsigned int dpl : 2 ;
  335   unsigned int p : 1 ;
  336   unsigned int limit : 4 ;
  337   unsigned int avl : 1 ;
  338   unsigned int l : 1 ;
  339   unsigned int d : 1 ;
  340   unsigned int g : 1 ;
  341   unsigned int base2 : 8 ;
  342};
  343#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
  344union __anonunion____missing_field_name_21 {
  345   struct __anonstruct____missing_field_name_22 __annonCompField7 ;
  346   struct __anonstruct____missing_field_name_23 __annonCompField8 ;
  347};
  348#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
  349struct desc_struct {
  350   union __anonunion____missing_field_name_21 __annonCompField9 ;
  351} __attribute__((__packed__)) ;
  352#line 46 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt_types.h"
  353struct thread_struct;
  354#line 46
  355struct thread_struct;
  356#line 52
  357struct cpumask;
  358#line 52
  359struct cpumask;
  360#line 322
  361struct arch_spinlock;
  362#line 322
  363struct arch_spinlock;
  364#line 13 "include/linux/cpumask.h"
  365struct cpumask {
  366   unsigned long bits[((4096UL + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
  367};
  368#line 13 "include/linux/cpumask.h"
  369typedef struct cpumask cpumask_t;
  370#line 622 "include/linux/cpumask.h"
  371typedef struct cpumask *cpumask_var_t;
  372#line 91 "include/linux/personality.h"
  373struct map_segment;
  374#line 91
  375struct map_segment;
  376#line 91 "include/linux/personality.h"
  377struct exec_domain {
  378   char const   *name ;
  379   void (*handler)(int  , struct pt_regs * ) ;
  380   unsigned char pers_low ;
  381   unsigned char pers_high ;
  382   unsigned long *signal_map ;
  383   unsigned long *signal_invmap ;
  384   struct map_segment *err_map ;
  385   struct map_segment *socktype_map ;
  386   struct map_segment *sockopt_map ;
  387   struct map_segment *af_map ;
  388   struct module *module ;
  389   struct exec_domain *next ;
  390};
  391#line 145 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  392struct seq_operations;
  393#line 145
  394struct seq_operations;
  395#line 280 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  396struct i387_fsave_struct {
  397   u32 cwd ;
  398   u32 swd ;
  399   u32 twd ;
  400   u32 fip ;
  401   u32 fcs ;
  402   u32 foo ;
  403   u32 fos ;
  404   u32 st_space[20] ;
  405   u32 status ;
  406};
  407#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  408struct __anonstruct____missing_field_name_31 {
  409   u64 rip ;
  410   u64 rdp ;
  411};
  412#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  413struct __anonstruct____missing_field_name_32 {
  414   u32 fip ;
  415   u32 fcs ;
  416   u32 foo ;
  417   u32 fos ;
  418};
  419#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  420union __anonunion____missing_field_name_30 {
  421   struct __anonstruct____missing_field_name_31 __annonCompField12 ;
  422   struct __anonstruct____missing_field_name_32 __annonCompField13 ;
  423};
  424#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  425union __anonunion____missing_field_name_33 {
  426   u32 padding1[12] ;
  427   u32 sw_reserved[12] ;
  428};
  429#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  430struct i387_fxsave_struct {
  431   u16 cwd ;
  432   u16 swd ;
  433   u16 twd ;
  434   u16 fop ;
  435   union __anonunion____missing_field_name_30 __annonCompField14 ;
  436   u32 mxcsr ;
  437   u32 mxcsr_mask ;
  438   u32 st_space[32] ;
  439   u32 xmm_space[64] ;
  440   u32 padding[12] ;
  441   union __anonunion____missing_field_name_33 __annonCompField15 ;
  442} __attribute__((__aligned__(16))) ;
  443#line 331 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  444struct i387_soft_struct {
  445   u32 cwd ;
  446   u32 swd ;
  447   u32 twd ;
  448   u32 fip ;
  449   u32 fcs ;
  450   u32 foo ;
  451   u32 fos ;
  452   u32 st_space[20] ;
  453   u8 ftop ;
  454   u8 changed ;
  455   u8 lookahead ;
  456   u8 no_update ;
  457   u8 rm ;
  458   u8 alimit ;
  459   struct math_emu_info *info ;
  460   u32 entry_eip ;
  461};
  462#line 351 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  463struct ymmh_struct {
  464   u32 ymmh_space[64] ;
  465};
  466#line 356 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  467struct xsave_hdr_struct {
  468   u64 xstate_bv ;
  469   u64 reserved1[2] ;
  470   u64 reserved2[5] ;
  471} __attribute__((__packed__)) ;
  472#line 362 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  473struct xsave_struct {
  474   struct i387_fxsave_struct i387 ;
  475   struct xsave_hdr_struct xsave_hdr ;
  476   struct ymmh_struct ymmh ;
  477} __attribute__((__packed__, __aligned__(64))) ;
  478#line 369 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  479union thread_xstate {
  480   struct i387_fsave_struct fsave ;
  481   struct i387_fxsave_struct fxsave ;
  482   struct i387_soft_struct soft ;
  483   struct xsave_struct xsave ;
  484};
  485#line 376 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  486struct fpu {
  487   union thread_xstate *state ;
  488};
  489#line 421
  490struct kmem_cache;
  491#line 421
  492struct kmem_cache;
  493#line 423
  494struct perf_event;
  495#line 423
  496struct perf_event;
  497#line 425 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  498struct thread_struct {
  499   struct desc_struct tls_array[3] ;
  500   unsigned long sp0 ;
  501   unsigned long sp ;
  502   unsigned long usersp ;
  503   unsigned short es ;
  504   unsigned short ds ;
  505   unsigned short fsindex ;
  506   unsigned short gsindex ;
  507   unsigned long fs ;
  508   unsigned long gs ;
  509   struct perf_event *ptrace_bps[4] ;
  510   unsigned long debugreg6 ;
  511   unsigned long ptrace_dr7 ;
  512   unsigned long cr2 ;
  513   unsigned long trap_no ;
  514   unsigned long error_code ;
  515   struct fpu fpu ;
  516   unsigned long *io_bitmap_ptr ;
  517   unsigned long iopl ;
  518   unsigned int io_bitmap_max ;
  519};
  520#line 620 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  521struct __anonstruct_mm_segment_t_35 {
  522   unsigned long seg ;
  523};
  524#line 620 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  525typedef struct __anonstruct_mm_segment_t_35 mm_segment_t;
  526#line 23 "include/asm-generic/atomic-long.h"
  527typedef atomic64_t atomic_long_t;
  528#line 26 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
  529struct thread_info {
  530   struct task_struct *task ;
  531   struct exec_domain *exec_domain ;
  532   __u32 flags ;
  533   __u32 status ;
  534   __u32 cpu ;
  535   int preempt_count ;
  536   mm_segment_t addr_limit ;
  537   struct restart_block restart_block ;
  538   void *sysenter_return ;
  539   int uaccess_err ;
  540};
  541#line 8 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  542struct arch_spinlock {
  543   unsigned int slock ;
  544};
  545#line 8 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  546typedef struct arch_spinlock arch_spinlock_t;
  547#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  548struct __anonstruct_arch_rwlock_t_36 {
  549   unsigned int lock ;
  550};
  551#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  552typedef struct __anonstruct_arch_rwlock_t_36 arch_rwlock_t;
  553#line 13 "include/linux/lockdep.h"
  554struct lockdep_map;
  555#line 13
  556struct lockdep_map;
  557#line 10 "include/linux/stacktrace.h"
  558struct stack_trace {
  559   unsigned int nr_entries ;
  560   unsigned int max_entries ;
  561   unsigned long *entries ;
  562   int skip ;
  563};
  564#line 50 "include/linux/lockdep.h"
  565struct lockdep_subclass_key {
  566   char __one_byte ;
  567} __attribute__((__packed__)) ;
  568#line 54 "include/linux/lockdep.h"
  569struct lock_class_key {
  570   struct lockdep_subclass_key subkeys[8UL] ;
  571};
  572#line 65 "include/linux/lockdep.h"
  573struct lock_class {
  574   struct list_head hash_entry ;
  575   struct list_head lock_entry ;
  576   struct lockdep_subclass_key *key ;
  577   unsigned int subclass ;
  578   unsigned int dep_gen_id ;
  579   unsigned long usage_mask ;
  580   struct stack_trace usage_traces[13] ;
  581   struct list_head locks_after ;
  582   struct list_head locks_before ;
  583   unsigned int version ;
  584   unsigned long ops ;
  585   char const   *name ;
  586   int name_version ;
  587   unsigned long contention_point[4] ;
  588   unsigned long contending_point[4] ;
  589};
  590#line 150 "include/linux/lockdep.h"
  591struct lockdep_map {
  592   struct lock_class_key *key ;
  593   struct lock_class *class_cache[2] ;
  594   char const   *name ;
  595   int cpu ;
  596   unsigned long ip ;
  597};
  598#line 196 "include/linux/lockdep.h"
  599struct held_lock {
  600   u64 prev_chain_key ;
  601   unsigned long acquire_ip ;
  602   struct lockdep_map *instance ;
  603   struct lockdep_map *nest_lock ;
  604   u64 waittime_stamp ;
  605   u64 holdtime_stamp ;
  606   unsigned int class_idx : 13 ;
  607   unsigned int irq_context : 2 ;
  608   unsigned int trylock : 1 ;
  609   unsigned int read : 2 ;
  610   unsigned int check : 2 ;
  611   unsigned int hardirqs_off : 1 ;
  612   unsigned int references : 11 ;
  613};
  614#line 20 "include/linux/spinlock_types.h"
  615struct raw_spinlock {
  616   arch_spinlock_t raw_lock ;
  617   unsigned int magic ;
  618   unsigned int owner_cpu ;
  619   void *owner ;
  620   struct lockdep_map dep_map ;
  621};
  622#line 20 "include/linux/spinlock_types.h"
  623typedef struct raw_spinlock raw_spinlock_t;
  624#line 64 "include/linux/spinlock_types.h"
  625struct __anonstruct____missing_field_name_38 {
  626   u8 __padding[(unsigned int )(& ((struct raw_spinlock *)0)->dep_map)] ;
  627   struct lockdep_map dep_map ;
  628};
  629#line 64 "include/linux/spinlock_types.h"
  630union __anonunion____missing_field_name_37 {
  631   struct raw_spinlock rlock ;
  632   struct __anonstruct____missing_field_name_38 __annonCompField17 ;
  633};
  634#line 64 "include/linux/spinlock_types.h"
  635struct spinlock {
  636   union __anonunion____missing_field_name_37 __annonCompField18 ;
  637};
  638#line 64 "include/linux/spinlock_types.h"
  639typedef struct spinlock spinlock_t;
  640#line 11 "include/linux/rwlock_types.h"
  641struct __anonstruct_rwlock_t_39 {
  642   arch_rwlock_t raw_lock ;
  643   unsigned int magic ;
  644   unsigned int owner_cpu ;
  645   void *owner ;
  646   struct lockdep_map dep_map ;
  647};
  648#line 11 "include/linux/rwlock_types.h"
  649typedef struct __anonstruct_rwlock_t_39 rwlock_t;
  650#line 28 "include/linux/wait.h"
  651struct __wait_queue;
  652#line 28
  653struct __wait_queue;
  654#line 28 "include/linux/wait.h"
  655typedef struct __wait_queue wait_queue_t;
  656#line 32 "include/linux/wait.h"
  657struct __wait_queue {
  658   unsigned int flags ;
  659   void *private ;
  660   int (*func)(wait_queue_t *wait , unsigned int mode , int flags , void *key ) ;
  661   struct list_head task_list ;
  662};
  663#line 50 "include/linux/wait.h"
  664struct __wait_queue_head {
  665   spinlock_t lock ;
  666   struct list_head task_list ;
  667};
  668#line 54 "include/linux/wait.h"
  669typedef struct __wait_queue_head wait_queue_head_t;
  670#line 32 "include/linux/eventfd.h"
  671struct eventfd_ctx;
  672#line 32
  673struct eventfd_ctx;
  674#line 6 "include/asm-generic/scatterlist.h"
  675struct scatterlist {
  676   unsigned long sg_magic ;
  677   unsigned long page_link ;
  678   unsigned int offset ;
  679   unsigned int length ;
  680   dma_addr_t dma_address ;
  681   unsigned int dma_length ;
  682};
  683#line 119 "include/linux/seqlock.h"
  684struct seqcount {
  685   unsigned int sequence ;
  686};
  687#line 119 "include/linux/seqlock.h"
  688typedef struct seqcount seqcount_t;
  689#line 96 "include/linux/nodemask.h"
  690struct __anonstruct_nodemask_t_41 {
  691   unsigned long bits[(((unsigned long )(1 << 10) + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
  692};
  693#line 96 "include/linux/nodemask.h"
  694typedef struct __anonstruct_nodemask_t_41 nodemask_t;
  695#line 48 "include/linux/mutex.h"
  696struct mutex {
  697   atomic_t count ;
  698   spinlock_t wait_lock ;
  699   struct list_head wait_list ;
  700   struct task_struct *owner ;
  701   char const   *name ;
  702   void *magic ;
  703   struct lockdep_map dep_map ;
  704};
  705#line 69 "include/linux/mutex.h"
  706struct mutex_waiter {
  707   struct list_head list ;
  708   struct task_struct *task ;
  709   void *magic ;
  710};
  711#line 20 "include/linux/rwsem.h"
  712struct rw_semaphore;
  713#line 20
  714struct rw_semaphore;
  715#line 26 "include/linux/rwsem.h"
  716struct rw_semaphore {
  717   long count ;
  718   spinlock_t wait_lock ;
  719   struct list_head wait_list ;
  720   struct lockdep_map dep_map ;
  721};
  722#line 177 "include/linux/ioport.h"
  723struct device;
  724#line 177
  725struct device;
  726#line 14 "include/linux/time.h"
  727struct timespec {
  728   __kernel_time_t tv_sec ;
  729   long tv_nsec ;
  730};
  731#line 46 "include/linux/ktime.h"
  732union ktime {
  733   s64 tv64 ;
  734};
  735#line 59 "include/linux/ktime.h"
  736typedef union ktime ktime_t;
  737#line 10 "include/linux/timer.h"
  738struct tvec_base;
  739#line 10
  740struct tvec_base;
  741#line 12 "include/linux/timer.h"
  742struct timer_list {
  743   struct list_head entry ;
  744   unsigned long expires ;
  745   struct tvec_base *base ;
  746   void (*function)(unsigned long  ) ;
  747   unsigned long data ;
  748   int slack ;
  749   int start_pid ;
  750   void *start_site ;
  751   char start_comm[16] ;
  752   struct lockdep_map lockdep_map ;
  753};
  754#line 289
  755struct hrtimer;
  756#line 289
  757struct hrtimer;
  758#line 290
  759enum hrtimer_restart;
  760#line 290
  761enum hrtimer_restart;
  762#line 290
  763enum hrtimer_restart;
  764#line 17 "include/linux/workqueue.h"
  765struct work_struct;
  766#line 17
  767struct work_struct;
  768#line 79 "include/linux/workqueue.h"
  769struct work_struct {
  770   atomic_long_t data ;
  771   struct list_head entry ;
  772   void (*func)(struct work_struct *work ) ;
  773   struct lockdep_map lockdep_map ;
  774};
  775#line 92 "include/linux/workqueue.h"
  776struct delayed_work {
  777   struct work_struct work ;
  778   struct timer_list timer ;
  779};
  780#line 25 "include/linux/completion.h"
  781struct completion {
  782   unsigned int done ;
  783   wait_queue_head_t wait ;
  784};
  785#line 50 "include/linux/pm.h"
  786struct pm_message {
  787   int event ;
  788};
  789#line 50 "include/linux/pm.h"
  790typedef struct pm_message pm_message_t;
  791#line 204 "include/linux/pm.h"
  792struct dev_pm_ops {
  793   int (*prepare)(struct device *dev ) ;
  794   void (*complete)(struct device *dev ) ;
  795   int (*suspend)(struct device *dev ) ;
  796   int (*resume)(struct device *dev ) ;
  797   int (*freeze)(struct device *dev ) ;
  798   int (*thaw)(struct device *dev ) ;
  799   int (*poweroff)(struct device *dev ) ;
  800   int (*restore)(struct device *dev ) ;
  801   int (*suspend_noirq)(struct device *dev ) ;
  802   int (*resume_noirq)(struct device *dev ) ;
  803   int (*freeze_noirq)(struct device *dev ) ;
  804   int (*thaw_noirq)(struct device *dev ) ;
  805   int (*poweroff_noirq)(struct device *dev ) ;
  806   int (*restore_noirq)(struct device *dev ) ;
  807   int (*runtime_suspend)(struct device *dev ) ;
  808   int (*runtime_resume)(struct device *dev ) ;
  809   int (*runtime_idle)(struct device *dev ) ;
  810};
  811#line 392
  812enum rpm_status {
  813    RPM_ACTIVE = 0,
  814    RPM_RESUMING = 1,
  815    RPM_SUSPENDED = 2,
  816    RPM_SUSPENDING = 3
  817} ;
  818#line 414
  819enum rpm_request {
  820    RPM_REQ_NONE = 0,
  821    RPM_REQ_IDLE = 1,
  822    RPM_REQ_SUSPEND = 2,
  823    RPM_REQ_AUTOSUSPEND = 3,
  824    RPM_REQ_RESUME = 4
  825} ;
  826#line 422
  827struct wakeup_source;
  828#line 422
  829struct wakeup_source;
  830#line 424 "include/linux/pm.h"
  831struct dev_pm_info {
  832   pm_message_t power_state ;
  833   unsigned int can_wakeup : 1 ;
  834   unsigned int async_suspend : 1 ;
  835   bool is_prepared : 1 ;
  836   bool is_suspended : 1 ;
  837   spinlock_t lock ;
  838   struct list_head entry ;
  839   struct completion completion ;
  840   struct wakeup_source *wakeup ;
  841   struct timer_list suspend_timer ;
  842   unsigned long timer_expires ;
  843   struct work_struct work ;
  844   wait_queue_head_t wait_queue ;
  845   atomic_t usage_count ;
  846   atomic_t child_count ;
  847   unsigned int disable_depth : 3 ;
  848   unsigned int ignore_children : 1 ;
  849   unsigned int idle_notification : 1 ;
  850   unsigned int request_pending : 1 ;
  851   unsigned int deferred_resume : 1 ;
  852   unsigned int run_wake : 1 ;
  853   unsigned int runtime_auto : 1 ;
  854   unsigned int no_callbacks : 1 ;
  855   unsigned int irq_safe : 1 ;
  856   unsigned int use_autosuspend : 1 ;
  857   unsigned int timer_autosuspends : 1 ;
  858   enum rpm_request request ;
  859   enum rpm_status runtime_status ;
  860   int runtime_error ;
  861   int autosuspend_delay ;
  862   unsigned long last_busy ;
  863   unsigned long active_jiffies ;
  864   unsigned long suspended_jiffies ;
  865   unsigned long accounting_timestamp ;
  866   void *subsys_data ;
  867};
  868#line 475 "include/linux/pm.h"
  869struct dev_power_domain {
  870   struct dev_pm_ops ops ;
  871};
  872#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/mmu.h"
  873struct __anonstruct_mm_context_t_111 {
  874   void *ldt ;
  875   int size ;
  876   unsigned short ia32_compat ;
  877   struct mutex lock ;
  878   void *vdso ;
  879};
  880#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/mmu.h"
  881typedef struct __anonstruct_mm_context_t_111 mm_context_t;
  882#line 8 "include/linux/vmalloc.h"
  883struct vm_area_struct;
  884#line 8
  885struct vm_area_struct;
  886#line 100 "include/linux/rbtree.h"
  887struct rb_node {
  888   unsigned long rb_parent_color ;
  889   struct rb_node *rb_right ;
  890   struct rb_node *rb_left ;
  891} __attribute__((__aligned__(sizeof(long )))) ;
  892#line 110 "include/linux/rbtree.h"
  893struct rb_root {
  894   struct rb_node *rb_node ;
  895};
  896#line 14 "include/linux/prio_tree.h"
  897struct prio_tree_node;
  898#line 14
  899struct prio_tree_node;
  900#line 14 "include/linux/prio_tree.h"
  901struct raw_prio_tree_node {
  902   struct prio_tree_node *left ;
  903   struct prio_tree_node *right ;
  904   struct prio_tree_node *parent ;
  905};
  906#line 20 "include/linux/prio_tree.h"
  907struct prio_tree_node {
  908   struct prio_tree_node *left ;
  909   struct prio_tree_node *right ;
  910   struct prio_tree_node *parent ;
  911   unsigned long start ;
  912   unsigned long last ;
  913};
  914#line 28 "include/linux/prio_tree.h"
  915struct prio_tree_root {
  916   struct prio_tree_node *prio_tree_node ;
  917   unsigned short index_bits ;
  918   unsigned short raw ;
  919};
  920#line 23 "include/linux/mm_types.h"
  921struct address_space;
  922#line 23
  923struct address_space;
  924#line 34 "include/linux/mm_types.h"
  925struct __anonstruct____missing_field_name_136 {
  926   u16 inuse ;
  927   u16 objects ;
  928};
  929#line 34 "include/linux/mm_types.h"
  930union __anonunion____missing_field_name_135 {
  931   atomic_t _mapcount ;
  932   struct __anonstruct____missing_field_name_136 __annonCompField29 ;
  933};
  934#line 34 "include/linux/mm_types.h"
  935struct __anonstruct____missing_field_name_138 {
  936   unsigned long private ;
  937   struct address_space *mapping ;
  938};
  939#line 34 "include/linux/mm_types.h"
  940union __anonunion____missing_field_name_137 {
  941   struct __anonstruct____missing_field_name_138 __annonCompField31 ;
  942   struct kmem_cache *slab ;
  943   struct page *first_page ;
  944};
  945#line 34 "include/linux/mm_types.h"
  946union __anonunion____missing_field_name_139 {
  947   unsigned long index ;
  948   void *freelist ;
  949};
  950#line 34 "include/linux/mm_types.h"
  951struct page {
  952   unsigned long flags ;
  953   atomic_t _count ;
  954   union __anonunion____missing_field_name_135 __annonCompField30 ;
  955   union __anonunion____missing_field_name_137 __annonCompField32 ;
  956   union __anonunion____missing_field_name_139 __annonCompField33 ;
  957   struct list_head lru ;
  958};
  959#line 132 "include/linux/mm_types.h"
  960struct __anonstruct_vm_set_141 {
  961   struct list_head list ;
  962   void *parent ;
  963   struct vm_area_struct *head ;
  964};
  965#line 132 "include/linux/mm_types.h"
  966union __anonunion_shared_140 {
  967   struct __anonstruct_vm_set_141 vm_set ;
  968   struct raw_prio_tree_node prio_tree_node ;
  969};
  970#line 132
  971struct anon_vma;
  972#line 132
  973struct anon_vma;
  974#line 132
  975struct vm_operations_struct;
  976#line 132
  977struct vm_operations_struct;
  978#line 132
  979struct mempolicy;
  980#line 132
  981struct mempolicy;
  982#line 132 "include/linux/mm_types.h"
  983struct vm_area_struct {
  984   struct mm_struct *vm_mm ;
  985   unsigned long vm_start ;
  986   unsigned long vm_end ;
  987   struct vm_area_struct *vm_next ;
  988   struct vm_area_struct *vm_prev ;
  989   pgprot_t vm_page_prot ;
  990   unsigned long vm_flags ;
  991   struct rb_node vm_rb ;
  992   union __anonunion_shared_140 shared ;
  993   struct list_head anon_vma_chain ;
  994   struct anon_vma *anon_vma ;
  995   struct vm_operations_struct  const  *vm_ops ;
  996   unsigned long vm_pgoff ;
  997   struct file *vm_file ;
  998   void *vm_private_data ;
  999   struct mempolicy *vm_policy ;
 1000};
 1001#line 189 "include/linux/mm_types.h"
 1002struct core_thread {
 1003   struct task_struct *task ;
 1004   struct core_thread *next ;
 1005};
 1006#line 194 "include/linux/mm_types.h"
 1007struct core_state {
 1008   atomic_t nr_threads ;
 1009   struct core_thread dumper ;
 1010   struct completion startup ;
 1011};
 1012#line 216 "include/linux/mm_types.h"
 1013struct mm_rss_stat {
 1014   atomic_long_t count[3] ;
 1015};
 1016#line 220
 1017struct linux_binfmt;
 1018#line 220
 1019struct linux_binfmt;
 1020#line 220
 1021struct mmu_notifier_mm;
 1022#line 220
 1023struct mmu_notifier_mm;
 1024#line 220 "include/linux/mm_types.h"
 1025struct mm_struct {
 1026   struct vm_area_struct *mmap ;
 1027   struct rb_root mm_rb ;
 1028   struct vm_area_struct *mmap_cache ;
 1029   unsigned long (*get_unmapped_area)(struct file *filp , unsigned long addr , unsigned long len ,
 1030                                      unsigned long pgoff , unsigned long flags ) ;
 1031   void (*unmap_area)(struct mm_struct *mm , unsigned long addr ) ;
 1032   unsigned long mmap_base ;
 1033   unsigned long task_size ;
 1034   unsigned long cached_hole_size ;
 1035   unsigned long free_area_cache ;
 1036   pgd_t *pgd ;
 1037   atomic_t mm_users ;
 1038   atomic_t mm_count ;
 1039   int map_count ;
 1040   spinlock_t page_table_lock ;
 1041   struct rw_semaphore mmap_sem ;
 1042   struct list_head mmlist ;
 1043   unsigned long hiwater_rss ;
 1044   unsigned long hiwater_vm ;
 1045   unsigned long total_vm ;
 1046   unsigned long locked_vm ;
 1047   unsigned long shared_vm ;
 1048   unsigned long exec_vm ;
 1049   unsigned long stack_vm ;
 1050   unsigned long reserved_vm ;
 1051   unsigned long def_flags ;
 1052   unsigned long nr_ptes ;
 1053   unsigned long start_code ;
 1054   unsigned long end_code ;
 1055   unsigned long start_data ;
 1056   unsigned long end_data ;
 1057   unsigned long start_brk ;
 1058   unsigned long brk ;
 1059   unsigned long start_stack ;
 1060   unsigned long arg_start ;
 1061   unsigned long arg_end ;
 1062   unsigned long env_start ;
 1063   unsigned long env_end ;
 1064   unsigned long saved_auxv[44] ;
 1065   struct mm_rss_stat rss_stat ;
 1066   struct linux_binfmt *binfmt ;
 1067   cpumask_var_t cpu_vm_mask_var ;
 1068   mm_context_t context ;
 1069   unsigned int faultstamp ;
 1070   unsigned int token_priority ;
 1071   unsigned int last_interval ;
 1072   atomic_t oom_disable_count ;
 1073   unsigned long flags ;
 1074   struct core_state *core_state ;
 1075   spinlock_t ioctx_lock ;
 1076   struct hlist_head ioctx_list ;
 1077   struct task_struct *owner ;
 1078   struct file *exe_file ;
 1079   unsigned long num_exe_file_vmas ;
 1080   struct mmu_notifier_mm *mmu_notifier_mm ;
 1081   pgtable_t pmd_huge_pte ;
 1082   struct cpumask cpumask_allocation ;
 1083};
 1084#line 21 "include/linux/mm.h"
 1085struct file_ra_state;
 1086#line 21
 1087struct file_ra_state;
 1088#line 22
 1089struct user_struct;
 1090#line 22
 1091struct user_struct;
 1092#line 23
 1093struct writeback_control;
 1094#line 23
 1095struct writeback_control;
 1096#line 185 "include/linux/mm.h"
 1097struct vm_fault {
 1098   unsigned int flags ;
 1099   unsigned long pgoff ;
 1100   void *virtual_address ;
 1101   struct page *page ;
 1102};
 1103#line 202 "include/linux/mm.h"
 1104struct vm_operations_struct {
 1105   void (*open)(struct vm_area_struct *area ) ;
 1106   void (*close)(struct vm_area_struct *area ) ;
 1107   int (*fault)(struct vm_area_struct *vma , struct vm_fault *vmf ) ;
 1108   int (*page_mkwrite)(struct vm_area_struct *vma , struct vm_fault *vmf ) ;
 1109   int (*access)(struct vm_area_struct *vma , unsigned long addr , void *buf , int len ,
 1110                 int write ) ;
 1111   int (*set_policy)(struct vm_area_struct *vma , struct mempolicy *new ) ;
 1112   struct mempolicy *(*get_policy)(struct vm_area_struct *vma , unsigned long addr ) ;
 1113   int (*migrate)(struct vm_area_struct *vma , nodemask_t const   *from , nodemask_t const   *to ,
 1114                  unsigned long flags ) ;
 1115};
 1116#line 244
 1117struct inode;
 1118#line 244
 1119struct inode;
 1120#line 20 "include/linux/kobject_ns.h"
 1121struct sock;
 1122#line 20
 1123struct sock;
 1124#line 21
 1125struct kobject;
 1126#line 21
 1127struct kobject;
 1128#line 27
 1129enum kobj_ns_type {
 1130    KOBJ_NS_TYPE_NONE = 0,
 1131    KOBJ_NS_TYPE_NET = 1,
 1132    KOBJ_NS_TYPES = 2
 1133} ;
 1134#line 40 "include/linux/kobject_ns.h"
 1135struct kobj_ns_type_operations {
 1136   enum kobj_ns_type type ;
 1137   void *(*grab_current_ns)(void) ;
 1138   void const   *(*netlink_ns)(struct sock *sk ) ;
 1139   void const   *(*initial_ns)(void) ;
 1140   void (*drop_ns)(void * ) ;
 1141};
 1142#line 24 "include/linux/sysfs.h"
 1143enum kobj_ns_type;
 1144#line 26 "include/linux/sysfs.h"
 1145struct attribute {
 1146   char const   *name ;
 1147   mode_t mode ;
 1148   struct lock_class_key *key ;
 1149   struct lock_class_key skey ;
 1150};
 1151#line 56 "include/linux/sysfs.h"
 1152struct attribute_group {
 1153   char const   *name ;
 1154   mode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
 1155   struct attribute **attrs ;
 1156};
 1157#line 88 "include/linux/sysfs.h"
 1158struct bin_attribute {
 1159   struct attribute attr ;
 1160   size_t size ;
 1161   void *private ;
 1162   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 1163                   loff_t  , size_t  ) ;
 1164   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 1165                    loff_t  , size_t  ) ;
 1166   int (*mmap)(struct file * , struct kobject * , struct bin_attribute *attr , struct vm_area_struct *vma ) ;
 1167};
 1168#line 112 "include/linux/sysfs.h"
 1169struct sysfs_ops {
 1170   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
 1171   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
 1172};
 1173#line 117
 1174struct sysfs_dirent;
 1175#line 117
 1176struct sysfs_dirent;
 1177#line 20 "include/linux/kref.h"
 1178struct kref {
 1179   atomic_t refcount ;
 1180};
 1181#line 60 "include/linux/kobject.h"
 1182struct kset;
 1183#line 60
 1184struct kset;
 1185#line 60
 1186struct kobj_type;
 1187#line 60
 1188struct kobj_type;
 1189#line 60 "include/linux/kobject.h"
 1190struct kobject {
 1191   char const   *name ;
 1192   struct list_head entry ;
 1193   struct kobject *parent ;
 1194   struct kset *kset ;
 1195   struct kobj_type *ktype ;
 1196   struct sysfs_dirent *sd ;
 1197   struct kref kref ;
 1198   unsigned int state_initialized : 1 ;
 1199   unsigned int state_in_sysfs : 1 ;
 1200   unsigned int state_add_uevent_sent : 1 ;
 1201   unsigned int state_remove_uevent_sent : 1 ;
 1202   unsigned int uevent_suppress : 1 ;
 1203};
 1204#line 110 "include/linux/kobject.h"
 1205struct kobj_type {
 1206   void (*release)(struct kobject *kobj ) ;
 1207   struct sysfs_ops  const  *sysfs_ops ;
 1208   struct attribute **default_attrs ;
 1209   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject *kobj ) ;
 1210   void const   *(*namespace)(struct kobject *kobj ) ;
 1211};
 1212#line 118 "include/linux/kobject.h"
 1213struct kobj_uevent_env {
 1214   char *envp[32] ;
 1215   int envp_idx ;
 1216   char buf[2048] ;
 1217   int buflen ;
 1218};
 1219#line 125 "include/linux/kobject.h"
 1220struct kset_uevent_ops {
 1221   int (* const  filter)(struct kset *kset , struct kobject *kobj ) ;
 1222   char const   *(* const  name)(struct kset *kset , struct kobject *kobj ) ;
 1223   int (* const  uevent)(struct kset *kset , struct kobject *kobj , struct kobj_uevent_env *env ) ;
 1224};
 1225#line 161 "include/linux/kobject.h"
 1226struct kset {
 1227   struct list_head list ;
 1228   spinlock_t list_lock ;
 1229   struct kobject kobj ;
 1230   struct kset_uevent_ops  const  *uevent_ops ;
 1231};
 1232#line 19 "include/linux/klist.h"
 1233struct klist_node;
 1234#line 19
 1235struct klist_node;
 1236#line 39 "include/linux/klist.h"
 1237struct klist_node {
 1238   void *n_klist ;
 1239   struct list_head n_node ;
 1240   struct kref n_ref ;
 1241};
 1242#line 62 "include/linux/stat.h"
 1243struct kstat {
 1244   u64 ino ;
 1245   dev_t dev ;
 1246   umode_t mode ;
 1247   unsigned int nlink ;
 1248   uid_t uid ;
 1249   gid_t gid ;
 1250   dev_t rdev ;
 1251   loff_t size ;
 1252   struct timespec atime ;
 1253   struct timespec mtime ;
 1254   struct timespec ctime ;
 1255   unsigned long blksize ;
 1256   unsigned long long blocks ;
 1257};
 1258#line 72 "include/linux/rcupdate.h"
 1259struct rcu_head {
 1260   struct rcu_head *next ;
 1261   void (*func)(struct rcu_head *head ) ;
 1262};
 1263#line 937 "include/linux/sysctl.h"
 1264struct nsproxy;
 1265#line 937
 1266struct nsproxy;
 1267#line 48 "include/linux/kmod.h"
 1268struct cred;
 1269#line 48
 1270struct cred;
 1271#line 27 "include/linux/elf.h"
 1272typedef __u64 Elf64_Addr;
 1273#line 28 "include/linux/elf.h"
 1274typedef __u16 Elf64_Half;
 1275#line 32 "include/linux/elf.h"
 1276typedef __u32 Elf64_Word;
 1277#line 33 "include/linux/elf.h"
 1278typedef __u64 Elf64_Xword;
 1279#line 203 "include/linux/elf.h"
 1280struct elf64_sym {
 1281   Elf64_Word st_name ;
 1282   unsigned char st_info ;
 1283   unsigned char st_other ;
 1284   Elf64_Half st_shndx ;
 1285   Elf64_Addr st_value ;
 1286   Elf64_Xword st_size ;
 1287};
 1288#line 203 "include/linux/elf.h"
 1289typedef struct elf64_sym Elf64_Sym;
 1290#line 34 "include/linux/moduleparam.h"
 1291struct kernel_param;
 1292#line 34
 1293struct kernel_param;
 1294#line 36 "include/linux/moduleparam.h"
 1295struct kernel_param_ops {
 1296   int (*set)(char const   *val , struct kernel_param  const  *kp ) ;
 1297   int (*get)(char *buffer , struct kernel_param  const  *kp ) ;
 1298   void (*free)(void *arg ) ;
 1299};
 1300#line 48
 1301struct kparam_string;
 1302#line 48
 1303struct kparam_string;
 1304#line 48
 1305struct kparam_array;
 1306#line 48
 1307struct kparam_array;
 1308#line 48 "include/linux/moduleparam.h"
 1309union __anonunion____missing_field_name_203 {
 1310   void *arg ;
 1311   struct kparam_string  const  *str ;
 1312   struct kparam_array  const  *arr ;
 1313};
 1314#line 48 "include/linux/moduleparam.h"
 1315struct kernel_param {
 1316   char const   *name ;
 1317   struct kernel_param_ops  const  *ops ;
 1318   u16 perm ;
 1319   u16 flags ;
 1320   union __anonunion____missing_field_name_203 __annonCompField36 ;
 1321};
 1322#line 61 "include/linux/moduleparam.h"
 1323struct kparam_string {
 1324   unsigned int maxlen ;
 1325   char *string ;
 1326};
 1327#line 67 "include/linux/moduleparam.h"
 1328struct kparam_array {
 1329   unsigned int max ;
 1330   unsigned int elemsize ;
 1331   unsigned int *num ;
 1332   struct kernel_param_ops  const  *ops ;
 1333   void *elem ;
 1334};
 1335#line 61 "include/linux/jump_label.h"
 1336struct jump_label_key {
 1337   atomic_t enabled ;
 1338};
 1339#line 23 "include/linux/tracepoint.h"
 1340struct tracepoint;
 1341#line 23
 1342struct tracepoint;
 1343#line 25 "include/linux/tracepoint.h"
 1344struct tracepoint_func {
 1345   void *func ;
 1346   void *data ;
 1347};
 1348#line 30 "include/linux/tracepoint.h"
 1349struct tracepoint {
 1350   char const   *name ;
 1351   struct jump_label_key key ;
 1352   void (*regfunc)(void) ;
 1353   void (*unregfunc)(void) ;
 1354   struct tracepoint_func *funcs ;
 1355};
 1356#line 8 "include/asm-generic/module.h"
 1357struct mod_arch_specific {
 1358
 1359};
 1360#line 37 "include/linux/module.h"
 1361struct kernel_symbol {
 1362   unsigned long value ;
 1363   char const   *name ;
 1364};
 1365#line 51 "include/linux/module.h"
 1366struct module_attribute {
 1367   struct attribute attr ;
 1368   ssize_t (*show)(struct module_attribute * , struct module * , char * ) ;
 1369   ssize_t (*store)(struct module_attribute * , struct module * , char const   * ,
 1370                    size_t count ) ;
 1371   void (*setup)(struct module * , char const   * ) ;
 1372   int (*test)(struct module * ) ;
 1373   void (*free)(struct module * ) ;
 1374};
 1375#line 70
 1376struct module_param_attrs;
 1377#line 70
 1378struct module_param_attrs;
 1379#line 70 "include/linux/module.h"
 1380struct module_kobject {
 1381   struct kobject kobj ;
 1382   struct module *mod ;
 1383   struct kobject *drivers_dir ;
 1384   struct module_param_attrs *mp ;
 1385};
 1386#line 83
 1387struct exception_table_entry;
 1388#line 83
 1389struct exception_table_entry;
 1390#line 265
 1391enum module_state {
 1392    MODULE_STATE_LIVE = 0,
 1393    MODULE_STATE_COMING = 1,
 1394    MODULE_STATE_GOING = 2
 1395} ;
 1396#line 272
 1397struct module_sect_attrs;
 1398#line 272
 1399struct module_sect_attrs;
 1400#line 272
 1401struct module_notes_attrs;
 1402#line 272
 1403struct module_notes_attrs;
 1404#line 272
 1405struct ftrace_event_call;
 1406#line 272
 1407struct ftrace_event_call;
 1408#line 272 "include/linux/module.h"
 1409struct module_ref {
 1410   unsigned int incs ;
 1411   unsigned int decs ;
 1412};
 1413#line 272 "include/linux/module.h"
 1414struct module {
 1415   enum module_state state ;
 1416   struct list_head list ;
 1417   char name[64UL - sizeof(unsigned long )] ;
 1418   struct module_kobject mkobj ;
 1419   struct module_attribute *modinfo_attrs ;
 1420   char const   *version ;
 1421   char const   *srcversion ;
 1422   struct kobject *holders_dir ;
 1423   struct kernel_symbol  const  *syms ;
 1424   unsigned long const   *crcs ;
 1425   unsigned int num_syms ;
 1426   struct kernel_param *kp ;
 1427   unsigned int num_kp ;
 1428   unsigned int num_gpl_syms ;
 1429   struct kernel_symbol  const  *gpl_syms ;
 1430   unsigned long const   *gpl_crcs ;
 1431   struct kernel_symbol  const  *unused_syms ;
 1432   unsigned long const   *unused_crcs ;
 1433   unsigned int num_unused_syms ;
 1434   unsigned int num_unused_gpl_syms ;
 1435   struct kernel_symbol  const  *unused_gpl_syms ;
 1436   unsigned long const   *unused_gpl_crcs ;
 1437   struct kernel_symbol  const  *gpl_future_syms ;
 1438   unsigned long const   *gpl_future_crcs ;
 1439   unsigned int num_gpl_future_syms ;
 1440   unsigned int num_exentries ;
 1441   struct exception_table_entry *extable ;
 1442   int (*init)(void) ;
 1443   void *module_init ;
 1444   void *module_core ;
 1445   unsigned int init_size ;
 1446   unsigned int core_size ;
 1447   unsigned int init_text_size ;
 1448   unsigned int core_text_size ;
 1449   unsigned int init_ro_size ;
 1450   unsigned int core_ro_size ;
 1451   struct mod_arch_specific arch ;
 1452   unsigned int taints ;
 1453   unsigned int num_bugs ;
 1454   struct list_head bug_list ;
 1455   struct bug_entry *bug_table ;
 1456   Elf64_Sym *symtab ;
 1457   Elf64_Sym *core_symtab ;
 1458   unsigned int num_symtab ;
 1459   unsigned int core_num_syms ;
 1460   char *strtab ;
 1461   char *core_strtab ;
 1462   struct module_sect_attrs *sect_attrs ;
 1463   struct module_notes_attrs *notes_attrs ;
 1464   char *args ;
 1465   void *percpu ;
 1466   unsigned int percpu_size ;
 1467   unsigned int num_tracepoints ;
 1468   struct tracepoint * const  *tracepoints_ptrs ;
 1469   unsigned int num_trace_bprintk_fmt ;
 1470   char const   **trace_bprintk_fmt_start ;
 1471   struct ftrace_event_call **trace_events ;
 1472   unsigned int num_trace_events ;
 1473   unsigned int num_ftrace_callsites ;
 1474   unsigned long *ftrace_callsites ;
 1475   struct list_head source_list ;
 1476   struct list_head target_list ;
 1477   struct task_struct *waiter ;
 1478   void (*exit)(void) ;
 1479   struct module_ref *refptr ;
 1480   ctor_fn_t *ctors ;
 1481   unsigned int num_ctors ;
 1482};
 1483#line 4 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
 1484struct dma_map_ops;
 1485#line 4
 1486struct dma_map_ops;
 1487#line 4 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
 1488struct dev_archdata {
 1489   void *acpi_handle ;
 1490   struct dma_map_ops *dma_ops ;
 1491   void *iommu ;
 1492};
 1493#line 29 "include/linux/device.h"
 1494struct device_private;
 1495#line 29
 1496struct device_private;
 1497#line 30
 1498struct device_driver;
 1499#line 30
 1500struct device_driver;
 1501#line 31
 1502struct driver_private;
 1503#line 31
 1504struct driver_private;
 1505#line 32
 1506struct class;
 1507#line 32
 1508struct class;
 1509#line 33
 1510struct subsys_private;
 1511#line 33
 1512struct subsys_private;
 1513#line 34
 1514struct bus_type;
 1515#line 34
 1516struct bus_type;
 1517#line 35
 1518struct device_node;
 1519#line 35
 1520struct device_node;
 1521#line 37 "include/linux/device.h"
 1522struct bus_attribute {
 1523   struct attribute attr ;
 1524   ssize_t (*show)(struct bus_type *bus , char *buf ) ;
 1525   ssize_t (*store)(struct bus_type *bus , char const   *buf , size_t count ) ;
 1526};
 1527#line 82
 1528struct device_attribute;
 1529#line 82
 1530struct device_attribute;
 1531#line 82
 1532struct driver_attribute;
 1533#line 82
 1534struct driver_attribute;
 1535#line 82 "include/linux/device.h"
 1536struct bus_type {
 1537   char const   *name ;
 1538   struct bus_attribute *bus_attrs ;
 1539   struct device_attribute *dev_attrs ;
 1540   struct driver_attribute *drv_attrs ;
 1541   int (*match)(struct device *dev , struct device_driver *drv ) ;
 1542   int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 1543   int (*probe)(struct device *dev ) ;
 1544   int (*remove)(struct device *dev ) ;
 1545   void (*shutdown)(struct device *dev ) ;
 1546   int (*suspend)(struct device *dev , pm_message_t state ) ;
 1547   int (*resume)(struct device *dev ) ;
 1548   struct dev_pm_ops  const  *pm ;
 1549   struct subsys_private *p ;
 1550};
 1551#line 185
 1552struct of_device_id;
 1553#line 185
 1554struct of_device_id;
 1555#line 185 "include/linux/device.h"
 1556struct device_driver {
 1557   char const   *name ;
 1558   struct bus_type *bus ;
 1559   struct module *owner ;
 1560   char const   *mod_name ;
 1561   bool suppress_bind_attrs ;
 1562   struct of_device_id  const  *of_match_table ;
 1563   int (*probe)(struct device *dev ) ;
 1564   int (*remove)(struct device *dev ) ;
 1565   void (*shutdown)(struct device *dev ) ;
 1566   int (*suspend)(struct device *dev , pm_message_t state ) ;
 1567   int (*resume)(struct device *dev ) ;
 1568   struct attribute_group  const  **groups ;
 1569   struct dev_pm_ops  const  *pm ;
 1570   struct driver_private *p ;
 1571};
 1572#line 222 "include/linux/device.h"
 1573struct driver_attribute {
 1574   struct attribute attr ;
 1575   ssize_t (*show)(struct device_driver *driver , char *buf ) ;
 1576   ssize_t (*store)(struct device_driver *driver , char const   *buf , size_t count ) ;
 1577};
 1578#line 280
 1579struct class_attribute;
 1580#line 280
 1581struct class_attribute;
 1582#line 280 "include/linux/device.h"
 1583struct class {
 1584   char const   *name ;
 1585   struct module *owner ;
 1586   struct class_attribute *class_attrs ;
 1587   struct device_attribute *dev_attrs ;
 1588   struct bin_attribute *dev_bin_attrs ;
 1589   struct kobject *dev_kobj ;
 1590   int (*dev_uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 1591   char *(*devnode)(struct device *dev , mode_t *mode ) ;
 1592   void (*class_release)(struct class *class ) ;
 1593   void (*dev_release)(struct device *dev ) ;
 1594   int (*suspend)(struct device *dev , pm_message_t state ) ;
 1595   int (*resume)(struct device *dev ) ;
 1596   struct kobj_ns_type_operations  const  *ns_type ;
 1597   void const   *(*namespace)(struct device *dev ) ;
 1598   struct dev_pm_ops  const  *pm ;
 1599   struct subsys_private *p ;
 1600};
 1601#line 306
 1602struct device_type;
 1603#line 306
 1604struct device_type;
 1605#line 347 "include/linux/device.h"
 1606struct class_attribute {
 1607   struct attribute attr ;
 1608   ssize_t (*show)(struct class *class , struct class_attribute *attr , char *buf ) ;
 1609   ssize_t (*store)(struct class *class , struct class_attribute *attr , char const   *buf ,
 1610                    size_t count ) ;
 1611};
 1612#line 413 "include/linux/device.h"
 1613struct device_type {
 1614   char const   *name ;
 1615   struct attribute_group  const  **groups ;
 1616   int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 1617   char *(*devnode)(struct device *dev , mode_t *mode ) ;
 1618   void (*release)(struct device *dev ) ;
 1619   struct dev_pm_ops  const  *pm ;
 1620};
 1621#line 424 "include/linux/device.h"
 1622struct device_attribute {
 1623   struct attribute attr ;
 1624   ssize_t (*show)(struct device *dev , struct device_attribute *attr , char *buf ) ;
 1625   ssize_t (*store)(struct device *dev , struct device_attribute *attr , char const   *buf ,
 1626                    size_t count ) ;
 1627};
 1628#line 484 "include/linux/device.h"
 1629struct device_dma_parameters {
 1630   unsigned int max_segment_size ;
 1631   unsigned long segment_boundary_mask ;
 1632};
 1633#line 551
 1634struct dma_coherent_mem;
 1635#line 551
 1636struct dma_coherent_mem;
 1637#line 551 "include/linux/device.h"
 1638struct device {
 1639   struct device *parent ;
 1640   struct device_private *p ;
 1641   struct kobject kobj ;
 1642   char const   *init_name ;
 1643   struct device_type  const  *type ;
 1644   struct mutex mutex ;
 1645   struct bus_type *bus ;
 1646   struct device_driver *driver ;
 1647   void *platform_data ;
 1648   struct dev_pm_info power ;
 1649   struct dev_power_domain *pwr_domain ;
 1650   int numa_node ;
 1651   u64 *dma_mask ;
 1652   u64 coherent_dma_mask ;
 1653   struct device_dma_parameters *dma_parms ;
 1654   struct list_head dma_pools ;
 1655   struct dma_coherent_mem *dma_mem ;
 1656   struct dev_archdata archdata ;
 1657   struct device_node *of_node ;
 1658   dev_t devt ;
 1659   spinlock_t devres_lock ;
 1660   struct list_head devres_head ;
 1661   struct klist_node knode_class ;
 1662   struct class *class ;
 1663   struct attribute_group  const  **groups ;
 1664   void (*release)(struct device *dev ) ;
 1665};
 1666#line 43 "include/linux/pm_wakeup.h"
 1667struct wakeup_source {
 1668   char *name ;
 1669   struct list_head entry ;
 1670   spinlock_t lock ;
 1671   struct timer_list timer ;
 1672   unsigned long timer_expires ;
 1673   ktime_t total_time ;
 1674   ktime_t max_time ;
 1675   ktime_t last_time ;
 1676   unsigned long event_count ;
 1677   unsigned long active_count ;
 1678   unsigned long relax_count ;
 1679   unsigned long hit_count ;
 1680   unsigned int active : 1 ;
 1681};
 1682#line 219 "include/linux/mod_devicetable.h"
 1683struct of_device_id {
 1684   char name[32] ;
 1685   char type[32] ;
 1686   char compatible[128] ;
 1687   void *data ;
 1688};
 1689#line 62 "include/linux/virtio_ring.h"
 1690struct vring_desc {
 1691   __u64 addr ;
 1692   __u32 len ;
 1693   __u16 flags ;
 1694   __u16 next ;
 1695};
 1696#line 73 "include/linux/virtio_ring.h"
 1697struct vring_avail {
 1698   __u16 flags ;
 1699   __u16 idx ;
 1700   __u16 ring[] ;
 1701};
 1702#line 80 "include/linux/virtio_ring.h"
 1703struct vring_used_elem {
 1704   __u32 id ;
 1705   __u32 len ;
 1706};
 1707#line 87 "include/linux/virtio_ring.h"
 1708struct vring_used {
 1709   __u16 flags ;
 1710   __u16 idx ;
 1711   struct vring_used_elem ring[] ;
 1712};
 1713#line 10 "include/linux/irqreturn.h"
 1714enum irqreturn {
 1715    IRQ_NONE = 0,
 1716    IRQ_HANDLED = 1,
 1717    IRQ_WAKE_THREAD = 2
 1718} ;
 1719#line 16 "include/linux/irqreturn.h"
 1720typedef enum irqreturn irqreturn_t;
 1721#line 19 "include/linux/vhost.h"
 1722struct vhost_vring_state {
 1723   unsigned int index ;
 1724   unsigned int num ;
 1725};
 1726#line 24 "include/linux/vhost.h"
 1727struct vhost_vring_file {
 1728   unsigned int index ;
 1729   int fd ;
 1730};
 1731#line 30 "include/linux/vhost.h"
 1732struct vhost_vring_addr {
 1733   unsigned int index ;
 1734   unsigned int flags ;
 1735   __u64 desc_user_addr ;
 1736   __u64 used_user_addr ;
 1737   __u64 avail_user_addr ;
 1738   __u64 log_guest_addr ;
 1739};
 1740#line 50 "include/linux/vhost.h"
 1741struct vhost_memory_region {
 1742   __u64 guest_phys_addr ;
 1743   __u64 memory_size ;
 1744   __u64 userspace_addr ;
 1745   __u64 flags_padding ;
 1746};
 1747#line 60 "include/linux/vhost.h"
 1748struct vhost_memory {
 1749   __u32 nregions ;
 1750   __u32 padding ;
 1751   struct vhost_memory_region regions[0] ;
 1752};
 1753#line 16 "include/linux/uio.h"
 1754struct iovec {
 1755   void *iov_base ;
 1756   __kernel_size_t iov_len ;
 1757};
 1758#line 65 "include/linux/net.h"
 1759struct poll_table_struct;
 1760#line 65
 1761struct poll_table_struct;
 1762#line 66
 1763struct pipe_inode_info;
 1764#line 66
 1765struct pipe_inode_info;
 1766#line 121
 1767struct fasync_struct;
 1768#line 121
 1769struct fasync_struct;
 1770#line 156
 1771struct kiocb;
 1772#line 156
 1773struct kiocb;
 1774#line 38 "include/linux/slub_def.h"
 1775struct kmem_cache_cpu {
 1776   void **freelist ;
 1777   unsigned long tid ;
 1778   struct page *page ;
 1779   int node ;
 1780   unsigned int stat[19] ;
 1781};
 1782#line 48 "include/linux/slub_def.h"
 1783struct kmem_cache_node {
 1784   spinlock_t list_lock ;
 1785   unsigned long nr_partial ;
 1786   struct list_head partial ;
 1787   atomic_long_t nr_slabs ;
 1788   atomic_long_t total_objects ;
 1789   struct list_head full ;
 1790};
 1791#line 64 "include/linux/slub_def.h"
 1792struct kmem_cache_order_objects {
 1793   unsigned long x ;
 1794};
 1795#line 71 "include/linux/slub_def.h"
 1796struct kmem_cache {
 1797   struct kmem_cache_cpu *cpu_slab ;
 1798   unsigned long flags ;
 1799   unsigned long min_partial ;
 1800   int size ;
 1801   int objsize ;
 1802   int offset ;
 1803   struct kmem_cache_order_objects oo ;
 1804   struct kmem_cache_order_objects max ;
 1805   struct kmem_cache_order_objects min ;
 1806   gfp_t allocflags ;
 1807   int refcount ;
 1808   void (*ctor)(void * ) ;
 1809   int inuse ;
 1810   int align ;
 1811   int reserved ;
 1812   char const   *name ;
 1813   struct list_head list ;
 1814   struct kobject kobj ;
 1815   int remote_node_defrag_ratio ;
 1816   struct kmem_cache_node *node[1 << 10] ;
 1817};
 1818#line 94 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess.h"
 1819struct exception_table_entry {
 1820   unsigned long insn ;
 1821   unsigned long fixup ;
 1822};
 1823#line 431 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess.h"
 1824struct __large_struct {
 1825   unsigned long buf[100] ;
 1826};
 1827#line 25 "include/linux/dma-attrs.h"
 1828struct dma_attrs {
 1829   unsigned long flags[((2UL + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
 1830};
 1831#line 11 "include/linux/dma-mapping.h"
 1832enum dma_data_direction {
 1833    DMA_BIDIRECTIONAL = 0,
 1834    DMA_TO_DEVICE = 1,
 1835    DMA_FROM_DEVICE = 2,
 1836    DMA_NONE = 3
 1837} ;
 1838#line 18 "include/linux/dma-mapping.h"
 1839struct dma_map_ops {
 1840   void *(*alloc_coherent)(struct device *dev , size_t size , dma_addr_t *dma_handle ,
 1841                           gfp_t gfp ) ;
 1842   void (*free_coherent)(struct device *dev , size_t size , void *vaddr , dma_addr_t dma_handle ) ;
 1843   dma_addr_t (*map_page)(struct device *dev , struct page *page , unsigned long offset ,
 1844                          size_t size , enum dma_data_direction dir , struct dma_attrs *attrs ) ;
 1845   void (*unmap_page)(struct device *dev , dma_addr_t dma_handle , size_t size , enum dma_data_direction dir ,
 1846                      struct dma_attrs *attrs ) ;
 1847   int (*map_sg)(struct device *dev , struct scatterlist *sg , int nents , enum dma_data_direction dir ,
 1848                 struct dma_attrs *attrs ) ;
 1849   void (*unmap_sg)(struct device *dev , struct scatterlist *sg , int nents , enum dma_data_direction dir ,
 1850                    struct dma_attrs *attrs ) ;
 1851   void (*sync_single_for_cpu)(struct device *dev , dma_addr_t dma_handle , size_t size ,
 1852                               enum dma_data_direction dir ) ;
 1853   void (*sync_single_for_device)(struct device *dev , dma_addr_t dma_handle , size_t size ,
 1854                                  enum dma_data_direction dir ) ;
 1855   void (*sync_sg_for_cpu)(struct device *dev , struct scatterlist *sg , int nents ,
 1856                           enum dma_data_direction dir ) ;
 1857   void (*sync_sg_for_device)(struct device *dev , struct scatterlist *sg , int nents ,
 1858                              enum dma_data_direction dir ) ;
 1859   int (*mapping_error)(struct device *dev , dma_addr_t dma_addr ) ;
 1860   int (*dma_supported)(struct device *dev , u64 mask ) ;
 1861   int (*set_dma_mask)(struct device *dev , u64 mask ) ;
 1862   int is_phys ;
 1863};
 1864#line 8 "include/linux/timerqueue.h"
 1865struct timerqueue_node {
 1866   struct rb_node node ;
 1867   ktime_t expires ;
 1868};
 1869#line 13 "include/linux/timerqueue.h"
 1870struct timerqueue_head {
 1871   struct rb_root head ;
 1872   struct timerqueue_node *next ;
 1873};
 1874#line 27 "include/linux/hrtimer.h"
 1875struct hrtimer_clock_base;
 1876#line 27
 1877struct hrtimer_clock_base;
 1878#line 28
 1879struct hrtimer_cpu_base;
 1880#line 28
 1881struct hrtimer_cpu_base;
 1882#line 44
 1883enum hrtimer_restart {
 1884    HRTIMER_NORESTART = 0,
 1885    HRTIMER_RESTART = 1
 1886} ;
 1887#line 108 "include/linux/hrtimer.h"
 1888struct hrtimer {
 1889   struct timerqueue_node node ;
 1890   ktime_t _softexpires ;
 1891   enum hrtimer_restart (*function)(struct hrtimer * ) ;
 1892   struct hrtimer_clock_base *base ;
 1893   unsigned long state ;
 1894   int start_pid ;
 1895   void *start_site ;
 1896   char start_comm[16] ;
 1897};
 1898#line 145 "include/linux/hrtimer.h"
 1899struct hrtimer_clock_base {
 1900   struct hrtimer_cpu_base *cpu_base ;
 1901   int index ;
 1902   clockid_t clockid ;
 1903   struct timerqueue_head active ;
 1904   ktime_t resolution ;
 1905   ktime_t (*get_time)(void) ;
 1906   ktime_t softirq_time ;
 1907   ktime_t offset ;
 1908};
 1909#line 178 "include/linux/hrtimer.h"
 1910struct hrtimer_cpu_base {
 1911   raw_spinlock_t lock ;
 1912   unsigned long active_bases ;
 1913   ktime_t expires_next ;
 1914   int hres_active ;
 1915   int hang_detected ;
 1916   unsigned long nr_events ;
 1917   unsigned long nr_retries ;
 1918   unsigned long nr_hangs ;
 1919   ktime_t max_hang_time ;
 1920   struct hrtimer_clock_base clock_base[3] ;
 1921};
 1922#line 64 "include/linux/virtio_net.h"
 1923struct virtio_net_hdr {
 1924   __u8 flags ;
 1925   __u8 gso_type ;
 1926   __u16 hdr_len ;
 1927   __u16 gso_size ;
 1928   __u16 csum_start ;
 1929   __u16 csum_offset ;
 1930};
 1931#line 81 "include/linux/virtio_net.h"
 1932struct virtio_net_hdr_mrg_rxbuf {
 1933   struct virtio_net_hdr hdr ;
 1934   __u16 num_buffers ;
 1935};
 1936#line 31 "include/asm-generic/poll.h"
 1937struct pollfd {
 1938   int fd ;
 1939   short events ;
 1940   short revents ;
 1941};
 1942#line 16 "include/linux/blk_types.h"
 1943struct block_device;
 1944#line 16
 1945struct block_device;
 1946#line 33 "include/linux/list_bl.h"
 1947struct hlist_bl_node;
 1948#line 33
 1949struct hlist_bl_node;
 1950#line 33 "include/linux/list_bl.h"
 1951struct hlist_bl_head {
 1952   struct hlist_bl_node *first ;
 1953};
 1954#line 37 "include/linux/list_bl.h"
 1955struct hlist_bl_node {
 1956   struct hlist_bl_node *next ;
 1957   struct hlist_bl_node **pprev ;
 1958};
 1959#line 13 "include/linux/dcache.h"
 1960struct nameidata;
 1961#line 13
 1962struct nameidata;
 1963#line 35 "include/linux/dcache.h"
 1964struct qstr {
 1965   unsigned int hash ;
 1966   unsigned int len ;
 1967   unsigned char const   *name ;
 1968};
 1969#line 116
 1970struct dentry_operations;
 1971#line 116
 1972struct dentry_operations;
 1973#line 116
 1974struct super_block;
 1975#line 116
 1976struct super_block;
 1977#line 116 "include/linux/dcache.h"
 1978union __anonunion_d_u_215 {
 1979   struct list_head d_child ;
 1980   struct rcu_head d_rcu ;
 1981};
 1982#line 116 "include/linux/dcache.h"
 1983struct dentry {
 1984   unsigned int d_flags ;
 1985   seqcount_t d_seq ;
 1986   struct hlist_bl_node d_hash ;
 1987   struct dentry *d_parent ;
 1988   struct qstr d_name ;
 1989   struct inode *d_inode ;
 1990   unsigned char d_iname[32] ;
 1991   unsigned int d_count ;
 1992   spinlock_t d_lock ;
 1993   struct dentry_operations  const  *d_op ;
 1994   struct super_block *d_sb ;
 1995   unsigned long d_time ;
 1996   void *d_fsdata ;
 1997   struct list_head d_lru ;
 1998   union __anonunion_d_u_215 d_u ;
 1999   struct list_head d_subdirs ;
 2000   struct list_head d_alias ;
 2001};
 2002#line 159 "include/linux/dcache.h"
 2003struct dentry_operations {
 2004   int (*d_revalidate)(struct dentry * , struct nameidata * ) ;
 2005   int (*d_hash)(struct dentry  const  * , struct inode  const  * , struct qstr * ) ;
 2006   int (*d_compare)(struct dentry  const  * , struct inode  const  * , struct dentry  const  * ,
 2007                    struct inode  const  * , unsigned int  , char const   * , struct qstr  const  * ) ;
 2008   int (*d_delete)(struct dentry  const  * ) ;
 2009   void (*d_release)(struct dentry * ) ;
 2010   void (*d_iput)(struct dentry * , struct inode * ) ;
 2011   char *(*d_dname)(struct dentry * , char * , int  ) ;
 2012   struct vfsmount *(*d_automount)(struct path * ) ;
 2013   int (*d_manage)(struct dentry * , bool  ) ;
 2014} __attribute__((__aligned__((1) <<  (6) ))) ;
 2015#line 7 "include/linux/path.h"
 2016struct path {
 2017   struct vfsmount *mnt ;
 2018   struct dentry *dentry ;
 2019};
 2020#line 57 "include/linux/radix-tree.h"
 2021struct radix_tree_node;
 2022#line 57
 2023struct radix_tree_node;
 2024#line 57 "include/linux/radix-tree.h"
 2025struct radix_tree_root {
 2026   unsigned int height ;
 2027   gfp_t gfp_mask ;
 2028   struct radix_tree_node *rnode ;
 2029};
 2030#line 6 "include/linux/pid.h"
 2031enum pid_type {
 2032    PIDTYPE_PID = 0,
 2033    PIDTYPE_PGID = 1,
 2034    PIDTYPE_SID = 2,
 2035    PIDTYPE_MAX = 3
 2036} ;
 2037#line 50
 2038struct pid_namespace;
 2039#line 50
 2040struct pid_namespace;
 2041#line 50 "include/linux/pid.h"
 2042struct upid {
 2043   int nr ;
 2044   struct pid_namespace *ns ;
 2045   struct hlist_node pid_chain ;
 2046};
 2047#line 57 "include/linux/pid.h"
 2048struct pid {
 2049   atomic_t count ;
 2050   unsigned int level ;
 2051   struct hlist_head tasks[3] ;
 2052   struct rcu_head rcu ;
 2053   struct upid numbers[1] ;
 2054};
 2055#line 69 "include/linux/pid.h"
 2056struct pid_link {
 2057   struct hlist_node node ;
 2058   struct pid *pid ;
 2059};
 2060#line 94 "include/linux/capability.h"
 2061struct kernel_cap_struct {
 2062   __u32 cap[2] ;
 2063};
 2064#line 94 "include/linux/capability.h"
 2065typedef struct kernel_cap_struct kernel_cap_t;
 2066#line 377
 2067struct user_namespace;
 2068#line 377
 2069struct user_namespace;
 2070#line 16 "include/linux/fiemap.h"
 2071struct fiemap_extent {
 2072   __u64 fe_logical ;
 2073   __u64 fe_physical ;
 2074   __u64 fe_length ;
 2075   __u64 fe_reserved64[2] ;
 2076   __u32 fe_flags ;
 2077   __u32 fe_reserved[3] ;
 2078};
 2079#line 399 "include/linux/fs.h"
 2080struct export_operations;
 2081#line 399
 2082struct export_operations;
 2083#line 407
 2084struct kstatfs;
 2085#line 407
 2086struct kstatfs;
 2087#line 460 "include/linux/fs.h"
 2088struct iattr {
 2089   unsigned int ia_valid ;
 2090   umode_t ia_mode ;
 2091   uid_t ia_uid ;
 2092   gid_t ia_gid ;
 2093   loff_t ia_size ;
 2094   struct timespec ia_atime ;
 2095   struct timespec ia_mtime ;
 2096   struct timespec ia_ctime ;
 2097   struct file *ia_file ;
 2098};
 2099#line 129 "include/linux/quota.h"
 2100struct if_dqinfo {
 2101   __u64 dqi_bgrace ;
 2102   __u64 dqi_igrace ;
 2103   __u32 dqi_flags ;
 2104   __u32 dqi_valid ;
 2105};
 2106#line 50 "include/linux/dqblk_xfs.h"
 2107struct fs_disk_quota {
 2108   __s8 d_version ;
 2109   __s8 d_flags ;
 2110   __u16 d_fieldmask ;
 2111   __u32 d_id ;
 2112   __u64 d_blk_hardlimit ;
 2113   __u64 d_blk_softlimit ;
 2114   __u64 d_ino_hardlimit ;
 2115   __u64 d_ino_softlimit ;
 2116   __u64 d_bcount ;
 2117   __u64 d_icount ;
 2118   __s32 d_itimer ;
 2119   __s32 d_btimer ;
 2120   __u16 d_iwarns ;
 2121   __u16 d_bwarns ;
 2122   __s32 d_padding2 ;
 2123   __u64 d_rtb_hardlimit ;
 2124   __u64 d_rtb_softlimit ;
 2125   __u64 d_rtbcount ;
 2126   __s32 d_rtbtimer ;
 2127   __u16 d_rtbwarns ;
 2128   __s16 d_padding3 ;
 2129   char d_padding4[8] ;
 2130};
 2131#line 146 "include/linux/dqblk_xfs.h"
 2132struct fs_qfilestat {
 2133   __u64 qfs_ino ;
 2134   __u64 qfs_nblks ;
 2135   __u32 qfs_nextents ;
 2136};
 2137#line 146 "include/linux/dqblk_xfs.h"
 2138typedef struct fs_qfilestat fs_qfilestat_t;
 2139#line 152 "include/linux/dqblk_xfs.h"
 2140struct fs_quota_stat {
 2141   __s8 qs_version ;
 2142   __u16 qs_flags ;
 2143   __s8 qs_pad ;
 2144   fs_qfilestat_t qs_uquota ;
 2145   fs_qfilestat_t qs_gquota ;
 2146   __u32 qs_incoredqs ;
 2147   __s32 qs_btimelimit ;
 2148   __s32 qs_itimelimit ;
 2149   __s32 qs_rtbtimelimit ;
 2150   __u16 qs_bwarnlimit ;
 2151   __u16 qs_iwarnlimit ;
 2152};
 2153#line 17 "include/linux/dqblk_qtree.h"
 2154struct dquot;
 2155#line 17
 2156struct dquot;
 2157#line 185 "include/linux/quota.h"
 2158typedef __kernel_uid32_t qid_t;
 2159#line 186 "include/linux/quota.h"
 2160typedef long long qsize_t;
 2161#line 200 "include/linux/quota.h"
 2162struct mem_dqblk {
 2163   qsize_t dqb_bhardlimit ;
 2164   qsize_t dqb_bsoftlimit ;
 2165   qsize_t dqb_curspace ;
 2166   qsize_t dqb_rsvspace ;
 2167   qsize_t dqb_ihardlimit ;
 2168   qsize_t dqb_isoftlimit ;
 2169   qsize_t dqb_curinodes ;
 2170   time_t dqb_btime ;
 2171   time_t dqb_itime ;
 2172};
 2173#line 215
 2174struct quota_format_type;
 2175#line 215
 2176struct quota_format_type;
 2177#line 217 "include/linux/quota.h"
 2178struct mem_dqinfo {
 2179   struct quota_format_type *dqi_format ;
 2180   int dqi_fmt_id ;
 2181   struct list_head dqi_dirty_list ;
 2182   unsigned long dqi_flags ;
 2183   unsigned int dqi_bgrace ;
 2184   unsigned int dqi_igrace ;
 2185   qsize_t dqi_maxblimit ;
 2186   qsize_t dqi_maxilimit ;
 2187   void *dqi_priv ;
 2188};
 2189#line 284 "include/linux/quota.h"
 2190struct dquot {
 2191   struct hlist_node dq_hash ;
 2192   struct list_head dq_inuse ;
 2193   struct list_head dq_free ;
 2194   struct list_head dq_dirty ;
 2195   struct mutex dq_lock ;
 2196   atomic_t dq_count ;
 2197   wait_queue_head_t dq_wait_unused ;
 2198   struct super_block *dq_sb ;
 2199   unsigned int dq_id ;
 2200   loff_t dq_off ;
 2201   unsigned long dq_flags ;
 2202   short dq_type ;
 2203   struct mem_dqblk dq_dqb ;
 2204};
 2205#line 301 "include/linux/quota.h"
 2206struct quota_format_ops {
 2207   int (*check_quota_file)(struct super_block *sb , int type ) ;
 2208   int (*read_file_info)(struct super_block *sb , int type ) ;
 2209   int (*write_file_info)(struct super_block *sb , int type ) ;
 2210   int (*free_file_info)(struct super_block *sb , int type ) ;
 2211   int (*read_dqblk)(struct dquot *dquot ) ;
 2212   int (*commit_dqblk)(struct dquot *dquot ) ;
 2213   int (*release_dqblk)(struct dquot *dquot ) ;
 2214};
 2215#line 312 "include/linux/quota.h"
 2216struct dquot_operations {
 2217   int (*write_dquot)(struct dquot * ) ;
 2218   struct dquot *(*alloc_dquot)(struct super_block * , int  ) ;
 2219   void (*destroy_dquot)(struct dquot * ) ;
 2220   int (*acquire_dquot)(struct dquot * ) ;
 2221   int (*release_dquot)(struct dquot * ) ;
 2222   int (*mark_dirty)(struct dquot * ) ;
 2223   int (*write_info)(struct super_block * , int  ) ;
 2224   qsize_t *(*get_reserved_space)(struct inode * ) ;
 2225};
 2226#line 328 "include/linux/quota.h"
 2227struct quotactl_ops {
 2228   int (*quota_on)(struct super_block * , int  , int  , struct path * ) ;
 2229   int (*quota_on_meta)(struct super_block * , int  , int  ) ;
 2230   int (*quota_off)(struct super_block * , int  ) ;
 2231   int (*quota_sync)(struct super_block * , int  , int  ) ;
 2232   int (*get_info)(struct super_block * , int  , struct if_dqinfo * ) ;
 2233   int (*set_info)(struct super_block * , int  , struct if_dqinfo * ) ;
 2234   int (*get_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
 2235   int (*set_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
 2236   int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ;
 2237   int (*set_xstate)(struct super_block * , unsigned int  , int  ) ;
 2238};
 2239#line 341 "include/linux/quota.h"
 2240struct quota_format_type {
 2241   int qf_fmt_id ;
 2242   struct quota_format_ops  const  *qf_ops ;
 2243   struct module *qf_owner ;
 2244   struct quota_format_type *qf_next ;
 2245};
 2246#line 395 "include/linux/quota.h"
 2247struct quota_info {
 2248   unsigned int flags ;
 2249   struct mutex dqio_mutex ;
 2250   struct mutex dqonoff_mutex ;
 2251   struct rw_semaphore dqptr_sem ;
 2252   struct inode *files[2] ;
 2253   struct mem_dqinfo info[2] ;
 2254   struct quota_format_ops  const  *ops[2] ;
 2255};
 2256#line 568 "include/linux/fs.h"
 2257union __anonunion_arg_223 {
 2258   char *buf ;
 2259   void *data ;
 2260};
 2261#line 568 "include/linux/fs.h"
 2262struct __anonstruct_read_descriptor_t_222 {
 2263   size_t written ;
 2264   size_t count ;
 2265   union __anonunion_arg_223 arg ;
 2266   int error ;
 2267};
 2268#line 568 "include/linux/fs.h"
 2269typedef struct __anonstruct_read_descriptor_t_222 read_descriptor_t;
 2270#line 581 "include/linux/fs.h"
 2271struct address_space_operations {
 2272   int (*writepage)(struct page *page , struct writeback_control *wbc ) ;
 2273   int (*readpage)(struct file * , struct page * ) ;
 2274   int (*writepages)(struct address_space * , struct writeback_control * ) ;
 2275   int (*set_page_dirty)(struct page *page ) ;
 2276   int (*readpages)(struct file *filp , struct address_space *mapping , struct list_head *pages ,
 2277                    unsigned int nr_pages ) ;
 2278   int (*write_begin)(struct file * , struct address_space *mapping , loff_t pos ,
 2279                      unsigned int len , unsigned int flags , struct page **pagep ,
 2280                      void **fsdata ) ;
 2281   int (*write_end)(struct file * , struct address_space *mapping , loff_t pos , unsigned int len ,
 2282                    unsigned int copied , struct page *page , void *fsdata ) ;
 2283   sector_t (*bmap)(struct address_space * , sector_t  ) ;
 2284   void (*invalidatepage)(struct page * , unsigned long  ) ;
 2285   int (*releasepage)(struct page * , gfp_t  ) ;
 2286   void (*freepage)(struct page * ) ;
 2287   ssize_t (*direct_IO)(int  , struct kiocb * , struct iovec  const  *iov , loff_t offset ,
 2288                        unsigned long nr_segs ) ;
 2289   int (*get_xip_mem)(struct address_space * , unsigned long  , int  , void ** , unsigned long * ) ;
 2290   int (*migratepage)(struct address_space * , struct page * , struct page * ) ;
 2291   int (*launder_page)(struct page * ) ;
 2292   int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long  ) ;
 2293   int (*error_remove_page)(struct address_space * , struct page * ) ;
 2294};
 2295#line 633
 2296struct backing_dev_info;
 2297#line 633
 2298struct backing_dev_info;
 2299#line 634 "include/linux/fs.h"
 2300struct address_space {
 2301   struct inode *host ;
 2302   struct radix_tree_root page_tree ;
 2303   spinlock_t tree_lock ;
 2304   unsigned int i_mmap_writable ;
 2305   struct prio_tree_root i_mmap ;
 2306   struct list_head i_mmap_nonlinear ;
 2307   struct mutex i_mmap_mutex ;
 2308   unsigned long nrpages ;
 2309   unsigned long writeback_index ;
 2310   struct address_space_operations  const  *a_ops ;
 2311   unsigned long flags ;
 2312   struct backing_dev_info *backing_dev_info ;
 2313   spinlock_t private_lock ;
 2314   struct list_head private_list ;
 2315   struct address_space *assoc_mapping ;
 2316} __attribute__((__aligned__(sizeof(long )))) ;
 2317#line 658
 2318struct hd_struct;
 2319#line 658
 2320struct hd_struct;
 2321#line 658
 2322struct gendisk;
 2323#line 658
 2324struct gendisk;
 2325#line 658 "include/linux/fs.h"
 2326struct block_device {
 2327   dev_t bd_dev ;
 2328   int bd_openers ;
 2329   struct inode *bd_inode ;
 2330   struct super_block *bd_super ;
 2331   struct mutex bd_mutex ;
 2332   struct list_head bd_inodes ;
 2333   void *bd_claiming ;
 2334   void *bd_holder ;
 2335   int bd_holders ;
 2336   bool bd_write_holder ;
 2337   struct list_head bd_holder_disks ;
 2338   struct block_device *bd_contains ;
 2339   unsigned int bd_block_size ;
 2340   struct hd_struct *bd_part ;
 2341   unsigned int bd_part_count ;
 2342   int bd_invalidated ;
 2343   struct gendisk *bd_disk ;
 2344   struct list_head bd_list ;
 2345   unsigned long bd_private ;
 2346   int bd_fsfreeze_count ;
 2347   struct mutex bd_fsfreeze_mutex ;
 2348};
 2349#line 735
 2350struct posix_acl;
 2351#line 735
 2352struct posix_acl;
 2353#line 738
 2354struct inode_operations;
 2355#line 738
 2356struct inode_operations;
 2357#line 738 "include/linux/fs.h"
 2358union __anonunion____missing_field_name_224 {
 2359   struct list_head i_dentry ;
 2360   struct rcu_head i_rcu ;
 2361};
 2362#line 738
 2363struct file_lock;
 2364#line 738
 2365struct file_lock;
 2366#line 738
 2367struct cdev;
 2368#line 738
 2369struct cdev;
 2370#line 738 "include/linux/fs.h"
 2371union __anonunion____missing_field_name_225 {
 2372   struct pipe_inode_info *i_pipe ;
 2373   struct block_device *i_bdev ;
 2374   struct cdev *i_cdev ;
 2375};
 2376#line 738 "include/linux/fs.h"
 2377struct inode {
 2378   umode_t i_mode ;
 2379   uid_t i_uid ;
 2380   gid_t i_gid ;
 2381   struct inode_operations  const  *i_op ;
 2382   struct super_block *i_sb ;
 2383   spinlock_t i_lock ;
 2384   unsigned int i_flags ;
 2385   unsigned long i_state ;
 2386   void *i_security ;
 2387   struct mutex i_mutex ;
 2388   unsigned long dirtied_when ;
 2389   struct hlist_node i_hash ;
 2390   struct list_head i_wb_list ;
 2391   struct list_head i_lru ;
 2392   struct list_head i_sb_list ;
 2393   union __anonunion____missing_field_name_224 __annonCompField40 ;
 2394   unsigned long i_ino ;
 2395   atomic_t i_count ;
 2396   unsigned int i_nlink ;
 2397   dev_t i_rdev ;
 2398   unsigned int i_blkbits ;
 2399   u64 i_version ;
 2400   loff_t i_size ;
 2401   struct timespec i_atime ;
 2402   struct timespec i_mtime ;
 2403   struct timespec i_ctime ;
 2404   blkcnt_t i_blocks ;
 2405   unsigned short i_bytes ;
 2406   struct rw_semaphore i_alloc_sem ;
 2407   struct file_operations  const  *i_fop ;
 2408   struct file_lock *i_flock ;
 2409   struct address_space *i_mapping ;
 2410   struct address_space i_data ;
 2411   struct dquot *i_dquot[2] ;
 2412   struct list_head i_devices ;
 2413   union __anonunion____missing_field_name_225 __annonCompField41 ;
 2414   __u32 i_generation ;
 2415   __u32 i_fsnotify_mask ;
 2416   struct hlist_head i_fsnotify_marks ;
 2417   atomic_t i_readcount ;
 2418   atomic_t i_writecount ;
 2419   struct posix_acl *i_acl ;
 2420   struct posix_acl *i_default_acl ;
 2421   void *i_private ;
 2422};
 2423#line 903 "include/linux/fs.h"
 2424struct fown_struct {
 2425   rwlock_t lock ;
 2426   struct pid *pid ;
 2427   enum pid_type pid_type ;
 2428   uid_t uid ;
 2429   uid_t euid ;
 2430   int signum ;
 2431};
 2432#line 914 "include/linux/fs.h"
 2433struct file_ra_state {
 2434   unsigned long start ;
 2435   unsigned int size ;
 2436   unsigned int async_size ;
 2437   unsigned int ra_pages ;
 2438   unsigned int mmap_miss ;
 2439   loff_t prev_pos ;
 2440};
 2441#line 937 "include/linux/fs.h"
 2442union __anonunion_f_u_226 {
 2443   struct list_head fu_list ;
 2444   struct rcu_head fu_rcuhead ;
 2445};
 2446#line 937 "include/linux/fs.h"
 2447struct file {
 2448   union __anonunion_f_u_226 f_u ;
 2449   struct path f_path ;
 2450   struct file_operations  const  *f_op ;
 2451   spinlock_t f_lock ;
 2452   int f_sb_list_cpu ;
 2453   atomic_long_t f_count ;
 2454   unsigned int f_flags ;
 2455   fmode_t f_mode ;
 2456   loff_t f_pos ;
 2457   struct fown_struct f_owner ;
 2458   struct cred  const  *f_cred ;
 2459   struct file_ra_state f_ra ;
 2460   u64 f_version ;
 2461   void *f_security ;
 2462   void *private_data ;
 2463   struct list_head f_ep_links ;
 2464   struct address_space *f_mapping ;
 2465   unsigned long f_mnt_write_state ;
 2466};
 2467#line 1064
 2468struct files_struct;
 2469#line 1064
 2470struct files_struct;
 2471#line 1064 "include/linux/fs.h"
 2472typedef struct files_struct *fl_owner_t;
 2473#line 1066 "include/linux/fs.h"
 2474struct file_lock_operations {
 2475   void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ;
 2476   void (*fl_release_private)(struct file_lock * ) ;
 2477};
 2478#line 1071 "include/linux/fs.h"
 2479struct lock_manager_operations {
 2480   int (*fl_compare_owner)(struct file_lock * , struct file_lock * ) ;
 2481   void (*fl_notify)(struct file_lock * ) ;
 2482   int (*fl_grant)(struct file_lock * , struct file_lock * , int  ) ;
 2483   void (*fl_release_private)(struct file_lock * ) ;
 2484   void (*fl_break)(struct file_lock * ) ;
 2485   int (*fl_change)(struct file_lock ** , int  ) ;
 2486};
 2487#line 8 "include/linux/nfs_fs_i.h"
 2488struct nlm_lockowner;
 2489#line 8
 2490struct nlm_lockowner;
 2491#line 13 "include/linux/nfs_fs_i.h"
 2492struct nfs_lock_info {
 2493   u32 state ;
 2494   struct nlm_lockowner *owner ;
 2495   struct list_head list ;
 2496};
 2497#line 19
 2498struct nfs4_lock_state;
 2499#line 19
 2500struct nfs4_lock_state;
 2501#line 20 "include/linux/nfs_fs_i.h"
 2502struct nfs4_lock_info {
 2503   struct nfs4_lock_state *owner ;
 2504};
 2505#line 1091 "include/linux/fs.h"
 2506struct __anonstruct_afs_228 {
 2507   struct list_head link ;
 2508   int state ;
 2509};
 2510#line 1091 "include/linux/fs.h"
 2511union __anonunion_fl_u_227 {
 2512   struct nfs_lock_info nfs_fl ;
 2513   struct nfs4_lock_info nfs4_fl ;
 2514   struct __anonstruct_afs_228 afs ;
 2515};
 2516#line 1091 "include/linux/fs.h"
 2517struct file_lock {
 2518   struct file_lock *fl_next ;
 2519   struct list_head fl_link ;
 2520   struct list_head fl_block ;
 2521   fl_owner_t fl_owner ;
 2522   unsigned char fl_flags ;
 2523   unsigned char fl_type ;
 2524   unsigned int fl_pid ;
 2525   struct pid *fl_nspid ;
 2526   wait_queue_head_t fl_wait ;
 2527   struct file *fl_file ;
 2528   loff_t fl_start ;
 2529   loff_t fl_end ;
 2530   struct fasync_struct *fl_fasync ;
 2531   unsigned long fl_break_time ;
 2532   struct file_lock_operations  const  *fl_ops ;
 2533   struct lock_manager_operations  const  *fl_lmops ;
 2534   union __anonunion_fl_u_227 fl_u ;
 2535};
 2536#line 1324 "include/linux/fs.h"
 2537struct fasync_struct {
 2538   spinlock_t fa_lock ;
 2539   int magic ;
 2540   int fa_fd ;
 2541   struct fasync_struct *fa_next ;
 2542   struct file *fa_file ;
 2543   struct rcu_head fa_rcu ;
 2544};
 2545#line 1364
 2546struct file_system_type;
 2547#line 1364
 2548struct file_system_type;
 2549#line 1364
 2550struct super_operations;
 2551#line 1364
 2552struct super_operations;
 2553#line 1364
 2554struct xattr_handler;
 2555#line 1364
 2556struct xattr_handler;
 2557#line 1364
 2558struct mtd_info;
 2559#line 1364
 2560struct mtd_info;
 2561#line 1364 "include/linux/fs.h"
 2562struct super_block {
 2563   struct list_head s_list ;
 2564   dev_t s_dev ;
 2565   unsigned char s_dirt ;
 2566   unsigned char s_blocksize_bits ;
 2567   unsigned long s_blocksize ;
 2568   loff_t s_maxbytes ;
 2569   struct file_system_type *s_type ;
 2570   struct super_operations  const  *s_op ;
 2571   struct dquot_operations  const  *dq_op ;
 2572   struct quotactl_ops  const  *s_qcop ;
 2573   struct export_operations  const  *s_export_op ;
 2574   unsigned long s_flags ;
 2575   unsigned long s_magic ;
 2576   struct dentry *s_root ;
 2577   struct rw_semaphore s_umount ;
 2578   struct mutex s_lock ;
 2579   int s_count ;
 2580   atomic_t s_active ;
 2581   void *s_security ;
 2582   struct xattr_handler  const  **s_xattr ;
 2583   struct list_head s_inodes ;
 2584   struct hlist_bl_head s_anon ;
 2585   struct list_head *s_files ;
 2586   struct list_head s_dentry_lru ;
 2587   int s_nr_dentry_unused ;
 2588   struct block_device *s_bdev ;
 2589   struct backing_dev_info *s_bdi ;
 2590   struct mtd_info *s_mtd ;
 2591   struct list_head s_instances ;
 2592   struct quota_info s_dquot ;
 2593   int s_frozen ;
 2594   wait_queue_head_t s_wait_unfrozen ;
 2595   char s_id[32] ;
 2596   u8 s_uuid[16] ;
 2597   void *s_fs_info ;
 2598   fmode_t s_mode ;
 2599   u32 s_time_gran ;
 2600   struct mutex s_vfs_rename_mutex ;
 2601   char *s_subtype ;
 2602   char *s_options ;
 2603   struct dentry_operations  const  *s_d_op ;
 2604   int cleancache_poolid ;
 2605};
 2606#line 1499 "include/linux/fs.h"
 2607struct fiemap_extent_info {
 2608   unsigned int fi_flags ;
 2609   unsigned int fi_extents_mapped ;
 2610   unsigned int fi_extents_max ;
 2611   struct fiemap_extent *fi_extents_start ;
 2612};
 2613#line 1546 "include/linux/fs.h"
 2614struct file_operations {
 2615   struct module *owner ;
 2616   loff_t (*llseek)(struct file * , loff_t  , int  ) ;
 2617   ssize_t (*read)(struct file * , char * , size_t  , loff_t * ) ;
 2618   ssize_t (*write)(struct file * , char const   * , size_t  , loff_t * ) ;
 2619   ssize_t (*aio_read)(struct kiocb * , struct iovec  const  * , unsigned long  ,
 2620                       loff_t  ) ;
 2621   ssize_t (*aio_write)(struct kiocb * , struct iovec  const  * , unsigned long  ,
 2622                        loff_t  ) ;
 2623   int (*readdir)(struct file * , void * , int (*)(void * , char const   * , int  ,
 2624                                                   loff_t  , u64  , unsigned int  ) ) ;
 2625   unsigned int (*poll)(struct file * , struct poll_table_struct * ) ;
 2626   long (*unlocked_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
 2627   long (*compat_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
 2628   int (*mmap)(struct file * , struct vm_area_struct * ) ;
 2629   int (*open)(struct inode * , struct file * ) ;
 2630   int (*flush)(struct file * , fl_owner_t id ) ;
 2631   int (*release)(struct inode * , struct file * ) ;
 2632   int (*fsync)(struct file * , int datasync ) ;
 2633   int (*aio_fsync)(struct kiocb * , int datasync ) ;
 2634   int (*fasync)(int  , struct file * , int  ) ;
 2635   int (*lock)(struct file * , int  , struct file_lock * ) ;
 2636   ssize_t (*sendpage)(struct file * , struct page * , int  , size_t  , loff_t * ,
 2637                       int  ) ;
 2638   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
 2639                                      unsigned long  , unsigned long  ) ;
 2640   int (*check_flags)(int  ) ;
 2641   int (*flock)(struct file * , int  , struct file_lock * ) ;
 2642   ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t  ,
 2643                           unsigned int  ) ;
 2644   ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t  ,
 2645                          unsigned int  ) ;
 2646   int (*setlease)(struct file * , long  , struct file_lock ** ) ;
 2647   long (*fallocate)(struct file *file , int mode , loff_t offset , loff_t len ) ;
 2648};
 2649#line 1578 "include/linux/fs.h"
 2650struct inode_operations {
 2651   struct dentry *(*lookup)(struct inode * , struct dentry * , struct nameidata * ) ;
 2652   void *(*follow_link)(struct dentry * , struct nameidata * ) ;
 2653   int (*permission)(struct inode * , int  , unsigned int  ) ;
 2654   int (*check_acl)(struct inode * , int  , unsigned int  ) ;
 2655   int (*readlink)(struct dentry * , char * , int  ) ;
 2656   void (*put_link)(struct dentry * , struct nameidata * , void * ) ;
 2657   int (*create)(struct inode * , struct dentry * , int  , struct nameidata * ) ;
 2658   int (*link)(struct dentry * , struct inode * , struct dentry * ) ;
 2659   int (*unlink)(struct inode * , struct dentry * ) ;
 2660   int (*symlink)(struct inode * , struct dentry * , char const   * ) ;
 2661   int (*mkdir)(struct inode * , struct dentry * , int  ) ;
 2662   int (*rmdir)(struct inode * , struct dentry * ) ;
 2663   int (*mknod)(struct inode * , struct dentry * , int  , dev_t  ) ;
 2664   int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ;
 2665   void (*truncate)(struct inode * ) ;
 2666   int (*setattr)(struct dentry * , struct iattr * ) ;
 2667   int (*getattr)(struct vfsmount *mnt , struct dentry * , struct kstat * ) ;
 2668   int (*setxattr)(struct dentry * , char const   * , void const   * , size_t  , int  ) ;
 2669   ssize_t (*getxattr)(struct dentry * , char const   * , void * , size_t  ) ;
 2670   ssize_t (*listxattr)(struct dentry * , char * , size_t  ) ;
 2671   int (*removexattr)(struct dentry * , char const   * ) ;
 2672   void (*truncate_range)(struct inode * , loff_t  , loff_t  ) ;
 2673   int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64 start , u64 len ) ;
 2674} __attribute__((__aligned__((1) <<  (6) ))) ;
 2675#line 1622 "include/linux/fs.h"
 2676struct super_operations {
 2677   struct inode *(*alloc_inode)(struct super_block *sb ) ;
 2678   void (*destroy_inode)(struct inode * ) ;
 2679   void (*dirty_inode)(struct inode * , int flags ) ;
 2680   int (*write_inode)(struct inode * , struct writeback_control *wbc ) ;
 2681   int (*drop_inode)(struct inode * ) ;
 2682   void (*evict_inode)(struct inode * ) ;
 2683   void (*put_super)(struct super_block * ) ;
 2684   void (*write_super)(struct super_block * ) ;
 2685   int (*sync_fs)(struct super_block *sb , int wait ) ;
 2686   int (*freeze_fs)(struct super_block * ) ;
 2687   int (*unfreeze_fs)(struct super_block * ) ;
 2688   int (*statfs)(struct dentry * , struct kstatfs * ) ;
 2689   int (*remount_fs)(struct super_block * , int * , char * ) ;
 2690   void (*umount_begin)(struct super_block * ) ;
 2691   int (*show_options)(struct seq_file * , struct vfsmount * ) ;
 2692   int (*show_devname)(struct seq_file * , struct vfsmount * ) ;
 2693   int (*show_path)(struct seq_file * , struct vfsmount * ) ;
 2694   int (*show_stats)(struct seq_file * , struct vfsmount * ) ;
 2695   ssize_t (*quota_read)(struct super_block * , int  , char * , size_t  , loff_t  ) ;
 2696   ssize_t (*quota_write)(struct super_block * , int  , char const   * , size_t  ,
 2697                          loff_t  ) ;
 2698   int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t  ) ;
 2699};
 2700#line 1802 "include/linux/fs.h"
 2701struct file_system_type {
 2702   char const   *name ;
 2703   int fs_flags ;
 2704   struct dentry *(*mount)(struct file_system_type * , int  , char const   * , void * ) ;
 2705   void (*kill_sb)(struct super_block * ) ;
 2706   struct module *owner ;
 2707   struct file_system_type *next ;
 2708   struct list_head fs_supers ;
 2709   struct lock_class_key s_lock_key ;
 2710   struct lock_class_key s_umount_key ;
 2711   struct lock_class_key s_vfs_rename_key ;
 2712   struct lock_class_key i_lock_key ;
 2713   struct lock_class_key i_mutex_key ;
 2714   struct lock_class_key i_mutex_dir_key ;
 2715   struct lock_class_key i_alloc_sem_key ;
 2716};
 2717#line 35 "include/linux/poll.h"
 2718struct poll_table_struct {
 2719   void (*qproc)(struct file * , wait_queue_head_t * , struct poll_table_struct * ) ;
 2720   unsigned long key ;
 2721};
 2722#line 35 "include/linux/poll.h"
 2723typedef struct poll_table_struct poll_table;
 2724#line 12 "include/linux/irqdesc.h"
 2725struct proc_dir_entry;
 2726#line 12
 2727struct proc_dir_entry;
 2728#line 39
 2729struct irqaction;
 2730#line 39
 2731struct irqaction;
 2732#line 7 "include/asm-generic/cputime.h"
 2733typedef unsigned long cputime_t;
 2734#line 122 "include/linux/sem.h"
 2735struct sem_undo_list;
 2736#line 122
 2737struct sem_undo_list;
 2738#line 135 "include/linux/sem.h"
 2739struct sem_undo_list {
 2740   atomic_t refcnt ;
 2741   spinlock_t lock ;
 2742   struct list_head list_proc ;
 2743};
 2744#line 141 "include/linux/sem.h"
 2745struct sysv_sem {
 2746   struct sem_undo_list *undo_list ;
 2747};
 2748#line 10 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2749struct siginfo;
 2750#line 10
 2751struct siginfo;
 2752#line 30 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2753struct __anonstruct_sigset_t_237 {
 2754   unsigned long sig[1] ;
 2755};
 2756#line 30 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2757typedef struct __anonstruct_sigset_t_237 sigset_t;
 2758#line 17 "include/asm-generic/signal-defs.h"
 2759typedef void __signalfn_t(int  );
 2760#line 18 "include/asm-generic/signal-defs.h"
 2761typedef __signalfn_t *__sighandler_t;
 2762#line 20 "include/asm-generic/signal-defs.h"
 2763typedef void __restorefn_t(void);
 2764#line 21 "include/asm-generic/signal-defs.h"
 2765typedef __restorefn_t *__sigrestore_t;
 2766#line 167 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2767struct sigaction {
 2768   __sighandler_t sa_handler ;
 2769   unsigned long sa_flags ;
 2770   __sigrestore_t sa_restorer ;
 2771   sigset_t sa_mask ;
 2772};
 2773#line 174 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2774struct k_sigaction {
 2775   struct sigaction sa ;
 2776};
 2777#line 7 "include/asm-generic/siginfo.h"
 2778union sigval {
 2779   int sival_int ;
 2780   void *sival_ptr ;
 2781};
 2782#line 7 "include/asm-generic/siginfo.h"
 2783typedef union sigval sigval_t;
 2784#line 40 "include/asm-generic/siginfo.h"
 2785struct __anonstruct__kill_239 {
 2786   __kernel_pid_t _pid ;
 2787   __kernel_uid32_t _uid ;
 2788};
 2789#line 40 "include/asm-generic/siginfo.h"
 2790struct __anonstruct__timer_240 {
 2791   __kernel_timer_t _tid ;
 2792   int _overrun ;
 2793   char _pad[sizeof(__kernel_uid32_t ) - sizeof(int )] ;
 2794   sigval_t _sigval ;
 2795   int _sys_private ;
 2796};
 2797#line 40 "include/asm-generic/siginfo.h"
 2798struct __anonstruct__rt_241 {
 2799   __kernel_pid_t _pid ;
 2800   __kernel_uid32_t _uid ;
 2801   sigval_t _sigval ;
 2802};
 2803#line 40 "include/asm-generic/siginfo.h"
 2804struct __anonstruct__sigchld_242 {
 2805   __kernel_pid_t _pid ;
 2806   __kernel_uid32_t _uid ;
 2807   int _status ;
 2808   __kernel_clock_t _utime ;
 2809   __kernel_clock_t _stime ;
 2810};
 2811#line 40 "include/asm-generic/siginfo.h"
 2812struct __anonstruct__sigfault_243 {
 2813   void *_addr ;
 2814   short _addr_lsb ;
 2815};
 2816#line 40 "include/asm-generic/siginfo.h"
 2817struct __anonstruct__sigpoll_244 {
 2818   long _band ;
 2819   int _fd ;
 2820};
 2821#line 40 "include/asm-generic/siginfo.h"
 2822union __anonunion__sifields_238 {
 2823   int _pad[(128UL - 4UL * sizeof(int )) / sizeof(int )] ;
 2824   struct __anonstruct__kill_239 _kill ;
 2825   struct __anonstruct__timer_240 _timer ;
 2826   struct __anonstruct__rt_241 _rt ;
 2827   struct __anonstruct__sigchld_242 _sigchld ;
 2828   struct __anonstruct__sigfault_243 _sigfault ;
 2829   struct __anonstruct__sigpoll_244 _sigpoll ;
 2830};
 2831#line 40 "include/asm-generic/siginfo.h"
 2832struct siginfo {
 2833   int si_signo ;
 2834   int si_errno ;
 2835   int si_code ;
 2836   union __anonunion__sifields_238 _sifields ;
 2837};
 2838#line 40 "include/asm-generic/siginfo.h"
 2839typedef struct siginfo siginfo_t;
 2840#line 28 "include/linux/signal.h"
 2841struct sigpending {
 2842   struct list_head list ;
 2843   sigset_t signal ;
 2844};
 2845#line 97 "include/linux/proportions.h"
 2846struct prop_local_single {
 2847   unsigned long events ;
 2848   unsigned long period ;
 2849   int shift ;
 2850   spinlock_t lock ;
 2851};
 2852#line 10 "include/linux/seccomp.h"
 2853struct __anonstruct_seccomp_t_247 {
 2854   int mode ;
 2855};
 2856#line 10 "include/linux/seccomp.h"
 2857typedef struct __anonstruct_seccomp_t_247 seccomp_t;
 2858#line 82 "include/linux/plist.h"
 2859struct plist_head {
 2860   struct list_head node_list ;
 2861   raw_spinlock_t *rawlock ;
 2862   spinlock_t *spinlock ;
 2863};
 2864#line 90 "include/linux/plist.h"
 2865struct plist_node {
 2866   int prio ;
 2867   struct list_head prio_list ;
 2868   struct list_head node_list ;
 2869};
 2870#line 40 "include/linux/rtmutex.h"
 2871struct rt_mutex_waiter;
 2872#line 40
 2873struct rt_mutex_waiter;
 2874#line 42 "include/linux/resource.h"
 2875struct rlimit {
 2876   unsigned long rlim_cur ;
 2877   unsigned long rlim_max ;
 2878};
 2879#line 11 "include/linux/task_io_accounting.h"
 2880struct task_io_accounting {
 2881   u64 rchar ;
 2882   u64 wchar ;
 2883   u64 syscr ;
 2884   u64 syscw ;
 2885   u64 read_bytes ;
 2886   u64 write_bytes ;
 2887   u64 cancelled_write_bytes ;
 2888};
 2889#line 18 "include/linux/latencytop.h"
 2890struct latency_record {
 2891   unsigned long backtrace[12] ;
 2892   unsigned int count ;
 2893   unsigned long time ;
 2894   unsigned long max ;
 2895};
 2896#line 29 "include/linux/key.h"
 2897typedef int32_t key_serial_t;
 2898#line 32 "include/linux/key.h"
 2899typedef uint32_t key_perm_t;
 2900#line 34
 2901struct key;
 2902#line 34
 2903struct key;
 2904#line 76
 2905struct signal_struct;
 2906#line 76
 2907struct signal_struct;
 2908#line 79
 2909struct key_type;
 2910#line 79
 2911struct key_type;
 2912#line 81
 2913struct keyring_list;
 2914#line 81
 2915struct keyring_list;
 2916#line 124
 2917struct key_user;
 2918#line 124
 2919struct key_user;
 2920#line 124 "include/linux/key.h"
 2921union __anonunion____missing_field_name_248 {
 2922   time_t expiry ;
 2923   time_t revoked_at ;
 2924};
 2925#line 124 "include/linux/key.h"
 2926union __anonunion_type_data_249 {
 2927   struct list_head link ;
 2928   unsigned long x[2] ;
 2929   void *p[2] ;
 2930   int reject_error ;
 2931};
 2932#line 124 "include/linux/key.h"
 2933union __anonunion_payload_250 {
 2934   unsigned long value ;
 2935   void *rcudata ;
 2936   void *data ;
 2937   struct keyring_list *subscriptions ;
 2938};
 2939#line 124 "include/linux/key.h"
 2940struct key {
 2941   atomic_t usage ;
 2942   key_serial_t serial ;
 2943   struct rb_node serial_node ;
 2944   struct key_type *type ;
 2945   struct rw_semaphore sem ;
 2946   struct key_user *user ;
 2947   void *security ;
 2948   union __anonunion____missing_field_name_248 __annonCompField42 ;
 2949   uid_t uid ;
 2950   gid_t gid ;
 2951   key_perm_t perm ;
 2952   unsigned short quotalen ;
 2953   unsigned short datalen ;
 2954   unsigned long flags ;
 2955   char *description ;
 2956   union __anonunion_type_data_249 type_data ;
 2957   union __anonunion_payload_250 payload ;
 2958};
 2959#line 18 "include/linux/selinux.h"
 2960struct audit_context;
 2961#line 18
 2962struct audit_context;
 2963#line 31 "include/linux/cred.h"
 2964struct group_info {
 2965   atomic_t usage ;
 2966   int ngroups ;
 2967   int nblocks ;
 2968   gid_t small_block[32] ;
 2969   gid_t *blocks[0] ;
 2970};
 2971#line 83 "include/linux/cred.h"
 2972struct thread_group_cred {
 2973   atomic_t usage ;
 2974   pid_t tgid ;
 2975   spinlock_t lock ;
 2976   struct key *session_keyring ;
 2977   struct key *process_keyring ;
 2978   struct rcu_head rcu ;
 2979};
 2980#line 116 "include/linux/cred.h"
 2981struct cred {
 2982   atomic_t usage ;
 2983   atomic_t subscribers ;
 2984   void *put_addr ;
 2985   unsigned int magic ;
 2986   uid_t uid ;
 2987   gid_t gid ;
 2988   uid_t suid ;
 2989   gid_t sgid ;
 2990   uid_t euid ;
 2991   gid_t egid ;
 2992   uid_t fsuid ;
 2993   gid_t fsgid ;
 2994   unsigned int securebits ;
 2995   kernel_cap_t cap_inheritable ;
 2996   kernel_cap_t cap_permitted ;
 2997   kernel_cap_t cap_effective ;
 2998   kernel_cap_t cap_bset ;
 2999   unsigned char jit_keyring ;
 3000   struct key *thread_keyring ;
 3001   struct key *request_key_auth ;
 3002   struct thread_group_cred *tgcred ;
 3003   void *security ;
 3004   struct user_struct *user ;
 3005   struct user_namespace *user_ns ;
 3006   struct group_info *group_info ;
 3007   struct rcu_head rcu ;
 3008};
 3009#line 97 "include/linux/sched.h"
 3010struct futex_pi_state;
 3011#line 97
 3012struct futex_pi_state;
 3013#line 98
 3014struct robust_list_head;
 3015#line 98
 3016struct robust_list_head;
 3017#line 99
 3018struct bio_list;
 3019#line 99
 3020struct bio_list;
 3021#line 100
 3022struct fs_struct;
 3023#line 100
 3024struct fs_struct;
 3025#line 101
 3026struct perf_event_context;
 3027#line 101
 3028struct perf_event_context;
 3029#line 102
 3030struct blk_plug;
 3031#line 102
 3032struct blk_plug;
 3033#line 151
 3034struct cfs_rq;
 3035#line 151
 3036struct cfs_rq;
 3037#line 58 "include/linux/aio_abi.h"
 3038struct io_event {
 3039   __u64 data ;
 3040   __u64 obj ;
 3041   __s64 res ;
 3042   __s64 res2 ;
 3043};
 3044#line 15 "include/linux/aio.h"
 3045struct kioctx;
 3046#line 15
 3047struct kioctx;
 3048#line 87 "include/linux/aio.h"
 3049union __anonunion_ki_obj_252 {
 3050   void *user ;
 3051   struct task_struct *tsk ;
 3052};
 3053#line 87 "include/linux/aio.h"
 3054struct kiocb {
 3055   struct list_head ki_run_list ;
 3056   unsigned long ki_flags ;
 3057   int ki_users ;
 3058   unsigned int ki_key ;
 3059   struct file *ki_filp ;
 3060   struct kioctx *ki_ctx ;
 3061   int (*ki_cancel)(struct kiocb * , struct io_event * ) ;
 3062   ssize_t (*ki_retry)(struct kiocb * ) ;
 3063   void (*ki_dtor)(struct kiocb * ) ;
 3064   union __anonunion_ki_obj_252 ki_obj ;
 3065   __u64 ki_user_data ;
 3066   loff_t ki_pos ;
 3067   void *private ;
 3068   unsigned short ki_opcode ;
 3069   size_t ki_nbytes ;
 3070   char *ki_buf ;
 3071   size_t ki_left ;
 3072   struct iovec ki_inline_vec ;
 3073   struct iovec *ki_iovec ;
 3074   unsigned long ki_nr_segs ;
 3075   unsigned long ki_cur_seg ;
 3076   struct list_head ki_list ;
 3077   struct eventfd_ctx *ki_eventfd ;
 3078};
 3079#line 165 "include/linux/aio.h"
 3080struct aio_ring_info {
 3081   unsigned long mmap_base ;
 3082   unsigned long mmap_size ;
 3083   struct page **ring_pages ;
 3084   spinlock_t ring_lock ;
 3085   long nr_pages ;
 3086   unsigned int nr ;
 3087   unsigned int tail ;
 3088   struct page *internal_pages[8] ;
 3089};
 3090#line 178 "include/linux/aio.h"
 3091struct kioctx {
 3092   atomic_t users ;
 3093   int dead ;
 3094   struct mm_struct *mm ;
 3095   unsigned long user_id ;
 3096   struct hlist_node list ;
 3097   wait_queue_head_t wait ;
 3098   spinlock_t ctx_lock ;
 3099   int reqs_active ;
 3100   struct list_head active_reqs ;
 3101   struct list_head run_list ;
 3102   unsigned int max_reqs ;
 3103   struct aio_ring_info ring_info ;
 3104   struct delayed_work wq ;
 3105   struct rcu_head rcu_head ;
 3106};
 3107#line 441 "include/linux/sched.h"
 3108struct sighand_struct {
 3109   atomic_t count ;
 3110   struct k_sigaction action[64] ;
 3111   spinlock_t siglock ;
 3112   wait_queue_head_t signalfd_wqh ;
 3113};
 3114#line 448 "include/linux/sched.h"
 3115struct pacct_struct {
 3116   int ac_flag ;
 3117   long ac_exitcode ;
 3118   unsigned long ac_mem ;
 3119   cputime_t ac_utime ;
 3120   cputime_t ac_stime ;
 3121   unsigned long ac_minflt ;
 3122   unsigned long ac_majflt ;
 3123};
 3124#line 456 "include/linux/sched.h"
 3125struct cpu_itimer {
 3126   cputime_t expires ;
 3127   cputime_t incr ;
 3128   u32 error ;
 3129   u32 incr_error ;
 3130};
 3131#line 474 "include/linux/sched.h"
 3132struct task_cputime {
 3133   cputime_t utime ;
 3134   cputime_t stime ;
 3135   unsigned long long sum_exec_runtime ;
 3136};
 3137#line 510 "include/linux/sched.h"
 3138struct thread_group_cputimer {
 3139   struct task_cputime cputime ;
 3140   int running ;
 3141   spinlock_t lock ;
 3142};
 3143#line 517
 3144struct autogroup;
 3145#line 517
 3146struct autogroup;
 3147#line 526
 3148struct tty_struct;
 3149#line 526
 3150struct tty_struct;
 3151#line 526
 3152struct taskstats;
 3153#line 526
 3154struct taskstats;
 3155#line 526
 3156struct tty_audit_buf;
 3157#line 526
 3158struct tty_audit_buf;
 3159#line 526 "include/linux/sched.h"
 3160struct signal_struct {
 3161   atomic_t sigcnt ;
 3162   atomic_t live ;
 3163   int nr_threads ;
 3164   wait_queue_head_t wait_chldexit ;
 3165   struct task_struct *curr_target ;
 3166   struct sigpending shared_pending ;
 3167   int group_exit_code ;
 3168   int notify_count ;
 3169   struct task_struct *group_exit_task ;
 3170   int group_stop_count ;
 3171   unsigned int flags ;
 3172   struct list_head posix_timers ;
 3173   struct hrtimer real_timer ;
 3174   struct pid *leader_pid ;
 3175   ktime_t it_real_incr ;
 3176   struct cpu_itimer it[2] ;
 3177   struct thread_group_cputimer cputimer ;
 3178   struct task_cputime cputime_expires ;
 3179   struct list_head cpu_timers[3] ;
 3180   struct pid *tty_old_pgrp ;
 3181   int leader ;
 3182   struct tty_struct *tty ;
 3183   struct autogroup *autogroup ;
 3184   cputime_t utime ;
 3185   cputime_t stime ;
 3186   cputime_t cutime ;
 3187   cputime_t cstime ;
 3188   cputime_t gtime ;
 3189   cputime_t cgtime ;
 3190   cputime_t prev_utime ;
 3191   cputime_t prev_stime ;
 3192   unsigned long nvcsw ;
 3193   unsigned long nivcsw ;
 3194   unsigned long cnvcsw ;
 3195   unsigned long cnivcsw ;
 3196   unsigned long min_flt ;
 3197   unsigned long maj_flt ;
 3198   unsigned long cmin_flt ;
 3199   unsigned long cmaj_flt ;
 3200   unsigned long inblock ;
 3201   unsigned long oublock ;
 3202   unsigned long cinblock ;
 3203   unsigned long coublock ;
 3204   unsigned long maxrss ;
 3205   unsigned long cmaxrss ;
 3206   struct task_io_accounting ioac ;
 3207   unsigned long long sum_sched_runtime ;
 3208   struct rlimit rlim[16] ;
 3209   struct pacct_struct pacct ;
 3210   struct taskstats *stats ;
 3211   unsigned int audit_tty ;
 3212   struct tty_audit_buf *tty_audit_buf ;
 3213   struct rw_semaphore threadgroup_fork_lock ;
 3214   int oom_adj ;
 3215   int oom_score_adj ;
 3216   int oom_score_adj_min ;
 3217   struct mutex cred_guard_mutex ;
 3218};
 3219#line 687 "include/linux/sched.h"
 3220struct user_struct {
 3221   atomic_t __count ;
 3222   atomic_t processes ;
 3223   atomic_t files ;
 3224   atomic_t sigpending ;
 3225   atomic_t inotify_watches ;
 3226   atomic_t inotify_devs ;
 3227   atomic_t fanotify_listeners ;
 3228   atomic_long_t epoll_watches ;
 3229   unsigned long mq_bytes ;
 3230   unsigned long locked_shm ;
 3231   struct key *uid_keyring ;
 3232   struct key *session_keyring ;
 3233   struct hlist_node uidhash_node ;
 3234   uid_t uid ;
 3235   struct user_namespace *user_ns ;
 3236   atomic_long_t locked_vm ;
 3237};
 3238#line 732
 3239struct reclaim_state;
 3240#line 732
 3241struct reclaim_state;
 3242#line 735 "include/linux/sched.h"
 3243struct sched_info {
 3244   unsigned long pcount ;
 3245   unsigned long long run_delay ;
 3246   unsigned long long last_arrival ;
 3247   unsigned long long last_queued ;
 3248};
 3249#line 747 "include/linux/sched.h"
 3250struct task_delay_info {
 3251   spinlock_t lock ;
 3252   unsigned int flags ;
 3253   struct timespec blkio_start ;
 3254   struct timespec blkio_end ;
 3255   u64 blkio_delay ;
 3256   u64 swapin_delay ;
 3257   u32 blkio_count ;
 3258   u32 swapin_count ;
 3259   struct timespec freepages_start ;
 3260   struct timespec freepages_end ;
 3261   u64 freepages_delay ;
 3262   u32 freepages_count ;
 3263};
 3264#line 1050
 3265struct io_context;
 3266#line 1050
 3267struct io_context;
 3268#line 1064
 3269struct rq;
 3270#line 1064
 3271struct rq;
 3272#line 1084 "include/linux/sched.h"
 3273struct sched_class {
 3274   struct sched_class  const  *next ;
 3275   void (*enqueue_task)(struct rq *rq , struct task_struct *p , int flags ) ;
 3276   void (*dequeue_task)(struct rq *rq , struct task_struct *p , int flags ) ;
 3277   void (*yield_task)(struct rq *rq ) ;
 3278   bool (*yield_to_task)(struct rq *rq , struct task_struct *p , bool preempt ) ;
 3279   void (*check_preempt_curr)(struct rq *rq , struct task_struct *p , int flags ) ;
 3280   struct task_struct *(*pick_next_task)(struct rq *rq ) ;
 3281   void (*put_prev_task)(struct rq *rq , struct task_struct *p ) ;
 3282   int (*select_task_rq)(struct task_struct *p , int sd_flag , int flags ) ;
 3283   void (*pre_schedule)(struct rq *this_rq , struct task_struct *task ) ;
 3284   void (*post_schedule)(struct rq *this_rq ) ;
 3285   void (*task_waking)(struct task_struct *task ) ;
 3286   void (*task_woken)(struct rq *this_rq , struct task_struct *task ) ;
 3287   void (*set_cpus_allowed)(struct task_struct *p , struct cpumask  const  *newmask ) ;
 3288   void (*rq_online)(struct rq *rq ) ;
 3289   void (*rq_offline)(struct rq *rq ) ;
 3290   void (*set_curr_task)(struct rq *rq ) ;
 3291   void (*task_tick)(struct rq *rq , struct task_struct *p , int queued ) ;
 3292   void (*task_fork)(struct task_struct *p ) ;
 3293   void (*switched_from)(struct rq *this_rq , struct task_struct *task ) ;
 3294   void (*switched_to)(struct rq *this_rq , struct task_struct *task ) ;
 3295   void (*prio_changed)(struct rq *this_rq , struct task_struct *task , int oldprio ) ;
 3296   unsigned int (*get_rr_interval)(struct rq *rq , struct task_struct *task ) ;
 3297   void (*task_move_group)(struct task_struct *p , int on_rq ) ;
 3298};
 3299#line 1129 "include/linux/sched.h"
 3300struct load_weight {
 3301   unsigned long weight ;
 3302   unsigned long inv_weight ;
 3303};
 3304#line 1134 "include/linux/sched.h"
 3305struct sched_statistics {
 3306   u64 wait_start ;
 3307   u64 wait_max ;
 3308   u64 wait_count ;
 3309   u64 wait_sum ;
 3310   u64 iowait_count ;
 3311   u64 iowait_sum ;
 3312   u64 sleep_start ;
 3313   u64 sleep_max ;
 3314   s64 sum_sleep_runtime ;
 3315   u64 block_start ;
 3316   u64 block_max ;
 3317   u64 exec_max ;
 3318   u64 slice_max ;
 3319   u64 nr_migrations_cold ;
 3320   u64 nr_failed_migrations_affine ;
 3321   u64 nr_failed_migrations_running ;
 3322   u64 nr_failed_migrations_hot ;
 3323   u64 nr_forced_migrations ;
 3324   u64 nr_wakeups ;
 3325   u64 nr_wakeups_sync ;
 3326   u64 nr_wakeups_migrate ;
 3327   u64 nr_wakeups_local ;
 3328   u64 nr_wakeups_remote ;
 3329   u64 nr_wakeups_affine ;
 3330   u64 nr_wakeups_affine_attempts ;
 3331   u64 nr_wakeups_passive ;
 3332   u64 nr_wakeups_idle ;
 3333};
 3334#line 1169 "include/linux/sched.h"
 3335struct sched_entity {
 3336   struct load_weight load ;
 3337   struct rb_node run_node ;
 3338   struct list_head group_node ;
 3339   unsigned int on_rq ;
 3340   u64 exec_start ;
 3341   u64 sum_exec_runtime ;
 3342   u64 vruntime ;
 3343   u64 prev_sum_exec_runtime ;
 3344   u64 nr_migrations ;
 3345   struct sched_statistics statistics ;
 3346   struct sched_entity *parent ;
 3347   struct cfs_rq *cfs_rq ;
 3348   struct cfs_rq *my_q ;
 3349};
 3350#line 1195
 3351struct rt_rq;
 3352#line 1195
 3353struct rt_rq;
 3354#line 1195 "include/linux/sched.h"
 3355struct sched_rt_entity {
 3356   struct list_head run_list ;
 3357   unsigned long timeout ;
 3358   unsigned int time_slice ;
 3359   int nr_cpus_allowed ;
 3360   struct sched_rt_entity *back ;
 3361   struct sched_rt_entity *parent ;
 3362   struct rt_rq *rt_rq ;
 3363   struct rt_rq *my_q ;
 3364};
 3365#line 1220
 3366struct css_set;
 3367#line 1220
 3368struct css_set;
 3369#line 1220
 3370struct compat_robust_list_head;
 3371#line 1220
 3372struct compat_robust_list_head;
 3373#line 1220
 3374struct ftrace_ret_stack;
 3375#line 1220
 3376struct ftrace_ret_stack;
 3377#line 1220
 3378struct mem_cgroup;
 3379#line 1220
 3380struct mem_cgroup;
 3381#line 1220 "include/linux/sched.h"
 3382struct memcg_batch_info {
 3383   int do_batch ;
 3384   struct mem_cgroup *memcg ;
 3385   unsigned long nr_pages ;
 3386   unsigned long memsw_nr_pages ;
 3387};
 3388#line 1220 "include/linux/sched.h"
 3389struct task_struct {
 3390   long volatile   state ;
 3391   void *stack ;
 3392   atomic_t usage ;
 3393   unsigned int flags ;
 3394   unsigned int ptrace ;
 3395   struct task_struct *wake_entry ;
 3396   int on_cpu ;
 3397   int on_rq ;
 3398   int prio ;
 3399   int static_prio ;
 3400   int normal_prio ;
 3401   unsigned int rt_priority ;
 3402   struct sched_class  const  *sched_class ;
 3403   struct sched_entity se ;
 3404   struct sched_rt_entity rt ;
 3405   struct hlist_head preempt_notifiers ;
 3406   unsigned char fpu_counter ;
 3407   unsigned int btrace_seq ;
 3408   unsigned int policy ;
 3409   cpumask_t cpus_allowed ;
 3410   struct sched_info sched_info ;
 3411   struct list_head tasks ;
 3412   struct plist_node pushable_tasks ;
 3413   struct mm_struct *mm ;
 3414   struct mm_struct *active_mm ;
 3415   unsigned int brk_randomized : 1 ;
 3416   int exit_state ;
 3417   int exit_code ;
 3418   int exit_signal ;
 3419   int pdeath_signal ;
 3420   unsigned int group_stop ;
 3421   unsigned int personality ;
 3422   unsigned int did_exec : 1 ;
 3423   unsigned int in_execve : 1 ;
 3424   unsigned int in_iowait : 1 ;
 3425   unsigned int sched_reset_on_fork : 1 ;
 3426   unsigned int sched_contributes_to_load : 1 ;
 3427   pid_t pid ;
 3428   pid_t tgid ;
 3429   unsigned long stack_canary ;
 3430   struct task_struct *real_parent ;
 3431   struct task_struct *parent ;
 3432   struct list_head children ;
 3433   struct list_head sibling ;
 3434   struct task_struct *group_leader ;
 3435   struct list_head ptraced ;
 3436   struct list_head ptrace_entry ;
 3437   struct pid_link pids[3] ;
 3438   struct list_head thread_group ;
 3439   struct completion *vfork_done ;
 3440   int *set_child_tid ;
 3441   int *clear_child_tid ;
 3442   cputime_t utime ;
 3443   cputime_t stime ;
 3444   cputime_t utimescaled ;
 3445   cputime_t stimescaled ;
 3446   cputime_t gtime ;
 3447   cputime_t prev_utime ;
 3448   cputime_t prev_stime ;
 3449   unsigned long nvcsw ;
 3450   unsigned long nivcsw ;
 3451   struct timespec start_time ;
 3452   struct timespec real_start_time ;
 3453   unsigned long min_flt ;
 3454   unsigned long maj_flt ;
 3455   struct task_cputime cputime_expires ;
 3456   struct list_head cpu_timers[3] ;
 3457   struct cred  const  *real_cred ;
 3458   struct cred  const  *cred ;
 3459   struct cred *replacement_session_keyring ;
 3460   char comm[16] ;
 3461   int link_count ;
 3462   int total_link_count ;
 3463   struct sysv_sem sysvsem ;
 3464   unsigned long last_switch_count ;
 3465   struct thread_struct thread ;
 3466   struct fs_struct *fs ;
 3467   struct files_struct *files ;
 3468   struct nsproxy *nsproxy ;
 3469   struct signal_struct *signal ;
 3470   struct sighand_struct *sighand ;
 3471   sigset_t blocked ;
 3472   sigset_t real_blocked ;
 3473   sigset_t saved_sigmask ;
 3474   struct sigpending pending ;
 3475   unsigned long sas_ss_sp ;
 3476   size_t sas_ss_size ;
 3477   int (*notifier)(void *priv ) ;
 3478   void *notifier_data ;
 3479   sigset_t *notifier_mask ;
 3480   struct audit_context *audit_context ;
 3481   uid_t loginuid ;
 3482   unsigned int sessionid ;
 3483   seccomp_t seccomp ;
 3484   u32 parent_exec_id ;
 3485   u32 self_exec_id ;
 3486   spinlock_t alloc_lock ;
 3487   struct irqaction *irqaction ;
 3488   raw_spinlock_t pi_lock ;
 3489   struct plist_head pi_waiters ;
 3490   struct rt_mutex_waiter *pi_blocked_on ;
 3491   struct mutex_waiter *blocked_on ;
 3492   unsigned int irq_events ;
 3493   unsigned long hardirq_enable_ip ;
 3494   unsigned long hardirq_disable_ip ;
 3495   unsigned int hardirq_enable_event ;
 3496   unsigned int hardirq_disable_event ;
 3497   int hardirqs_enabled ;
 3498   int hardirq_context ;
 3499   unsigned long softirq_disable_ip ;
 3500   unsigned long softirq_enable_ip ;
 3501   unsigned int softirq_disable_event ;
 3502   unsigned int softirq_enable_event ;
 3503   int softirqs_enabled ;
 3504   int softirq_context ;
 3505   u64 curr_chain_key ;
 3506   int lockdep_depth ;
 3507   unsigned int lockdep_recursion ;
 3508   struct held_lock held_locks[48UL] ;
 3509   gfp_t lockdep_reclaim_gfp ;
 3510   void *journal_info ;
 3511   struct bio_list *bio_list ;
 3512   struct blk_plug *plug ;
 3513   struct reclaim_state *reclaim_state ;
 3514   struct backing_dev_info *backing_dev_info ;
 3515   struct io_context *io_context ;
 3516   unsigned long ptrace_message ;
 3517   siginfo_t *last_siginfo ;
 3518   struct task_io_accounting ioac ;
 3519   u64 acct_rss_mem1 ;
 3520   u64 acct_vm_mem1 ;
 3521   cputime_t acct_timexpd ;
 3522   nodemask_t mems_allowed ;
 3523   int mems_allowed_change_disable ;
 3524   int cpuset_mem_spread_rotor ;
 3525   int cpuset_slab_spread_rotor ;
 3526   struct css_set *cgroups ;
 3527   struct list_head cg_list ;
 3528   struct robust_list_head *robust_list ;
 3529   struct compat_robust_list_head *compat_robust_list ;
 3530   struct list_head pi_state_list ;
 3531   struct futex_pi_state *pi_state_cache ;
 3532   struct perf_event_context *perf_event_ctxp[2] ;
 3533   struct mutex perf_event_mutex ;
 3534   struct list_head perf_event_list ;
 3535   struct mempolicy *mempolicy ;
 3536   short il_next ;
 3537   short pref_node_fork ;
 3538   atomic_t fs_excl ;
 3539   struct rcu_head rcu ;
 3540   struct pipe_inode_info *splice_pipe ;
 3541   struct task_delay_info *delays ;
 3542   int make_it_fail ;
 3543   struct prop_local_single dirties ;
 3544   int latency_record_count ;
 3545   struct latency_record latency_record[32] ;
 3546   unsigned long timer_slack_ns ;
 3547   unsigned long default_timer_slack_ns ;
 3548   struct list_head *scm_work_list ;
 3549   int curr_ret_stack ;
 3550   struct ftrace_ret_stack *ret_stack ;
 3551   unsigned long long ftrace_timestamp ;
 3552   atomic_t trace_overrun ;
 3553   atomic_t tracing_graph_pause ;
 3554   unsigned long trace ;
 3555   unsigned long trace_recursion ;
 3556   struct memcg_batch_info memcg_batch ;
 3557   atomic_t ptrace_bp_refcnt ;
 3558};
 3559#line 40 "include/linux/taskstats.h"
 3560struct taskstats {
 3561   __u16 version ;
 3562   __u32 ac_exitcode ;
 3563   __u8 ac_flag ;
 3564   __u8 ac_nice ;
 3565   __u64 cpu_count  __attribute__((__aligned__(8))) ;
 3566   __u64 cpu_delay_total ;
 3567   __u64 blkio_count ;
 3568   __u64 blkio_delay_total ;
 3569   __u64 swapin_count ;
 3570   __u64 swapin_delay_total ;
 3571   __u64 cpu_run_real_total ;
 3572   __u64 cpu_run_virtual_total ;
 3573   char ac_comm[32] ;
 3574   __u8 ac_sched  __attribute__((__aligned__(8))) ;
 3575   __u8 ac_pad[3] ;
 3576   __u32 ac_uid  __attribute__((__aligned__(8))) ;
 3577   __u32 ac_gid ;
 3578   __u32 ac_pid ;
 3579   __u32 ac_ppid ;
 3580   __u32 ac_btime ;
 3581   __u64 ac_etime  __attribute__((__aligned__(8))) ;
 3582   __u64 ac_utime ;
 3583   __u64 ac_stime ;
 3584   __u64 ac_minflt ;
 3585   __u64 ac_majflt ;
 3586   __u64 coremem ;
 3587   __u64 virtmem ;
 3588   __u64 hiwater_rss ;
 3589   __u64 hiwater_vm ;
 3590   __u64 read_char ;
 3591   __u64 write_char ;
 3592   __u64 read_syscalls ;
 3593   __u64 write_syscalls ;
 3594   __u64 read_bytes ;
 3595   __u64 write_bytes ;
 3596   __u64 cancelled_write_bytes ;
 3597   __u64 nvcsw ;
 3598   __u64 nivcsw ;
 3599   __u64 ac_utimescaled ;
 3600   __u64 ac_stimescaled ;
 3601   __u64 cpu_scaled_run_real_total ;
 3602   __u64 freepages_count ;
 3603   __u64 freepages_delay_total ;
 3604};
 3605#line 22 "include/linux/cgroup.h"
 3606struct cgroupfs_root;
 3607#line 22
 3608struct cgroupfs_root;
 3609#line 25
 3610struct cgroup;
 3611#line 25
 3612struct cgroup;
 3613#line 26
 3614struct css_id;
 3615#line 26
 3616struct css_id;
 3617#line 60 "include/linux/cgroup.h"
 3618struct cgroup_subsys_state {
 3619   struct cgroup *cgroup ;
 3620   atomic_t refcnt ;
 3621   unsigned long flags ;
 3622   struct css_id *id ;
 3623};
 3624#line 195 "include/linux/cgroup.h"
 3625struct cgroup {
 3626   unsigned long flags ;
 3627   atomic_t count ;
 3628   struct list_head sibling ;
 3629   struct list_head children ;
 3630   struct cgroup *parent ;
 3631   struct dentry *dentry ;
 3632   struct cgroup_subsys_state *subsys[8UL * sizeof(unsigned long )] ;
 3633   struct cgroupfs_root *root ;
 3634   struct cgroup *top_cgroup ;
 3635   struct list_head css_sets ;
 3636   struct list_head release_list ;
 3637   struct list_head pidlists ;
 3638   struct mutex pidlist_mutex ;
 3639   struct rcu_head rcu_head ;
 3640   struct list_head event_list ;
 3641   spinlock_t event_list_lock ;
 3642};
 3643#line 256 "include/linux/cgroup.h"
 3644struct css_set {
 3645   atomic_t refcount ;
 3646   struct hlist_node hlist ;
 3647   struct list_head tasks ;
 3648   struct list_head cg_links ;
 3649   struct cgroup_subsys_state *subsys[8UL * sizeof(unsigned long )] ;
 3650   struct rcu_head rcu_head ;
 3651};
 3652#line 16 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 3653typedef s32 compat_time_t;
 3654#line 37 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 3655typedef s32 compat_long_t;
 3656#line 43 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 3657struct compat_timespec {
 3658   compat_time_t tv_sec ;
 3659   s32 tv_nsec ;
 3660};
 3661#line 196 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 3662typedef u32 compat_uptr_t;
 3663#line 206 "include/linux/compat.h"
 3664struct compat_robust_list {
 3665   compat_uptr_t next ;
 3666};
 3667#line 210 "include/linux/compat.h"
 3668struct compat_robust_list_head {
 3669   struct compat_robust_list list ;
 3670   compat_long_t futex_offset ;
 3671   compat_uptr_t list_op_pending ;
 3672};
 3673#line 46 "include/linux/proc_fs.h"
 3674typedef int read_proc_t(char *page , char **start , off_t off , int count , int *eof ,
 3675                        void *data );
 3676#line 48 "include/linux/proc_fs.h"
 3677typedef int write_proc_t(struct file *file , char const   *buffer , unsigned long count ,
 3678                         void *data );
 3679#line 51 "include/linux/proc_fs.h"
 3680struct proc_dir_entry {
 3681   unsigned int low_ino ;
 3682   unsigned int namelen ;
 3683   char const   *name ;
 3684   mode_t mode ;
 3685   nlink_t nlink ;
 3686   uid_t uid ;
 3687   gid_t gid ;
 3688   loff_t size ;
 3689   struct inode_operations  const  *proc_iops ;
 3690   struct file_operations  const  *proc_fops ;
 3691   struct proc_dir_entry *next ;
 3692   struct proc_dir_entry *parent ;
 3693   struct proc_dir_entry *subdir ;
 3694   void *data ;
 3695   read_proc_t *read_proc ;
 3696   write_proc_t *write_proc ;
 3697   atomic_t count ;
 3698   int pde_users ;
 3699   spinlock_t pde_unload_lock ;
 3700   struct completion *pde_unload_completion ;
 3701   struct list_head pde_openers ;
 3702};
 3703#line 16 "include/linux/seq_file.h"
 3704struct seq_file {
 3705   char *buf ;
 3706   size_t size ;
 3707   size_t from ;
 3708   size_t count ;
 3709   loff_t index ;
 3710   loff_t read_pos ;
 3711   u64 version ;
 3712   struct mutex lock ;
 3713   struct seq_operations  const  *op ;
 3714   void *private ;
 3715};
 3716#line 29 "include/linux/seq_file.h"
 3717struct seq_operations {
 3718   void *(*start)(struct seq_file *m , loff_t *pos ) ;
 3719   void (*stop)(struct seq_file *m , void *v ) ;
 3720   void *(*next)(struct seq_file *m , void *v , loff_t *pos ) ;
 3721   int (*show)(struct seq_file *m , void *v ) ;
 3722};
 3723#line 106 "include/linux/interrupt.h"
 3724struct irqaction {
 3725   irqreturn_t (*handler)(int  , void * ) ;
 3726   unsigned long flags ;
 3727   void *dev_id ;
 3728   struct irqaction *next ;
 3729   int irq ;
 3730   irqreturn_t (*thread_fn)(int  , void * ) ;
 3731   struct task_struct *thread ;
 3732   unsigned long thread_flags ;
 3733   unsigned long thread_mask ;
 3734   char const   *name ;
 3735   struct proc_dir_entry *dir ;
 3736} __attribute__((__aligned__((1) <<  (12) ))) ;
 3737#line 18 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
 3738struct vhost_work;
 3739#line 18
 3740struct vhost_work;
 3741#line 21 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
 3742struct vhost_work {
 3743   struct list_head node ;
 3744   void (*fn)(struct vhost_work *work ) ;
 3745   wait_queue_head_t done ;
 3746   int flushing ;
 3747   unsigned int queue_seq ;
 3748   unsigned int done_seq ;
 3749};
 3750#line 32
 3751struct vhost_dev;
 3752#line 32
 3753struct vhost_dev;
 3754#line 32 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
 3755struct vhost_poll {
 3756   poll_table table ;
 3757   wait_queue_head_t *wqh ;
 3758   wait_queue_t wait ;
 3759   struct vhost_work work ;
 3760   unsigned long mask ;
 3761   struct vhost_dev *dev ;
 3762};
 3763#line 48 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
 3764struct vhost_log {
 3765   u64 addr ;
 3766   u64 len ;
 3767};
 3768#line 54 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
 3769struct vhost_virtqueue {
 3770   struct vhost_dev *dev ;
 3771   struct mutex mutex ;
 3772   unsigned int num ;
 3773   struct vring_desc *desc ;
 3774   struct vring_avail *avail ;
 3775   struct vring_used *used ;
 3776   struct file *kick ;
 3777   struct file *call ;
 3778   struct file *error ;
 3779   struct eventfd_ctx *call_ctx ;
 3780   struct eventfd_ctx *error_ctx ;
 3781   struct eventfd_ctx *log_ctx ;
 3782   struct vhost_poll poll ;
 3783   void (*handle_kick)(struct vhost_work *work ) ;
 3784   u16 last_avail_idx ;
 3785   u16 avail_idx ;
 3786   u16 last_used_idx ;
 3787   u16 used_flags ;
 3788   u16 signalled_used ;
 3789   bool signalled_used_valid ;
 3790   bool log_used ;
 3791   u64 log_addr ;
 3792   struct iovec iov[1024] ;
 3793   struct iovec hdr[sizeof(struct virtio_net_hdr_mrg_rxbuf )] ;
 3794   struct iovec *indirect ;
 3795   size_t vhost_hlen ;
 3796   size_t sock_hlen ;
 3797   struct vring_used_elem *heads ;
 3798   void *private_data ;
 3799   void *log_base ;
 3800   struct vhost_log *log ;
 3801};
 3802#line 119 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
 3803struct vhost_dev {
 3804   struct vhost_memory *memory ;
 3805   struct mm_struct *mm ;
 3806   struct mutex mutex ;
 3807   unsigned int acked_features ;
 3808   struct vhost_virtqueue *vqs ;
 3809   int nvqs ;
 3810   struct file *log_file ;
 3811   struct eventfd_ctx *log_ctx ;
 3812   spinlock_t work_lock ;
 3813   struct list_head work_list ;
 3814   struct task_struct *worker ;
 3815};
 3816#line 308 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 3817struct vhost_attach_cgroups_struct {
 3818   struct vhost_work work ;
 3819   struct task_struct *owner ;
 3820   int ret ;
 3821};
 3822#line 244 "include/linux/usb/ch9.h"
 3823struct usb_device_descriptor {
 3824   __u8 bLength ;
 3825   __u8 bDescriptorType ;
 3826   __le16 bcdUSB ;
 3827   __u8 bDeviceClass ;
 3828   __u8 bDeviceSubClass ;
 3829   __u8 bDeviceProtocol ;
 3830   __u8 bMaxPacketSize0 ;
 3831   __le16 idVendor ;
 3832   __le16 idProduct ;
 3833   __le16 bcdDevice ;
 3834   __u8 iManufacturer ;
 3835   __u8 iProduct ;
 3836   __u8 iSerialNumber ;
 3837   __u8 bNumConfigurations ;
 3838} __attribute__((__packed__)) ;
 3839#line 300 "include/linux/usb/ch9.h"
 3840struct usb_config_descriptor {
 3841   __u8 bLength ;
 3842   __u8 bDescriptorType ;
 3843   __le16 wTotalLength ;
 3844   __u8 bNumInterfaces ;
 3845   __u8 bConfigurationValue ;
 3846   __u8 iConfiguration ;
 3847   __u8 bmAttributes ;
 3848   __u8 bMaxPower ;
 3849} __attribute__((__packed__)) ;
 3850#line 337 "include/linux/usb/ch9.h"
 3851struct usb_interface_descriptor {
 3852   __u8 bLength ;
 3853   __u8 bDescriptorType ;
 3854   __u8 bInterfaceNumber ;
 3855   __u8 bAlternateSetting ;
 3856   __u8 bNumEndpoints ;
 3857   __u8 bInterfaceClass ;
 3858   __u8 bInterfaceSubClass ;
 3859   __u8 bInterfaceProtocol ;
 3860   __u8 iInterface ;
 3861} __attribute__((__packed__)) ;
 3862#line 355 "include/linux/usb/ch9.h"
 3863struct usb_endpoint_descriptor {
 3864   __u8 bLength ;
 3865   __u8 bDescriptorType ;
 3866   __u8 bEndpointAddress ;
 3867   __u8 bmAttributes ;
 3868   __le16 wMaxPacketSize ;
 3869   __u8 bInterval ;
 3870   __u8 bRefresh ;
 3871   __u8 bSynchAddress ;
 3872} __attribute__((__packed__)) ;
 3873#line 576 "include/linux/usb/ch9.h"
 3874struct usb_ss_ep_comp_descriptor {
 3875   __u8 bLength ;
 3876   __u8 bDescriptorType ;
 3877   __u8 bMaxBurst ;
 3878   __u8 bmAttributes ;
 3879   __le16 wBytesPerInterval ;
 3880} __attribute__((__packed__)) ;
 3881#line 637 "include/linux/usb/ch9.h"
 3882struct usb_interface_assoc_descriptor {
 3883   __u8 bLength ;
 3884   __u8 bDescriptorType ;
 3885   __u8 bFirstInterface ;
 3886   __u8 bInterfaceCount ;
 3887   __u8 bFunctionClass ;
 3888   __u8 bFunctionSubClass ;
 3889   __u8 bFunctionProtocol ;
 3890   __u8 iFunction ;
 3891} __attribute__((__packed__)) ;
 3892#line 846
 3893enum usb_device_speed {
 3894    USB_SPEED_UNKNOWN = 0,
 3895    USB_SPEED_LOW = 1,
 3896    USB_SPEED_FULL = 2,
 3897    USB_SPEED_HIGH = 3,
 3898    USB_SPEED_WIRELESS = 4,
 3899    USB_SPEED_SUPER = 5
 3900} ;
 3901#line 854
 3902enum usb_device_state {
 3903    USB_STATE_NOTATTACHED = 0,
 3904    USB_STATE_ATTACHED = 1,
 3905    USB_STATE_POWERED = 2,
 3906    USB_STATE_RECONNECTING = 3,
 3907    USB_STATE_UNAUTHENTICATED = 4,
 3908    USB_STATE_DEFAULT = 5,
 3909    USB_STATE_ADDRESS = 6,
 3910    USB_STATE_CONFIGURED = 7,
 3911    USB_STATE_SUSPENDED = 8
 3912} ;
 3913#line 25 "include/linux/usb.h"
 3914struct usb_device;
 3915#line 25
 3916struct usb_device;
 3917#line 27
 3918struct wusb_dev;
 3919#line 27
 3920struct wusb_dev;
 3921#line 47
 3922struct ep_device;
 3923#line 47
 3924struct ep_device;
 3925#line 64 "include/linux/usb.h"
 3926struct usb_host_endpoint {
 3927   struct usb_endpoint_descriptor desc ;
 3928   struct usb_ss_ep_comp_descriptor ss_ep_comp ;
 3929   struct list_head urb_list ;
 3930   void *hcpriv ;
 3931   struct ep_device *ep_dev ;
 3932   unsigned char *extra ;
 3933   int extralen ;
 3934   int enabled ;
 3935};
 3936#line 77 "include/linux/usb.h"
 3937struct usb_host_interface {
 3938   struct usb_interface_descriptor desc ;
 3939   struct usb_host_endpoint *endpoint ;
 3940   char *string ;
 3941   unsigned char *extra ;
 3942   int extralen ;
 3943};
 3944#line 90
 3945enum usb_interface_condition {
 3946    USB_INTERFACE_UNBOUND = 0,
 3947    USB_INTERFACE_BINDING = 1,
 3948    USB_INTERFACE_BOUND = 2,
 3949    USB_INTERFACE_UNBINDING = 3
 3950} ;
 3951#line 159 "include/linux/usb.h"
 3952struct usb_interface {
 3953   struct usb_host_interface *altsetting ;
 3954   struct usb_host_interface *cur_altsetting ;
 3955   unsigned int num_altsetting ;
 3956   struct usb_interface_assoc_descriptor *intf_assoc ;
 3957   int minor ;
 3958   enum usb_interface_condition condition ;
 3959   unsigned int sysfs_files_created : 1 ;
 3960   unsigned int ep_devs_created : 1 ;
 3961   unsigned int unregistering : 1 ;
 3962   unsigned int needs_remote_wakeup : 1 ;
 3963   unsigned int needs_altsetting0 : 1 ;
 3964   unsigned int needs_binding : 1 ;
 3965   unsigned int reset_running : 1 ;
 3966   unsigned int resetting_device : 1 ;
 3967   struct device dev ;
 3968   struct device *usb_dev ;
 3969   atomic_t pm_usage_cnt ;
 3970   struct work_struct reset_ws ;
 3971};
 3972#line 222 "include/linux/usb.h"
 3973struct usb_interface_cache {
 3974   unsigned int num_altsetting ;
 3975   struct kref ref ;
 3976   struct usb_host_interface altsetting[0] ;
 3977};
 3978#line 274 "include/linux/usb.h"
 3979struct usb_host_config {
 3980   struct usb_config_descriptor desc ;
 3981   char *string ;
 3982   struct usb_interface_assoc_descriptor *intf_assoc[16] ;
 3983   struct usb_interface *interface[32] ;
 3984   struct usb_interface_cache *intf_cache[32] ;
 3985   unsigned char *extra ;
 3986   int extralen ;
 3987};
 3988#line 305 "include/linux/usb.h"
 3989struct usb_devmap {
 3990   unsigned long devicemap[128UL / (8UL * sizeof(unsigned long ))] ;
 3991};
 3992#line 312
 3993struct mon_bus;
 3994#line 312
 3995struct mon_bus;
 3996#line 312 "include/linux/usb.h"
 3997struct usb_bus {
 3998   struct device *controller ;
 3999   int busnum ;
 4000   char const   *bus_name ;
 4001   u8 uses_dma ;
 4002   u8 uses_pio_for_control ;
 4003   u8 otg_port ;
 4004   unsigned int is_b_host : 1 ;
 4005   unsigned int b_hnp_enable : 1 ;
 4006   unsigned int sg_tablesize ;
 4007   int devnum_next ;
 4008   struct usb_devmap devmap ;
 4009   struct usb_device *root_hub ;
 4010   struct usb_bus *hs_companion ;
 4011   struct list_head bus_list ;
 4012   int bandwidth_allocated ;
 4013   int bandwidth_int_reqs ;
 4014   int bandwidth_isoc_reqs ;
 4015   struct dentry *usbfs_dentry ;
 4016   struct mon_bus *mon_bus ;
 4017   int monitored ;
 4018};
 4019#line 367
 4020struct usb_tt;
 4021#line 367
 4022struct usb_tt;
 4023#line 426 "include/linux/usb.h"
 4024struct usb_device {
 4025   int devnum ;
 4026   char devpath[16] ;
 4027   u32 route ;
 4028   enum usb_device_state state ;
 4029   enum usb_device_speed speed ;
 4030   struct usb_tt *tt ;
 4031   int ttport ;
 4032   unsigned int toggle[2] ;
 4033   struct usb_device *parent ;
 4034   struct usb_bus *bus ;
 4035   struct usb_host_endpoint ep0 ;
 4036   struct device dev ;
 4037   struct usb_device_descriptor descriptor ;
 4038   struct usb_host_config *config ;
 4039   struct usb_host_config *actconfig ;
 4040   struct usb_host_endpoint *ep_in[16] ;
 4041   struct usb_host_endpoint *ep_out[16] ;
 4042   char **rawdescriptors ;
 4043   unsigned short bus_mA ;
 4044   u8 portnum ;
 4045   u8 level ;
 4046   unsigned int can_submit : 1 ;
 4047   unsigned int persist_enabled : 1 ;
 4048   unsigned int have_langid : 1 ;
 4049   unsigned int authorized : 1 ;
 4050   unsigned int authenticated : 1 ;
 4051   unsigned int wusb : 1 ;
 4052   int string_langid ;
 4053   char *product ;
 4054   char *manufacturer ;
 4055   char *serial ;
 4056   struct list_head filelist ;
 4057   struct device *usb_classdev ;
 4058   struct dentry *usbfs_dentry ;
 4059   int maxchild ;
 4060   struct usb_device *children[31] ;
 4061   u32 quirks ;
 4062   atomic_t urbnum ;
 4063   unsigned long active_duration ;
 4064   unsigned long connect_time ;
 4065   unsigned int do_remote_wakeup : 1 ;
 4066   unsigned int reset_resume : 1 ;
 4067   struct wusb_dev *wusb_dev ;
 4068   int slot_id ;
 4069};
 4070#line 983 "include/linux/usb.h"
 4071struct usb_iso_packet_descriptor {
 4072   unsigned int offset ;
 4073   unsigned int length ;
 4074   unsigned int actual_length ;
 4075   int status ;
 4076};
 4077#line 990
 4078struct urb;
 4079#line 990
 4080struct urb;
 4081#line 992 "include/linux/usb.h"
 4082struct usb_anchor {
 4083   struct list_head urb_list ;
 4084   wait_queue_head_t wait ;
 4085   spinlock_t lock ;
 4086   unsigned int poisoned : 1 ;
 4087};
 4088#line 1183 "include/linux/usb.h"
 4089struct urb {
 4090   struct kref kref ;
 4091   void *hcpriv ;
 4092   atomic_t use_count ;
 4093   atomic_t reject ;
 4094   int unlinked ;
 4095   struct list_head urb_list ;
 4096   struct list_head anchor_list ;
 4097   struct usb_anchor *anchor ;
 4098   struct usb_device *dev ;
 4099   struct usb_host_endpoint *ep ;
 4100   unsigned int pipe ;
 4101   unsigned int stream_id ;
 4102   int status ;
 4103   unsigned int transfer_flags ;
 4104   void *transfer_buffer ;
 4105   dma_addr_t transfer_dma ;
 4106   struct scatterlist *sg ;
 4107   int num_sgs ;
 4108   u32 transfer_buffer_length ;
 4109   u32 actual_length ;
 4110   unsigned char *setup_packet ;
 4111   dma_addr_t setup_dma ;
 4112   int start_frame ;
 4113   int number_of_packets ;
 4114   int interval ;
 4115   int error_count ;
 4116   void *context ;
 4117   void (*complete)(struct urb * ) ;
 4118   struct usb_iso_packet_descriptor iso_frame_desc[0] ;
 4119};
 4120#line 178 "include/linux/types.h"
 4121typedef __u16 __be16;
 4122#line 180 "include/linux/types.h"
 4123typedef __u32 __be32;
 4124#line 185 "include/linux/types.h"
 4125typedef __u32 __wsum;
 4126#line 33 "include/linux/seqlock.h"
 4127struct __anonstruct_seqlock_t_40 {
 4128   unsigned int sequence ;
 4129   spinlock_t lock ;
 4130};
 4131#line 33 "include/linux/seqlock.h"
 4132typedef struct __anonstruct_seqlock_t_40 seqlock_t;
 4133#line 11 "include/linux/socket.h"
 4134struct sockaddr;
 4135#line 11
 4136struct sockaddr;
 4137#line 38 "include/linux/socket.h"
 4138typedef unsigned short sa_family_t;
 4139#line 44 "include/linux/socket.h"
 4140struct sockaddr {
 4141   sa_family_t sa_family ;
 4142   char sa_data[14] ;
 4143};
 4144#line 62 "include/linux/socket.h"
 4145struct msghdr {
 4146   void *msg_name ;
 4147   int msg_namelen ;
 4148   struct iovec *msg_iov ;
 4149   __kernel_size_t msg_iovlen ;
 4150   void *msg_control ;
 4151   __kernel_size_t msg_controllen ;
 4152   unsigned int msg_flags ;
 4153};
 4154#line 37 "include/linux/hdlc/ioctl.h"
 4155struct __anonstruct_sync_serial_settings_41 {
 4156   unsigned int clock_rate ;
 4157   unsigned int clock_type ;
 4158   unsigned short loopback ;
 4159};
 4160#line 37 "include/linux/hdlc/ioctl.h"
 4161typedef struct __anonstruct_sync_serial_settings_41 sync_serial_settings;
 4162#line 43 "include/linux/hdlc/ioctl.h"
 4163struct __anonstruct_te1_settings_42 {
 4164   unsigned int clock_rate ;
 4165   unsigned int clock_type ;
 4166   unsigned short loopback ;
 4167   unsigned int slot_map ;
 4168};
 4169#line 43 "include/linux/hdlc/ioctl.h"
 4170typedef struct __anonstruct_te1_settings_42 te1_settings;
 4171#line 50 "include/linux/hdlc/ioctl.h"
 4172struct __anonstruct_raw_hdlc_proto_43 {
 4173   unsigned short encoding ;
 4174   unsigned short parity ;
 4175};
 4176#line 50 "include/linux/hdlc/ioctl.h"
 4177typedef struct __anonstruct_raw_hdlc_proto_43 raw_hdlc_proto;
 4178#line 55 "include/linux/hdlc/ioctl.h"
 4179struct __anonstruct_fr_proto_44 {
 4180   unsigned int t391 ;
 4181   unsigned int t392 ;
 4182   unsigned int n391 ;
 4183   unsigned int n392 ;
 4184   unsigned int n393 ;
 4185   unsigned short lmi ;
 4186   unsigned short dce ;
 4187};
 4188#line 55 "include/linux/hdlc/ioctl.h"
 4189typedef struct __anonstruct_fr_proto_44 fr_proto;
 4190#line 65 "include/linux/hdlc/ioctl.h"
 4191struct __anonstruct_fr_proto_pvc_45 {
 4192   unsigned int dlci ;
 4193};
 4194#line 65 "include/linux/hdlc/ioctl.h"
 4195typedef struct __anonstruct_fr_proto_pvc_45 fr_proto_pvc;
 4196#line 69 "include/linux/hdlc/ioctl.h"
 4197struct __anonstruct_fr_proto_pvc_info_46 {
 4198   unsigned int dlci ;
 4199   char master[16] ;
 4200};
 4201#line 69 "include/linux/hdlc/ioctl.h"
 4202typedef struct __anonstruct_fr_proto_pvc_info_46 fr_proto_pvc_info;
 4203#line 74 "include/linux/hdlc/ioctl.h"
 4204struct __anonstruct_cisco_proto_47 {
 4205   unsigned int interval ;
 4206   unsigned int timeout ;
 4207};
 4208#line 74 "include/linux/hdlc/ioctl.h"
 4209typedef struct __anonstruct_cisco_proto_47 cisco_proto;
 4210#line 134 "include/linux/if.h"
 4211struct ifmap {
 4212   unsigned long mem_start ;
 4213   unsigned long mem_end ;
 4214   unsigned short base_addr ;
 4215   unsigned char irq ;
 4216   unsigned char dma ;
 4217   unsigned char port ;
 4218};
 4219#line 144 "include/linux/if.h"
 4220union __anonunion_ifs_ifsu_50 {
 4221   raw_hdlc_proto *raw_hdlc ;
 4222   cisco_proto *cisco ;
 4223   fr_proto *fr ;
 4224   fr_proto_pvc *fr_pvc ;
 4225   fr_proto_pvc_info *fr_pvc_info ;
 4226   sync_serial_settings *sync ;
 4227   te1_settings *te1 ;
 4228};
 4229#line 144 "include/linux/if.h"
 4230struct if_settings {
 4231   unsigned int type ;
 4232   unsigned int size ;
 4233   union __anonunion_ifs_ifsu_50 ifs_ifsu ;
 4234};
 4235#line 168 "include/linux/if.h"
 4236union __anonunion_ifr_ifrn_51 {
 4237   char ifrn_name[16] ;
 4238};
 4239#line 168 "include/linux/if.h"
 4240union __anonunion_ifr_ifru_52 {
 4241   struct sockaddr ifru_addr ;
 4242   struct sockaddr ifru_dstaddr ;
 4243   struct sockaddr ifru_broadaddr ;
 4244   struct sockaddr ifru_netmask ;
 4245   struct sockaddr ifru_hwaddr ;
 4246   short ifru_flags ;
 4247   int ifru_ivalue ;
 4248   int ifru_mtu ;
 4249   struct ifmap ifru_map ;
 4250   char ifru_slave[16] ;
 4251   char ifru_newname[16] ;
 4252   void *ifru_data ;
 4253   struct if_settings ifru_settings ;
 4254};
 4255#line 168 "include/linux/if.h"
 4256struct ifreq {
 4257   union __anonunion_ifr_ifrn_51 ifr_ifrn ;
 4258   union __anonunion_ifr_ifru_52 ifr_ifru ;
 4259};
 4260#line 290 "include/linux/timer.h"
 4261enum hrtimer_restart;
 4262#line 290
 4263enum hrtimer_restart;
 4264#line 18 "include/linux/percpu_counter.h"
 4265struct percpu_counter {
 4266   spinlock_t lock ;
 4267   s64 count ;
 4268   struct list_head list ;
 4269   s32 *counters ;
 4270};
 4271#line 2574 "include/linux/fs.h"
 4272struct ctl_table;
 4273#line 2574
 4274struct ctl_table;
 4275#line 938 "include/linux/sysctl.h"
 4276struct ctl_table_root;
 4277#line 938
 4278struct ctl_table_root;
 4279#line 940 "include/linux/sysctl.h"
 4280struct ctl_table_set {
 4281   struct list_head list ;
 4282   struct ctl_table_set *parent ;
 4283   int (*is_seen)(struct ctl_table_set * ) ;
 4284};
 4285#line 950
 4286struct ctl_table_header;
 4287#line 950
 4288struct ctl_table_header;
 4289#line 965 "include/linux/sysctl.h"
 4290typedef int proc_handler(struct ctl_table *ctl , int write , void *buffer , size_t *lenp ,
 4291                         loff_t *ppos );
 4292#line 1015 "include/linux/sysctl.h"
 4293struct ctl_table {
 4294   char const   *procname ;
 4295   void *data ;
 4296   int maxlen ;
 4297   mode_t mode ;
 4298   struct ctl_table *child ;
 4299   struct ctl_table *parent ;
 4300   proc_handler *proc_handler ;
 4301   void *extra1 ;
 4302   void *extra2 ;
 4303};
 4304#line 1028 "include/linux/sysctl.h"
 4305struct ctl_table_root {
 4306   struct list_head root_list ;
 4307   struct ctl_table_set default_set ;
 4308   struct ctl_table_set *(*lookup)(struct ctl_table_root *root , struct nsproxy *namespaces ) ;
 4309   int (*permissions)(struct ctl_table_root *root , struct nsproxy *namespaces , struct ctl_table *table ) ;
 4310};
 4311#line 1039 "include/linux/sysctl.h"
 4312struct __anonstruct____missing_field_name_239 {
 4313   struct ctl_table *ctl_table ;
 4314   struct list_head ctl_entry ;
 4315   int used ;
 4316   int count ;
 4317};
 4318#line 1039 "include/linux/sysctl.h"
 4319union __anonunion____missing_field_name_238 {
 4320   struct __anonstruct____missing_field_name_239 __annonCompField36 ;
 4321   struct rcu_head rcu ;
 4322};
 4323#line 1039 "include/linux/sysctl.h"
 4324struct ctl_table_header {
 4325   union __anonunion____missing_field_name_238 __annonCompField37 ;
 4326   struct completion *unregistering ;
 4327   struct ctl_table *ctl_table_arg ;
 4328   struct ctl_table_root *root ;
 4329   struct ctl_table_set *set ;
 4330   struct ctl_table *attached_by ;
 4331   struct ctl_table *attached_to ;
 4332   struct ctl_table_header *parent ;
 4333};
 4334#line 24 "include/linux/sysfs.h"
 4335enum kobj_ns_type;
 4336#line 311 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/elf.h"
 4337struct linux_binprm;
 4338#line 311
 4339struct linux_binprm;
 4340#line 119 "include/linux/if_ether.h"
 4341struct ethhdr {
 4342   unsigned char h_dest[6] ;
 4343   unsigned char h_source[6] ;
 4344   __be16 h_proto ;
 4345} __attribute__((__packed__)) ;
 4346#line 47 "include/linux/net.h"
 4347enum __anonenum_socket_state_257 {
 4348    SS_FREE = 0,
 4349    SS_UNCONNECTED = 1,
 4350    SS_CONNECTING = 2,
 4351    SS_CONNECTED = 3,
 4352    SS_DISCONNECTING = 4
 4353} ;
 4354#line 47 "include/linux/net.h"
 4355typedef enum __anonenum_socket_state_257 socket_state;
 4356#line 68
 4357struct net;
 4358#line 68
 4359struct net;
 4360#line 121 "include/linux/net.h"
 4361struct socket_wq {
 4362   wait_queue_head_t wait ;
 4363   struct fasync_struct *fasync_list ;
 4364   struct rcu_head rcu ;
 4365} __attribute__((__aligned__((1) <<  (6) ))) ;
 4366#line 138
 4367struct proto_ops;
 4368#line 138
 4369struct proto_ops;
 4370#line 138 "include/linux/net.h"
 4371struct socket {
 4372   socket_state state ;
 4373   short type ;
 4374   unsigned long flags ;
 4375   struct socket_wq *wq ;
 4376   struct file *file ;
 4377   struct sock *sk ;
 4378   struct proto_ops  const  *ops ;
 4379};
 4380#line 161 "include/linux/net.h"
 4381struct proto_ops {
 4382   int family ;
 4383   struct module *owner ;
 4384   int (*release)(struct socket *sock ) ;
 4385   int (*bind)(struct socket *sock , struct sockaddr *myaddr , int sockaddr_len ) ;
 4386   int (*connect)(struct socket *sock , struct sockaddr *vaddr , int sockaddr_len ,
 4387                  int flags ) ;
 4388   int (*socketpair)(struct socket *sock1 , struct socket *sock2 ) ;
 4389   int (*accept)(struct socket *sock , struct socket *newsock , int flags ) ;
 4390   int (*getname)(struct socket *sock , struct sockaddr *addr , int *sockaddr_len ,
 4391                  int peer ) ;
 4392   unsigned int (*poll)(struct file *file , struct socket *sock , struct poll_table_struct *wait ) ;
 4393   int (*ioctl)(struct socket *sock , unsigned int cmd , unsigned long arg ) ;
 4394   int (*compat_ioctl)(struct socket *sock , unsigned int cmd , unsigned long arg ) ;
 4395   int (*listen)(struct socket *sock , int len ) ;
 4396   int (*shutdown)(struct socket *sock , int flags ) ;
 4397   int (*setsockopt)(struct socket *sock , int level , int optname , char *optval ,
 4398                     unsigned int optlen ) ;
 4399   int (*getsockopt)(struct socket *sock , int level , int optname , char *optval ,
 4400                     int *optlen ) ;
 4401   int (*compat_setsockopt)(struct socket *sock , int level , int optname , char *optval ,
 4402                            unsigned int optlen ) ;
 4403   int (*compat_getsockopt)(struct socket *sock , int level , int optname , char *optval ,
 4404                            int *optlen ) ;
 4405   int (*sendmsg)(struct kiocb *iocb , struct socket *sock , struct msghdr *m , size_t total_len ) ;
 4406   int (*recvmsg)(struct kiocb *iocb , struct socket *sock , struct msghdr *m , size_t total_len ,
 4407                  int flags ) ;
 4408   int (*mmap)(struct file *file , struct socket *sock , struct vm_area_struct *vma ) ;
 4409   ssize_t (*sendpage)(struct socket *sock , struct page *page , int offset , size_t size ,
 4410                       int flags ) ;
 4411   ssize_t (*splice_read)(struct socket *sock , loff_t *ppos , struct pipe_inode_info *pipe ,
 4412                          size_t len , unsigned int flags ) ;
 4413};
 4414#line 109 "include/net/checksum.h"
 4415struct sk_buff;
 4416#line 109
 4417struct sk_buff;
 4418#line 33 "include/linux/dmaengine.h"
 4419typedef s32 dma_cookie_t;
 4420#line 94 "include/linux/skbuff.h"
 4421struct net_device;
 4422#line 94
 4423struct net_device;
 4424#line 99 "include/linux/skbuff.h"
 4425struct nf_conntrack {
 4426   atomic_t use ;
 4427};
 4428#line 105 "include/linux/skbuff.h"
 4429struct nf_bridge_info {
 4430   atomic_t use ;
 4431   struct net_device *physindev ;
 4432   struct net_device *physoutdev ;
 4433   unsigned int mask ;
 4434   unsigned long data[32UL / sizeof(unsigned long )] ;
 4435};
 4436#line 114 "include/linux/skbuff.h"
 4437struct sk_buff_head {
 4438   struct sk_buff *next ;
 4439   struct sk_buff *prev ;
 4440   __u32 qlen ;
 4441   spinlock_t lock ;
 4442};
 4443#line 259 "include/linux/skbuff.h"
 4444typedef unsigned int sk_buff_data_t;
 4445#line 325
 4446struct sec_path;
 4447#line 325
 4448struct sec_path;
 4449#line 325 "include/linux/skbuff.h"
 4450struct __anonstruct____missing_field_name_264 {
 4451   __u16 csum_start ;
 4452   __u16 csum_offset ;
 4453};
 4454#line 325 "include/linux/skbuff.h"
 4455union __anonunion____missing_field_name_263 {
 4456   __wsum csum ;
 4457   struct __anonstruct____missing_field_name_264 __annonCompField41 ;
 4458};
 4459#line 325 "include/linux/skbuff.h"
 4460union __anonunion____missing_field_name_265 {
 4461   __u32 mark ;
 4462   __u32 dropcount ;
 4463};
 4464#line 325 "include/linux/skbuff.h"
 4465struct sk_buff {
 4466   struct sk_buff *next ;
 4467   struct sk_buff *prev ;
 4468   ktime_t tstamp ;
 4469   struct sock *sk ;
 4470   struct net_device *dev ;
 4471   char cb[48]  __attribute__((__aligned__(8))) ;
 4472   unsigned long _skb_refdst ;
 4473   struct sec_path *sp ;
 4474   unsigned int len ;
 4475   unsigned int data_len ;
 4476   __u16 mac_len ;
 4477   __u16 hdr_len ;
 4478   union __anonunion____missing_field_name_263 __annonCompField42 ;
 4479   __u32 priority ;
 4480   __u8 local_df : 1 ;
 4481   __u8 cloned : 1 ;
 4482   __u8 ip_summed : 2 ;
 4483   __u8 nohdr : 1 ;
 4484   __u8 nfctinfo : 3 ;
 4485   __u8 pkt_type : 3 ;
 4486   __u8 fclone : 2 ;
 4487   __u8 ipvs_property : 1 ;
 4488   __u8 peeked : 1 ;
 4489   __u8 nf_trace : 1 ;
 4490   __be16 protocol ;
 4491   void (*destructor)(struct sk_buff *skb ) ;
 4492   struct nf_conntrack *nfct ;
 4493   struct sk_buff *nfct_reasm ;
 4494   struct nf_bridge_info *nf_bridge ;
 4495   int skb_iif ;
 4496   __u16 tc_index ;
 4497   __u16 tc_verd ;
 4498   __u32 rxhash ;
 4499   __u16 queue_mapping ;
 4500   __u8 ndisc_nodetype : 2 ;
 4501   __u8 ooo_okay : 1 ;
 4502   dma_cookie_t dma_cookie ;
 4503   __u32 secmark ;
 4504   union __anonunion____missing_field_name_265 __annonCompField43 ;
 4505   __u16 vlan_tci ;
 4506   sk_buff_data_t transport_header ;
 4507   sk_buff_data_t network_header ;
 4508   sk_buff_data_t mac_header ;
 4509   sk_buff_data_t tail ;
 4510   sk_buff_data_t end ;
 4511   unsigned char *head ;
 4512   unsigned char *data ;
 4513   unsigned int truesize ;
 4514   atomic_t users ;
 4515};
 4516#line 450
 4517struct dst_entry;
 4518#line 450
 4519struct dst_entry;
 4520#line 485
 4521struct rtable;
 4522#line 485
 4523struct rtable;
 4524#line 47 "include/linux/miscdevice.h"
 4525struct miscdevice {
 4526   int minor ;
 4527   char const   *name ;
 4528   struct file_operations  const  *fops ;
 4529   struct list_head list ;
 4530   struct device *parent ;
 4531   struct device *this_device ;
 4532   char const   *nodename ;
 4533   mode_t mode ;
 4534};
 4535#line 12 "include/linux/if_packet.h"
 4536struct sockaddr_ll {
 4537   unsigned short sll_family ;
 4538   __be16 sll_protocol ;
 4539   int sll_ifindex ;
 4540   unsigned short sll_hatype ;
 4541   unsigned char sll_pkttype ;
 4542   unsigned char sll_halen ;
 4543   unsigned char sll_addr[8] ;
 4544};
 4545#line 125 "include/linux/netlink.h"
 4546struct nlattr {
 4547   __u16 nla_len ;
 4548   __u16 nla_type ;
 4549};
 4550#line 41 "include/linux/if_link.h"
 4551struct rtnl_link_stats64 {
 4552   __u64 rx_packets ;
 4553   __u64 tx_packets ;
 4554   __u64 rx_bytes ;
 4555   __u64 tx_bytes ;
 4556   __u64 rx_errors ;
 4557   __u64 tx_errors ;
 4558   __u64 rx_dropped ;
 4559   __u64 tx_dropped ;
 4560   __u64 multicast ;
 4561   __u64 collisions ;
 4562   __u64 rx_length_errors ;
 4563   __u64 rx_over_errors ;
 4564   __u64 rx_crc_errors ;
 4565   __u64 rx_frame_errors ;
 4566   __u64 rx_fifo_errors ;
 4567   __u64 rx_missed_errors ;
 4568   __u64 tx_aborted_errors ;
 4569   __u64 tx_carrier_errors ;
 4570   __u64 tx_fifo_errors ;
 4571   __u64 tx_heartbeat_errors ;
 4572   __u64 tx_window_errors ;
 4573   __u64 rx_compressed ;
 4574   __u64 tx_compressed ;
 4575};
 4576#line 303 "include/linux/if_link.h"
 4577struct ifla_vf_info {
 4578   __u32 vf ;
 4579   __u8 mac[32] ;
 4580   __u32 vlan ;
 4581   __u32 qos ;
 4582   __u32 tx_rate ;
 4583};
 4584#line 23 "include/linux/pm_qos_params.h"
 4585struct pm_qos_request_list {
 4586   struct plist_node list ;
 4587   int pm_qos_class ;
 4588};
 4589#line 23 "include/linux/ethtool.h"
 4590struct ethtool_cmd {
 4591   __u32 cmd ;
 4592   __u32 supported ;
 4593   __u32 advertising ;
 4594   __u16 speed ;
 4595   __u8 duplex ;
 4596   __u8 port ;
 4597   __u8 phy_address ;
 4598   __u8 transceiver ;
 4599   __u8 autoneg ;
 4600   __u8 mdio_support ;
 4601   __u32 maxtxpkt ;
 4602   __u32 maxrxpkt ;
 4603   __u16 speed_hi ;
 4604   __u8 eth_tp_mdix ;
 4605   __u8 reserved2 ;
 4606   __u32 lp_advertising ;
 4607   __u32 reserved[2] ;
 4608};
 4609#line 65 "include/linux/ethtool.h"
 4610struct ethtool_drvinfo {
 4611   __u32 cmd ;
 4612   char driver[32] ;
 4613   char version[32] ;
 4614   char fw_version[32] ;
 4615   char bus_info[32] ;
 4616   char reserved1[32] ;
 4617   char reserved2[12] ;
 4618   __u32 n_priv_flags ;
 4619   __u32 n_stats ;
 4620   __u32 testinfo_len ;
 4621   __u32 eedump_len ;
 4622   __u32 regdump_len ;
 4623};
 4624#line 90 "include/linux/ethtool.h"
 4625struct ethtool_wolinfo {
 4626   __u32 cmd ;
 4627   __u32 supported ;
 4628   __u32 wolopts ;
 4629   __u8 sopass[6] ;
 4630};
 4631#line 104 "include/linux/ethtool.h"
 4632struct ethtool_regs {
 4633   __u32 cmd ;
 4634   __u32 version ;
 4635   __u32 len ;
 4636   __u8 data[0] ;
 4637};
 4638#line 112 "include/linux/ethtool.h"
 4639struct ethtool_eeprom {
 4640   __u32 cmd ;
 4641   __u32 magic ;
 4642   __u32 offset ;
 4643   __u32 len ;
 4644   __u8 data[0] ;
 4645};
 4646#line 121 "include/linux/ethtool.h"
 4647struct ethtool_coalesce {
 4648   __u32 cmd ;
 4649   __u32 rx_coalesce_usecs ;
 4650   __u32 rx_max_coalesced_frames ;
 4651   __u32 rx_coalesce_usecs_irq ;
 4652   __u32 rx_max_coalesced_frames_irq ;
 4653   __u32 tx_coalesce_usecs ;
 4654   __u32 tx_max_coalesced_frames ;
 4655   __u32 tx_coalesce_usecs_irq ;
 4656   __u32 tx_max_coalesced_frames_irq ;
 4657   __u32 stats_block_coalesce_usecs ;
 4658   __u32 use_adaptive_rx_coalesce ;
 4659   __u32 use_adaptive_tx_coalesce ;
 4660   __u32 pkt_rate_low ;
 4661   __u32 rx_coalesce_usecs_low ;
 4662   __u32 rx_max_coalesced_frames_low ;
 4663   __u32 tx_coalesce_usecs_low ;
 4664   __u32 tx_max_coalesced_frames_low ;
 4665   __u32 pkt_rate_high ;
 4666   __u32 rx_coalesce_usecs_high ;
 4667   __u32 rx_max_coalesced_frames_high ;
 4668   __u32 tx_coalesce_usecs_high ;
 4669   __u32 tx_max_coalesced_frames_high ;
 4670   __u32 rate_sample_interval ;
 4671};
 4672#line 217 "include/linux/ethtool.h"
 4673struct ethtool_ringparam {
 4674   __u32 cmd ;
 4675   __u32 rx_max_pending ;
 4676   __u32 rx_mini_max_pending ;
 4677   __u32 rx_jumbo_max_pending ;
 4678   __u32 tx_max_pending ;
 4679   __u32 rx_pending ;
 4680   __u32 rx_mini_pending ;
 4681   __u32 rx_jumbo_pending ;
 4682   __u32 tx_pending ;
 4683};
 4684#line 254 "include/linux/ethtool.h"
 4685struct ethtool_channels {
 4686   __u32 cmd ;
 4687   __u32 max_rx ;
 4688   __u32 max_tx ;
 4689   __u32 max_other ;
 4690   __u32 max_combined ;
 4691   __u32 rx_count ;
 4692   __u32 tx_count ;
 4693   __u32 other_count ;
 4694   __u32 combined_count ;
 4695};
 4696#line 267 "include/linux/ethtool.h"
 4697struct ethtool_pauseparam {
 4698   __u32 cmd ;
 4699   __u32 autoneg ;
 4700   __u32 rx_pause ;
 4701   __u32 tx_pause ;
 4702};
 4703#line 319 "include/linux/ethtool.h"
 4704struct ethtool_test {
 4705   __u32 cmd ;
 4706   __u32 flags ;
 4707   __u32 reserved ;
 4708   __u32 len ;
 4709   __u64 data[0] ;
 4710};
 4711#line 328 "include/linux/ethtool.h"
 4712struct ethtool_stats {
 4713   __u32 cmd ;
 4714   __u32 n_stats ;
 4715   __u64 data[0] ;
 4716};
 4717#line 373 "include/linux/ethtool.h"
 4718struct ethtool_tcpip4_spec {
 4719   __be32 ip4src ;
 4720   __be32 ip4dst ;
 4721   __be16 psrc ;
 4722   __be16 pdst ;
 4723   __u8 tos ;
 4724};
 4725#line 390 "include/linux/ethtool.h"
 4726struct ethtool_ah_espip4_spec {
 4727   __be32 ip4src ;
 4728   __be32 ip4dst ;
 4729   __be32 spi ;
 4730   __u8 tos ;
 4731};
 4732#line 408 "include/linux/ethtool.h"
 4733struct ethtool_usrip4_spec {
 4734   __be32 ip4src ;
 4735   __be32 ip4dst ;
 4736   __be32 l4_4_bytes ;
 4737   __u8 tos ;
 4738   __u8 ip_ver ;
 4739   __u8 proto ;
 4740};
 4741#line 417 "include/linux/ethtool.h"
 4742union ethtool_flow_union {
 4743   struct ethtool_tcpip4_spec tcp_ip4_spec ;
 4744   struct ethtool_tcpip4_spec udp_ip4_spec ;
 4745   struct ethtool_tcpip4_spec sctp_ip4_spec ;
 4746   struct ethtool_ah_espip4_spec ah_ip4_spec ;
 4747   struct ethtool_ah_espip4_spec esp_ip4_spec ;
 4748   struct ethtool_usrip4_spec usr_ip4_spec ;
 4749   struct ethhdr ether_spec ;
 4750   __u8 hdata[60] ;
 4751};
 4752#line 428 "include/linux/ethtool.h"
 4753struct ethtool_flow_ext {
 4754   __be16 vlan_etype ;
 4755   __be16 vlan_tci ;
 4756   __be32 data[2] ;
 4757};
 4758#line 447 "include/linux/ethtool.h"
 4759struct ethtool_rx_flow_spec {
 4760   __u32 flow_type ;
 4761   union ethtool_flow_union h_u ;
 4762   struct ethtool_flow_ext h_ext ;
 4763   union ethtool_flow_union m_u ;
 4764   struct ethtool_flow_ext m_ext ;
 4765   __u64 ring_cookie ;
 4766   __u32 location ;
 4767};
 4768#line 496 "include/linux/ethtool.h"
 4769struct ethtool_rxnfc {
 4770   __u32 cmd ;
 4771   __u32 flow_type ;
 4772   __u64 data ;
 4773   struct ethtool_rx_flow_spec fs ;
 4774   __u32 rule_cnt ;
 4775   __u32 rule_locs[0] ;
 4776};
 4777#line 537 "include/linux/ethtool.h"
 4778struct ethtool_rxfh_indir {
 4779   __u32 cmd ;
 4780   __u32 size ;
 4781   __u32 ring_index[0] ;
 4782};
 4783#line 559 "include/linux/ethtool.h"
 4784union __anonunion_h_u_280 {
 4785   struct ethtool_tcpip4_spec tcp_ip4_spec ;
 4786   struct ethtool_tcpip4_spec udp_ip4_spec ;
 4787   struct ethtool_tcpip4_spec sctp_ip4_spec ;
 4788   struct ethtool_ah_espip4_spec ah_ip4_spec ;
 4789   struct ethtool_ah_espip4_spec esp_ip4_spec ;
 4790   struct ethtool_usrip4_spec usr_ip4_spec ;
 4791   struct ethhdr ether_spec ;
 4792   __u8 hdata[72] ;
 4793};
 4794#line 559 "include/linux/ethtool.h"
 4795struct ethtool_rx_ntuple_flow_spec {
 4796   __u32 flow_type ;
 4797   union __anonunion_h_u_280 h_u ;
 4798   union __anonunion_h_u_280 m_u ;
 4799   __u16 vlan_tag ;
 4800   __u16 vlan_tag_mask ;
 4801   __u64 data ;
 4802   __u64 data_mask ;
 4803   __s32 action ;
 4804};
 4805#line 587 "include/linux/ethtool.h"
 4806struct ethtool_rx_ntuple {
 4807   __u32 cmd ;
 4808   struct ethtool_rx_ntuple_flow_spec fs ;
 4809};
 4810#line 598 "include/linux/ethtool.h"
 4811struct ethtool_flash {
 4812   __u32 cmd ;
 4813   __u32 region ;
 4814   char data[128] ;
 4815};
 4816#line 616 "include/linux/ethtool.h"
 4817struct ethtool_dump {
 4818   __u32 cmd ;
 4819   __u32 version ;
 4820   __u32 flag ;
 4821   __u32 len ;
 4822   __u8 data[0] ;
 4823};
 4824#line 722 "include/linux/ethtool.h"
 4825struct ethtool_rx_ntuple_list {
 4826   struct list_head list ;
 4827   unsigned int count ;
 4828};
 4829#line 738
 4830enum ethtool_phys_id_state {
 4831    ETHTOOL_ID_INACTIVE = 0,
 4832    ETHTOOL_ID_ACTIVE = 1,
 4833    ETHTOOL_ID_ON = 2,
 4834    ETHTOOL_ID_OFF = 3
 4835} ;
 4836#line 891 "include/linux/ethtool.h"
 4837struct ethtool_ops {
 4838   int (*get_settings)(struct net_device * , struct ethtool_cmd * ) ;
 4839   int (*set_settings)(struct net_device * , struct ethtool_cmd * ) ;
 4840   void (*get_drvinfo)(struct net_device * , struct ethtool_drvinfo * ) ;
 4841   int (*get_regs_len)(struct net_device * ) ;
 4842   void (*get_regs)(struct net_device * , struct ethtool_regs * , void * ) ;
 4843   void (*get_wol)(struct net_device * , struct ethtool_wolinfo * ) ;
 4844   int (*set_wol)(struct net_device * , struct ethtool_wolinfo * ) ;
 4845   u32 (*get_msglevel)(struct net_device * ) ;
 4846   void (*set_msglevel)(struct net_device * , u32  ) ;
 4847   int (*nway_reset)(struct net_device * ) ;
 4848   u32 (*get_link)(struct net_device * ) ;
 4849   int (*get_eeprom_len)(struct net_device * ) ;
 4850   int (*get_eeprom)(struct net_device * , struct ethtool_eeprom * , u8 * ) ;
 4851   int (*set_eeprom)(struct net_device * , struct ethtool_eeprom * , u8 * ) ;
 4852   int (*get_coalesce)(struct net_device * , struct ethtool_coalesce * ) ;
 4853   int (*set_coalesce)(struct net_device * , struct ethtool_coalesce * ) ;
 4854   void (*get_ringparam)(struct net_device * , struct ethtool_ringparam * ) ;
 4855   int (*set_ringparam)(struct net_device * , struct ethtool_ringparam * ) ;
 4856   void (*get_pauseparam)(struct net_device * , struct ethtool_pauseparam * ) ;
 4857   int (*set_pauseparam)(struct net_device * , struct ethtool_pauseparam * ) ;
 4858   u32 (*get_rx_csum)(struct net_device * ) ;
 4859   int (*set_rx_csum)(struct net_device * , u32  ) ;
 4860   u32 (*get_tx_csum)(struct net_device * ) ;
 4861   int (*set_tx_csum)(struct net_device * , u32  ) ;
 4862   u32 (*get_sg)(struct net_device * ) ;
 4863   int (*set_sg)(struct net_device * , u32  ) ;
 4864   u32 (*get_tso)(struct net_device * ) ;
 4865   int (*set_tso)(struct net_device * , u32  ) ;
 4866   void (*self_test)(struct net_device * , struct ethtool_test * , u64 * ) ;
 4867   void (*get_strings)(struct net_device * , u32 stringset , u8 * ) ;
 4868   int (*set_phys_id)(struct net_device * , enum ethtool_phys_id_state  ) ;
 4869   void (*get_ethtool_stats)(struct net_device * , struct ethtool_stats * , u64 * ) ;
 4870   int (*begin)(struct net_device * ) ;
 4871   void (*complete)(struct net_device * ) ;
 4872   u32 (*get_ufo)(struct net_device * ) ;
 4873   int (*set_ufo)(struct net_device * , u32  ) ;
 4874   u32 (*get_flags)(struct net_device * ) ;
 4875   int (*set_flags)(struct net_device * , u32  ) ;
 4876   u32 (*get_priv_flags)(struct net_device * ) ;
 4877   int (*set_priv_flags)(struct net_device * , u32  ) ;
 4878   int (*get_sset_count)(struct net_device * , int  ) ;
 4879   int (*get_rxnfc)(struct net_device * , struct ethtool_rxnfc * , void * ) ;
 4880   int (*set_rxnfc)(struct net_device * , struct ethtool_rxnfc * ) ;
 4881   int (*flash_device)(struct net_device * , struct ethtool_flash * ) ;
 4882   int (*reset)(struct net_device * , u32 * ) ;
 4883   int (*set_rx_ntuple)(struct net_device * , struct ethtool_rx_ntuple * ) ;
 4884   int (*get_rx_ntuple)(struct net_device * , u32 stringset , void * ) ;
 4885   int (*get_rxfh_indir)(struct net_device * , struct ethtool_rxfh_indir * ) ;
 4886   int (*set_rxfh_indir)(struct net_device * , struct ethtool_rxfh_indir  const  * ) ;
 4887   void (*get_channels)(struct net_device * , struct ethtool_channels * ) ;
 4888   int (*set_channels)(struct net_device * , struct ethtool_channels * ) ;
 4889   int (*get_dump_flag)(struct net_device * , struct ethtool_dump * ) ;
 4890   int (*get_dump_data)(struct net_device * , struct ethtool_dump * , void * ) ;
 4891   int (*set_dump)(struct net_device * , struct ethtool_dump * ) ;
 4892};
 4893#line 5 "include/net/netns/core.h"
 4894struct prot_inuse;
 4895#line 5
 4896struct prot_inuse;
 4897#line 7 "include/net/netns/core.h"
 4898struct netns_core {
 4899   struct ctl_table_header *sysctl_hdr ;
 4900   int sysctl_somaxconn ;
 4901   struct prot_inuse *inuse ;
 4902};
 4903#line 64 "include/linux/u64_stats_sync.h"
 4904struct u64_stats_sync {
 4905
 4906};
 4907#line 56 "include/net/snmp.h"
 4908struct ipstats_mib {
 4909   u64 mibs[31] ;
 4910   struct u64_stats_sync syncp ;
 4911};
 4912#line 64 "include/net/snmp.h"
 4913struct icmp_mib {
 4914   unsigned long mibs[27] ;
 4915};
 4916#line 69 "include/net/snmp.h"
 4917struct icmpmsg_mib {
 4918   unsigned long mibs[512] ;
 4919};
 4920#line 76 "include/net/snmp.h"
 4921struct icmpv6_mib {
 4922   unsigned long mibs[5] ;
 4923};
 4924#line 86 "include/net/snmp.h"
 4925struct icmpv6msg_mib {
 4926   unsigned long mibs[512] ;
 4927};
 4928#line 97 "include/net/snmp.h"
 4929struct tcp_mib {
 4930   unsigned long mibs[15] ;
 4931};
 4932#line 103 "include/net/snmp.h"
 4933struct udp_mib {
 4934   unsigned long mibs[7] ;
 4935};
 4936#line 109 "include/net/snmp.h"
 4937struct linux_mib {
 4938   unsigned long mibs[80] ;
 4939};
 4940#line 115 "include/net/snmp.h"
 4941struct linux_xfrm_mib {
 4942   unsigned long mibs[27] ;
 4943};
 4944#line 6 "include/net/netns/mib.h"
 4945struct netns_mib {
 4946   struct tcp_mib *tcp_statistics[2] ;
 4947   struct ipstats_mib *ip_statistics[2] ;
 4948   struct linux_mib *net_statistics[2] ;
 4949   struct udp_mib *udp_statistics[2] ;
 4950   struct udp_mib *udplite_statistics[2] ;
 4951   struct icmp_mib *icmp_statistics[2] ;
 4952   struct icmpmsg_mib *icmpmsg_statistics[2] ;
 4953   struct proc_dir_entry *proc_net_devsnmp6 ;
 4954   struct udp_mib *udp_stats_in6[2] ;
 4955   struct udp_mib *udplite_stats_in6[2] ;
 4956   struct ipstats_mib *ipv6_statistics[2] ;
 4957   struct icmpv6_mib *icmpv6_statistics[2] ;
 4958   struct icmpv6msg_mib *icmpv6msg_statistics[2] ;
 4959   struct linux_xfrm_mib *xfrm_statistics[2] ;
 4960};
 4961#line 8 "include/net/netns/unix.h"
 4962struct netns_unix {
 4963   int sysctl_max_dgram_qlen ;
 4964   struct ctl_table_header *ctl ;
 4965};
 4966#line 10 "include/net/netns/packet.h"
 4967struct netns_packet {
 4968   spinlock_t sklist_lock ;
 4969   struct hlist_head sklist ;
 4970};
 4971#line 4 "include/net/inet_frag.h"
 4972struct netns_frags {
 4973   int nqueues ;
 4974   atomic_t mem ;
 4975   struct list_head lru_list ;
 4976   int timeout ;
 4977   int high_thresh ;
 4978   int low_thresh ;
 4979};
 4980#line 11 "include/net/netns/ipv4.h"
 4981struct ipv4_devconf;
 4982#line 11
 4983struct ipv4_devconf;
 4984#line 12
 4985struct fib_rules_ops;
 4986#line 12
 4987struct fib_rules_ops;
 4988#line 16
 4989struct xt_table;
 4990#line 16
 4991struct xt_table;
 4992#line 16 "include/net/netns/ipv4.h"
 4993struct netns_ipv4 {
 4994   struct ctl_table_header *forw_hdr ;
 4995   struct ctl_table_header *frags_hdr ;
 4996   struct ctl_table_header *ipv4_hdr ;
 4997   struct ctl_table_header *route_hdr ;
 4998   struct ipv4_devconf *devconf_all ;
 4999   struct ipv4_devconf *devconf_dflt ;
 5000   struct fib_rules_ops *rules_ops ;
 5001   struct hlist_head *fib_table_hash ;
 5002   struct sock *fibnl ;
 5003   struct sock **icmp_sk ;
 5004   struct sock *tcp_sock ;
 5005   struct netns_frags frags ;
 5006   struct xt_table *iptable_filter ;
 5007   struct xt_table *iptable_mangle ;
 5008   struct xt_table *iptable_raw ;
 5009   struct xt_table *arptable_filter ;
 5010   struct xt_table *iptable_security ;
 5011   struct xt_table *nat_table ;
 5012   struct hlist_head *nat_bysource ;
 5013   unsigned int nat_htable_size ;
 5014   int sysctl_icmp_echo_ignore_all ;
 5015   int sysctl_icmp_echo_ignore_broadcasts ;
 5016   int sysctl_icmp_ignore_bogus_error_responses ;
 5017   int sysctl_icmp_ratelimit ;
 5018   int sysctl_icmp_ratemask ;
 5019   int sysctl_icmp_errors_use_inbound_ifaddr ;
 5020   int sysctl_rt_cache_rebuild_count ;
 5021   int current_rt_cache_rebuild_count ;
 5022   unsigned int sysctl_ping_group_range[2] ;
 5023   atomic_t rt_genid ;
 5024   atomic_t dev_addr_genid ;
 5025   struct list_head mr_tables ;
 5026   struct fib_rules_ops *mr_rules_ops ;
 5027};
 5028#line 12 "include/net/dst_ops.h"
 5029struct dst_ops {
 5030   unsigned short family ;
 5031   __be16 protocol ;
 5032   unsigned int gc_thresh ;
 5033   int (*gc)(struct dst_ops *ops ) ;
 5034   struct dst_entry *(*check)(struct dst_entry * , __u32 cookie ) ;
 5035   unsigned int (*default_advmss)(struct dst_entry  const  * ) ;
 5036   unsigned int (*default_mtu)(struct dst_entry  const  * ) ;
 5037   u32 *(*cow_metrics)(struct dst_entry * , unsigned long  ) ;
 5038   void (*destroy)(struct dst_entry * ) ;
 5039   void (*ifdown)(struct dst_entry * , struct net_device *dev , int how ) ;
 5040   struct dst_entry *(*negative_advice)(struct dst_entry * ) ;
 5041   void (*link_failure)(struct sk_buff * ) ;
 5042   void (*update_pmtu)(struct dst_entry *dst , u32 mtu ) ;
 5043   int (*local_out)(struct sk_buff *skb ) ;
 5044   struct kmem_cache *kmem_cachep ;
 5045   struct percpu_counter pcpuc_entries  __attribute__((__aligned__((1) <<  (6) ))) ;
 5046};
 5047#line 13 "include/net/netns/ipv6.h"
 5048struct netns_sysctl_ipv6 {
 5049   struct ctl_table_header *table ;
 5050   struct ctl_table_header *frags_hdr ;
 5051   int bindv6only ;
 5052   int flush_delay ;
 5053   int ip6_rt_max_size ;
 5054   int ip6_rt_gc_min_interval ;
 5055   int ip6_rt_gc_timeout ;
 5056   int ip6_rt_gc_interval ;
 5057   int ip6_rt_gc_elasticity ;
 5058   int ip6_rt_mtu_expires ;
 5059   int ip6_rt_min_advmss ;
 5060   int icmpv6_time ;
 5061};
 5062#line 30
 5063struct ipv6_devconf;
 5064#line 30
 5065struct ipv6_devconf;
 5066#line 30
 5067struct rt6_info;
 5068#line 30
 5069struct rt6_info;
 5070#line 30
 5071struct rt6_statistics;
 5072#line 30
 5073struct rt6_statistics;
 5074#line 30
 5075struct fib6_table;
 5076#line 30
 5077struct fib6_table;
 5078#line 30 "include/net/netns/ipv6.h"
 5079struct netns_ipv6 {
 5080   struct netns_sysctl_ipv6 sysctl ;
 5081   struct ipv6_devconf *devconf_all ;
 5082   struct ipv6_devconf *devconf_dflt ;
 5083   struct netns_frags frags ;
 5084   struct xt_table *ip6table_filter ;
 5085   struct xt_table *ip6table_mangle ;
 5086   struct xt_table *ip6table_raw ;
 5087   struct xt_table *ip6table_security ;
 5088   struct rt6_info *ip6_null_entry ;
 5089   struct rt6_statistics *rt6_stats ;
 5090   struct timer_list ip6_fib_timer ;
 5091   struct hlist_head *fib_table_hash ;
 5092   struct fib6_table *fib6_main_tbl ;
 5093   struct dst_ops ip6_dst_ops ;
 5094   unsigned int ip6_rt_gc_expire ;
 5095   unsigned long ip6_rt_last_gc ;
 5096   struct rt6_info *ip6_prohibit_entry ;
 5097   struct rt6_info *ip6_blk_hole_entry ;
 5098   struct fib6_table *fib6_local_tbl ;
 5099   struct fib_rules_ops *fib6_rules_ops ;
 5100   struct sock **icmp_sk ;
 5101   struct sock *ndisc_sk ;
 5102   struct sock *tcp_sk ;
 5103   struct sock *igmp_sk ;
 5104   struct list_head mr6_tables ;
 5105   struct fib_rules_ops *mr6_rules_ops ;
 5106};
 5107#line 6 "include/net/netns/dccp.h"
 5108struct netns_dccp {
 5109   struct sock *v4_ctl_sk ;
 5110   struct sock *v6_ctl_sk ;
 5111};
 5112#line 7 "include/net/netns/x_tables.h"
 5113struct ebt_table;
 5114#line 7
 5115struct ebt_table;
 5116#line 9 "include/net/netns/x_tables.h"
 5117struct netns_xt {
 5118   struct list_head tables[13] ;
 5119   struct ebt_table *broute_table ;
 5120   struct ebt_table *frame_filter ;
 5121   struct ebt_table *frame_nat ;
 5122};
 5123#line 17 "include/linux/list_nulls.h"
 5124struct hlist_nulls_node;
 5125#line 17
 5126struct hlist_nulls_node;
 5127#line 17 "include/linux/list_nulls.h"
 5128struct hlist_nulls_head {
 5129   struct hlist_nulls_node *first ;
 5130};
 5131#line 21 "include/linux/list_nulls.h"
 5132struct hlist_nulls_node {
 5133   struct hlist_nulls_node *next ;
 5134   struct hlist_nulls_node **pprev ;
 5135};
 5136#line 11 "include/net/netns/conntrack.h"
 5137struct ip_conntrack_stat;
 5138#line 11
 5139struct ip_conntrack_stat;
 5140#line 11 "include/net/netns/conntrack.h"
 5141struct netns_ct {
 5142   atomic_t count ;
 5143   unsigned int expect_count ;
 5144   unsigned int htable_size ;
 5145   struct kmem_cache *nf_conntrack_cachep ;
 5146   struct hlist_nulls_head *hash ;
 5147   struct hlist_head *expect_hash ;
 5148   struct hlist_nulls_head unconfirmed ;
 5149   struct hlist_nulls_head dying ;
 5150   struct ip_conntrack_stat *stat ;
 5151   int sysctl_events ;
 5152   unsigned int sysctl_events_retry_timeout ;
 5153   int sysctl_acct ;
 5154   int sysctl_tstamp ;
 5155   int sysctl_checksum ;
 5156   unsigned int sysctl_log_invalid ;
 5157   struct ctl_table_header *sysctl_header ;
 5158   struct ctl_table_header *acct_sysctl_header ;
 5159   struct ctl_table_header *tstamp_sysctl_header ;
 5160   struct ctl_table_header *event_sysctl_header ;
 5161   char *slabname ;
 5162};
 5163#line 12 "include/net/netns/xfrm.h"
 5164struct xfrm_policy_hash {
 5165   struct hlist_head *table ;
 5166   unsigned int hmask ;
 5167};
 5168#line 17 "include/net/netns/xfrm.h"
 5169struct netns_xfrm {
 5170   struct list_head state_all ;
 5171   struct hlist_head *state_bydst ;
 5172   struct hlist_head *state_bysrc ;
 5173   struct hlist_head *state_byspi ;
 5174   unsigned int state_hmask ;
 5175   unsigned int state_num ;
 5176   struct work_struct state_hash_work ;
 5177   struct hlist_head state_gc_list ;
 5178   struct work_struct state_gc_work ;
 5179   wait_queue_head_t km_waitq ;
 5180   struct list_head policy_all ;
 5181   struct hlist_head *policy_byidx ;
 5182   unsigned int policy_idx_hmask ;
 5183   struct hlist_head policy_inexact[6] ;
 5184   struct xfrm_policy_hash policy_bydst[6] ;
 5185   unsigned int policy_count[6] ;
 5186   struct work_struct policy_hash_work ;
 5187   struct sock *nlsk ;
 5188   struct sock *nlsk_stash ;
 5189   u32 sysctl_aevent_etime ;
 5190   u32 sysctl_aevent_rseqth ;
 5191   int sysctl_larval_drop ;
 5192   u32 sysctl_acq_expires ;
 5193   struct ctl_table_header *sysctl_hdr ;
 5194   struct dst_ops xfrm4_dst_ops ;
 5195   struct dst_ops xfrm6_dst_ops ;
 5196};
 5197#line 29 "include/net/net_namespace.h"
 5198struct net_generic;
 5199#line 29
 5200struct net_generic;
 5201#line 31
 5202struct netns_ipvs;
 5203#line 31
 5204struct netns_ipvs;
 5205#line 37 "include/net/net_namespace.h"
 5206struct net {
 5207   atomic_t passive ;
 5208   atomic_t count ;
 5209   spinlock_t rules_mod_lock ;
 5210   struct list_head list ;
 5211   struct list_head cleanup_list ;
 5212   struct list_head exit_list ;
 5213   struct proc_dir_entry *proc_net ;
 5214   struct proc_dir_entry *proc_net_stat ;
 5215   struct ctl_table_set sysctls ;
 5216   struct sock *rtnl ;
 5217   struct sock *genl_sock ;
 5218   struct list_head dev_base_head ;
 5219   struct hlist_head *dev_name_head ;
 5220   struct hlist_head *dev_index_head ;
 5221   struct list_head rules_ops ;
 5222   struct net_device *loopback_dev ;
 5223   struct netns_core core ;
 5224   struct netns_mib mib ;
 5225   struct netns_packet packet ;
 5226   struct netns_unix unx ;
 5227   struct netns_ipv4 ipv4 ;
 5228   struct netns_ipv6 ipv6 ;
 5229   struct netns_dccp dccp ;
 5230   struct netns_xt xt ;
 5231   struct netns_ct ct ;
 5232   struct sock *nfnl ;
 5233   struct sock *nfnl_stash ;
 5234   struct sk_buff_head wext_nlevents ;
 5235   struct net_generic *gen ;
 5236   struct netns_xfrm xfrm ;
 5237   struct netns_ipvs *ipvs ;
 5238};
 5239#line 57 "include/linux/dcbnl.h"
 5240struct ieee_ets {
 5241   __u8 willing ;
 5242   __u8 ets_cap ;
 5243   __u8 cbs ;
 5244   __u8 tc_tx_bw[8] ;
 5245   __u8 tc_rx_bw[8] ;
 5246   __u8 tc_tsa[8] ;
 5247   __u8 prio_tc[8] ;
 5248   __u8 tc_reco_bw[8] ;
 5249   __u8 tc_reco_tsa[8] ;
 5250   __u8 reco_prio_tc[8] ;
 5251};
 5252#line 81 "include/linux/dcbnl.h"
 5253struct ieee_pfc {
 5254   __u8 pfc_cap ;
 5255   __u8 pfc_en ;
 5256   __u8 mbc ;
 5257   __u16 delay ;
 5258   __u64 requests[8] ;
 5259   __u64 indications[8] ;
 5260};
 5261#line 104 "include/linux/dcbnl.h"
 5262struct cee_pg {
 5263   __u8 willing ;
 5264   __u8 error ;
 5265   __u8 pg_en ;
 5266   __u8 tcs_supported ;
 5267   __u8 pg_bw[8] ;
 5268   __u8 prio_pg[8] ;
 5269};
 5270#line 121 "include/linux/dcbnl.h"
 5271struct cee_pfc {
 5272   __u8 willing ;
 5273   __u8 error ;
 5274   __u8 pfc_en ;
 5275   __u8 tcs_supported ;
 5276};
 5277#line 151 "include/linux/dcbnl.h"
 5278struct dcb_app {
 5279   __u8 selector ;
 5280   __u8 priority ;
 5281   __u16 protocol ;
 5282};
 5283#line 166 "include/linux/dcbnl.h"
 5284struct dcb_peer_app_info {
 5285   __u8 willing ;
 5286   __u8 error ;
 5287};
 5288#line 38 "include/net/dcbnl.h"
 5289struct dcbnl_rtnl_ops {
 5290   int (*ieee_getets)(struct net_device * , struct ieee_ets * ) ;
 5291   int (*ieee_setets)(struct net_device * , struct ieee_ets * ) ;
 5292   int (*ieee_getpfc)(struct net_device * , struct ieee_pfc * ) ;
 5293   int (*ieee_setpfc)(struct net_device * , struct ieee_pfc * ) ;
 5294   int (*ieee_getapp)(struct net_device * , struct dcb_app * ) ;
 5295   int (*ieee_setapp)(struct net_device * , struct dcb_app * ) ;
 5296   int (*ieee_peer_getets)(struct net_device * , struct ieee_ets * ) ;
 5297   int (*ieee_peer_getpfc)(struct net_device * , struct ieee_pfc * ) ;
 5298   u8 (*getstate)(struct net_device * ) ;
 5299   u8 (*setstate)(struct net_device * , u8  ) ;
 5300   void (*getpermhwaddr)(struct net_device * , u8 * ) ;
 5301   void (*setpgtccfgtx)(struct net_device * , int  , u8  , u8  , u8  , u8  ) ;
 5302   void (*setpgbwgcfgtx)(struct net_device * , int  , u8  ) ;
 5303   void (*setpgtccfgrx)(struct net_device * , int  , u8  , u8  , u8  , u8  ) ;
 5304   void (*setpgbwgcfgrx)(struct net_device * , int  , u8  ) ;
 5305   void (*getpgtccfgtx)(struct net_device * , int  , u8 * , u8 * , u8 * , u8 * ) ;
 5306   void (*getpgbwgcfgtx)(struct net_device * , int  , u8 * ) ;
 5307   void (*getpgtccfgrx)(struct net_device * , int  , u8 * , u8 * , u8 * , u8 * ) ;
 5308   void (*getpgbwgcfgrx)(struct net_device * , int  , u8 * ) ;
 5309   void (*setpfccfg)(struct net_device * , int  , u8  ) ;
 5310   void (*getpfccfg)(struct net_device * , int  , u8 * ) ;
 5311   u8 (*setall)(struct net_device * ) ;
 5312   u8 (*getcap)(struct net_device * , int  , u8 * ) ;
 5313   u8 (*getnumtcs)(struct net_device * , int  , u8 * ) ;
 5314   u8 (*setnumtcs)(struct net_device * , int  , u8  ) ;
 5315   u8 (*getpfcstate)(struct net_device * ) ;
 5316   void (*setpfcstate)(struct net_device * , u8  ) ;
 5317   void (*getbcncfg)(struct net_device * , int  , u32 * ) ;
 5318   void (*setbcncfg)(struct net_device * , int  , u32  ) ;
 5319   void (*getbcnrp)(struct net_device * , int  , u8 * ) ;
 5320   void (*setbcnrp)(struct net_device * , int  , u8  ) ;
 5321   u8 (*setapp)(struct net_device * , u8  , u16  , u8  ) ;
 5322   u8 (*getapp)(struct net_device * , u8  , u16  ) ;
 5323   u8 (*getfeatcfg)(struct net_device * , int  , u8 * ) ;
 5324   u8 (*setfeatcfg)(struct net_device * , int  , u8  ) ;
 5325   u8 (*getdcbx)(struct net_device * ) ;
 5326   u8 (*setdcbx)(struct net_device * , u8  ) ;
 5327   int (*peer_getappinfo)(struct net_device * , struct dcb_peer_app_info * , u16 * ) ;
 5328   int (*peer_getapptable)(struct net_device * , struct dcb_app * ) ;
 5329   int (*cee_peer_getpg)(struct net_device * , struct cee_pg * ) ;
 5330   int (*cee_peer_getpfc)(struct net_device * , struct cee_pfc * ) ;
 5331};
 5332#line 55 "include/linux/netdevice.h"
 5333struct vlan_group;
 5334#line 55
 5335struct vlan_group;
 5336#line 56
 5337struct netpoll_info;
 5338#line 56
 5339struct netpoll_info;
 5340#line 57
 5341struct phy_device;
 5342#line 57
 5343struct phy_device;
 5344#line 59
 5345struct wireless_dev;
 5346#line 59
 5347struct wireless_dev;
 5348#line 111
 5349enum netdev_tx {
 5350    __NETDEV_TX_MIN = (-0x7FFFFFFF-1),
 5351    NETDEV_TX_OK = 0,
 5352    NETDEV_TX_BUSY = 16,
 5353    NETDEV_TX_LOCKED = 32
 5354} ;
 5355#line 117 "include/linux/netdevice.h"
 5356typedef enum netdev_tx netdev_tx_t;
 5357#line 176 "include/linux/netdevice.h"
 5358struct net_device_stats {
 5359   unsigned long rx_packets ;
 5360   unsigned long tx_packets ;
 5361   unsigned long rx_bytes ;
 5362   unsigned long tx_bytes ;
 5363   unsigned long rx_errors ;
 5364   unsigned long tx_errors ;
 5365   unsigned long rx_dropped ;
 5366   unsigned long tx_dropped ;
 5367   unsigned long multicast ;
 5368   unsigned long collisions ;
 5369   unsigned long rx_length_errors ;
 5370   unsigned long rx_over_errors ;
 5371   unsigned long rx_crc_errors ;
 5372   unsigned long rx_frame_errors ;
 5373   unsigned long rx_fifo_errors ;
 5374   unsigned long rx_missed_errors ;
 5375   unsigned long tx_aborted_errors ;
 5376   unsigned long tx_carrier_errors ;
 5377   unsigned long tx_fifo_errors ;
 5378   unsigned long tx_heartbeat_errors ;
 5379   unsigned long tx_window_errors ;
 5380   unsigned long rx_compressed ;
 5381   unsigned long tx_compressed ;
 5382};
 5383#line 221
 5384struct neighbour;
 5385#line 221
 5386struct neighbour;
 5387#line 222
 5388struct neigh_parms;
 5389#line 222
 5390struct neigh_parms;
 5391#line 240 "include/linux/netdevice.h"
 5392struct netdev_hw_addr_list {
 5393   struct list_head list ;
 5394   int count ;
 5395};
 5396#line 260 "include/linux/netdevice.h"
 5397struct hh_cache {
 5398   struct hh_cache *hh_next ;
 5399   atomic_t hh_refcnt ;
 5400   __be16 hh_type  __attribute__((__aligned__((1) <<  (6) ))) ;
 5401   u16 hh_len ;
 5402   int (*hh_output)(struct sk_buff *skb ) ;
 5403   seqlock_t hh_lock ;
 5404   unsigned long hh_data[128UL / sizeof(long )] ;
 5405};
 5406#line 311 "include/linux/netdevice.h"
 5407struct header_ops {
 5408   int (*create)(struct sk_buff *skb , struct net_device *dev , unsigned short type ,
 5409                 void const   *daddr , void const   *saddr , unsigned int len ) ;
 5410   int (*parse)(struct sk_buff  const  *skb , unsigned char *haddr ) ;
 5411   int (*rebuild)(struct sk_buff *skb ) ;
 5412   int (*cache)(struct neighbour  const  *neigh , struct hh_cache *hh ) ;
 5413   void (*cache_update)(struct hh_cache *hh , struct net_device  const  *dev , unsigned char const   *haddr ) ;
 5414};
 5415#line 434
 5416enum rx_handler_result {
 5417    RX_HANDLER_CONSUMED = 0,
 5418    RX_HANDLER_ANOTHER = 1,
 5419    RX_HANDLER_EXACT = 2,
 5420    RX_HANDLER_PASS = 3
 5421} ;
 5422#line 440 "include/linux/netdevice.h"
 5423typedef enum rx_handler_result rx_handler_result_t;
 5424#line 441 "include/linux/netdevice.h"
 5425typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **pskb );
 5426#line 551
 5427struct Qdisc;
 5428#line 551
 5429struct Qdisc;
 5430#line 551 "include/linux/netdevice.h"
 5431struct netdev_queue {
 5432   struct net_device *dev ;
 5433   struct Qdisc *qdisc ;
 5434   unsigned long state ;
 5435   struct Qdisc *qdisc_sleeping ;
 5436   struct kobject kobj ;
 5437   int numa_node ;
 5438   spinlock_t _xmit_lock  __attribute__((__aligned__((1) <<  (6) ))) ;
 5439   int xmit_lock_owner ;
 5440   unsigned long trans_start ;
 5441} __attribute__((__aligned__((1) <<  (6) ))) ;
 5442#line 597 "include/linux/netdevice.h"
 5443struct rps_map {
 5444   unsigned int len ;
 5445   struct rcu_head rcu ;
 5446   u16 cpus[0] ;
 5447};
 5448#line 609 "include/linux/netdevice.h"
 5449struct rps_dev_flow {
 5450   u16 cpu ;
 5451   u16 filter ;
 5452   unsigned int last_qtail ;
 5453};
 5454#line 619 "include/linux/netdevice.h"
 5455struct rps_dev_flow_table {
 5456   unsigned int mask ;
 5457   struct rcu_head rcu ;
 5458   struct work_struct free_work ;
 5459   struct rps_dev_flow flows[0] ;
 5460};
 5461#line 670 "include/linux/netdevice.h"
 5462struct netdev_rx_queue {
 5463   struct rps_map *rps_map ;
 5464   struct rps_dev_flow_table *rps_flow_table ;
 5465   struct kobject kobj ;
 5466   struct net_device *dev ;
 5467} __attribute__((__aligned__((1) <<  (6) ))) ;
 5468#line 683 "include/linux/netdevice.h"
 5469struct xps_map {
 5470   unsigned int len ;
 5471   unsigned int alloc_len ;
 5472   struct rcu_head rcu ;
 5473   u16 queues[0] ;
 5474};
 5475#line 696 "include/linux/netdevice.h"
 5476struct xps_dev_maps {
 5477   struct rcu_head rcu ;
 5478   struct xps_map *cpu_map[0] ;
 5479};
 5480#line 707 "include/linux/netdevice.h"
 5481struct netdev_tc_txq {
 5482   u16 count ;
 5483   u16 offset ;
 5484};
 5485#line 892 "include/linux/netdevice.h"
 5486struct net_device_ops {
 5487   int (*ndo_init)(struct net_device *dev ) ;
 5488   void (*ndo_uninit)(struct net_device *dev ) ;
 5489   int (*ndo_open)(struct net_device *dev ) ;
 5490   int (*ndo_stop)(struct net_device *dev ) ;
 5491   netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb , struct net_device *dev ) ;
 5492   u16 (*ndo_select_queue)(struct net_device *dev , struct sk_buff *skb ) ;
 5493   void (*ndo_change_rx_flags)(struct net_device *dev , int flags ) ;
 5494   void (*ndo_set_rx_mode)(struct net_device *dev ) ;
 5495   void (*ndo_set_multicast_list)(struct net_device *dev ) ;
 5496   int (*ndo_set_mac_address)(struct net_device *dev , void *addr ) ;
 5497   int (*ndo_validate_addr)(struct net_device *dev ) ;
 5498   int (*ndo_do_ioctl)(struct net_device *dev , struct ifreq *ifr , int cmd ) ;
 5499   int (*ndo_set_config)(struct net_device *dev , struct ifmap *map ) ;
 5500   int (*ndo_change_mtu)(struct net_device *dev , int new_mtu ) ;
 5501   int (*ndo_neigh_setup)(struct net_device *dev , struct neigh_parms * ) ;
 5502   void (*ndo_tx_timeout)(struct net_device *dev ) ;
 5503   struct rtnl_link_stats64 *(*ndo_get_stats64)(struct net_device *dev , struct rtnl_link_stats64 *storage ) ;
 5504   struct net_device_stats *(*ndo_get_stats)(struct net_device *dev ) ;
 5505   void (*ndo_vlan_rx_register)(struct net_device *dev , struct vlan_group *grp ) ;
 5506   void (*ndo_vlan_rx_add_vid)(struct net_device *dev , unsigned short vid ) ;
 5507   void (*ndo_vlan_rx_kill_vid)(struct net_device *dev , unsigned short vid ) ;
 5508   void (*ndo_poll_controller)(struct net_device *dev ) ;
 5509   int (*ndo_netpoll_setup)(struct net_device *dev , struct netpoll_info *info ) ;
 5510   void (*ndo_netpoll_cleanup)(struct net_device *dev ) ;
 5511   int (*ndo_set_vf_mac)(struct net_device *dev , int queue , u8 *mac ) ;
 5512   int (*ndo_set_vf_vlan)(struct net_device *dev , int queue , u16 vlan , u8 qos ) ;
 5513   int (*ndo_set_vf_tx_rate)(struct net_device *dev , int vf , int rate ) ;
 5514   int (*ndo_get_vf_config)(struct net_device *dev , int vf , struct ifla_vf_info *ivf ) ;
 5515   int (*ndo_set_vf_port)(struct net_device *dev , int vf , struct nlattr **port ) ;
 5516   int (*ndo_get_vf_port)(struct net_device *dev , int vf , struct sk_buff *skb ) ;
 5517   int (*ndo_setup_tc)(struct net_device *dev , u8 tc ) ;
 5518   int (*ndo_fcoe_enable)(struct net_device *dev ) ;
 5519   int (*ndo_fcoe_disable)(struct net_device *dev ) ;
 5520   int (*ndo_fcoe_ddp_setup)(struct net_device *dev , u16 xid , struct scatterlist *sgl ,
 5521                             unsigned int sgc ) ;
 5522   int (*ndo_fcoe_ddp_done)(struct net_device *dev , u16 xid ) ;
 5523   int (*ndo_fcoe_ddp_target)(struct net_device *dev , u16 xid , struct scatterlist *sgl ,
 5524                              unsigned int sgc ) ;
 5525   int (*ndo_fcoe_get_wwn)(struct net_device *dev , u64 *wwn , int type ) ;
 5526   int (*ndo_rx_flow_steer)(struct net_device *dev , struct sk_buff  const  *skb ,
 5527                            u16 rxq_index , u32 flow_id ) ;
 5528   int (*ndo_add_slave)(struct net_device *dev , struct net_device *slave_dev ) ;
 5529   int (*ndo_del_slave)(struct net_device *dev , struct net_device *slave_dev ) ;
 5530   u32 (*ndo_fix_features)(struct net_device *dev , u32 features ) ;
 5531   int (*ndo_set_features)(struct net_device *dev , u32 features ) ;
 5532};
 5533#line 993
 5534struct iw_handler_def;
 5535#line 993
 5536struct iw_handler_def;
 5537#line 993
 5538struct iw_public_data;
 5539#line 993
 5540struct iw_public_data;
 5541#line 993
 5542struct in_device;
 5543#line 993
 5544struct in_device;
 5545#line 993
 5546struct dn_dev;
 5547#line 993
 5548struct dn_dev;
 5549#line 993
 5550struct inet6_dev;
 5551#line 993
 5552struct inet6_dev;
 5553#line 993
 5554struct cpu_rmap;
 5555#line 993
 5556struct cpu_rmap;
 5557#line 993
 5558enum __anonenum_reg_state_304 {
 5559    NETREG_UNINITIALIZED = 0,
 5560    NETREG_REGISTERED = 1,
 5561    NETREG_UNREGISTERING = 2,
 5562    NETREG_UNREGISTERED = 3,
 5563    NETREG_RELEASED = 4,
 5564    NETREG_DUMMY = 5
 5565} ;
 5566#line 993
 5567enum __anonenum_rtnl_link_state_305 {
 5568    RTNL_LINK_INITIALIZED = 0,
 5569    RTNL_LINK_INITIALIZING = 1
 5570} ;
 5571#line 993
 5572struct pcpu_lstats;
 5573#line 993
 5574struct pcpu_lstats;
 5575#line 993
 5576struct pcpu_tstats;
 5577#line 993
 5578struct pcpu_tstats;
 5579#line 993
 5580struct pcpu_dstats;
 5581#line 993
 5582struct pcpu_dstats;
 5583#line 993 "include/linux/netdevice.h"
 5584union __anonunion____missing_field_name_306 {
 5585   void *ml_priv ;
 5586   struct pcpu_lstats *lstats ;
 5587   struct pcpu_tstats *tstats ;
 5588   struct pcpu_dstats *dstats ;
 5589};
 5590#line 993
 5591struct garp_port;
 5592#line 993
 5593struct garp_port;
 5594#line 993
 5595struct rtnl_link_ops;
 5596#line 993
 5597struct rtnl_link_ops;
 5598#line 993 "include/linux/netdevice.h"
 5599struct net_device {
 5600   char name[16] ;
 5601   struct pm_qos_request_list pm_qos_req ;
 5602   struct hlist_node name_hlist ;
 5603   char *ifalias ;
 5604   unsigned long mem_end ;
 5605   unsigned long mem_start ;
 5606   unsigned long base_addr ;
 5607   unsigned int irq ;
 5608   unsigned long state ;
 5609   struct list_head dev_list ;
 5610   struct list_head napi_list ;
 5611   struct list_head unreg_list ;
 5612   u32 features ;
 5613   u32 hw_features ;
 5614   u32 wanted_features ;
 5615   u32 vlan_features ;
 5616   int ifindex ;
 5617   int iflink ;
 5618   struct net_device_stats stats ;
 5619   atomic_long_t rx_dropped ;
 5620   struct iw_handler_def  const  *wireless_handlers ;
 5621   struct iw_public_data *wireless_data ;
 5622   struct net_device_ops  const  *netdev_ops ;
 5623   struct ethtool_ops  const  *ethtool_ops ;
 5624   struct header_ops  const  *header_ops ;
 5625   unsigned int flags ;
 5626   unsigned int priv_flags ;
 5627   unsigned short gflags ;
 5628   unsigned short padded ;
 5629   unsigned char operstate ;
 5630   unsigned char link_mode ;
 5631   unsigned char if_port ;
 5632   unsigned char dma ;
 5633   unsigned int mtu ;
 5634   unsigned short type ;
 5635   unsigned short hard_header_len ;
 5636   unsigned short needed_headroom ;
 5637   unsigned short needed_tailroom ;
 5638   unsigned char perm_addr[32] ;
 5639   unsigned char addr_assign_type ;
 5640   unsigned char addr_len ;
 5641   unsigned short dev_id ;
 5642   spinlock_t addr_list_lock ;
 5643   struct netdev_hw_addr_list uc ;
 5644   struct netdev_hw_addr_list mc ;
 5645   int uc_promisc ;
 5646   unsigned int promiscuity ;
 5647   unsigned int allmulti ;
 5648   struct vlan_group *vlgrp ;
 5649   void *dsa_ptr ;
 5650   void *atalk_ptr ;
 5651   struct in_device *ip_ptr ;
 5652   struct dn_dev *dn_ptr ;
 5653   struct inet6_dev *ip6_ptr ;
 5654   void *ec_ptr ;
 5655   void *ax25_ptr ;
 5656   struct wireless_dev *ieee80211_ptr ;
 5657   unsigned long last_rx ;
 5658   struct net_device *master ;
 5659   unsigned char *dev_addr ;
 5660   struct netdev_hw_addr_list dev_addrs ;
 5661   unsigned char broadcast[32] ;
 5662   struct kset *queues_kset ;
 5663   struct netdev_rx_queue *_rx ;
 5664   unsigned int num_rx_queues ;
 5665   unsigned int real_num_rx_queues ;
 5666   struct cpu_rmap *rx_cpu_rmap ;
 5667   rx_handler_func_t *rx_handler ;
 5668   void *rx_handler_data ;
 5669   struct netdev_queue *ingress_queue ;
 5670   struct netdev_queue *_tx  __attribute__((__aligned__((1) <<  (6) ))) ;
 5671   unsigned int num_tx_queues ;
 5672   unsigned int real_num_tx_queues ;
 5673   struct Qdisc *qdisc ;
 5674   unsigned long tx_queue_len ;
 5675   spinlock_t tx_global_lock ;
 5676   struct xps_dev_maps *xps_maps ;
 5677   unsigned long trans_start ;
 5678   int watchdog_timeo ;
 5679   struct timer_list watchdog_timer ;
 5680   int *pcpu_refcnt ;
 5681   struct list_head todo_list ;
 5682   struct hlist_node index_hlist ;
 5683   struct list_head link_watch_list ;
 5684   enum __anonenum_reg_state_304 reg_state : 8 ;
 5685   bool dismantle ;
 5686   enum __anonenum_rtnl_link_state_305 rtnl_link_state : 16 ;
 5687   void (*destructor)(struct net_device *dev ) ;
 5688   struct netpoll_info *npinfo ;
 5689   struct net *nd_net ;
 5690   union __anonunion____missing_field_name_306 __annonCompField44 ;
 5691   struct garp_port *garp_port ;
 5692   struct device dev ;
 5693   struct attribute_group  const  *sysfs_groups[4] ;
 5694   struct rtnl_link_ops  const  *rtnl_link_ops ;
 5695   unsigned int gso_max_size ;
 5696   struct dcbnl_rtnl_ops  const  *dcbnl_ops ;
 5697   u8 num_tc ;
 5698   struct netdev_tc_txq tc_to_txq[16] ;
 5699   u8 prio_tc_map[16] ;
 5700   unsigned int fcoe_ddp_xid ;
 5701   struct ethtool_rx_ntuple_list ethtool_ntuple_list ;
 5702   struct phy_device *phydev ;
 5703   int group ;
 5704};
 5705#line 26 "include/linux/filter.h"
 5706struct sock_filter {
 5707   __u16 code ;
 5708   __u8 jt ;
 5709   __u8 jf ;
 5710   __u32 k ;
 5711};
 5712#line 138 "include/linux/filter.h"
 5713struct sk_filter {
 5714   atomic_t refcnt ;
 5715   unsigned int len ;
 5716   unsigned int (*bpf_func)(struct sk_buff  const  *skb , struct sock_filter  const  *filter ) ;
 5717   struct rcu_head rcu ;
 5718   struct sock_filter insns[0] ;
 5719};
 5720#line 205 "include/net/netlink.h"
 5721struct nla_policy {
 5722   u16 type ;
 5723   u16 len ;
 5724};
 5725#line 28 "include/linux/binfmts.h"
 5726struct linux_binprm {
 5727   char buf[128] ;
 5728   struct vm_area_struct *vma ;
 5729   unsigned long vma_pages ;
 5730   struct mm_struct *mm ;
 5731   unsigned long p ;
 5732   unsigned int cred_prepared : 1 ;
 5733   unsigned int cap_effective : 1 ;
 5734   unsigned int recursion_depth ;
 5735   struct file *file ;
 5736   struct cred *cred ;
 5737   int unsafe ;
 5738   unsigned int per_clear ;
 5739   int argc ;
 5740   int envc ;
 5741   char const   *filename ;
 5742   char const   *interp ;
 5743   unsigned int interp_flags ;
 5744   unsigned int interp_data ;
 5745   unsigned long loader ;
 5746   unsigned long exec ;
 5747};
 5748#line 73 "include/linux/binfmts.h"
 5749struct coredump_params {
 5750   long signr ;
 5751   struct pt_regs *regs ;
 5752   struct file *file ;
 5753   unsigned long limit ;
 5754   unsigned long mm_flags ;
 5755};
 5756#line 85 "include/linux/binfmts.h"
 5757struct linux_binfmt {
 5758   struct list_head lh ;
 5759   struct module *module ;
 5760   int (*load_binary)(struct linux_binprm * , struct pt_regs *regs ) ;
 5761   int (*load_shlib)(struct file * ) ;
 5762   int (*core_dump)(struct coredump_params *cprm ) ;
 5763   unsigned long min_coredump ;
 5764};
 5765#line 92 "include/linux/security.h"
 5766struct xfrm_policy;
 5767#line 92
 5768struct xfrm_policy;
 5769#line 93
 5770struct xfrm_state;
 5771#line 93
 5772struct xfrm_state;
 5773#line 45 "include/net/rtnetlink.h"
 5774struct rtnl_link_ops {
 5775   struct list_head list ;
 5776   char const   *kind ;
 5777   size_t priv_size ;
 5778   void (*setup)(struct net_device *dev ) ;
 5779   int maxtype ;
 5780   struct nla_policy  const  *policy ;
 5781   int (*validate)(struct nlattr **tb , struct nlattr **data ) ;
 5782   int (*newlink)(struct net *src_net , struct net_device *dev , struct nlattr **tb ,
 5783                  struct nlattr **data ) ;
 5784   int (*changelink)(struct net_device *dev , struct nlattr **tb , struct nlattr **data ) ;
 5785   void (*dellink)(struct net_device *dev , struct list_head *head ) ;
 5786   size_t (*get_size)(struct net_device  const  *dev ) ;
 5787   int (*fill_info)(struct sk_buff *skb , struct net_device  const  *dev ) ;
 5788   size_t (*get_xstats_size)(struct net_device  const  *dev ) ;
 5789   int (*fill_xstats)(struct sk_buff *skb , struct net_device  const  *dev ) ;
 5790   int (*get_tx_queues)(struct net *net , struct nlattr **tb , unsigned int *tx_queues ,
 5791                        unsigned int *real_tx_queues ) ;
 5792};
 5793#line 40 "include/net/neighbour.h"
 5794struct neigh_table;
 5795#line 40
 5796struct neigh_table;
 5797#line 40 "include/net/neighbour.h"
 5798struct neigh_parms {
 5799   struct net *net ;
 5800   struct net_device *dev ;
 5801   struct neigh_parms *next ;
 5802   int (*neigh_setup)(struct neighbour * ) ;
 5803   void (*neigh_cleanup)(struct neighbour * ) ;
 5804   struct neigh_table *tbl ;
 5805   void *sysctl_table ;
 5806   int dead ;
 5807   atomic_t refcnt ;
 5808   struct rcu_head rcu_head ;
 5809   int base_reachable_time ;
 5810   int retrans_time ;
 5811   int gc_staletime ;
 5812   int reachable_time ;
 5813   int delay_probe_time ;
 5814   int queue_len ;
 5815   int ucast_probes ;
 5816   int app_probes ;
 5817   int mcast_probes ;
 5818   int anycast_delay ;
 5819   int proxy_delay ;
 5820   int proxy_qlen ;
 5821   int locktime ;
 5822};
 5823#line 72 "include/net/neighbour.h"
 5824struct neigh_statistics {
 5825   unsigned long allocs ;
 5826   unsigned long destroys ;
 5827   unsigned long hash_grows ;
 5828   unsigned long res_failed ;
 5829   unsigned long lookups ;
 5830   unsigned long hits ;
 5831   unsigned long rcv_probes_mcast ;
 5832   unsigned long rcv_probes_ucast ;
 5833   unsigned long periodic_gc_runs ;
 5834   unsigned long forced_gc_runs ;
 5835   unsigned long unres_discards ;
 5836};
 5837#line 93
 5838struct neigh_ops;
 5839#line 93
 5840struct neigh_ops;
 5841#line 93 "include/net/neighbour.h"
 5842struct neighbour {
 5843   struct neighbour *next ;
 5844   struct neigh_table *tbl ;
 5845   struct neigh_parms *parms ;
 5846   unsigned long confirmed ;
 5847   unsigned long updated ;
 5848   rwlock_t lock ;
 5849   atomic_t refcnt ;
 5850   struct sk_buff_head arp_queue ;
 5851   struct timer_list timer ;
 5852   unsigned long used ;
 5853   atomic_t probes ;
 5854   __u8 flags ;
 5855   __u8 nud_state ;
 5856   __u8 type ;
 5857   __u8 dead ;
 5858   seqlock_t ha_lock ;
 5859   unsigned char ha[(32 + ((int )sizeof(unsigned long ) - 1)) & ~ ((int )sizeof(unsigned long ) - 1)] ;
 5860   struct hh_cache *hh ;
 5861   int (*output)(struct sk_buff *skb ) ;
 5862   struct neigh_ops  const  *ops ;
 5863   struct rcu_head rcu ;
 5864   struct net_device *dev ;
 5865   u8 primary_key[0] ;
 5866};
 5867#line 119 "include/net/neighbour.h"
 5868struct neigh_ops {
 5869   int family ;
 5870   void (*solicit)(struct neighbour * , struct sk_buff * ) ;
 5871   void (*error_report)(struct neighbour * , struct sk_buff * ) ;
 5872   int (*output)(struct sk_buff * ) ;
 5873   int (*connected_output)(struct sk_buff * ) ;
 5874   int (*hh_output)(struct sk_buff * ) ;
 5875   int (*queue_xmit)(struct sk_buff * ) ;
 5876};
 5877#line 129 "include/net/neighbour.h"
 5878struct pneigh_entry {
 5879   struct pneigh_entry *next ;
 5880   struct net *net ;
 5881   struct net_device *dev ;
 5882   u8 flags ;
 5883   u8 key[0] ;
 5884};
 5885#line 143 "include/net/neighbour.h"
 5886struct neigh_hash_table {
 5887   struct neighbour **hash_buckets ;
 5888   unsigned int hash_mask ;
 5889   __u32 hash_rnd ;
 5890   struct rcu_head rcu ;
 5891};
 5892#line 151 "include/net/neighbour.h"
 5893struct neigh_table {
 5894   struct neigh_table *next ;
 5895   int family ;
 5896   int entry_size ;
 5897   int key_len ;
 5898   __u32 (*hash)(void const   *pkey , struct net_device  const  *dev , __u32 hash_rnd ) ;
 5899   int (*constructor)(struct neighbour * ) ;
 5900   int (*pconstructor)(struct pneigh_entry * ) ;
 5901   void (*pdestructor)(struct pneigh_entry * ) ;
 5902   void (*proxy_redo)(struct sk_buff *skb ) ;
 5903   char *id ;
 5904   struct neigh_parms parms ;
 5905   int gc_interval ;
 5906   int gc_thresh1 ;
 5907   int gc_thresh2 ;
 5908   int gc_thresh3 ;
 5909   unsigned long last_flush ;
 5910   struct delayed_work gc_work ;
 5911   struct timer_list proxy_timer ;
 5912   struct sk_buff_head proxy_queue ;
 5913   atomic_t entries ;
 5914   rwlock_t lock ;
 5915   unsigned long last_rand ;
 5916   struct kmem_cache *kmem_cachep ;
 5917   struct neigh_statistics *stats ;
 5918   struct neigh_hash_table *nht ;
 5919   struct pneigh_entry **phash_buckets ;
 5920};
 5921#line 32 "include/net/dst.h"
 5922struct dn_route;
 5923#line 32
 5924struct dn_route;
 5925#line 32 "include/net/dst.h"
 5926union __anonunion____missing_field_name_336 {
 5927   struct dst_entry *next ;
 5928   struct rtable *rt_next ;
 5929   struct rt6_info *rt6_next ;
 5930   struct dn_route *dn_next ;
 5931};
 5932#line 32 "include/net/dst.h"
 5933struct dst_entry {
 5934   struct rcu_head rcu_head ;
 5935   struct dst_entry *child ;
 5936   struct net_device *dev ;
 5937   struct dst_ops *ops ;
 5938   unsigned long _metrics ;
 5939   unsigned long expires ;
 5940   struct dst_entry *path ;
 5941   struct neighbour *neighbour ;
 5942   struct hh_cache *hh ;
 5943   struct xfrm_state *xfrm ;
 5944   int (*input)(struct sk_buff * ) ;
 5945   int (*output)(struct sk_buff * ) ;
 5946   short error ;
 5947   short obsolete ;
 5948   unsigned short header_len ;
 5949   unsigned short trailer_len ;
 5950   __u32 tclassid ;
 5951   long __pad_to_align_refcnt[1] ;
 5952   atomic_t __refcnt ;
 5953   int __use ;
 5954   unsigned long lastuse ;
 5955   int flags ;
 5956   union __anonunion____missing_field_name_336 __annonCompField48 ;
 5957};
 5958#line 88 "include/net/sock.h"
 5959struct __anonstruct_socket_lock_t_338 {
 5960   spinlock_t slock ;
 5961   int owned ;
 5962   wait_queue_head_t wq ;
 5963   struct lockdep_map dep_map ;
 5964};
 5965#line 88 "include/net/sock.h"
 5966typedef struct __anonstruct_socket_lock_t_338 socket_lock_t;
 5967#line 104
 5968struct proto;
 5969#line 104
 5970struct proto;
 5971#line 129 "include/net/sock.h"
 5972union __anonunion____missing_field_name_339 {
 5973   unsigned int skc_hash ;
 5974   __u16 skc_u16hashes[2] ;
 5975};
 5976#line 129 "include/net/sock.h"
 5977union __anonunion____missing_field_name_340 {
 5978   struct hlist_node skc_bind_node ;
 5979   struct hlist_nulls_node skc_portaddr_node ;
 5980};
 5981#line 129 "include/net/sock.h"
 5982union __anonunion____missing_field_name_341 {
 5983   struct hlist_node skc_node ;
 5984   struct hlist_nulls_node skc_nulls_node ;
 5985};
 5986#line 129 "include/net/sock.h"
 5987struct sock_common {
 5988   __be32 skc_daddr ;
 5989   __be32 skc_rcv_saddr ;
 5990   union __anonunion____missing_field_name_339 __annonCompField49 ;
 5991   unsigned short skc_family ;
 5992   unsigned char volatile   skc_state ;
 5993   unsigned char skc_reuse ;
 5994   int skc_bound_dev_if ;
 5995   union __anonunion____missing_field_name_340 __annonCompField50 ;
 5996   struct proto *skc_prot ;
 5997   struct net *skc_net ;
 5998   int skc_dontcopy_begin[0] ;
 5999   union __anonunion____missing_field_name_341 __annonCompField51 ;
 6000   int skc_tx_queue_mapping ;
 6001   atomic_t skc_refcnt ;
 6002   int skc_dontcopy_end[0] ;
 6003};
 6004#line 238 "include/net/sock.h"
 6005struct __anonstruct_sk_backlog_342 {
 6006   atomic_t rmem_alloc ;
 6007   int len ;
 6008   struct sk_buff *head ;
 6009   struct sk_buff *tail ;
 6010};
 6011#line 238 "include/net/sock.h"
 6012struct sock {
 6013   struct sock_common __sk_common ;
 6014   socket_lock_t sk_lock ;
 6015   struct sk_buff_head sk_receive_queue ;
 6016   struct __anonstruct_sk_backlog_342 sk_backlog ;
 6017   int sk_forward_alloc ;
 6018   __u32 sk_rxhash ;
 6019   atomic_t sk_drops ;
 6020   int sk_rcvbuf ;
 6021   struct sk_filter *sk_filter ;
 6022   struct socket_wq *sk_wq ;
 6023   struct sk_buff_head sk_async_wait_queue ;
 6024   struct xfrm_policy *sk_policy[2] ;
 6025   unsigned long sk_flags ;
 6026   struct dst_entry *sk_dst_cache ;
 6027   spinlock_t sk_dst_lock ;
 6028   atomic_t sk_wmem_alloc ;
 6029   atomic_t sk_omem_alloc ;
 6030   int sk_sndbuf ;
 6031   struct sk_buff_head sk_write_queue ;
 6032   unsigned int sk_shutdown : 2 ;
 6033   unsigned int sk_no_check : 2 ;
 6034   unsigned int sk_userlocks : 4 ;
 6035   unsigned int sk_protocol : 8 ;
 6036   unsigned int sk_type : 16 ;
 6037   int sk_wmem_queued ;
 6038   gfp_t sk_allocation ;
 6039   int sk_route_caps ;
 6040   int sk_route_nocaps ;
 6041   int sk_gso_type ;
 6042   unsigned int sk_gso_max_size ;
 6043   int sk_rcvlowat ;
 6044   unsigned long sk_lingertime ;
 6045   struct sk_buff_head sk_error_queue ;
 6046   struct proto *sk_prot_creator ;
 6047   rwlock_t sk_callback_lock ;
 6048   int sk_err ;
 6049   int sk_err_soft ;
 6050   unsigned short sk_ack_backlog ;
 6051   unsigned short sk_max_ack_backlog ;
 6052   __u32 sk_priority ;
 6053   struct pid *sk_peer_pid ;
 6054   struct cred  const  *sk_peer_cred ;
 6055   long sk_rcvtimeo ;
 6056   long sk_sndtimeo ;
 6057   void *sk_protinfo ;
 6058   struct timer_list sk_timer ;
 6059   ktime_t sk_stamp ;
 6060   struct socket *sk_socket ;
 6061   void *sk_user_data ;
 6062   struct page *sk_sndmsg_page ;
 6063   struct sk_buff *sk_send_head ;
 6064   __u32 sk_sndmsg_off ;
 6065   int sk_write_pending ;
 6066   void *sk_security ;
 6067   __u32 sk_mark ;
 6068   u32 sk_classid ;
 6069   void (*sk_state_change)(struct sock *sk ) ;
 6070   void (*sk_data_ready)(struct sock *sk , int bytes ) ;
 6071   void (*sk_write_space)(struct sock *sk ) ;
 6072   void (*sk_error_report)(struct sock *sk ) ;
 6073   int (*sk_backlog_rcv)(struct sock *sk , struct sk_buff *skb ) ;
 6074   void (*sk_destruct)(struct sock *sk ) ;
 6075};
 6076#line 717
 6077struct request_sock_ops;
 6078#line 717
 6079struct request_sock_ops;
 6080#line 718
 6081struct timewait_sock_ops;
 6082#line 718
 6083struct timewait_sock_ops;
 6084#line 719
 6085struct inet_hashinfo;
 6086#line 719
 6087struct inet_hashinfo;
 6088#line 720
 6089struct raw_hashinfo;
 6090#line 720
 6091struct raw_hashinfo;
 6092#line 726
 6093struct udp_table;
 6094#line 726
 6095struct udp_table;
 6096#line 726 "include/net/sock.h"
 6097union __anonunion_h_343 {
 6098   struct inet_hashinfo *hashinfo ;
 6099   struct udp_table *udp_table ;
 6100   struct raw_hashinfo *raw_hash ;
 6101};
 6102#line 726 "include/net/sock.h"
 6103struct proto {
 6104   void (*close)(struct sock *sk , long timeout ) ;
 6105   int (*connect)(struct sock *sk , struct sockaddr *uaddr , int addr_len ) ;
 6106   int (*disconnect)(struct sock *sk , int flags ) ;
 6107   struct sock *(*accept)(struct sock *sk , int flags , int *err ) ;
 6108   int (*ioctl)(struct sock *sk , int cmd , unsigned long arg ) ;
 6109   int (*init)(struct sock *sk ) ;
 6110   void (*destroy)(struct sock *sk ) ;
 6111   void (*shutdown)(struct sock *sk , int how ) ;
 6112   int (*setsockopt)(struct sock *sk , int level , int optname , char *optval , unsigned int optlen ) ;
 6113   int (*getsockopt)(struct sock *sk , int level , int optname , char *optval , int *option ) ;
 6114   int (*compat_setsockopt)(struct sock *sk , int level , int optname , char *optval ,
 6115                            unsigned int optlen ) ;
 6116   int (*compat_getsockopt)(struct sock *sk , int level , int optname , char *optval ,
 6117                            int *option ) ;
 6118   int (*compat_ioctl)(struct sock *sk , unsigned int cmd , unsigned long arg ) ;
 6119   int (*sendmsg)(struct kiocb *iocb , struct sock *sk , struct msghdr *msg , size_t len ) ;
 6120   int (*recvmsg)(struct kiocb *iocb , struct sock *sk , struct msghdr *msg , size_t len ,
 6121                  int noblock , int flags , int *addr_len ) ;
 6122   int (*sendpage)(struct sock *sk , struct page *page , int offset , size_t size ,
 6123                   int flags ) ;
 6124   int (*bind)(struct sock *sk , struct sockaddr *uaddr , int addr_len ) ;
 6125   int (*backlog_rcv)(struct sock *sk , struct sk_buff *skb ) ;
 6126   void (*hash)(struct sock *sk ) ;
 6127   void (*unhash)(struct sock *sk ) ;
 6128   void (*rehash)(struct sock *sk ) ;
 6129   int (*get_port)(struct sock *sk , unsigned short snum ) ;
 6130   void (*clear_sk)(struct sock *sk , int size ) ;
 6131   unsigned int inuse_idx ;
 6132   void (*enter_memory_pressure)(struct sock *sk ) ;
 6133   atomic_long_t *memory_allocated ;
 6134   struct percpu_counter *sockets_allocated ;
 6135   int *memory_pressure ;
 6136   long *sysctl_mem ;
 6137   int *sysctl_wmem ;
 6138   int *sysctl_rmem ;
 6139   int max_header ;
 6140   bool no_autobind ;
 6141   struct kmem_cache *slab ;
 6142   unsigned int obj_size ;
 6143   int slab_flags ;
 6144   struct percpu_counter *orphan_count ;
 6145   struct request_sock_ops *rsk_prot ;
 6146   struct timewait_sock_ops *twsk_prot ;
 6147   union __anonunion_h_343 h ;
 6148   struct module *owner ;
 6149   char name[32] ;
 6150   struct list_head node ;
 6151};
 6152#line 42 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
 6153enum vhost_net_poll_state {
 6154    VHOST_NET_POLL_DISABLED = 0,
 6155    VHOST_NET_POLL_STARTED = 1,
 6156    VHOST_NET_POLL_STOPPED = 2
 6157} ;
 6158#line 48 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
 6159struct vhost_net {
 6160   struct vhost_dev dev ;
 6161   struct vhost_virtqueue vqs[2] ;
 6162   struct vhost_poll poll[2] ;
 6163   enum vhost_net_poll_state tx_poll_state ;
 6164};
 6165#line 155 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
 6166struct __anonstruct_346 {
 6167   int  : 0 ;
 6168};
 6169#line 256 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
 6170struct __anonstruct_347 {
 6171   int  : 0 ;
 6172};
 6173#line 540 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
 6174struct __anonstruct_uaddr_348 {
 6175   struct sockaddr_ll sa ;
 6176   char buf[32] ;
 6177};
 6178#line 1 "<compiler builtins>"
 6179
 6180#line 1
 6181
 6182#line 1
 6183long __builtin_expect(long  , long  ) ;
 6184#line 14 "include/linux/file.h"
 6185extern void fput(struct file * ) ;
 6186#line 24 "include/linux/list.h"
 6187__inline static void INIT_LIST_HEAD(struct list_head *list ) 
 6188{ 
 6189
 6190  {
 6191#line 26
 6192  list->next = list;
 6193#line 27
 6194  list->prev = list;
 6195#line 28
 6196  return;
 6197}
 6198}
 6199#line 47
 6200extern void __list_add(struct list_head *new , struct list_head *prev , struct list_head *next ) ;
 6201#line 74 "include/linux/list.h"
 6202__inline static void list_add_tail(struct list_head *new , struct list_head *head ) 
 6203{ struct list_head *__cil_tmp3 ;
 6204
 6205  {
 6206  {
 6207#line 76
 6208  __cil_tmp3 = head->prev;
 6209#line 76
 6210  __list_add(new, __cil_tmp3, head);
 6211  }
 6212#line 77
 6213  return;
 6214}
 6215}
 6216#line 111
 6217extern void __list_del_entry(struct list_head *entry ) ;
 6218#line 142 "include/linux/list.h"
 6219__inline static void list_del_init(struct list_head *entry ) 
 6220{ 
 6221
 6222  {
 6223  {
 6224#line 144
 6225  __list_del_entry(entry);
 6226#line 145
 6227  INIT_LIST_HEAD(entry);
 6228  }
 6229#line 146
 6230  return;
 6231}
 6232}
 6233#line 186 "include/linux/list.h"
 6234__inline static int list_empty(struct list_head  const  *head ) 
 6235{ unsigned long __cil_tmp2 ;
 6236  struct list_head *__cil_tmp3 ;
 6237  unsigned long __cil_tmp4 ;
 6238
 6239  {
 6240  {
 6241#line 188
 6242  __cil_tmp2 = (unsigned long )head;
 6243#line 188
 6244  __cil_tmp3 = head->next;
 6245#line 188
 6246  __cil_tmp4 = (unsigned long )__cil_tmp3;
 6247#line 188
 6248  return (__cil_tmp4 == __cil_tmp2);
 6249  }
 6250}
 6251}
 6252#line 59 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
 6253__inline static void ( __attribute__((__always_inline__)) set_bit)(unsigned int nr ,
 6254                                                                   unsigned long volatile   *addr ) 
 6255{ long volatile   *__cil_tmp3 ;
 6256
 6257  {
 6258#line 68
 6259  __cil_tmp3 = (long volatile   *)addr;
 6260#line 68
 6261  __asm__  volatile   (".section .smp_locks,\"a\"\n"
 6262                       ".balign 4\n"
 6263                       ".long 671f - .\n"
 6264                       ".previous\n"
 6265                       "671:"
 6266                       "\n\tlock; "
 6267                       "bts %1,%0": "+m" (*__cil_tmp3): "Ir" (nr): "memory");
 6268#line 71
 6269  return;
 6270}
 6271}
 6272#line 47 "include/linux/dynamic_debug.h"
 6273extern int __dynamic_pr_debug(struct _ddebug *descriptor , char const   *fmt  , ...) ;
 6274#line 64 "include/asm-generic/bug.h"
 6275extern void warn_slowpath_fmt(char const   *file , int line , char const   *fmt  , ...) ;
 6276#line 69
 6277extern void warn_slowpath_null(char const   *file , int line ) ;
 6278#line 170 "include/linux/kernel.h"
 6279extern void might_fault(void) ;
 6280#line 88 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/percpu.h"
 6281extern void __bad_percpu_size(void) ;
 6282#line 10 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
 6283extern struct task_struct *current_task  __attribute__((__section__(".data..percpu"))) ;
 6284#line 12 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
 6285__inline static struct task_struct *( __attribute__((__always_inline__)) get_current)(void) 
 6286{ struct task_struct *pfo_ret__ ;
 6287  int __cil_tmp2 ;
 6288  int __cil_tmp3 ;
 6289  int __cil_tmp4 ;
 6290  int __cil_tmp5 ;
 6291
 6292  {
 6293  {
 6294#line 14
 6295  __cil_tmp2 = (int )8UL;
 6296#line 14
 6297  if (__cil_tmp2 == 1) {
 6298#line 14
 6299    goto case_1;
 6300  } else {
 6301    {
 6302#line 14
 6303    __cil_tmp3 = (int )8UL;
 6304#line 14
 6305    if (__cil_tmp3 == 2) {
 6306#line 14
 6307      goto case_2;
 6308    } else {
 6309      {
 6310#line 14
 6311      __cil_tmp4 = (int )8UL;
 6312#line 14
 6313      if (__cil_tmp4 == 4) {
 6314#line 14
 6315        goto case_4;
 6316      } else {
 6317        {
 6318#line 14
 6319        __cil_tmp5 = (int )8UL;
 6320#line 14
 6321        if (__cil_tmp5 == 8) {
 6322#line 14
 6323          goto case_8;
 6324        } else {
 6325#line 14
 6326          goto switch_default;
 6327#line 14
 6328          if (0) {
 6329            case_1: 
 6330#line 14
 6331/*            __asm__  ("mov"
 6332                      "b "
 6333                      "%%"
 6334                      "gs"
 6335                      ":"
 6336                      "%P"
 6337                      "1"
 6338                      ",%0": "=q" (pfo_ret__): "p" (& current_task));*/
 6339#line 14
 6340            goto switch_break;
 6341            case_2: 
 6342#line 14
 6343            __asm__  ("mov"
 6344                      "w "
 6345                      "%%"
 6346                      "gs"
 6347                      ":"
 6348                      "%P"
 6349                      "1"
 6350                      ",%0": "=r" (pfo_ret__): "p" (& current_task));
 6351#line 14
 6352            goto switch_break;
 6353            case_4: 
 6354#line 14
 6355/*            __asm__  ("mov"
 6356                      "l "
 6357                      "%%"
 6358                      "gs"
 6359                      ":"
 6360                      "%P"
 6361                      "1"
 6362                      ",%0": "=r" (pfo_ret__): "p" (& current_task));*/
 6363#line 14
 6364            goto switch_break;
 6365            case_8: 
 6366#line 14
 6367            __asm__  ("mov"
 6368                      "q "
 6369                      "%%"
 6370                      "gs"
 6371                      ":"
 6372                      "%P"
 6373                      "1"
 6374                      ",%0": "=r" (pfo_ret__): "p" (& current_task));
 6375#line 14
 6376            goto switch_break;
 6377            switch_default: 
 6378            {
 6379#line 14
 6380            __bad_percpu_size();
 6381            }
 6382          } else {
 6383            switch_break: ;
 6384          }
 6385        }
 6386        }
 6387      }
 6388      }
 6389    }
 6390    }
 6391  }
 6392  }
 6393#line 14
 6394  return (pfo_ret__);
 6395}
 6396}
 6397#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/cmpxchg_64.h"
 6398extern void __xchg_wrong_size(void) ;
 6399#line 27 "include/linux/err.h"
 6400__inline static long __attribute__((__warn_unused_result__))  PTR_ERR(void const   *ptr ) 
 6401{ 
 6402
 6403  {
 6404#line 29
 6405  return ((long )ptr);
 6406}
 6407}
 6408#line 32 "include/linux/err.h"
 6409__inline static long __attribute__((__warn_unused_result__))  IS_ERR(void const   *ptr ) 
 6410{ long tmp ;
 6411  unsigned long __cil_tmp3 ;
 6412  int __cil_tmp4 ;
 6413  int __cil_tmp5 ;
 6414  int __cil_tmp6 ;
 6415  long __cil_tmp7 ;
 6416
 6417  {
 6418  {
 6419#line 34
 6420  __cil_tmp3 = (unsigned long )ptr;
 6421#line 34
 6422  __cil_tmp4 = __cil_tmp3 >= 1152921504606842881UL;
 6423#line 34
 6424  __cil_tmp5 = ! __cil_tmp4;
 6425#line 34
 6426  __cil_tmp6 = ! __cil_tmp5;
 6427#line 34
 6428  __cil_tmp7 = (long )__cil_tmp6;
 6429#line 34
 6430  tmp = __builtin_expect(__cil_tmp7, 0L);
 6431  }
 6432#line 34
 6433  return (tmp);
 6434}
 6435}
 6436#line 217 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
 6437extern unsigned long kernel_stack  __attribute__((__section__(".data..percpu"))) ;
 6438#line 219 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
 6439__inline static struct thread_info *current_thread_info(void) 
 6440{ struct thread_info *ti ;
 6441  unsigned long pfo_ret__ ;
 6442  int __cil_tmp3 ;
 6443  int __cil_tmp4 ;
 6444  int __cil_tmp5 ;
 6445  int __cil_tmp6 ;
 6446  unsigned long __cil_tmp7 ;
 6447  unsigned long __cil_tmp8 ;
 6448  unsigned long __cil_tmp9 ;
 6449  unsigned long __cil_tmp10 ;
 6450  void *__cil_tmp11 ;
 6451
 6452  {
 6453  {
 6454#line 222
 6455  __cil_tmp3 = (int )8UL;
 6456#line 222
 6457  if (__cil_tmp3 == 1) {
 6458#line 222
 6459    goto case_1;
 6460  } else {
 6461    {
 6462#line 222
 6463    __cil_tmp4 = (int )8UL;
 6464#line 222
 6465    if (__cil_tmp4 == 2) {
 6466#line 222
 6467      goto case_2;
 6468    } else {
 6469      {
 6470#line 222
 6471      __cil_tmp5 = (int )8UL;
 6472#line 222
 6473      if (__cil_tmp5 == 4) {
 6474#line 222
 6475        goto case_4;
 6476      } else {
 6477        {
 6478#line 222
 6479        __cil_tmp6 = (int )8UL;
 6480#line 222
 6481        if (__cil_tmp6 == 8) {
 6482#line 222
 6483          goto case_8;
 6484        } else {
 6485#line 222
 6486          goto switch_default;
 6487#line 222
 6488          if (0) {
 6489            case_1: 
 6490#line 222
 6491/*            __asm__  ("mov"
 6492                      "b "
 6493                      "%%"
 6494                      "gs"
 6495                      ":"
 6496                      "%P"
 6497                      "1"
 6498                      ",%0": "=q" (pfo_ret__): "p" (& kernel_stack));*/
 6499#line 222
 6500            goto switch_break;
 6501            case_2: 
 6502#line 222
 6503            __asm__  ("mov"
 6504                      "w "
 6505                      "%%"
 6506                      "gs"
 6507                      ":"
 6508                      "%P"
 6509                      "1"
 6510                      ",%0": "=r" (pfo_ret__): "p" (& kernel_stack));
 6511#line 222
 6512            goto switch_break;
 6513            case_4: 
 6514#line 222
 6515/*            __asm__  ("mov"
 6516                      "l "
 6517                      "%%"
 6518                      "gs"
 6519                      ":"
 6520                      "%P"
 6521                      "1"
 6522                      ",%0": "=r" (pfo_ret__): "p" (& kernel_stack));*/
 6523#line 222
 6524            goto switch_break;
 6525            case_8: 
 6526#line 222
 6527            __asm__  ("mov"
 6528                      "q "
 6529                      "%%"
 6530                      "gs"
 6531                      ":"
 6532                      "%P"
 6533                      "1"
 6534                      ",%0": "=r" (pfo_ret__): "p" (& kernel_stack));
 6535#line 222
 6536            goto switch_break;
 6537            switch_default: 
 6538            {
 6539#line 222
 6540            __bad_percpu_size();
 6541            }
 6542          } else {
 6543            switch_break: ;
 6544          }
 6545        }
 6546        }
 6547      }
 6548      }
 6549    }
 6550    }
 6551  }
 6552  }
 6553#line 222
 6554  __cil_tmp7 = 1UL << 12;
 6555#line 222
 6556  __cil_tmp8 = __cil_tmp7 << 1;
 6557#line 222
 6558  __cil_tmp9 = pfo_ret__ + 40UL;
 6559#line 222
 6560  __cil_tmp10 = __cil_tmp9 - __cil_tmp8;
 6561#line 222
 6562  __cil_tmp11 = (void *)__cil_tmp10;
 6563#line 222
 6564  ti = (struct thread_info *)__cil_tmp11;
 6565#line 224
 6566  return (ti);
 6567}
 6568}
 6569#line 315 "include/linux/lockdep.h"
 6570extern void lock_acquire(struct lockdep_map *lock , unsigned int subclass , int trylock ,
 6571                         int read , int check , struct lockdep_map *nest_lock , unsigned long ip ) ;
 6572#line 319
 6573extern void lock_release(struct lockdep_map *lock , int nested , unsigned long ip ) ;
 6574#line 324
 6575extern int lock_is_held(struct lockdep_map *lock ) ;
 6576#line 551
 6577extern void lockdep_rcu_dereference(char const   *file , int line ) ;
 6578#line 93 "include/linux/spinlock.h"
 6579extern void __raw_spin_lock_init(raw_spinlock_t *lock , char const   *name , struct lock_class_key *key ) ;
 6580#line 29 "include/linux/spinlock_api_smp.h"
 6581extern void _raw_spin_lock_irq(raw_spinlock_t *lock )  __attribute__((__section__(".spinlock.text"))) ;
 6582#line 32
 6583extern unsigned long _raw_spin_lock_irqsave(raw_spinlock_t *lock )  __attribute__((__section__(".spinlock.text"))) ;
 6584#line 41
 6585extern void _raw_spin_unlock_irq(raw_spinlock_t *lock )  __attribute__((__section__(".spinlock.text"))) ;
 6586#line 42
 6587extern void _raw_spin_unlock_irqrestore(raw_spinlock_t *lock , unsigned long flags )  __attribute__((__section__(".spinlock.text"))) ;
 6588#line 272 "include/linux/spinlock.h"
 6589__inline static raw_spinlock_t *spinlock_check(spinlock_t *lock ) 
 6590{ 
 6591
 6592  {
 6593#line 274
 6594  return (& lock->__annonCompField18.rlock);
 6595}
 6596}
 6597#line 308 "include/linux/spinlock.h"
 6598__inline static void spin_lock_irq(spinlock_t *lock ) 
 6599{ struct raw_spinlock *__cil_tmp2 ;
 6600
 6601  {
 6602  {
 6603#line 310
 6604  __cil_tmp2 = & lock->__annonCompField18.rlock;
 6605#line 310
 6606  _raw_spin_lock_irq(__cil_tmp2);
 6607  }
 6608#line 311
 6609  return;
 6610}
 6611}
 6612#line 333 "include/linux/spinlock.h"
 6613__inline static void spin_unlock_irq(spinlock_t *lock ) 
 6614{ struct raw_spinlock *__cil_tmp2 ;
 6615
 6616  {
 6617  {
 6618#line 335
 6619  __cil_tmp2 = & lock->__annonCompField18.rlock;
 6620#line 335
 6621  _raw_spin_unlock_irq(__cil_tmp2);
 6622  }
 6623#line 336
 6624  return;
 6625}
 6626}
 6627#line 338 "include/linux/spinlock.h"
 6628__inline static void spin_unlock_irqrestore(spinlock_t *lock , unsigned long flags ) 
 6629{ struct raw_spinlock *__cil_tmp3 ;
 6630
 6631  {
 6632  {
 6633#line 340
 6634  while (1) {
 6635    while_continue: /* CIL Label */ ;
 6636    {
 6637#line 340
 6638    __cil_tmp3 = & lock->__annonCompField18.rlock;
 6639#line 340
 6640    _raw_spin_unlock_irqrestore(__cil_tmp3, flags);
 6641    }
 6642#line 340
 6643    goto while_break;
 6644  }
 6645  while_break___0: /* CIL Label */ ;
 6646  }
 6647
 6648  while_break: ;
 6649#line 341
 6650  return;
 6651}
 6652}
 6653#line 80 "include/linux/wait.h"
 6654extern void __init_waitqueue_head(wait_queue_head_t *q , struct lock_class_key * ) ;
 6655#line 105 "include/linux/wait.h"
 6656__inline static void init_waitqueue_func_entry(wait_queue_t *q , int (*func)(wait_queue_t *wait ,
 6657                                                                             unsigned int mode ,
 6658                                                                             int flags ,
 6659                                                                             void *key ) ) 
 6660{ 
 6661
 6662  {
 6663#line 108
 6664  q->flags = 0U;
 6665#line 109
 6666  q->private = (void *)0;
 6667#line 110
 6668  q->func = func;
 6669#line 111
 6670  return;
 6671}
 6672}
 6673#line 118
 6674extern void add_wait_queue(wait_queue_head_t *q , wait_queue_t *wait ) ;
 6675#line 120
 6676extern void remove_wait_queue(wait_queue_head_t *q , wait_queue_t *wait ) ;
 6677#line 156
 6678extern void __wake_up(wait_queue_head_t *q , unsigned int mode , int nr , void *key ) ;
 6679#line 584
 6680extern void prepare_to_wait(wait_queue_head_t *q , wait_queue_t *wait , int state ) ;
 6681#line 586
 6682extern void finish_wait(wait_queue_head_t *q , wait_queue_t *wait ) ;
 6683#line 589
 6684extern int autoremove_wake_function(wait_queue_t *wait , unsigned int mode , int sync ,
 6685                                    void *key ) ;
 6686#line 33 "include/linux/eventfd.h"
 6687extern void eventfd_ctx_put(struct eventfd_ctx *ctx ) ;
 6688#line 34
 6689extern struct file *eventfd_fget(int fd ) ;
 6690#line 36
 6691extern struct eventfd_ctx *eventfd_ctx_fileget(struct file *file ) ;
 6692#line 37
 6693extern int eventfd_signal(struct eventfd_ctx *ctx , int n ) ;
 6694#line 115 "include/linux/mutex.h"
 6695extern void __mutex_init(struct mutex *lock , char const   *name , struct lock_class_key *key ) ;
 6696#line 134
 6697extern void mutex_lock_nested(struct mutex *lock , unsigned int subclass ) ;
 6698#line 169
 6699extern void mutex_unlock(struct mutex *lock ) ;
 6700#line 433 "include/linux/mm.h"
 6701extern void put_page(struct page *page ) ;
 6702#line 720 "include/linux/mm.h"
 6703__inline static void *( __attribute__((__always_inline__)) lowmem_page_address)(struct page *page ) 
 6704{ struct page *__cil_tmp2 ;
 6705  int __cil_tmp3 ;
 6706  unsigned long __cil_tmp4 ;
 6707  phys_addr_t __cil_tmp5 ;
 6708  phys_addr_t __cil_tmp6 ;
 6709  unsigned long __cil_tmp7 ;
 6710  unsigned long __cil_tmp8 ;
 6711
 6712  {
 6713  {
 6714#line 722
 6715  __cil_tmp2 = (struct page *)1152897315351035904UL;
 6716#line 722
 6717  __cil_tmp3 = page - __cil_tmp2;
 6718#line 722
 6719  __cil_tmp4 = (unsigned long )__cil_tmp3;
 6720#line 722
 6721  __cil_tmp5 = (phys_addr_t )__cil_tmp4;
 6722#line 722
 6723  __cil_tmp6 = __cil_tmp5 << 12;
 6724#line 722
 6725  __cil_tmp7 = (unsigned long )__cil_tmp6;
 6726#line 722
 6727  __cil_tmp8 = __cil_tmp7 + 1152789563211513856UL;
 6728#line 722
 6729  return ((void *)__cil_tmp8);
 6730  }
 6731}
 6732}
 6733#line 985
 6734extern int get_user_pages_fast(unsigned long start , int nr_pages , int write , struct page **pages ) ;
 6735#line 1001
 6736extern int set_page_dirty_lock(struct page *page ) ;
 6737#line 80 "include/linux/rcupdate.h"
 6738extern void synchronize_sched(void) ;
 6739#line 110 "include/linux/rcupdate.h"
 6740__inline static void __rcu_read_lock(void) 
 6741{ 
 6742
 6743  {
 6744  {
 6745#line 112
 6746  while (1) {
 6747    while_continue: /* CIL Label */ ;
 6748
 6749#line 112
 6750    goto while_break;
 6751  }
 6752  while_break___0: /* CIL Label */ ;
 6753  }
 6754
 6755  while_break: ;
 6756#line 113
 6757  return;
 6758}
 6759}
 6760#line 120 "include/linux/rcupdate.h"
 6761__inline static void synchronize_rcu(void) 
 6762{ 
 6763
 6764  {
 6765  {
 6766#line 122
 6767  synchronize_sched();
 6768  }
 6769#line 123
 6770  return;
 6771}
 6772}
 6773#line 184
 6774extern struct lockdep_map rcu_lock_map ;
 6775#line 200
 6776extern int debug_lockdep_rcu_enabled(void) ;
 6777#line 214 "include/linux/rcupdate.h"
 6778__inline static int rcu_read_lock_held(void) 
 6779{ int tmp ;
 6780  int tmp___0 ;
 6781
 6782  {
 6783  {
 6784#line 216
 6785  tmp = debug_lockdep_rcu_enabled();
 6786  }
 6787#line 216
 6788  if (tmp) {
 6789
 6790  } else {
 6791#line 217
 6792    return (1);
 6793  }
 6794  {
 6795#line 218
 6796  tmp___0 = lock_is_held(& rcu_lock_map);
 6797  }
 6798#line 218
 6799  return (tmp___0);
 6800}
 6801}
 6802#line 590 "include/linux/rcupdate.h"
 6803__inline static void rcu_read_lock(void) 
 6804{ void *__cil_tmp1 ;
 6805  struct lockdep_map *__cil_tmp2 ;
 6806  void *__cil_tmp3 ;
 6807  unsigned long __cil_tmp4 ;
 6808
 6809  {
 6810  {
 6811#line 592
 6812  __rcu_read_lock();
 6813#line 594
 6814  __cil_tmp1 = (void *)0;
 6815#line 594
 6816  __cil_tmp2 = (struct lockdep_map *)__cil_tmp1;
 6817#line 594
 6818  __cil_tmp3 = (void *)0;
 6819#line 594
 6820  __cil_tmp4 = (unsigned long )__cil_tmp3;
 6821#line 594
 6822  lock_acquire(& rcu_lock_map, 0U, 0, 2, 1, __cil_tmp2, __cil_tmp4);
 6823  }
 6824#line 595
 6825  return;
 6826}
 6827}
 6828#line 612 "include/linux/rcupdate.h"
 6829__inline static void rcu_read_unlock(void) 
 6830{ void *__cil_tmp1 ;
 6831  unsigned long __cil_tmp2 ;
 6832
 6833  {
 6834  {
 6835#line 614
 6836  __cil_tmp1 = (void *)0;
 6837#line 614
 6838  __cil_tmp2 = (unsigned long )__cil_tmp1;
 6839#line 614
 6840  lock_release(& rcu_lock_map, 1, __cil_tmp2);
 6841#line 616
 6842  __rcu_read_lock();
 6843  }
 6844#line 617
 6845  return;
 6846}
 6847}
 6848#line 830
 6849extern void kfree(void const   * ) ;
 6850#line 153 "include/linux/virtio_ring.h"
 6851__inline static int vring_need_event(__u16 event_idx , __u16 new_idx , __u16 old ) 
 6852{ int __cil_tmp4 ;
 6853  int __cil_tmp5 ;
 6854  int __cil_tmp6 ;
 6855  __u16 __cil_tmp7 ;
 6856  int __cil_tmp8 ;
 6857  int __cil_tmp9 ;
 6858  int __cil_tmp10 ;
 6859  int __cil_tmp11 ;
 6860  int __cil_tmp12 ;
 6861  __u16 __cil_tmp13 ;
 6862  int __cil_tmp14 ;
 6863
 6864  {
 6865  {
 6866#line 160
 6867  __cil_tmp4 = (int )old;
 6868#line 160
 6869  __cil_tmp5 = (int )new_idx;
 6870#line 160
 6871  __cil_tmp6 = __cil_tmp5 - __cil_tmp4;
 6872#line 160
 6873  __cil_tmp7 = (__u16 )__cil_tmp6;
 6874#line 160
 6875  __cil_tmp8 = (int )__cil_tmp7;
 6876#line 160
 6877  __cil_tmp9 = (int )event_idx;
 6878#line 160
 6879  __cil_tmp10 = (int )new_idx;
 6880#line 160
 6881  __cil_tmp11 = __cil_tmp10 - __cil_tmp9;
 6882#line 160
 6883  __cil_tmp12 = __cil_tmp11 - 1;
 6884#line 160
 6885  __cil_tmp13 = (__u16 )__cil_tmp12;
 6886#line 160
 6887  __cil_tmp14 = (int )__cil_tmp13;
 6888#line 160
 6889  return (__cil_tmp14 < __cil_tmp8);
 6890  }
 6891}
 6892}
 6893#line 317 "include/linux/socket.h"
 6894extern int memcpy_fromiovec(unsigned char *kdata , struct iovec *iov , int len ) ;
 6895#line 221 "include/linux/slub_def.h"
 6896extern void *__kmalloc(size_t size , gfp_t flags ) ;
 6897#line 255 "include/linux/slub_def.h"
 6898__inline static void *( __attribute__((__always_inline__)) kmalloc)(size_t size ,
 6899                                                                    gfp_t flags ) 
 6900{ void *tmp___2 ;
 6901
 6902  {
 6903  {
 6904#line 270
 6905  tmp___2 = __kmalloc(size, flags);
 6906  }
 6907#line 270
 6908  return (tmp___2);
 6909}
 6910}
 6911#line 119 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess.h"
 6912extern int __get_user_bad(void) ;
 6913#line 220
 6914extern void __put_user_bad(void) ;
 6915#line 19 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
 6916extern unsigned long __attribute__((__warn_unused_result__))  copy_user_generic_string(void *to ,
 6917                                                                                       void const   *from ,
 6918                                                                                       unsigned int len ) ;
 6919#line 21
 6920extern unsigned long __attribute__((__warn_unused_result__))  copy_user_generic_unrolled(void *to ,
 6921                                                                                         void const   *from ,
 6922                                                                                         unsigned int len ) ;
 6923#line 24 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
 6924__inline static unsigned long __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) copy_user_generic)(void *to ,
 6925                                                                                                                               void const   *from ,
 6926                                                                                                                               unsigned int len ) 
 6927{ unsigned int ret ;
 6928
 6929  {
 6930#line 29
 6931  __asm__  volatile   ("661:\n\t"
 6932                       "call %P[old]"
 6933                       "\n662:\n"
 6934                       ".section .altinstructions,\"a\"\n"
 6935                       " "
 6936                       ".balign 8"
 6937                       " "
 6938                       "\n"
 6939                       " "
 6940                       ".quad"
 6941                       " "
 6942                       "661b\n"
 6943                       " "
 6944                       ".quad"
 6945                       " "
 6946                       "663f\n"
 6947                       "\t .word "
 6948                       "(3*32+16)"
 6949                       "\n"
 6950                       "\t .byte 662b-661b\n"
 6951                       "\t .byte 664f-663f\n"
 6952                       ".previous\n"
 6953                       ".section .discard,\"aw\",@progbits\n"
 6954                       "\t .byte 0xff + (664f-663f) - (662b-661b)\n"
 6955                       ".previous\n"
 6956                       ".section .altinstr_replacement, \"ax\"\n"
 6957                       "663:\n\t"
 6958                       "call %P[new]"
 6959                       "\n664:\n"
 6960                       ".previous": "=a" (ret), "=D" (to), "=S" (from), "=d" (len): [old] "i" (& copy_user_generic_unrolled),
 6961                       [new] "i" (& copy_user_generic_string), "1" (to), "2" (from),
 6962                       "3" (len): "memory", "rcx", "r8", "r9", "r10", "r11");
 6963#line 36
 6964  return ((unsigned long )ret);
 6965}
 6966}
 6967#line 39
 6968extern unsigned long __attribute__((__warn_unused_result__))  _copy_to_user(void *to ,
 6969                                                                            void const   *from ,
 6970                                                                            unsigned int len ) ;
 6971#line 41
 6972extern unsigned long __attribute__((__warn_unused_result__))  _copy_from_user(void *to ,
 6973                                                                              void const   *from ,
 6974                                                                              unsigned int len ) ;
 6975#line 46 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
 6976__inline static unsigned long __attribute__((__warn_unused_result__))  copy_from_user(void *to ,
 6977                                                                                      void const   *from ,
 6978                                                                                      unsigned long n ) 
 6979{ int sz ;
 6980  unsigned long tmp ;
 6981  int __ret_warn_on ;
 6982  long tmp___0 ;
 6983  int tmp___1 ;
 6984  long tmp___2 ;
 6985  unsigned long tmp___3 ;
 6986  unsigned long tmp___4 ;
 6987  unsigned long __cil_tmp12 ;
 6988  long __cil_tmp13 ;
 6989  unsigned int __cil_tmp14 ;
 6990  int __cil_tmp15 ;
 6991  int __cil_tmp16 ;
 6992  long __cil_tmp17 ;
 6993  int __cil_tmp18 ;
 6994  int __cil_tmp19 ;
 6995  int __cil_tmp20 ;
 6996  int __cil_tmp21 ;
 6997  long __cil_tmp22 ;
 6998
 6999  {
 7000  {
 7001#line 50
 7002  tmp = __builtin_object_size(to, 0);
 7003#line 50
 7004  sz = (int )tmp;
 7005#line 52
 7006  might_fault();
 7007  }
 7008#line 53
 7009  if (sz == -1) {
 7010#line 53
 7011    tmp___1 = 1;
 7012  } else {
 7013    {
 7014#line 53
 7015    __cil_tmp12 = (unsigned long )sz;
 7016#line 53
 7017    if (__cil_tmp12 >= n) {
 7018#line 53
 7019      tmp___1 = 1;
 7020    } else {
 7021#line 53
 7022      tmp___1 = 0;
 7023    }
 7024    }
 7025  }
 7026  {
 7027#line 53
 7028  __cil_tmp13 = (long )tmp___1;
 7029#line 53
 7030  tmp___2 = __builtin_expect(__cil_tmp13, 1L);
 7031  }
 7032#line 53
 7033  if (tmp___2) {
 7034    {
 7035#line 54
 7036    __cil_tmp14 = (unsigned int )n;
 7037#line 54
 7038    tmp___4 = (unsigned long )_copy_from_user(to, from, __cil_tmp14);
 7039#line 54
 7040    tmp___3 = tmp___4;
 7041#line 54
 7042    n = tmp___3;
 7043    }
 7044  } else {
 7045    {
 7046#line 57
 7047    __ret_warn_on = 1;
 7048#line 57
 7049    __cil_tmp15 = ! __ret_warn_on;
 7050#line 57
 7051    __cil_tmp16 = ! __cil_tmp15;
 7052#line 57
 7053    __cil_tmp17 = (long )__cil_tmp16;
 7054#line 57
 7055    tmp___0 = __builtin_expect(__cil_tmp17, 0L);
 7056    }
 7057#line 57
 7058    if (tmp___0) {
 7059      {
 7060#line 57
 7061      __cil_tmp18 = (int const   )57;
 7062#line 57
 7063      __cil_tmp19 = (int )__cil_tmp18;
 7064#line 57
 7065      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",
 7066                        __cil_tmp19, "Buffer overflow detected!\n");
 7067      }
 7068    } else {
 7069
 7070    }
 7071    {
 7072#line 57
 7073    __cil_tmp20 = ! __ret_warn_on;
 7074#line 57
 7075    __cil_tmp21 = ! __cil_tmp20;
 7076#line 57
 7077    __cil_tmp22 = (long )__cil_tmp21;
 7078#line 57
 7079    __builtin_expect(__cil_tmp22, 0L);
 7080    }
 7081  }
 7082#line 59
 7083  return (n);
 7084}
 7085}
 7086#line 62 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
 7087__inline static int __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) copy_to_user)(void *dst ,
 7088                                                                                                                void const   *src ,
 7089                                                                                                                unsigned int size ) 
 7090{ unsigned long tmp ;
 7091  unsigned long tmp___0 ;
 7092  unsigned long tmp___1 ;
 7093
 7094  {
 7095  {
 7096#line 65
 7097  might_fault();
 7098#line 67
 7099  tmp___1 = (unsigned long )_copy_to_user(dst, src, size);
 7100#line 67
 7101  tmp___0 = tmp___1;
 7102#line 67
 7103  tmp = tmp___0;
 7104  }
 7105#line 67
 7106  return ((int )tmp);
 7107}
 7108}
 7109#line 70 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
 7110__inline static int __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) __copy_from_user)(void *dst ,
 7111                                                                                                                    void const   *src ,
 7112                                                                                                                    unsigned int size ) 
 7113{ int ret ;
 7114  unsigned long tmp ;
 7115  long tmp___0 ;
 7116  long tmp___1 ;
 7117  unsigned long tmp___2 ;
 7118  unsigned long tmp___3 ;
 7119  unsigned long tmp___4 ;
 7120  unsigned long tmp___5 ;
 7121  unsigned long tmp___6 ;
 7122  void *__cil_tmp13 ;
 7123  void const   *__cil_tmp14 ;
 7124  int __cil_tmp15 ;
 7125  int __cil_tmp16 ;
 7126  int __cil_tmp17 ;
 7127  int __cil_tmp18 ;
 7128  int __cil_tmp19 ;
 7129  int __cil_tmp20 ;
 7130  u8 *__cil_tmp21 ;
 7131  u8 *__cil_tmp22 ;
 7132  struct __large_struct *__cil_tmp23 ;
 7133  u16 *__cil_tmp24 ;
 7134  u16 *__cil_tmp25 ;
 7135  struct __large_struct *__cil_tmp26 ;
 7136  u32 *__cil_tmp27 ;
 7137  u32 *__cil_tmp28 ;
 7138  struct __large_struct *__cil_tmp29 ;
 7139  u64 *__cil_tmp30 ;
 7140  u64 *__cil_tmp31 ;
 7141  struct __large_struct *__cil_tmp32 ;
 7142  u64 *__cil_tmp33 ;
 7143  u64 *__cil_tmp34 ;
 7144  struct __large_struct *__cil_tmp35 ;
 7145  int __cil_tmp36 ;
 7146  int __cil_tmp37 ;
 7147  long __cil_tmp38 ;
 7148  char *__cil_tmp39 ;
 7149  char *__cil_tmp40 ;
 7150  u16 *__cil_tmp41 ;
 7151  char *__cil_tmp42 ;
 7152  char *__cil_tmp43 ;
 7153  u16 *__cil_tmp44 ;
 7154  struct __large_struct *__cil_tmp45 ;
 7155  u64 *__cil_tmp46 ;
 7156  u64 *__cil_tmp47 ;
 7157  struct __large_struct *__cil_tmp48 ;
 7158  int __cil_tmp49 ;
 7159  int __cil_tmp50 ;
 7160  long __cil_tmp51 ;
 7161  char *__cil_tmp52 ;
 7162  char *__cil_tmp53 ;
 7163  u64 *__cil_tmp54 ;
 7164  char *__cil_tmp55 ;
 7165  char *__cil_tmp56 ;
 7166  u64 *__cil_tmp57 ;
 7167  struct __large_struct *__cil_tmp58 ;
 7168  void *__cil_tmp59 ;
 7169  void const   *__cil_tmp60 ;
 7170
 7171  {
 7172  {
 7173#line 73
 7174  ret = 0;
 7175#line 75
 7176  might_fault();
 7177#line 77
 7178  __cil_tmp13 = (void *)src;
 7179#line 77
 7180  __cil_tmp14 = (void const   *)__cil_tmp13;
 7181#line 77
 7182  tmp___5 = (unsigned long )copy_user_generic(dst, __cil_tmp14, size);
 7183#line 77
 7184  tmp___3 = tmp___5;
 7185#line 77
 7186  tmp = tmp___3;
 7187  }
 7188#line 77
 7189  return ((int )tmp);
 7190  {
 7191#line 79
 7192  __cil_tmp15 = (int )size;
 7193#line 79
 7194  if (__cil_tmp15 == 1) {
 7195#line 79
 7196    goto case_1;
 7197  } else {
 7198    {
 7199#line 82
 7200    __cil_tmp16 = (int )size;
 7201#line 82
 7202    if (__cil_tmp16 == 2) {
 7203#line 82
 7204      goto case_2;
 7205    } else {
 7206      {
 7207#line 85
 7208      __cil_tmp17 = (int )size;
 7209#line 85
 7210      if (__cil_tmp17 == 4) {
 7211#line 85
 7212        goto case_4;
 7213      } else {
 7214        {
 7215#line 88
 7216        __cil_tmp18 = (int )size;
 7217#line 88
 7218        if (__cil_tmp18 == 8) {
 7219#line 88
 7220          goto case_8;
 7221        } else {
 7222          {
 7223#line 91
 7224          __cil_tmp19 = (int )size;
 7225#line 91
 7226          if (__cil_tmp19 == 10) {
 7227#line 91
 7228            goto case_10;
 7229          } else {
 7230            {
 7231#line 100
 7232            __cil_tmp20 = (int )size;
 7233#line 100
 7234            if (__cil_tmp20 == 16) {
 7235#line 100
 7236              goto case_16;
 7237            } else {
 7238#line 109
 7239              goto switch_default;
 7240#line 78
 7241              if (0) {
 7242                case_1: 
 7243#line 79
 7244                __cil_tmp21 = (u8 *)dst;
 7245#line 79
 7246                __cil_tmp22 = (u8 *)src;
 7247#line 79
 7248                __cil_tmp23 = (struct __large_struct *)__cil_tmp22;
 7249#line 79
 7250                __asm__  volatile   ("1:\tmov"
 7251                                     "b"
 7252                                     " %2,%"
 7253                                     "b"
 7254                                     "1\n"
 7255                                     "2:\n"
 7256                                     ".section .fixup,\"ax\"\n"
 7257                                     "3:\tmov %3,%0\n"
 7258                                     "\txor"
 7259                                     "b"
 7260                                     " %"
 7261                                     "b"
 7262                                     "1,%"
 7263                                     "b"
 7264                                     "1\n"
 7265                                     "\tjmp 2b\n"
 7266                                     ".previous\n"
 7267                                     " .section __ex_table,\"a\"\n"
 7268                                     " "
 7269                                     ".balign 8"
 7270                                     " "
 7271                                     "\n"
 7272                                     " "
 7273                                     ".quad"
 7274                                     " "
 7275                                     "1b"
 7276                                     ","
 7277                                     "3b"
 7278                                     "\n"
 7279                                     " .previous\n": "=r" (ret), "=q" (*__cil_tmp21): "m" (*__cil_tmp23),
 7280                                     "i" (1), "0" (ret));
 7281#line 81
 7282                return (ret);
 7283                case_2: 
 7284#line 82
 7285                __cil_tmp24 = (u16 *)dst;
 7286#line 82
 7287                __cil_tmp25 = (u16 *)src;
 7288#line 82
 7289                __cil_tmp26 = (struct __large_struct *)__cil_tmp25;
 7290#line 82
 7291                __asm__  volatile   ("1:\tmov"
 7292                                     "w"
 7293                                     " %2,%"
 7294                                     "w"
 7295                                     "1\n"
 7296                                     "2:\n"
 7297                                     ".section .fixup,\"ax\"\n"
 7298                                     "3:\tmov %3,%0\n"
 7299                                     "\txor"
 7300                                     "w"
 7301                                     " %"
 7302                                     "w"
 7303                                     "1,%"
 7304                                     "w"
 7305                                     "1\n"
 7306                                     "\tjmp 2b\n"
 7307                                     ".previous\n"
 7308                                     " .section __ex_table,\"a\"\n"
 7309                                     " "
 7310                                     ".balign 8"
 7311                                     " "
 7312                                     "\n"
 7313                                     " "
 7314                                     ".quad"
 7315                                     " "
 7316                                     "1b"
 7317                                     ","
 7318                                     "3b"
 7319                                     "\n"
 7320                                     " .previous\n": "=r" (ret), "=r" (*__cil_tmp24): "m" (*__cil_tmp26),
 7321                                     "i" (2), "0" (ret));
 7322#line 84
 7323                return (ret);
 7324                case_4: 
 7325#line 85
 7326                __cil_tmp27 = (u32 *)dst;
 7327#line 85
 7328                __cil_tmp28 = (u32 *)src;
 7329#line 85
 7330                __cil_tmp29 = (struct __large_struct *)__cil_tmp28;
 7331#line 85
 7332                __asm__  volatile   ("1:\tmov"
 7333                                     "l"
 7334                                     " %2,%"
 7335                                     "k"
 7336                                     "1\n"
 7337                                     "2:\n"
 7338                                     ".section .fixup,\"ax\"\n"
 7339                                     "3:\tmov %3,%0\n"
 7340                                     "\txor"
 7341                                     "l"
 7342                                     " %"
 7343                                     "k"
 7344                                     "1,%"
 7345                                     "k"
 7346                                     "1\n"
 7347                                     "\tjmp 2b\n"
 7348                                     ".previous\n"
 7349                                     " .section __ex_table,\"a\"\n"
 7350                                     " "
 7351                                     ".balign 8"
 7352                                     " "
 7353                                     "\n"
 7354                                     " "
 7355                                     ".quad"
 7356                                     " "
 7357                                     "1b"
 7358                                     ","
 7359                                     "3b"
 7360                                     "\n"
 7361                                     " .previous\n": "=r" (ret), "=r" (*__cil_tmp27): "m" (*__cil_tmp29),
 7362                                     "i" (4), "0" (ret));
 7363#line 87
 7364                return (ret);
 7365                case_8: 
 7366#line 88
 7367                __cil_tmp30 = (u64 *)dst;
 7368#line 88
 7369                __cil_tmp31 = (u64 *)src;
 7370#line 88
 7371                __cil_tmp32 = (struct __large_struct *)__cil_tmp31;
 7372#line 88
 7373                __asm__  volatile   ("1:\tmov"
 7374                                     "q"
 7375                                     " %2,%"
 7376                                     ""
 7377                                     "1\n"
 7378                                     "2:\n"
 7379                                     ".section .fixup,\"ax\"\n"
 7380                                     "3:\tmov %3,%0\n"
 7381                                     "\txor"
 7382                                     "q"
 7383                                     " %"
 7384                                     ""
 7385                                     "1,%"
 7386                                     ""
 7387                                     "1\n"
 7388                                     "\tjmp 2b\n"
 7389                                     ".previous\n"
 7390                                     " .section __ex_table,\"a\"\n"
 7391                                     " "
 7392                                     ".balign 8"
 7393                                     " "
 7394                                     "\n"
 7395                                     " "
 7396                                     ".quad"
 7397                                     " "
 7398                                     "1b"
 7399                                     ","
 7400                                     "3b"
 7401                                     "\n"
 7402                                     " .previous\n": "=r" (ret), "=r" (*__cil_tmp30): "m" (*__cil_tmp32),
 7403                                     "i" (8), "0" (ret));
 7404#line 90
 7405                return (ret);
 7406                case_10: 
 7407                {
 7408#line 92
 7409                __cil_tmp33 = (u64 *)dst;
 7410#line 92
 7411                __cil_tmp34 = (u64 *)src;
 7412#line 92
 7413                __cil_tmp35 = (struct __large_struct *)__cil_tmp34;
 7414#line 92
 7415                __asm__  volatile   ("1:\tmov"
 7416                                     "q"
 7417                                     " %2,%"
 7418                                     ""
 7419                                     "1\n"
 7420                                     "2:\n"
 7421                                     ".section .fixup,\"ax\"\n"
 7422                                     "3:\tmov %3,%0\n"
 7423                                     "\txor"
 7424                                     "q"
 7425                                     " %"
 7426                                     ""
 7427                                     "1,%"
 7428                                     ""
 7429                                     "1\n"
 7430                                     "\tjmp 2b\n"
 7431                                     ".previous\n"
 7432                                     " .section __ex_table,\"a\"\n"
 7433                                     " "
 7434                                     ".balign 8"
 7435                                     " "
 7436                                     "\n"
 7437                                     " "
 7438                                     ".quad"
 7439                                     " "
 7440                                     "1b"
 7441                                     ","
 7442                                     "3b"
 7443                                     "\n"
 7444                                     " .previous\n": "=r" (ret), "=r" (*__cil_tmp33): "m" (*__cil_tmp35),
 7445                                     "i" (10), "0" (ret));
 7446#line 94
 7447                __cil_tmp36 = ! ret;
 7448#line 94
 7449                __cil_tmp37 = ! __cil_tmp36;
 7450#line 94
 7451                __cil_tmp38 = (long )__cil_tmp37;
 7452#line 94
 7453                tmp___0 = __builtin_expect(__cil_tmp38, 0L);
 7454                }
 7455#line 94
 7456                if (tmp___0) {
 7457#line 95
 7458                  return (ret);
 7459                } else {
 7460
 7461                }
 7462#line 96
 7463                __cil_tmp39 = (char *)dst;
 7464#line 96
 7465                __cil_tmp40 = __cil_tmp39 + 8;
 7466#line 96
 7467                __cil_tmp41 = (u16 *)__cil_tmp40;
 7468#line 96
 7469                __cil_tmp42 = (char *)src;
 7470#line 96
 7471                __cil_tmp43 = __cil_tmp42 + 8;
 7472#line 96
 7473                __cil_tmp44 = (u16 *)__cil_tmp43;
 7474#line 96
 7475                __cil_tmp45 = (struct __large_struct *)__cil_tmp44;
 7476#line 96
 7477                __asm__  volatile   ("1:\tmov"
 7478                                     "w"
 7479                                     " %2,%"
 7480                                     "w"
 7481                                     "1\n"
 7482                                     "2:\n"
 7483                                     ".section .fixup,\"ax\"\n"
 7484                                     "3:\tmov %3,%0\n"
 7485                                     "\txor"
 7486                                     "w"
 7487                                     " %"
 7488                                     "w"
 7489                                     "1,%"
 7490                                     "w"
 7491                                     "1\n"
 7492                                     "\tjmp 2b\n"
 7493                                     ".previous\n"
 7494                                     " .section __ex_table,\"a\"\n"
 7495                                     " "
 7496                                     ".balign 8"
 7497                                     " "
 7498                                     "\n"
 7499                                     " "
 7500                                     ".quad"
 7501                                     " "
 7502                                     "1b"
 7503                                     ","
 7504                                     "3b"
 7505                                     "\n"
 7506                                     " .previous\n": "=r" (ret), "=r" (*__cil_tmp41): "m" (*__cil_tmp45),
 7507                                     "i" (2), "0" (ret));
 7508#line 99
 7509                return (ret);
 7510                case_16: 
 7511                {
 7512#line 101
 7513                __cil_tmp46 = (u64 *)dst;
 7514#line 101
 7515                __cil_tmp47 = (u64 *)src;
 7516#line 101
 7517                __cil_tmp48 = (struct __large_struct *)__cil_tmp47;
 7518#line 101
 7519                __asm__  volatile   ("1:\tmov"
 7520                                     "q"
 7521                                     " %2,%"
 7522                                     ""
 7523                                     "1\n"
 7524                                     "2:\n"
 7525                                     ".section .fixup,\"ax\"\n"
 7526                                     "3:\tmov %3,%0\n"
 7527                                     "\txor"
 7528                                     "q"
 7529                                     " %"
 7530                                     ""
 7531                                     "1,%"
 7532                                     ""
 7533                                     "1\n"
 7534                                     "\tjmp 2b\n"
 7535                                     ".previous\n"
 7536                                     " .section __ex_table,\"a\"\n"
 7537                                     " "
 7538                                     ".balign 8"
 7539                                     " "
 7540                                     "\n"
 7541                                     " "
 7542                                     ".quad"
 7543                                     " "
 7544                                     "1b"
 7545                                     ","
 7546                                     "3b"
 7547                                     "\n"
 7548                                     " .previous\n": "=r" (ret), "=r" (*__cil_tmp46): "m" (*__cil_tmp48),
 7549                                     "i" (16), "0" (ret));
 7550#line 103
 7551                __cil_tmp49 = ! ret;
 7552#line 103
 7553                __cil_tmp50 = ! __cil_tmp49;
 7554#line 103
 7555                __cil_tmp51 = (long )__cil_tmp50;
 7556#line 103
 7557                tmp___1 = __builtin_expect(__cil_tmp51, 0L);
 7558                }
 7559#line 103
 7560                if (tmp___1) {
 7561#line 104
 7562                  return (ret);
 7563                } else {
 7564
 7565                }
 7566#line 105
 7567                __cil_tmp52 = (char *)dst;
 7568#line 105
 7569                __cil_tmp53 = __cil_tmp52 + 8;
 7570#line 105
 7571                __cil_tmp54 = (u64 *)__cil_tmp53;
 7572#line 105
 7573                __cil_tmp55 = (char *)src;
 7574#line 105
 7575                __cil_tmp56 = __cil_tmp55 + 8;
 7576#line 105
 7577                __cil_tmp57 = (u64 *)__cil_tmp56;
 7578#line 105
 7579                __cil_tmp58 = (struct __large_struct *)__cil_tmp57;
 7580#line 105
 7581                __asm__  volatile   ("1:\tmov"
 7582                                     "q"
 7583                                     " %2,%"
 7584                                     ""
 7585                                     "1\n"
 7586                                     "2:\n"
 7587                                     ".section .fixup,\"ax\"\n"
 7588                                     "3:\tmov %3,%0\n"
 7589                                     "\txor"
 7590                                     "q"
 7591                                     " %"
 7592                                     ""
 7593                                     "1,%"
 7594                                     ""
 7595                                     "1\n"
 7596                                     "\tjmp 2b\n"
 7597                                     ".previous\n"
 7598                                     " .section __ex_table,\"a\"\n"
 7599                                     " "
 7600                                     ".balign 8"
 7601                                     " "
 7602                                     "\n"
 7603                                     " "
 7604                                     ".quad"
 7605                                     " "
 7606                                     "1b"
 7607                                     ","
 7608                                     "3b"
 7609                                     "\n"
 7610                                     " .previous\n": "=r" (ret), "=r" (*__cil_tmp54): "m" (*__cil_tmp58),
 7611                                     "i" (8), "0" (ret));
 7612#line 108
 7613                return (ret);
 7614                switch_default: 
 7615                {
 7616#line 110
 7617                __cil_tmp59 = (void *)src;
 7618#line 110
 7619                __cil_tmp60 = (void const   *)__cil_tmp59;
 7620#line 110
 7621                tmp___6 = (unsigned long )copy_user_generic(dst, __cil_tmp60, size);
 7622#line 110
 7623                tmp___4 = tmp___6;
 7624#line 110
 7625                tmp___2 = tmp___4;
 7626                }
 7627#line 110
 7628                return ((int )tmp___2);
 7629              } else {
 7630
 7631              }
 7632            }
 7633            }
 7634          }
 7635          }
 7636        }
 7637        }
 7638      }
 7639      }
 7640    }
 7641    }
 7642  }
 7643  }
 7644}
 7645}
 7646#line 114 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
 7647__inline static int __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) __copy_to_user)(void *dst ,
 7648                                                                                                                  void const   *src ,
 7649                                                                                                                  unsigned int size ) 
 7650{ int ret ;
 7651  unsigned long tmp ;
 7652  long tmp___0 ;
 7653  long tmp___1 ;
 7654  unsigned long tmp___2 ;
 7655  unsigned long tmp___3 ;
 7656  unsigned long tmp___4 ;
 7657  unsigned long tmp___5 ;
 7658  unsigned long tmp___6 ;
 7659  int __cil_tmp13 ;
 7660  int __cil_tmp14 ;
 7661  int __cil_tmp15 ;
 7662  int __cil_tmp16 ;
 7663  int __cil_tmp17 ;
 7664  int __cil_tmp18 ;
 7665  u8 *__cil_tmp19 ;
 7666  u8 *__cil_tmp20 ;
 7667  struct __large_struct *__cil_tmp21 ;
 7668  u16 *__cil_tmp22 ;
 7669  u16 *__cil_tmp23 ;
 7670  struct __large_struct *__cil_tmp24 ;
 7671  u32 *__cil_tmp25 ;
 7672  u32 *__cil_tmp26 ;
 7673  struct __large_struct *__cil_tmp27 ;
 7674  u64 *__cil_tmp28 ;
 7675  u64 *__cil_tmp29 ;
 7676  struct __large_struct *__cil_tmp30 ;
 7677  u64 *__cil_tmp31 ;
 7678  u64 *__cil_tmp32 ;
 7679  struct __large_struct *__cil_tmp33 ;
 7680  int __cil_tmp34 ;
 7681  int __cil_tmp35 ;
 7682  long __cil_tmp36 ;
 7683  u16 *__cil_tmp37 ;
 7684  u16 *__cil_tmp38 ;
 7685  u16 *__cil_tmp39 ;
 7686  u16 *__cil_tmp40 ;
 7687  struct __large_struct *__cil_tmp41 ;
 7688  u64 *__cil_tmp42 ;
 7689  u64 *__cil_tmp43 ;
 7690  struct __large_struct *__cil_tmp44 ;
 7691  int __cil_tmp45 ;
 7692  int __cil_tmp46 ;
 7693  long __cil_tmp47 ;
 7694  u64 *__cil_tmp48 ;
 7695  u64 *__cil_tmp49 ;
 7696  u64 *__cil_tmp50 ;
 7697  u64 *__cil_tmp51 ;
 7698  struct __large_struct *__cil_tmp52 ;
 7699
 7700  {
 7701  {
 7702#line 117
 7703  ret = 0;
 7704#line 119
 7705  might_fault();
 7706#line 121
 7707  tmp___5 = (unsigned long )copy_user_generic(dst, src, size);
 7708#line 121
 7709  tmp___3 = tmp___5;
 7710#line 121
 7711  tmp = tmp___3;
 7712  }
 7713#line 121
 7714  return ((int )tmp);
 7715  {
 7716#line 123
 7717  __cil_tmp13 = (int )size;
 7718#line 123
 7719  if (__cil_tmp13 == 1) {
 7720#line 123
 7721    goto case_1;
 7722  } else {
 7723    {
 7724#line 126
 7725    __cil_tmp14 = (int )size;
 7726#line 126
 7727    if (__cil_tmp14 == 2) {
 7728#line 126
 7729      goto case_2;
 7730    } else {
 7731      {
 7732#line 129
 7733      __cil_tmp15 = (int )size;
 7734#line 129
 7735      if (__cil_tmp15 == 4) {
 7736#line 129
 7737        goto case_4;
 7738      } else {
 7739        {
 7740#line 132
 7741        __cil_tmp16 = (int )size;
 7742#line 132
 7743        if (__cil_tmp16 == 8) {
 7744#line 132
 7745          goto case_8;
 7746        } else {
 7747          {
 7748#line 135
 7749          __cil_tmp17 = (int )size;
 7750#line 135
 7751          if (__cil_tmp17 == 10) {
 7752#line 135
 7753            goto case_10;
 7754          } else {
 7755            {
 7756#line 144
 7757            __cil_tmp18 = (int )size;
 7758#line 144
 7759            if (__cil_tmp18 == 16) {
 7760#line 144
 7761              goto case_16;
 7762            } else {
 7763#line 153
 7764              goto switch_default;
 7765#line 122
 7766              if (0) {
 7767                case_1: 
 7768#line 123
 7769                __cil_tmp19 = (u8 *)src;
 7770#line 123
 7771                __cil_tmp20 = (u8 *)dst;
 7772#line 123
 7773                __cil_tmp21 = (struct __large_struct *)__cil_tmp20;
 7774#line 123
 7775                __asm__  volatile   ("1:\tmov"
 7776                                     "b"
 7777                                     " %"
 7778                                     "b"
 7779                                     "1,%2\n"
 7780                                     "2:\n"
 7781                                     ".section .fixup,\"ax\"\n"
 7782                                     "3:\tmov %3,%0\n"
 7783                                     "\tjmp 2b\n"
 7784                                     ".previous\n"
 7785                                     " .section __ex_table,\"a\"\n"
 7786                                     " "
 7787                                     ".balign 8"
 7788                                     " "
 7789                                     "\n"
 7790                                     " "
 7791                                     ".quad"
 7792                                     " "
 7793                                     "1b"
 7794                                     ","
 7795                                     "3b"
 7796                                     "\n"
 7797                                     " .previous\n": "=r" (ret): "iq" (*__cil_tmp19),
 7798                                     "m" (*__cil_tmp21), "i" (1), "0" (ret));
 7799#line 125
 7800                return (ret);
 7801                case_2: 
 7802#line 126
 7803                __cil_tmp22 = (u16 *)src;
 7804#line 126
 7805                __cil_tmp23 = (u16 *)dst;
 7806#line 126
 7807                __cil_tmp24 = (struct __large_struct *)__cil_tmp23;
 7808#line 126
 7809                __asm__  volatile   ("1:\tmov"
 7810                                     "w"
 7811                                     " %"
 7812                                     "w"
 7813                                     "1,%2\n"
 7814                                     "2:\n"
 7815                                     ".section .fixup,\"ax\"\n"
 7816                                     "3:\tmov %3,%0\n"
 7817                                     "\tjmp 2b\n"
 7818                                     ".previous\n"
 7819                                     " .section __ex_table,\"a\"\n"
 7820                                     " "
 7821                                     ".balign 8"
 7822                                     " "
 7823                                     "\n"
 7824                                     " "
 7825                                     ".quad"
 7826                                     " "
 7827                                     "1b"
 7828                                     ","
 7829                                     "3b"
 7830                                     "\n"
 7831                                     " .previous\n": "=r" (ret): "ir" (*__cil_tmp22),
 7832                                     "m" (*__cil_tmp24), "i" (2), "0" (ret));
 7833#line 128
 7834                return (ret);
 7835                case_4: 
 7836#line 129
 7837                __cil_tmp25 = (u32 *)src;
 7838#line 129
 7839                __cil_tmp26 = (u32 *)dst;
 7840#line 129
 7841                __cil_tmp27 = (struct __large_struct *)__cil_tmp26;
 7842#line 129
 7843                __asm__  volatile   ("1:\tmov"
 7844                                     "l"
 7845                                     " %"
 7846                                     "k"
 7847                                     "1,%2\n"
 7848                                     "2:\n"
 7849                                     ".section .fixup,\"ax\"\n"
 7850                                     "3:\tmov %3,%0\n"
 7851                                     "\tjmp 2b\n"
 7852                                     ".previous\n"
 7853                                     " .section __ex_table,\"a\"\n"
 7854                                     " "
 7855                                     ".balign 8"
 7856                                     " "
 7857                                     "\n"
 7858                                     " "
 7859                                     ".quad"
 7860                                     " "
 7861                                     "1b"
 7862                                     ","
 7863                                     "3b"
 7864                                     "\n"
 7865                                     " .previous\n": "=r" (ret): "ir" (*__cil_tmp25),
 7866                                     "m" (*__cil_tmp27), "i" (4), "0" (ret));
 7867#line 131
 7868                return (ret);
 7869                case_8: 
 7870#line 132
 7871                __cil_tmp28 = (u64 *)src;
 7872#line 132
 7873                __cil_tmp29 = (u64 *)dst;
 7874#line 132
 7875                __cil_tmp30 = (struct __large_struct *)__cil_tmp29;
 7876#line 132
 7877                __asm__  volatile   ("1:\tmov"
 7878                                     "q"
 7879                                     " %"
 7880                                     ""
 7881                                     "1,%2\n"
 7882                                     "2:\n"
 7883                                     ".section .fixup,\"ax\"\n"
 7884                                     "3:\tmov %3,%0\n"
 7885                                     "\tjmp 2b\n"
 7886                                     ".previous\n"
 7887                                     " .section __ex_table,\"a\"\n"
 7888                                     " "
 7889                                     ".balign 8"
 7890                                     " "
 7891                                     "\n"
 7892                                     " "
 7893                                     ".quad"
 7894                                     " "
 7895                                     "1b"
 7896                                     ","
 7897                                     "3b"
 7898                                     "\n"
 7899                                     " .previous\n": "=r" (ret): "er" (*__cil_tmp28),
 7900                                     "m" (*__cil_tmp30), "i" (8), "0" (ret));
 7901#line 134
 7902                return (ret);
 7903                case_10: 
 7904                {
 7905#line 136
 7906                __cil_tmp31 = (u64 *)src;
 7907#line 136
 7908                __cil_tmp32 = (u64 *)dst;
 7909#line 136
 7910                __cil_tmp33 = (struct __large_struct *)__cil_tmp32;
 7911#line 136
 7912                __asm__  volatile   ("1:\tmov"
 7913                                     "q"
 7914                                     " %"
 7915                                     ""
 7916                                     "1,%2\n"
 7917                                     "2:\n"
 7918                                     ".section .fixup,\"ax\"\n"
 7919                                     "3:\tmov %3,%0\n"
 7920                                     "\tjmp 2b\n"
 7921                                     ".previous\n"
 7922                                     " .section __ex_table,\"a\"\n"
 7923                                     " "
 7924                                     ".balign 8"
 7925                                     " "
 7926                                     "\n"
 7927                                     " "
 7928                                     ".quad"
 7929                                     " "
 7930                                     "1b"
 7931                                     ","
 7932                                     "3b"
 7933                                     "\n"
 7934                                     " .previous\n": "=r" (ret): "er" (*__cil_tmp31),
 7935                                     "m" (*__cil_tmp33), "i" (10), "0" (ret));
 7936#line 138
 7937                __cil_tmp34 = ! ret;
 7938#line 138
 7939                __cil_tmp35 = ! __cil_tmp34;
 7940#line 138
 7941                __cil_tmp36 = (long )__cil_tmp35;
 7942#line 138
 7943                tmp___0 = __builtin_expect(__cil_tmp36, 0L);
 7944                }
 7945#line 138
 7946                if (tmp___0) {
 7947#line 139
 7948                  return (ret);
 7949                } else {
 7950
 7951                }
 7952#line 140
 7953                __asm__  ("": : : "memory");
 7954#line 141
 7955                __cil_tmp37 = (u16 *)src;
 7956#line 141
 7957                __cil_tmp38 = __cil_tmp37 + 4;
 7958#line 141
 7959                __cil_tmp39 = (u16 *)dst;
 7960#line 141
 7961                __cil_tmp40 = __cil_tmp39 + 4;
 7962#line 141
 7963                __cil_tmp41 = (struct __large_struct *)__cil_tmp40;
 7964#line 141
 7965                __asm__  volatile   ("1:\tmov"
 7966                                     "w"
 7967                                     " %"
 7968                                     "w"
 7969                                     "1,%2\n"
 7970                                     "2:\n"
 7971                                     ".section .fixup,\"ax\"\n"
 7972                                     "3:\tmov %3,%0\n"
 7973                                     "\tjmp 2b\n"
 7974                                     ".previous\n"
 7975                                     " .section __ex_table,\"a\"\n"
 7976                                     " "
 7977                                     ".balign 8"
 7978                                     " "
 7979                                     "\n"
 7980                                     " "
 7981                                     ".quad"
 7982                                     " "
 7983                                     "1b"
 7984                                     ","
 7985                                     "3b"
 7986                                     "\n"
 7987                                     " .previous\n": "=r" (ret): "ir" (*__cil_tmp38),
 7988                                     "m" (*__cil_tmp41), "i" (2), "0" (ret));
 7989#line 143
 7990                return (ret);
 7991                case_16: 
 7992                {
 7993#line 145
 7994                __cil_tmp42 = (u64 *)src;
 7995#line 145
 7996                __cil_tmp43 = (u64 *)dst;
 7997#line 145
 7998                __cil_tmp44 = (struct __large_struct *)__cil_tmp43;
 7999#line 145
 8000                __asm__  volatile   ("1:\tmov"
 8001                                     "q"
 8002                                     " %"
 8003                                     ""
 8004                                     "1,%2\n"
 8005                                     "2:\n"
 8006                                     ".section .fixup,\"ax\"\n"
 8007                                     "3:\tmov %3,%0\n"
 8008                                     "\tjmp 2b\n"
 8009                                     ".previous\n"
 8010                                     " .section __ex_table,\"a\"\n"
 8011                                     " "
 8012                                     ".balign 8"
 8013                                     " "
 8014                                     "\n"
 8015                                     " "
 8016                                     ".quad"
 8017                                     " "
 8018                                     "1b"
 8019                                     ","
 8020                                     "3b"
 8021                                     "\n"
 8022                                     " .previous\n": "=r" (ret): "er" (*__cil_tmp42),
 8023                                     "m" (*__cil_tmp44), "i" (16), "0" (ret));
 8024#line 147
 8025                __cil_tmp45 = ! ret;
 8026#line 147
 8027                __cil_tmp46 = ! __cil_tmp45;
 8028#line 147
 8029                __cil_tmp47 = (long )__cil_tmp46;
 8030#line 147
 8031                tmp___1 = __builtin_expect(__cil_tmp47, 0L);
 8032                }
 8033#line 147
 8034                if (tmp___1) {
 8035#line 148
 8036                  return (ret);
 8037                } else {
 8038
 8039                }
 8040#line 149
 8041                __asm__  ("": : : "memory");
 8042#line 150
 8043                __cil_tmp48 = (u64 *)src;
 8044#line 150
 8045                __cil_tmp49 = __cil_tmp48 + 1;
 8046#line 150
 8047                __cil_tmp50 = (u64 *)dst;
 8048#line 150
 8049                __cil_tmp51 = __cil_tmp50 + 1;
 8050#line 150
 8051                __cil_tmp52 = (struct __large_struct *)__cil_tmp51;
 8052#line 150
 8053                __asm__  volatile   ("1:\tmov"
 8054                                     "q"
 8055                                     " %"
 8056                                     ""
 8057                                     "1,%2\n"
 8058                                     "2:\n"
 8059                                     ".section .fixup,\"ax\"\n"
 8060                                     "3:\tmov %3,%0\n"
 8061                                     "\tjmp 2b\n"
 8062                                     ".previous\n"
 8063                                     " .section __ex_table,\"a\"\n"
 8064                                     " "
 8065                                     ".balign 8"
 8066                                     " "
 8067                                     "\n"
 8068                                     " "
 8069                                     ".quad"
 8070                                     " "
 8071                                     "1b"
 8072                                     ","
 8073                                     "3b"
 8074                                     "\n"
 8075                                     " .previous\n": "=r" (ret): "er" (*__cil_tmp49),
 8076                                     "m" (*__cil_tmp52), "i" (8), "0" (ret));
 8077#line 152
 8078                return (ret);
 8079                switch_default: 
 8080                {
 8081#line 154
 8082                tmp___6 = (unsigned long )copy_user_generic(dst, src, size);
 8083#line 154
 8084                tmp___4 = tmp___6;
 8085#line 154
 8086                tmp___2 = tmp___4;
 8087                }
 8088#line 154
 8089                return ((int )tmp___2);
 8090              } else {
 8091
 8092              }
 8093            }
 8094            }
 8095          }
 8096          }
 8097        }
 8098        }
 8099      }
 8100      }
 8101    }
 8102    }
 8103  }
 8104  }
 8105}
 8106}
 8107#line 6 "include/linux/mmu_context.h"
 8108extern void use_mm(struct mm_struct *mm ) ;
 8109#line 7
 8110extern void unuse_mm(struct mm_struct *mm ) ;
 8111#line 46 "include/linux/poll.h"
 8112__inline static void init_poll_funcptr(poll_table *pt , void (*qproc)(struct file * ,
 8113                                                                      wait_queue_head_t * ,
 8114                                                                      struct poll_table_struct * ) ) 
 8115{ 
 8116
 8117  {
 8118#line 48
 8119  pt->qproc = qproc;
 8120#line 49
 8121  pt->key = ~ 0UL;
 8122#line 50
 8123  return;
 8124}
 8125}
 8126#line 16 "include/linux/uaccess.h"
 8127__inline static void pagefault_disable(void) 
 8128{ struct thread_info *tmp ;
 8129  int __cil_tmp2 ;
 8130
 8131  {
 8132  {
 8133#line 18
 8134  while (1) {
 8135    while_continue: /* CIL Label */ ;
 8136    {
 8137#line 18
 8138    tmp = current_thread_info();
 8139#line 18
 8140    __cil_tmp2 = tmp->preempt_count;
 8141#line 18
 8142    tmp->preempt_count = __cil_tmp2 + 1;
 8143    }
 8144#line 18
 8145    goto while_break;
 8146  }
 8147  while_break___0: /* CIL Label */ ;
 8148  }
 8149
 8150  while_break: 
 8151#line 23
 8152  __asm__  volatile   ("": : : "memory");
 8153#line 24
 8154  return;
 8155}
 8156}
 8157#line 26 "include/linux/uaccess.h"
 8158__inline static void pagefault_enable(void) 
 8159{ struct thread_info *tmp ;
 8160  int __cil_tmp2 ;
 8161
 8162  {
 8163#line 32
 8164  __asm__  volatile   ("": : : "memory");
 8165  {
 8166#line 33
 8167  while (1) {
 8168    while_continue: /* CIL Label */ ;
 8169    {
 8170#line 33
 8171    tmp = current_thread_info();
 8172#line 33
 8173    __cil_tmp2 = tmp->preempt_count;
 8174#line 33
 8175    tmp->preempt_count = __cil_tmp2 - 1;
 8176    }
 8177#line 33
 8178    goto while_break;
 8179  }
 8180  while_break___1: /* CIL Label */ ;
 8181  }
 8182
 8183  while_break: 
 8184#line 37
 8185  __asm__  volatile   ("": : : "memory");
 8186  {
 8187#line 38
 8188  while (1) {
 8189    while_continue___0: /* CIL Label */ ;
 8190
 8191#line 38
 8192    goto while_break___0;
 8193  }
 8194  while_break___2: /* CIL Label */ ;
 8195  }
 8196
 8197  while_break___0: ;
 8198#line 39
 8199  return;
 8200}
 8201}
 8202#line 58 "include/linux/highmem.h"
 8203__inline static void *__kmap_atomic(struct page *page ) 
 8204{ void *tmp ;
 8205
 8206  {
 8207  {
 8208#line 60
 8209  pagefault_disable();
 8210#line 61
 8211  tmp = lowmem_page_address(page);
 8212  }
 8213#line 61
 8214  return (tmp);
 8215}
 8216}
 8217#line 65 "include/linux/highmem.h"
 8218__inline static void __kunmap_atomic(void *addr ) 
 8219{ 
 8220
 8221  {
 8222  {
 8223#line 67
 8224  pagefault_enable();
 8225  }
 8226#line 68
 8227  return;
 8228}
 8229}
 8230#line 361 "include/linux/sched.h"
 8231extern void schedule(void) ;
 8232#line 2112
 8233extern int wake_up_process(struct task_struct *tsk ) ;
 8234#line 2209
 8235extern void mmput(struct mm_struct * ) ;
 8236#line 2211
 8237extern struct mm_struct *get_task_mm(struct task_struct *task ) ;
 8238#line 7 "include/linux/kthread.h"
 8239extern struct task_struct *kthread_create_on_node(int (*threadfn)(void *data ) , void *data ,
 8240                                                  int node , char const   *namefmt 
 8241                                                  , ...) ;
 8242#line 36
 8243extern int kthread_stop(struct task_struct *k ) ;
 8244#line 37
 8245extern int kthread_should_stop(void) ;
 8246#line 585 "include/linux/cgroup.h"
 8247extern int cgroup_attach_task_all(struct task_struct *from , struct task_struct * ) ;
 8248#line 41 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
 8249void vhost_poll_init(struct vhost_poll *poll , void (*fn)(struct vhost_work *work ) ,
 8250                     unsigned long mask , struct vhost_dev *dev ) ;
 8251#line 43
 8252void vhost_poll_start(struct vhost_poll *poll , struct file *file ) ;
 8253#line 44
 8254void vhost_poll_stop(struct vhost_poll *poll ) ;
 8255#line 45
 8256void vhost_poll_flush(struct vhost_poll *poll ) ;
 8257#line 46
 8258void vhost_poll_queue(struct vhost_poll *poll ) ;
 8259#line 136
 8260long vhost_dev_init(struct vhost_dev *dev , struct vhost_virtqueue *vqs , int nvqs ) ;
 8261#line 137
 8262long vhost_dev_check_owner(struct vhost_dev *dev ) ;
 8263#line 138
 8264long vhost_dev_reset_owner(struct vhost_dev *dev ) ;
 8265#line 139
 8266void vhost_dev_cleanup(struct vhost_dev *dev ) ;
 8267#line 140
 8268long vhost_dev_ioctl(struct vhost_dev *d , unsigned int ioctl , unsigned long arg ) ;
 8269#line 141
 8270int vhost_vq_access_ok(struct vhost_virtqueue *vq ) ;
 8271#line 142
 8272int vhost_log_access_ok(struct vhost_dev *dev ) ;
 8273#line 144
 8274int vhost_get_vq_desc(struct vhost_dev *dev , struct vhost_virtqueue *vq , struct iovec *iov ,
 8275                      unsigned int iov_size , unsigned int *out_num , unsigned int *in_num ,
 8276                      struct vhost_log *log , unsigned int *log_num ) ;
 8277#line 148
 8278void vhost_discard_vq_desc(struct vhost_virtqueue *vq , int n ) ;
 8279#line 150
 8280int vhost_add_used(struct vhost_virtqueue *vq , unsigned int head , int len ) ;
 8281#line 151
 8282int vhost_add_used_n(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
 8283                     unsigned int count ) ;
 8284#line 153
 8285void vhost_add_used_and_signal(struct vhost_dev *dev , struct vhost_virtqueue *vq ,
 8286                               unsigned int head , int len ) ;
 8287#line 155
 8288void vhost_add_used_and_signal_n(struct vhost_dev *dev , struct vhost_virtqueue *vq ,
 8289                                 struct vring_used_elem *heads , unsigned int count ) ;
 8290#line 157
 8291void vhost_signal(struct vhost_dev *dev , struct vhost_virtqueue *vq ) ;
 8292#line 158
 8293void vhost_disable_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) ;
 8294#line 159
 8295bool vhost_enable_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) ;
 8296#line 161
 8297int vhost_log_write(struct vhost_virtqueue *vq , struct vhost_log *log , unsigned int log_num ,
 8298                    u64 len ) ;
 8299#line 179 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
 8300__inline static int vhost_has_feature(struct vhost_dev *dev , int bit ) 
 8301{ unsigned int acked_features ;
 8302  unsigned int _________p1 ;
 8303  int tmp___7 ;
 8304  unsigned int *__cil_tmp6 ;
 8305  unsigned int volatile   *__cil_tmp7 ;
 8306  unsigned int volatile   __cil_tmp8 ;
 8307  int __cil_tmp9 ;
 8308  unsigned int __cil_tmp10 ;
 8309  unsigned int __cil_tmp11 ;
 8310
 8311  {
 8312#line 185
 8313  __cil_tmp6 = & dev->acked_features;
 8314#line 185
 8315  __cil_tmp7 = (unsigned int volatile   *)__cil_tmp6;
 8316#line 185
 8317  __cil_tmp8 = *__cil_tmp7;
 8318#line 185
 8319  _________p1 = (unsigned int )__cil_tmp8;
 8320  {
 8321#line 185
 8322  while (1) {
 8323    while_continue: /* CIL Label */ ;
 8324    {
 8325#line 185
 8326    tmp___7 = debug_lockdep_rcu_enabled();
 8327    }
 8328#line 185
 8329    goto while_break;
 8330  }
 8331  while_break___1: /* CIL Label */ ;
 8332  }
 8333
 8334  while_break: ;
 8335  {
 8336#line 185
 8337  while (1) {
 8338    while_continue___0: /* CIL Label */ ;
 8339
 8340#line 185
 8341    goto while_break___0;
 8342  }
 8343  while_break___2: /* CIL Label */ ;
 8344  }
 8345
 8346  while_break___0: 
 8347#line 185
 8348  acked_features = _________p1;
 8349  {
 8350#line 186
 8351  __cil_tmp9 = 1 << bit;
 8352#line 186
 8353  __cil_tmp10 = (unsigned int )__cil_tmp9;
 8354#line 186
 8355  __cil_tmp11 = acked_features & __cil_tmp10;
 8356#line 186
 8357  return ((int )__cil_tmp11);
 8358  }
 8359}
 8360}
 8361#line 43 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8362static void vhost_poll_func(struct file *file , wait_queue_head_t *wqh , poll_table *pt ) 
 8363{ struct vhost_poll *poll ;
 8364  poll_table const   *__mptr ;
 8365  struct vhost_poll *__cil_tmp6 ;
 8366  poll_table *__cil_tmp7 ;
 8367  unsigned int __cil_tmp8 ;
 8368  char *__cil_tmp9 ;
 8369  char *__cil_tmp10 ;
 8370  wait_queue_t *__cil_tmp11 ;
 8371
 8372  {
 8373  {
 8374#line 48
 8375  __mptr = (poll_table const   *)pt;
 8376#line 48
 8377  __cil_tmp6 = (struct vhost_poll *)0;
 8378#line 48
 8379  __cil_tmp7 = & __cil_tmp6->table;
 8380#line 48
 8381  __cil_tmp8 = (unsigned int )__cil_tmp7;
 8382#line 48
 8383  __cil_tmp9 = (char *)__mptr;
 8384#line 48
 8385  __cil_tmp10 = __cil_tmp9 - __cil_tmp8;
 8386#line 48
 8387  poll = (struct vhost_poll *)__cil_tmp10;
 8388#line 49
 8389  poll->wqh = wqh;
 8390#line 50
 8391  __cil_tmp11 = & poll->wait;
 8392#line 50
 8393  add_wait_queue(wqh, __cil_tmp11);
 8394  }
 8395#line 51
 8396  return;
 8397}
 8398}
 8399#line 53 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8400static int vhost_poll_wakeup(wait_queue_t *wait , unsigned int mode , int sync , void *key ) 
 8401{ struct vhost_poll *poll ;
 8402  wait_queue_t const   *__mptr ;
 8403  struct vhost_poll *__cil_tmp7 ;
 8404  wait_queue_t *__cil_tmp8 ;
 8405  unsigned int __cil_tmp9 ;
 8406  char *__cil_tmp10 ;
 8407  char *__cil_tmp11 ;
 8408  unsigned long __cil_tmp12 ;
 8409  unsigned long __cil_tmp13 ;
 8410  unsigned long __cil_tmp14 ;
 8411
 8412  {
 8413#line 56
 8414  __mptr = (wait_queue_t const   *)wait;
 8415#line 56
 8416  __cil_tmp7 = (struct vhost_poll *)0;
 8417#line 56
 8418  __cil_tmp8 = & __cil_tmp7->wait;
 8419#line 56
 8420  __cil_tmp9 = (unsigned int )__cil_tmp8;
 8421#line 56
 8422  __cil_tmp10 = (char *)__mptr;
 8423#line 56
 8424  __cil_tmp11 = __cil_tmp10 - __cil_tmp9;
 8425#line 56
 8426  poll = (struct vhost_poll *)__cil_tmp11;
 8427  {
 8428#line 58
 8429  __cil_tmp12 = poll->mask;
 8430#line 58
 8431  __cil_tmp13 = (unsigned long )key;
 8432#line 58
 8433  __cil_tmp14 = __cil_tmp13 & __cil_tmp12;
 8434#line 58
 8435  if (! __cil_tmp14) {
 8436#line 59
 8437    return (0);
 8438  } else {
 8439
 8440  }
 8441  }
 8442  {
 8443#line 61
 8444  vhost_poll_queue(poll);
 8445  }
 8446#line 62
 8447  return (0);
 8448}
 8449}
 8450#line 69 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8451static struct lock_class_key __key___7  ;
 8452#line 65 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8453static void vhost_work_init(struct vhost_work *work , void (*fn)(struct vhost_work *work ) ) 
 8454{ unsigned int tmp___7 ;
 8455  struct list_head *__cil_tmp4 ;
 8456  wait_queue_head_t *__cil_tmp5 ;
 8457
 8458  {
 8459  {
 8460#line 67
 8461  __cil_tmp4 = & work->node;
 8462#line 67
 8463  INIT_LIST_HEAD(__cil_tmp4);
 8464#line 68
 8465  work->fn = fn;
 8466  }
 8467  {
 8468#line 69
 8469  while (1) {
 8470    while_continue: /* CIL Label */ ;
 8471    {
 8472#line 69
 8473    __cil_tmp5 = & work->done;
 8474#line 69
 8475    __init_waitqueue_head(__cil_tmp5, & __key___7);
 8476    }
 8477#line 69
 8478    goto while_break;
 8479  }
 8480  while_break___0: /* CIL Label */ ;
 8481  }
 8482
 8483  while_break: 
 8484#line 70
 8485  work->flushing = 0;
 8486#line 71
 8487  tmp___7 = 0U;
 8488#line 71
 8489  work->done_seq = tmp___7;
 8490#line 71
 8491  work->queue_seq = tmp___7;
 8492#line 72
 8493  return;
 8494}
 8495}
 8496#line 75 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8497void vhost_poll_init(struct vhost_poll *poll , void (*fn)(struct vhost_work *work ) ,
 8498                     unsigned long mask , struct vhost_dev *dev ) 
 8499{ wait_queue_t *__cil_tmp5 ;
 8500  poll_table *__cil_tmp6 ;
 8501  struct vhost_work *__cil_tmp7 ;
 8502
 8503  {
 8504  {
 8505#line 78
 8506  __cil_tmp5 = & poll->wait;
 8507#line 78
 8508  init_waitqueue_func_entry(__cil_tmp5, & vhost_poll_wakeup);
 8509#line 79
 8510  __cil_tmp6 = & poll->table;
 8511#line 79
 8512  init_poll_funcptr(__cil_tmp6, & vhost_poll_func);
 8513#line 80
 8514  poll->mask = mask;
 8515#line 81
 8516  poll->dev = dev;
 8517#line 83
 8518  __cil_tmp7 = & poll->work;
 8519#line 83
 8520  vhost_work_init(__cil_tmp7, fn);
 8521  }
 8522#line 84
 8523  return;
 8524}
 8525}
 8526#line 88 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8527void vhost_poll_start(struct vhost_poll *poll , struct file *file ) 
 8528{ unsigned long mask ;
 8529  unsigned int tmp___7 ;
 8530  struct file_operations  const  *__cil_tmp5 ;
 8531  unsigned int (*__cil_tmp6)(struct file * , struct poll_table_struct * ) ;
 8532  poll_table *__cil_tmp7 ;
 8533  wait_queue_t *__cil_tmp8 ;
 8534  void *__cil_tmp9 ;
 8535
 8536  {
 8537  {
 8538#line 92
 8539  __cil_tmp5 = file->f_op;
 8540#line 92
 8541  __cil_tmp6 = __cil_tmp5->poll;
 8542#line 92
 8543  __cil_tmp7 = & poll->table;
 8544#line 92
 8545  tmp___7 = (*__cil_tmp6)(file, __cil_tmp7);
 8546#line 92
 8547  mask = (unsigned long )tmp___7;
 8548  }
 8549#line 93
 8550  if (mask) {
 8551    {
 8552#line 94
 8553    __cil_tmp8 = & poll->wait;
 8554#line 94
 8555    __cil_tmp9 = (void *)mask;
 8556#line 94
 8557    vhost_poll_wakeup(__cil_tmp8, 0U, 0, __cil_tmp9);
 8558    }
 8559  } else {
 8560
 8561  }
 8562#line 95
 8563  return;
 8564}
 8565}
 8566#line 99 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8567void vhost_poll_stop(struct vhost_poll *poll ) 
 8568{ wait_queue_head_t *__cil_tmp2 ;
 8569  wait_queue_t *__cil_tmp3 ;
 8570
 8571  {
 8572  {
 8573#line 101
 8574  __cil_tmp2 = poll->wqh;
 8575#line 101
 8576  __cil_tmp3 = & poll->wait;
 8577#line 101
 8578  remove_wait_queue(__cil_tmp2, __cil_tmp3);
 8579  }
 8580#line 102
 8581  return;
 8582}
 8583}
 8584#line 104 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8585static bool vhost_work_seq_done(struct vhost_dev *dev , struct vhost_work *work ,
 8586                                unsigned int seq ) 
 8587{ int left ;
 8588  spinlock_t *__cil_tmp5 ;
 8589  unsigned int __cil_tmp6 ;
 8590  unsigned int __cil_tmp7 ;
 8591  spinlock_t *__cil_tmp8 ;
 8592  int __cil_tmp9 ;
 8593
 8594  {
 8595  {
 8596#line 109
 8597  __cil_tmp5 = & dev->work_lock;
 8598#line 109
 8599  spin_lock_irq(__cil_tmp5);
 8600#line 110
 8601  __cil_tmp6 = work->done_seq;
 8602#line 110
 8603  __cil_tmp7 = seq - __cil_tmp6;
 8604#line 110
 8605  left = (int )__cil_tmp7;
 8606#line 111
 8607  __cil_tmp8 = & dev->work_lock;
 8608#line 111
 8609  spin_unlock_irq(__cil_tmp8);
 8610  }
 8611  {
 8612#line 112
 8613  __cil_tmp9 = left <= 0;
 8614#line 112
 8615  return ((bool )__cil_tmp9);
 8616  }
 8617}
 8618}
 8619#line 115 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8620static void vhost_work_flush(struct vhost_dev *dev , struct vhost_work *work ) 
 8621{ unsigned int seq ;
 8622  int flushing ;
 8623  bool tmp___7 ;
 8624  wait_queue_t __wait ;
 8625  struct task_struct *tmp___8 ;
 8626  bool tmp___9 ;
 8627  long tmp___10 ;
 8628  spinlock_t *__cil_tmp10 ;
 8629  int __cil_tmp11 ;
 8630  spinlock_t *__cil_tmp12 ;
 8631  wait_queue_head_t *__cil_tmp13 ;
 8632  wait_queue_head_t *__cil_tmp14 ;
 8633  spinlock_t *__cil_tmp15 ;
 8634  int __cil_tmp16 ;
 8635  spinlock_t *__cil_tmp17 ;
 8636  int __cil_tmp18 ;
 8637  int __cil_tmp19 ;
 8638  int __cil_tmp20 ;
 8639  long __cil_tmp21 ;
 8640
 8641  {
 8642  {
 8643#line 120
 8644  __cil_tmp10 = & dev->work_lock;
 8645#line 120
 8646  spin_lock_irq(__cil_tmp10);
 8647#line 121
 8648  seq = work->queue_seq;
 8649#line 122
 8650  __cil_tmp11 = work->flushing;
 8651#line 122
 8652  work->flushing = __cil_tmp11 + 1;
 8653#line 123
 8654  __cil_tmp12 = & dev->work_lock;
 8655#line 123
 8656  spin_unlock_irq(__cil_tmp12);
 8657  }
 8658  {
 8659#line 124
 8660  while (1) {
 8661    while_continue: /* CIL Label */ ;
 8662    {
 8663#line 124
 8664    tmp___7 = vhost_work_seq_done(dev, work, seq);
 8665    }
 8666#line 124
 8667    if (tmp___7) {
 8668#line 124
 8669      goto while_break;
 8670    } else {
 8671
 8672    }
 8673    {
 8674#line 124
 8675    while (1) {
 8676      while_continue___0: /* CIL Label */ ;
 8677      {
 8678#line 124
 8679      tmp___8 = get_current();
 8680#line 124
 8681      __wait.flags = 0U;
 8682#line 124
 8683      __wait.private = (void *)tmp___8;
 8684#line 124
 8685      __wait.func = & autoremove_wake_function;
 8686#line 124
 8687      __wait.task_list.next = & __wait.task_list;
 8688#line 124
 8689      __wait.task_list.prev = & __wait.task_list;
 8690      }
 8691      {
 8692#line 124
 8693      while (1) {
 8694        while_continue___1: /* CIL Label */ ;
 8695        {
 8696#line 124
 8697        __cil_tmp13 = & work->done;
 8698#line 124
 8699        prepare_to_wait(__cil_tmp13, & __wait, 2);
 8700#line 124
 8701        tmp___9 = vhost_work_seq_done(dev, work, seq);
 8702        }
 8703#line 124
 8704        if (tmp___9) {
 8705#line 124
 8706          goto while_break___1;
 8707        } else {
 8708
 8709        }
 8710        {
 8711#line 124
 8712        schedule();
 8713        }
 8714      }
 8715      while_break___6: /* CIL Label */ ;
 8716      }
 8717
 8718      while_break___1: 
 8719      {
 8720#line 124
 8721      __cil_tmp14 = & work->done;
 8722#line 124
 8723      finish_wait(__cil_tmp14, & __wait);
 8724      }
 8725#line 124
 8726      goto while_break___0;
 8727    }
 8728    while_break___5: /* CIL Label */ ;
 8729    }
 8730
 8731    while_break___0: ;
 8732#line 124
 8733    goto while_break;
 8734  }
 8735  while_break___4: /* CIL Label */ ;
 8736  }
 8737
 8738  while_break: 
 8739  {
 8740#line 125
 8741  __cil_tmp15 = & dev->work_lock;
 8742#line 125
 8743  spin_lock_irq(__cil_tmp15);
 8744#line 126
 8745  __cil_tmp16 = work->flushing;
 8746#line 126
 8747  work->flushing = __cil_tmp16 - 1;
 8748#line 126
 8749  flushing = work->flushing;
 8750#line 127
 8751  __cil_tmp17 = & dev->work_lock;
 8752#line 127
 8753  spin_unlock_irq(__cil_tmp17);
 8754  }
 8755  {
 8756#line 128
 8757  while (1) {
 8758    while_continue___2: /* CIL Label */ ;
 8759    {
 8760#line 128
 8761    __cil_tmp18 = flushing < 0;
 8762#line 128
 8763    __cil_tmp19 = ! __cil_tmp18;
 8764#line 128
 8765    __cil_tmp20 = ! __cil_tmp19;
 8766#line 128
 8767    __cil_tmp21 = (long )__cil_tmp20;
 8768#line 128
 8769    tmp___10 = __builtin_expect(__cil_tmp21, 0L);
 8770    }
 8771#line 128
 8772    if (tmp___10) {
 8773      {
 8774#line 128
 8775      while (1) {
 8776        while_continue___3: /* CIL Label */ ;
 8777#line 128
 8778        __asm__  volatile   ("1:\tud2\n"
 8779                             ".pushsection __bug_table,\"a\"\n"
 8780                             "2:\t.long 1b - 2b, %c0 - 2b\n"
 8781                             "\t.word %c1, 0\n"
 8782                             "\t.org 2b+%c2\n"
 8783                             ".popsection": : "i" ("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"),
 8784                             "i" (128), "i" (12UL));
 8785        {
 8786#line 128
 8787        while (1) {
 8788          while_continue___4: /* CIL Label */ ;
 8789
 8790        }
 8791        while_break___9: /* CIL Label */ ;
 8792        }
 8793
 8794#line 128
 8795        goto while_break___3;
 8796      }
 8797      while_break___8: /* CIL Label */ ;
 8798      }
 8799
 8800      while_break___3: ;
 8801    } else {
 8802
 8803    }
 8804#line 128
 8805    goto while_break___2;
 8806  }
 8807  while_break___7: /* CIL Label */ ;
 8808  }
 8809
 8810  while_break___2: ;
 8811#line 129
 8812  return;
 8813}
 8814}
 8815#line 133 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8816void vhost_poll_flush(struct vhost_poll *poll ) 
 8817{ struct vhost_dev *__cil_tmp2 ;
 8818  struct vhost_work *__cil_tmp3 ;
 8819
 8820  {
 8821  {
 8822#line 135
 8823  __cil_tmp2 = poll->dev;
 8824#line 135
 8825  __cil_tmp3 = & poll->work;
 8826#line 135
 8827  vhost_work_flush(__cil_tmp2, __cil_tmp3);
 8828  }
 8829#line 136
 8830  return;
 8831}
 8832}
 8833#line 138 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8834__inline static void vhost_work_queue(struct vhost_dev *dev , struct vhost_work *work ) 
 8835{ unsigned long flags ;
 8836  raw_spinlock_t *tmp___7 ;
 8837  int tmp___8 ;
 8838  spinlock_t *__cil_tmp6 ;
 8839  struct list_head *__cil_tmp7 ;
 8840  struct list_head  const  *__cil_tmp8 ;
 8841  struct list_head *__cil_tmp9 ;
 8842  struct list_head *__cil_tmp10 ;
 8843  unsigned int __cil_tmp11 ;
 8844  struct task_struct *__cil_tmp12 ;
 8845  spinlock_t *__cil_tmp13 ;
 8846
 8847  {
 8848  {
 8849#line 143
 8850  while (1) {
 8851    while_continue: /* CIL Label */ ;
 8852
 8853    {
 8854#line 143
 8855    while (1) {
 8856      while_continue___0: /* CIL Label */ ;
 8857      {
 8858#line 143
 8859      __cil_tmp6 = & dev->work_lock;
 8860#line 143
 8861      tmp___7 = spinlock_check(__cil_tmp6);
 8862#line 143
 8863      flags = _raw_spin_lock_irqsave(tmp___7);
 8864      }
 8865#line 143
 8866      goto while_break___0;
 8867    }
 8868    while_break___2: /* CIL Label */ ;
 8869    }
 8870
 8871    while_break___0: ;
 8872#line 143
 8873    goto while_break;
 8874  }
 8875  while_break___1: /* CIL Label */ ;
 8876  }
 8877
 8878  while_break: 
 8879  {
 8880#line 144
 8881  __cil_tmp7 = & work->node;
 8882#line 144
 8883  __cil_tmp8 = (struct list_head  const  *)__cil_tmp7;
 8884#line 144
 8885  tmp___8 = list_empty(__cil_tmp8);
 8886  }
 8887#line 144
 8888  if (tmp___8) {
 8889    {
 8890#line 145
 8891    __cil_tmp9 = & work->node;
 8892#line 145
 8893    __cil_tmp10 = & dev->work_list;
 8894#line 145
 8895    list_add_tail(__cil_tmp9, __cil_tmp10);
 8896#line 146
 8897    __cil_tmp11 = work->queue_seq;
 8898#line 146
 8899    work->queue_seq = __cil_tmp11 + 1U;
 8900#line 147
 8901    __cil_tmp12 = dev->worker;
 8902#line 147
 8903    wake_up_process(__cil_tmp12);
 8904    }
 8905  } else {
 8906
 8907  }
 8908  {
 8909#line 149
 8910  __cil_tmp13 = & dev->work_lock;
 8911#line 149
 8912  spin_unlock_irqrestore(__cil_tmp13, flags);
 8913  }
 8914#line 150
 8915  return;
 8916}
 8917}
 8918#line 152 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8919void vhost_poll_queue(struct vhost_poll *poll ) 
 8920{ struct vhost_dev *__cil_tmp2 ;
 8921  struct vhost_work *__cil_tmp3 ;
 8922
 8923  {
 8924  {
 8925#line 154
 8926  __cil_tmp2 = poll->dev;
 8927#line 154
 8928  __cil_tmp3 = & poll->work;
 8929#line 154
 8930  vhost_work_queue(__cil_tmp2, __cil_tmp3);
 8931  }
 8932#line 155
 8933  return;
 8934}
 8935}
 8936#line 157 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 8937static void vhost_vq_reset(struct vhost_dev *dev , struct vhost_virtqueue *vq ) 
 8938{ void *__cil_tmp3 ;
 8939  void *__cil_tmp4 ;
 8940  void *__cil_tmp5 ;
 8941  void *__cil_tmp6 ;
 8942  void *__cil_tmp7 ;
 8943  void *__cil_tmp8 ;
 8944  void *__cil_tmp9 ;
 8945  void *__cil_tmp10 ;
 8946  void *__cil_tmp11 ;
 8947
 8948  {
 8949#line 160
 8950  vq->num = 1U;
 8951#line 161
 8952  __cil_tmp3 = (void *)0;
 8953#line 161
 8954  vq->desc = (struct vring_desc *)__cil_tmp3;
 8955#line 162
 8956  __cil_tmp4 = (void *)0;
 8957#line 162
 8958  vq->avail = (struct vring_avail *)__cil_tmp4;
 8959#line 163
 8960  __cil_tmp5 = (void *)0;
 8961#line 163
 8962  vq->used = (struct vring_used *)__cil_tmp5;
 8963#line 164
 8964  vq->last_avail_idx = (u16 )0;
 8965#line 165
 8966  vq->avail_idx = (u16 )0;
 8967#line 166
 8968  vq->last_used_idx = (u16 )0;
 8969#line 167
 8970  vq->signalled_used = (u16 )0;
 8971#line 168
 8972  vq->signalled_used_valid = (bool )0;
 8973#line 169
 8974  vq->used_flags = (u16 )0;
 8975#line 170
 8976  vq->log_used = (bool )0;
 8977#line 171
 8978  vq->log_addr = 1152921504606846975ULL;
 8979#line 172
 8980  vq->vhost_hlen = (size_t )0;
 8981#line 173
 8982  vq->sock_hlen = (size_t )0;
 8983#line 174
 8984  vq->private_data = (void *)0;
 8985#line 175
 8986  vq->log_base = (void *)0;
 8987#line 176
 8988  __cil_tmp6 = (void *)0;
 8989#line 176
 8990  vq->error_ctx = (struct eventfd_ctx *)__cil_tmp6;
 8991#line 177
 8992  __cil_tmp7 = (void *)0;
 8993#line 177
 8994  vq->error = (struct file *)__cil_tmp7;
 8995#line 178
 8996  __cil_tmp8 = (void *)0;
 8997#line 178
 8998  vq->kick = (struct file *)__cil_tmp8;
 8999#line 179
 9000  __cil_tmp9 = (void *)0;
 9001#line 179
 9002  vq->call_ctx = (struct eventfd_ctx *)__cil_tmp9;
 9003#line 180
 9004  __cil_tmp10 = (void *)0;
 9005#line 180
 9006  vq->call = (struct file *)__cil_tmp10;
 9007#line 181
 9008  __cil_tmp11 = (void *)0;
 9009#line 181
 9010  vq->log_ctx = (struct eventfd_ctx *)__cil_tmp11;
 9011#line 182
 9012  return;
 9013}
 9014}
 9015#line 184 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 9016static int vhost_worker(void *data ) 
 9017{ struct vhost_dev *dev ;
 9018  struct vhost_work *work ;
 9019  unsigned int seq ;
 9020  long volatile   __x ;
 9021  struct task_struct *tmp___8 ;
 9022  u8 volatile   *__ptr ;
 9023  struct task_struct *tmp___9 ;
 9024  u16 volatile   *__ptr___0 ;
 9025  struct task_struct *tmp___10 ;
 9026  u32 volatile   *__ptr___1 ;
 9027  struct task_struct *tmp___11 ;
 9028  u64 volatile   *__ptr___2 ;
 9029  struct task_struct *tmp___12 ;
 9030  struct task_struct *tmp___13 ;
 9031  int tmp___14 ;
 9032  struct list_head  const  *__mptr ;
 9033  int tmp___15 ;
 9034  struct task_struct *tmp___16 ;
 9035  void *__cil_tmp20 ;
 9036  struct mm_struct *__cil_tmp21 ;
 9037  int __cil_tmp22 ;
 9038  int __cil_tmp23 ;
 9039  int __cil_tmp24 ;
 9040  int __cil_tmp25 ;
 9041  long volatile   *__cil_tmp26 ;
 9042  long volatile   *__cil_tmp27 ;
 9043  long volatile   *__cil_tmp28 ;
 9044  long volatile   *__cil_tmp29 ;
 9045  spinlock_t *__cil_tmp30 ;
 9046  wait_queue_head_t *__cil_tmp31 ;
 9047  void *__cil_tmp32 ;
 9048  spinlock_t *__cil_tmp33 ;
 9049  struct list_head *__cil_tmp34 ;
 9050  struct list_head  const  *__cil_tmp35 ;
 9051  void *__cil_tmp36 ;
 9052  struct list_head *__cil_tmp37 ;
 9053  struct vhost_work *__cil_tmp38 ;
 9054  struct list_head *__cil_tmp39 ;
 9055  unsigned int __cil_tmp40 ;
 9056  char *__cil_tmp41 ;
 9057  char *__cil_tmp42 ;
 9058  struct list_head *__cil_tmp43 ;
 9059  spinlock_t *__cil_tmp44 ;
 9060  void (*__cil_tmp45)(struct vhost_work *work ) ;
 9061  struct mm_struct *__cil_tmp46 ;
 9062
 9063  {
 9064  {
 9065#line 186
 9066  dev = (struct vhost_dev *)data;
 9067#line 187
 9068  __cil_tmp20 = (void *)0;
 9069#line 187
 9070  work = (struct vhost_work *)__cil_tmp20;
 9071#line 188
 9072  seq = seq;
 9073#line 190
 9074  __cil_tmp21 = dev->mm;
 9075#line 190
 9076  use_mm(__cil_tmp21);
 9077  }
 9078  {
 9079#line 192
 9080  while (1) {
 9081    while_continue: /* CIL Label */ ;
 9082
 9083    {
 9084#line 194
 9085    while (1) {
 9086      while_continue___0: /* CIL Label */ ;
 9087#line 194
 9088      __x = (long volatile   )1;
 9089      {
 9090#line 194
 9091      __cil_tmp22 = (int )8UL;
 9092#line 194
 9093      if (__cil_tmp22 == 1) {
 9094#line 194
 9095        goto case_1;
 9096      } else {
 9097        {
 9098#line 194
 9099        __cil_tmp23 = (int )8UL;
 9100#line 194
 9101        if (__cil_tmp23 == 2) {
 9102#line 194
 9103          goto case_2;
 9104        } else {
 9105          {
 9106#line 194
 9107          __cil_tmp24 = (int )8UL;
 9108#line 194
 9109          if (__cil_tmp24 == 4) {
 9110#line 194
 9111            goto case_4;
 9112          } else {
 9113            {
 9114#line 194
 9115            __cil_tmp25 = (int )8UL;
 9116#line 194
 9117            if (__cil_tmp25 == 8) {
 9118#line 194
 9119              goto case_8;
 9120            } else {
 9121#line 194
 9122              goto switch_default;
 9123#line 194
 9124              if (0) {
 9125                case_1: 
 9126                {
 9127#line 194
 9128                tmp___9 = get_current();
 9129#line 194
 9130                __cil_tmp26 = & tmp___9->state;
 9131#line 194
 9132                __ptr = (u8 volatile   *)__cil_tmp26;
 9133#line 194
 9134                //__asm__  volatile   ("xchgb %0,%1": "=q" (__x), "+m" (*__ptr): "0" (__x): "memory");
 9135                }
 9136#line 194
 9137                goto switch_break;
 9138                case_2: 
 9139                {
 9140#line 194
 9141                tmp___10 = get_current();
 9142#line 194
 9143                __cil_tmp27 = & tmp___10->state;
 9144#line 194
 9145                __ptr___0 = (u16 volatile   *)__cil_tmp27;
 9146#line 194
 9147                __asm__  volatile   ("xchgw %0,%1": "=r" (__x), "+m" (*__ptr___0): "0" (__x): "memory");
 9148                }
 9149#line 194
 9150                goto switch_break;
 9151                case_4: 
 9152                {
 9153#line 194
 9154                tmp___11 = get_current();
 9155#line 194
 9156                __cil_tmp28 = & tmp___11->state;
 9157#line 194
 9158                __ptr___1 = (u32 volatile   *)__cil_tmp28;
 9159#line 194
 9160                //__asm__  volatile   ("xchgl %0,%1": "=r" (__x), "+m" (*__ptr___1): "0" (__x): "memory");
 9161                }
 9162#line 194
 9163                goto switch_break;
 9164                case_8: 
 9165                {
 9166#line 194
 9167                tmp___12 = get_current();
 9168#line 194
 9169                __cil_tmp29 = & tmp___12->state;
 9170#line 194
 9171                __ptr___2 = (u64 volatile   *)__cil_tmp29;
 9172#line 194
 9173                __asm__  volatile   ("xchgq %0,%1": "=r" (__x), "+m" (*__ptr___2): "0" (__x): "memory");
 9174                }
 9175#line 194
 9176                goto switch_break;
 9177                switch_default: 
 9178                {
 9179#line 194
 9180                __xchg_wrong_size();
 9181                }
 9182              } else {
 9183                switch_break: ;
 9184              }
 9185            }
 9186            }
 9187          }
 9188          }
 9189        }
 9190        }
 9191      }
 9192      }
 9193#line 194
 9194      goto while_break___0;
 9195    }
 9196    while_break___4: /* CIL Label */ ;
 9197    }
 9198
 9199    while_break___0: 
 9200    {
 9201#line 196
 9202    __cil_tmp30 = & dev->work_lock;
 9203#line 196
 9204    spin_lock_irq(__cil_tmp30);
 9205    }
 9206#line 197
 9207    if (work) {
 9208#line 198
 9209      work->done_seq = seq;
 9210#line 199
 9211      if (work->flushing) {
 9212        {
 9213#line 200
 9214        __cil_tmp31 = & work->done;
 9215#line 200
 9216        __cil_tmp32 = (void *)0;
 9217#line 200
 9218        __wake_up(__cil_tmp31, 3U, 0, __cil_tmp32);
 9219        }
 9220      } else {
 9221
 9222      }
 9223    } else {
 9224
 9225    }
 9226    {
 9227#line 203
 9228    tmp___14 = kthread_should_stop();
 9229    }
 9230#line 203
 9231    if (tmp___14) {
 9232      {
 9233#line 204
 9234      __cil_tmp33 = & dev->work_lock;
 9235#line 204
 9236      spin_unlock_irq(__cil_tmp33);
 9237      }
 9238      {
 9239#line 205
 9240      while (1) {
 9241        while_continue___1: /* CIL Label */ ;
 9242        {
 9243#line 205
 9244        tmp___13 = get_current();
 9245#line 205
 9246        tmp___13->state = (long volatile   )0;
 9247        }
 9248#line 205
 9249        goto while_break___1;
 9250      }
 9251      while_break___5: /* CIL Label */ ;
 9252      }
 9253
 9254      while_break___1: ;
 9255#line 206
 9256      goto while_break;
 9257    } else {
 9258
 9259    }
 9260    {
 9261#line 208
 9262    __cil_tmp34 = & dev->work_list;
 9263#line 208
 9264    __cil_tmp35 = (struct list_head  const  *)__cil_tmp34;
 9265#line 208
 9266    tmp___15 = list_empty(__cil_tmp35);
 9267    }
 9268#line 208
 9269    if (tmp___15) {
 9270#line 214
 9271      __cil_tmp36 = (void *)0;
 9272#line 214
 9273      work = (struct vhost_work *)__cil_tmp36;
 9274    } else {
 9275      {
 9276#line 209
 9277      __cil_tmp37 = dev->work_list.next;
 9278#line 209
 9279      __mptr = (struct list_head  const  *)__cil_tmp37;
 9280#line 209
 9281      __cil_tmp38 = (struct vhost_work *)0;
 9282#line 209
 9283      __cil_tmp39 = & __cil_tmp38->node;
 9284#line 209
 9285      __cil_tmp40 = (unsigned int )__cil_tmp39;
 9286#line 209
 9287      __cil_tmp41 = (char *)__mptr;
 9288#line 209
 9289      __cil_tmp42 = __cil_tmp41 - __cil_tmp40;
 9290#line 209
 9291      work = (struct vhost_work *)__cil_tmp42;
 9292#line 211
 9293      __cil_tmp43 = & work->node;
 9294#line 211
 9295      list_del_init(__cil_tmp43);
 9296#line 212
 9297      seq = work->queue_seq;
 9298      }
 9299    }
 9300    {
 9301#line 215
 9302    __cil_tmp44 = & dev->work_lock;
 9303#line 215
 9304    spin_unlock_irq(__cil_tmp44);
 9305    }
 9306#line 217
 9307    if (work) {
 9308      {
 9309#line 218
 9310      while (1) {
 9311        while_continue___2: /* CIL Label */ ;
 9312        {
 9313#line 218
 9314        tmp___16 = get_current();
 9315#line 218
 9316        tmp___16->state = (long volatile   )0;
 9317        }
 9318#line 218
 9319        goto while_break___2;
 9320      }
 9321      while_break___6: /* CIL Label */ ;
 9322      }
 9323
 9324      while_break___2: 
 9325      {
 9326#line 219
 9327      __cil_tmp45 = work->fn;
 9328#line 219
 9329      (*__cil_tmp45)(work);
 9330      }
 9331    } else {
 9332      {
 9333#line 221
 9334      schedule();
 9335      }
 9336    }
 9337  }
 9338  while_break___3: /* CIL Label */ ;
 9339  }
 9340
 9341  while_break: 
 9342  {
 9343#line 224
 9344  __cil_tmp46 = dev->mm;
 9345#line 224
 9346  unuse_mm(__cil_tmp46);
 9347  }
 9348#line 225
 9349  return (0);
 9350}
 9351}
 9352#line 229 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 9353static long vhost_dev_alloc_iovecs(struct vhost_dev *dev ) 
 9354{ int i ;
 9355  void *tmp___7 ;
 9356  void *tmp___8 ;
 9357  void *tmp___9 ;
 9358  int __cil_tmp6 ;
 9359  unsigned long __cil_tmp7 ;
 9360  struct vhost_virtqueue *__cil_tmp8 ;
 9361  struct vhost_virtqueue *__cil_tmp9 ;
 9362  unsigned long __cil_tmp10 ;
 9363  struct vhost_virtqueue *__cil_tmp11 ;
 9364  struct vhost_virtqueue *__cil_tmp12 ;
 9365  unsigned long __cil_tmp13 ;
 9366  struct vhost_virtqueue *__cil_tmp14 ;
 9367  struct vhost_virtqueue *__cil_tmp15 ;
 9368  struct vhost_virtqueue *__cil_tmp16 ;
 9369  struct vhost_virtqueue *__cil_tmp17 ;
 9370  struct iovec *__cil_tmp18 ;
 9371  struct vhost_virtqueue *__cil_tmp19 ;
 9372  struct vhost_virtqueue *__cil_tmp20 ;
 9373  struct vhost_log *__cil_tmp21 ;
 9374  struct vhost_virtqueue *__cil_tmp22 ;
 9375  struct vhost_virtqueue *__cil_tmp23 ;
 9376  struct vring_used_elem *__cil_tmp24 ;
 9377  struct vhost_virtqueue *__cil_tmp25 ;
 9378  struct vhost_virtqueue *__cil_tmp26 ;
 9379  struct iovec *__cil_tmp27 ;
 9380  void const   *__cil_tmp28 ;
 9381  struct vhost_virtqueue *__cil_tmp29 ;
 9382  struct vhost_virtqueue *__cil_tmp30 ;
 9383  struct vhost_log *__cil_tmp31 ;
 9384  void const   *__cil_tmp32 ;
 9385  struct vhost_virtqueue *__cil_tmp33 ;
 9386  struct vhost_virtqueue *__cil_tmp34 ;
 9387  struct vring_used_elem *__cil_tmp35 ;
 9388  void const   *__cil_tmp36 ;
 9389
 9390  {
 9391#line 233
 9392  i = 0;
 9393  {
 9394#line 233
 9395  while (1) {
 9396    while_continue: /* CIL Label */ ;
 9397
 9398    {
 9399#line 233
 9400    __cil_tmp6 = dev->nvqs;
 9401#line 233
 9402    if (i < __cil_tmp6) {
 9403
 9404    } else {
 9405#line 233
 9406      goto while_break;
 9407    }
 9408    }
 9409    {
 9410#line 234
 9411    __cil_tmp7 = 16UL * 1024UL;
 9412#line 234
 9413    tmp___7 = kmalloc(__cil_tmp7, 208U);
 9414#line 234
 9415    __cil_tmp8 = dev->vqs;
 9416#line 234
 9417    __cil_tmp9 = __cil_tmp8 + i;
 9418#line 234
 9419    __cil_tmp9->indirect = (struct iovec *)tmp___7;
 9420#line 236
 9421    __cil_tmp10 = 16UL * 1024UL;
 9422#line 236
 9423    tmp___8 = kmalloc(__cil_tmp10, 208U);
 9424#line 236
 9425    __cil_tmp11 = dev->vqs;
 9426#line 236
 9427    __cil_tmp12 = __cil_tmp11 + i;
 9428#line 236
 9429    __cil_tmp12->log = (struct vhost_log *)tmp___8;
 9430#line 238
 9431    __cil_tmp13 = 8UL * 1024UL;
 9432#line 238
 9433    tmp___9 = kmalloc(__cil_tmp13, 208U);
 9434#line 238
 9435    __cil_tmp14 = dev->vqs;
 9436#line 238
 9437    __cil_tmp15 = __cil_tmp14 + i;
 9438#line 238
 9439    __cil_tmp15->heads = (struct vring_used_elem *)tmp___9;
 9440    }
 9441    {
 9442#line 241
 9443    __cil_tmp16 = dev->vqs;
 9444#line 241
 9445    __cil_tmp17 = __cil_tmp16 + i;
 9446#line 241
 9447    __cil_tmp18 = __cil_tmp17->indirect;
 9448#line 241
 9449    if (! __cil_tmp18) {
 9450#line 243
 9451      goto err_nomem;
 9452    } else {
 9453      {
 9454#line 241
 9455      __cil_tmp19 = dev->vqs;
 9456#line 241
 9457      __cil_tmp20 = __cil_tmp19 + i;
 9458#line 241
 9459      __cil_tmp21 = __cil_tmp20->log;
 9460#line 241
 9461      if (! __cil_tmp21) {
 9462#line 243
 9463        goto err_nomem;
 9464      } else {
 9465        {
 9466#line 241
 9467        __cil_tmp22 = dev->vqs;
 9468#line 241
 9469        __cil_tmp23 = __cil_tmp22 + i;
 9470#line 241
 9471        __cil_tmp24 = __cil_tmp23->heads;
 9472#line 241
 9473        if (! __cil_tmp24) {
 9474#line 243
 9475          goto err_nomem;
 9476        } else {
 9477
 9478        }
 9479        }
 9480      }
 9481      }
 9482    }
 9483    }
 9484#line 233
 9485    i = i + 1;
 9486  }
 9487  while_break___1: /* CIL Label */ ;
 9488  }
 9489
 9490  while_break: ;
 9491#line 245
 9492  return (0L);
 9493  err_nomem: 
 9494  {
 9495#line 248
 9496  while (1) {
 9497    while_continue___0: /* CIL Label */ ;
 9498
 9499#line 248
 9500    if (i >= 0) {
 9501
 9502    } else {
 9503#line 248
 9504      goto while_break___0;
 9505    }
 9506    {
 9507#line 249
 9508    __cil_tmp25 = dev->vqs;
 9509#line 249
 9510    __cil_tmp26 = __cil_tmp25 + i;
 9511#line 249
 9512    __cil_tmp27 = __cil_tmp26->indirect;
 9513#line 249
 9514    __cil_tmp28 = (void const   *)__cil_tmp27;
 9515#line 249
 9516    kfree(__cil_tmp28);
 9517#line 250
 9518    __cil_tmp29 = dev->vqs;
 9519#line 250
 9520    __cil_tmp30 = __cil_tmp29 + i;
 9521#line 250
 9522    __cil_tmp31 = __cil_tmp30->log;
 9523#line 250
 9524    __cil_tmp32 = (void const   *)__cil_tmp31;
 9525#line 250
 9526    kfree(__cil_tmp32);
 9527#line 251
 9528    __cil_tmp33 = dev->vqs;
 9529#line 251
 9530    __cil_tmp34 = __cil_tmp33 + i;
 9531#line 251
 9532    __cil_tmp35 = __cil_tmp34->heads;
 9533#line 251
 9534    __cil_tmp36 = (void const   *)__cil_tmp35;
 9535#line 251
 9536    kfree(__cil_tmp36);
 9537#line 248
 9538    i = i - 1;
 9539    }
 9540  }
 9541  while_break___2: /* CIL Label */ ;
 9542  }
 9543
 9544  while_break___0: ;
 9545#line 253
 9546  return (-12L);
 9547}
 9548}
 9549#line 256 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 9550static void vhost_dev_free_iovecs(struct vhost_dev *dev ) 
 9551{ int i ;
 9552  int __cil_tmp3 ;
 9553  struct vhost_virtqueue *__cil_tmp4 ;
 9554  struct vhost_virtqueue *__cil_tmp5 ;
 9555  struct iovec *__cil_tmp6 ;
 9556  void const   *__cil_tmp7 ;
 9557  struct vhost_virtqueue *__cil_tmp8 ;
 9558  struct vhost_virtqueue *__cil_tmp9 ;
 9559  void *__cil_tmp10 ;
 9560  struct vhost_virtqueue *__cil_tmp11 ;
 9561  struct vhost_virtqueue *__cil_tmp12 ;
 9562  struct vhost_log *__cil_tmp13 ;
 9563  void const   *__cil_tmp14 ;
 9564  struct vhost_virtqueue *__cil_tmp15 ;
 9565  struct vhost_virtqueue *__cil_tmp16 ;
 9566  void *__cil_tmp17 ;
 9567  struct vhost_virtqueue *__cil_tmp18 ;
 9568  struct vhost_virtqueue *__cil_tmp19 ;
 9569  struct vring_used_elem *__cil_tmp20 ;
 9570  void const   *__cil_tmp21 ;
 9571  struct vhost_virtqueue *__cil_tmp22 ;
 9572  struct vhost_virtqueue *__cil_tmp23 ;
 9573  void *__cil_tmp24 ;
 9574
 9575  {
 9576#line 260
 9577  i = 0;
 9578  {
 9579#line 260
 9580  while (1) {
 9581    while_continue: /* CIL Label */ ;
 9582
 9583    {
 9584#line 260
 9585    __cil_tmp3 = dev->nvqs;
 9586#line 260
 9587    if (i < __cil_tmp3) {
 9588
 9589    } else {
 9590#line 260
 9591      goto while_break;
 9592    }
 9593    }
 9594    {
 9595#line 261
 9596    __cil_tmp4 = dev->vqs;
 9597#line 261
 9598    __cil_tmp5 = __cil_tmp4 + i;
 9599#line 261
 9600    __cil_tmp6 = __cil_tmp5->indirect;
 9601#line 261
 9602    __cil_tmp7 = (void const   *)__cil_tmp6;
 9603#line 261
 9604    kfree(__cil_tmp7);
 9605#line 262
 9606    __cil_tmp8 = dev->vqs;
 9607#line 262
 9608    __cil_tmp9 = __cil_tmp8 + i;
 9609#line 262
 9610    __cil_tmp10 = (void *)0;
 9611#line 262
 9612    __cil_tmp9->indirect = (struct iovec *)__cil_tmp10;
 9613#line 263
 9614    __cil_tmp11 = dev->vqs;
 9615#line 263
 9616    __cil_tmp12 = __cil_tmp11 + i;
 9617#line 263
 9618    __cil_tmp13 = __cil_tmp12->log;
 9619#line 263
 9620    __cil_tmp14 = (void const   *)__cil_tmp13;
 9621#line 263
 9622    kfree(__cil_tmp14);
 9623#line 264
 9624    __cil_tmp15 = dev->vqs;
 9625#line 264
 9626    __cil_tmp16 = __cil_tmp15 + i;
 9627#line 264
 9628    __cil_tmp17 = (void *)0;
 9629#line 264
 9630    __cil_tmp16->log = (struct vhost_log *)__cil_tmp17;
 9631#line 265
 9632    __cil_tmp18 = dev->vqs;
 9633#line 265
 9634    __cil_tmp19 = __cil_tmp18 + i;
 9635#line 265
 9636    __cil_tmp20 = __cil_tmp19->heads;
 9637#line 265
 9638    __cil_tmp21 = (void const   *)__cil_tmp20;
 9639#line 265
 9640    kfree(__cil_tmp21);
 9641#line 266
 9642    __cil_tmp22 = dev->vqs;
 9643#line 266
 9644    __cil_tmp23 = __cil_tmp22 + i;
 9645#line 266
 9646    __cil_tmp24 = (void *)0;
 9647#line 266
 9648    __cil_tmp23->heads = (struct vring_used_elem *)__cil_tmp24;
 9649#line 260
 9650    i = i + 1;
 9651    }
 9652  }
 9653  while_break___0: /* CIL Label */ ;
 9654  }
 9655
 9656  while_break: ;
 9657#line 268
 9658  return;
 9659}
 9660}
 9661#line 277 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 9662static struct lock_class_key __key___8  ;
 9663#line 282 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 9664static struct lock_class_key __key___9  ;
 9665#line 291 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 9666static struct lock_class_key __key___10  ;
 9667#line 270 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 9668long vhost_dev_init(struct vhost_dev *dev , struct vhost_virtqueue *vqs , int nvqs ) 
 9669{ int i ;
 9670  struct mutex *__cil_tmp5 ;
 9671  void *__cil_tmp6 ;
 9672  void *__cil_tmp7 ;
 9673  void *__cil_tmp8 ;
 9674  void *__cil_tmp9 ;
 9675  spinlock_t *__cil_tmp10 ;
 9676  struct raw_spinlock *__cil_tmp11 ;
 9677  struct list_head *__cil_tmp12 ;
 9678  void *__cil_tmp13 ;
 9679  int __cil_tmp14 ;
 9680  struct vhost_virtqueue *__cil_tmp15 ;
 9681  struct vhost_virtqueue *__cil_tmp16 ;
 9682  void *__cil_tmp17 ;
 9683  struct vhost_virtqueue *__cil_tmp18 ;
 9684  struct vhost_virtqueue *__cil_tmp19 ;
 9685  void *__cil_tmp20 ;
 9686  struct vhost_virtqueue *__cil_tmp21 ;
 9687  struct vhost_virtqueue *__cil_tmp22 ;
 9688  void *__cil_tmp23 ;
 9689  struct vhost_virtqueue *__cil_tmp24 ;
 9690  struct vhost_virtqueue *__cil_tmp25 ;
 9691  struct vhost_virtqueue *__cil_tmp26 ;
 9692  struct vhost_virtqueue *__cil_tmp27 ;
 9693  struct mutex *__cil_tmp28 ;
 9694  struct vhost_virtqueue *__cil_tmp29 ;
 9695  struct vhost_virtqueue *__cil_tmp30 ;
 9696  struct vhost_virtqueue *__cil_tmp31 ;
 9697  struct vhost_virtqueue *__cil_tmp32 ;
 9698  struct vhost_virtqueue *__cil_tmp33 ;
 9699  struct vhost_virtqueue *__cil_tmp34 ;
 9700  struct vhost_poll *__cil_tmp35 ;
 9701  struct vhost_virtqueue *__cil_tmp36 ;
 9702  struct vhost_virtqueue *__cil_tmp37 ;
 9703  void (*__cil_tmp38)(struct vhost_work *work ) ;
 9704
 9705  {
 9706#line 275
 9707  dev->vqs = vqs;
 9708#line 276
 9709  dev->nvqs = nvqs;
 9710  {
 9711#line 277
 9712  while (1) {
 9713    while_continue: /* CIL Label */ ;
 9714    {
 9715#line 277
 9716    __cil_tmp5 = & dev->mutex;
 9717#line 277
 9718    __mutex_init(__cil_tmp5, "&dev->mutex", & __key___8);
 9719    }
 9720#line 277
 9721    goto while_break;
 9722  }
 9723  while_break___4: /* CIL Label */ ;
 9724  }
 9725
 9726  while_break: 
 9727#line 278
 9728  __cil_tmp6 = (void *)0;
 9729#line 278
 9730  dev->log_ctx = (struct eventfd_ctx *)__cil_tmp6;
 9731#line 279
 9732  __cil_tmp7 = (void *)0;
 9733#line 279
 9734  dev->log_file = (struct file *)__cil_tmp7;
 9735#line 280
 9736  __cil_tmp8 = (void *)0;
 9737#line 280
 9738  dev->memory = (struct vhost_memory *)__cil_tmp8;
 9739#line 281
 9740  __cil_tmp9 = (void *)0;
 9741#line 281
 9742  dev->mm = (struct mm_struct *)__cil_tmp9;
 9743  {
 9744#line 282
 9745  while (1) {
 9746    while_continue___0: /* CIL Label */ ;
 9747    {
 9748#line 282
 9749    __cil_tmp10 = & dev->work_lock;
 9750#line 282
 9751    spinlock_check(__cil_tmp10);
 9752    }
 9753    {
 9754#line 282
 9755    while (1) {
 9756      while_continue___1: /* CIL Label */ ;
 9757      {
 9758#line 282
 9759      __cil_tmp11 = & dev->work_lock.__annonCompField18.rlock;
 9760#line 282
 9761      __raw_spin_lock_init(__cil_tmp11, "&(&dev->work_lock)->rlock", & __key___9);
 9762      }
 9763#line 282
 9764      goto while_break___1;
 9765    }
 9766    while_break___6: /* CIL Label */ ;
 9767    }
 9768
 9769    while_break___1: ;
 9770#line 282
 9771    goto while_break___0;
 9772  }
 9773  while_break___5: /* CIL Label */ ;
 9774  }
 9775
 9776  while_break___0: 
 9777  {
 9778#line 283
 9779  __cil_tmp12 = & dev->work_list;
 9780#line 283
 9781  INIT_LIST_HEAD(__cil_tmp12);
 9782#line 284
 9783  __cil_tmp13 = (void *)0;
 9784#line 284
 9785  dev->worker = (struct task_struct *)__cil_tmp13;
 9786#line 286
 9787  i = 0;
 9788  }
 9789  {
 9790#line 286
 9791  while (1) {
 9792    while_continue___2: /* CIL Label */ ;
 9793
 9794    {
 9795#line 286
 9796    __cil_tmp14 = dev->nvqs;
 9797#line 286
 9798    if (i < __cil_tmp14) {
 9799
 9800    } else {
 9801#line 286
 9802      goto while_break___2;
 9803    }
 9804    }
 9805#line 287
 9806    __cil_tmp15 = dev->vqs;
 9807#line 287
 9808    __cil_tmp16 = __cil_tmp15 + i;
 9809#line 287
 9810    __cil_tmp17 = (void *)0;
 9811#line 287
 9812    __cil_tmp16->log = (struct vhost_log *)__cil_tmp17;
 9813#line 288
 9814    __cil_tmp18 = dev->vqs;
 9815#line 288
 9816    __cil_tmp19 = __cil_tmp18 + i;
 9817#line 288
 9818    __cil_tmp20 = (void *)0;
 9819#line 288
 9820    __cil_tmp19->indirect = (struct iovec *)__cil_tmp20;
 9821#line 289
 9822    __cil_tmp21 = dev->vqs;
 9823#line 289
 9824    __cil_tmp22 = __cil_tmp21 + i;
 9825#line 289
 9826    __cil_tmp23 = (void *)0;
 9827#line 289
 9828    __cil_tmp22->heads = (struct vring_used_elem *)__cil_tmp23;
 9829#line 290
 9830    __cil_tmp24 = dev->vqs;
 9831#line 290
 9832    __cil_tmp25 = __cil_tmp24 + i;
 9833#line 290
 9834    __cil_tmp25->dev = dev;
 9835    {
 9836#line 291
 9837    while (1) {
 9838      while_continue___3: /* CIL Label */ ;
 9839      {
 9840#line 291
 9841      __cil_tmp26 = dev->vqs;
 9842#line 291
 9843      __cil_tmp27 = __cil_tmp26 + i;
 9844#line 291
 9845      __cil_tmp28 = & __cil_tmp27->mutex;
 9846#line 291
 9847      __mutex_init(__cil_tmp28, "&dev->vqs[i].mutex", & __key___10);
 9848      }
 9849#line 291
 9850      goto while_break___3;
 9851    }
 9852    while_break___8: /* CIL Label */ ;
 9853    }
 9854
 9855    while_break___3: 
 9856    {
 9857#line 292
 9858    __cil_tmp29 = dev->vqs;
 9859#line 292
 9860    __cil_tmp30 = __cil_tmp29 + i;
 9861#line 292
 9862    vhost_vq_reset(dev, __cil_tmp30);
 9863    }
 9864    {
 9865#line 293
 9866    __cil_tmp31 = dev->vqs;
 9867#line 293
 9868    __cil_tmp32 = __cil_tmp31 + i;
 9869#line 293
 9870    if (__cil_tmp32->handle_kick) {
 9871      {
 9872#line 294
 9873      __cil_tmp33 = dev->vqs;
 9874#line 294
 9875      __cil_tmp34 = __cil_tmp33 + i;
 9876#line 294
 9877      __cil_tmp35 = & __cil_tmp34->poll;
 9878#line 294
 9879      __cil_tmp36 = dev->vqs;
 9880#line 294
 9881      __cil_tmp37 = __cil_tmp36 + i;
 9882#line 294
 9883      __cil_tmp38 = __cil_tmp37->handle_kick;
 9884#line 294
 9885      vhost_poll_init(__cil_tmp35, __cil_tmp38, 1UL, dev);
 9886      }
 9887    } else {
 9888
 9889    }
 9890    }
 9891#line 286
 9892    i = i + 1;
 9893  }
 9894  while_break___7: /* CIL Label */ ;
 9895  }
 9896
 9897  while_break___2: ;
 9898#line 298
 9899  return (0L);
 9900}
 9901}
 9902#line 302 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 9903long vhost_dev_check_owner(struct vhost_dev *dev ) 
 9904{ int tmp___8 ;
 9905  struct task_struct *tmp___9 ;
 9906  struct mm_struct *__cil_tmp4 ;
 9907  unsigned long __cil_tmp5 ;
 9908  struct mm_struct *__cil_tmp6 ;
 9909  unsigned long __cil_tmp7 ;
 9910
 9911  {
 9912  {
 9913#line 305
 9914  tmp___9 = get_current();
 9915  }
 9916  {
 9917#line 305
 9918  __cil_tmp4 = tmp___9->mm;
 9919#line 305
 9920  __cil_tmp5 = (unsigned long )__cil_tmp4;
 9921#line 305
 9922  __cil_tmp6 = dev->mm;
 9923#line 305
 9924  __cil_tmp7 = (unsigned long )__cil_tmp6;
 9925#line 305
 9926  if (__cil_tmp7 == __cil_tmp5) {
 9927#line 305
 9928    tmp___8 = 0;
 9929  } else {
 9930#line 305
 9931    tmp___8 = -1;
 9932  }
 9933  }
 9934#line 305
 9935  return ((long )tmp___8);
 9936}
 9937}
 9938#line 314 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 9939static void vhost_attach_cgroups_work(struct vhost_work *work ) 
 9940{ struct vhost_attach_cgroups_struct *s ;
 9941  struct vhost_work  const  *__mptr ;
 9942  struct task_struct *tmp___7 ;
 9943  struct vhost_attach_cgroups_struct *__cil_tmp5 ;
 9944  struct vhost_work *__cil_tmp6 ;
 9945  unsigned int __cil_tmp7 ;
 9946  char *__cil_tmp8 ;
 9947  char *__cil_tmp9 ;
 9948  struct task_struct *__cil_tmp10 ;
 9949
 9950  {
 9951  {
 9952#line 318
 9953  __mptr = (struct vhost_work  const  *)work;
 9954#line 318
 9955  __cil_tmp5 = (struct vhost_attach_cgroups_struct *)0;
 9956#line 318
 9957  __cil_tmp6 = & __cil_tmp5->work;
 9958#line 318
 9959  __cil_tmp7 = (unsigned int )__cil_tmp6;
 9960#line 318
 9961  __cil_tmp8 = (char *)__mptr;
 9962#line 318
 9963  __cil_tmp9 = __cil_tmp8 - __cil_tmp7;
 9964#line 318
 9965  s = (struct vhost_attach_cgroups_struct *)__cil_tmp9;
 9966#line 319
 9967  tmp___7 = get_current();
 9968#line 319
 9969  __cil_tmp10 = s->owner;
 9970#line 319
 9971  s->ret = cgroup_attach_task_all(__cil_tmp10, tmp___7);
 9972  }
 9973#line 320
 9974  return;
 9975}
 9976}
 9977#line 322 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
 9978static int vhost_attach_cgroups(struct vhost_dev *dev ) 
 9979{ struct vhost_attach_cgroups_struct attach ;
 9980  struct vhost_work *__cil_tmp3 ;
 9981  struct vhost_work *__cil_tmp4 ;
 9982  struct vhost_work *__cil_tmp5 ;
 9983
 9984  {
 9985  {
 9986#line 326
 9987  attach.owner = get_current();
 9988#line 327
 9989  __cil_tmp3 = & attach.work;
 9990#line 327
 9991  vhost_work_init(__cil_tmp3, & vhost_attach_cgroups_work);
 9992#line 328
 9993  __cil_tmp4 = & attach.work;
 9994#line 328
 9995  vhost_work_queue(dev, __cil_tmp4);
 9996#line 329
 9997  __cil_tmp5 = & attach.work;
 9998#line 329
 9999  vhost_work_flush(dev, __cil_tmp5);
10000  }
10001#line 330
10002  return (attach.ret);
10003}
10004}
10005#line 334 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10006static long vhost_dev_set_owner(struct vhost_dev *dev ) 
10007{ struct task_struct *worker ;
10008  int err ;
10009  struct task_struct *tmp___7 ;
10010  struct task_struct *tmp___8 ;
10011  long tmp___9 ;
10012  long tmp___10 ;
10013  long tmp___11 ;
10014  long tmp ;
10015  long tmp___12 ;
10016  long tmp___13 ;
10017  long tmp___14 ;
10018  void *__cil_tmp13 ;
10019  pid_t __cil_tmp14 ;
10020  void const   *__cil_tmp15 ;
10021  void const   *__cil_tmp16 ;
10022  void *__cil_tmp17 ;
10023  struct mm_struct *__cil_tmp18 ;
10024  void *__cil_tmp19 ;
10025
10026  {
10027#line 340
10028  if (dev->mm) {
10029#line 341
10030    err = -16;
10031#line 342
10032    goto err_mm;
10033  } else {
10034
10035  }
10036  {
10037#line 346
10038  tmp___7 = get_current();
10039#line 346
10040  dev->mm = get_task_mm(tmp___7);
10041#line 347
10042  tmp___8 = get_current();
10043#line 347
10044  __cil_tmp13 = (void *)dev;
10045#line 347
10046  __cil_tmp14 = tmp___8->pid;
10047#line 347
10048  worker = kthread_create_on_node(& vhost_worker, __cil_tmp13, -1, "vhost-%d", __cil_tmp14);
10049#line 348
10050  __cil_tmp15 = (void const   *)worker;
10051#line 348
10052  tmp___13 = (long )IS_ERR(__cil_tmp15);
10053#line 348
10054  tmp = tmp___13;
10055#line 348
10056  tmp___10 = tmp;
10057  }
10058#line 348
10059  if (tmp___10) {
10060    {
10061#line 349
10062    __cil_tmp16 = (void const   *)worker;
10063#line 349
10064    tmp___14 = (long )PTR_ERR(__cil_tmp16);
10065#line 349
10066    tmp___12 = tmp___14;
10067#line 349
10068    tmp___9 = tmp___12;
10069#line 349
10070    err = (int )tmp___9;
10071    }
10072#line 350
10073    goto err_worker;
10074  } else {
10075
10076  }
10077  {
10078#line 353
10079  dev->worker = worker;
10080#line 354
10081  wake_up_process(worker);
10082#line 356
10083  err = vhost_attach_cgroups(dev);
10084  }
10085#line 357
10086  if (err) {
10087#line 358
10088    goto err_cgroup;
10089  } else {
10090
10091  }
10092  {
10093#line 360
10094  tmp___11 = vhost_dev_alloc_iovecs(dev);
10095#line 360
10096  err = (int )tmp___11;
10097  }
10098#line 361
10099  if (err) {
10100#line 362
10101    goto err_cgroup;
10102  } else {
10103
10104  }
10105#line 364
10106  return (0L);
10107  err_cgroup: 
10108  {
10109#line 366
10110  kthread_stop(worker);
10111#line 367
10112  __cil_tmp17 = (void *)0;
10113#line 367
10114  dev->worker = (struct task_struct *)__cil_tmp17;
10115  }
10116  err_worker: 
10117#line 369
10118  if (dev->mm) {
10119    {
10120#line 370
10121    __cil_tmp18 = dev->mm;
10122#line 370
10123    mmput(__cil_tmp18);
10124    }
10125  } else {
10126
10127  }
10128#line 371
10129  __cil_tmp19 = (void *)0;
10130#line 371
10131  dev->mm = (struct mm_struct *)__cil_tmp19;
10132  err_mm: 
10133#line 373
10134  return ((long )err);
10135}
10136}
10137#line 377 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10138long vhost_dev_reset_owner(struct vhost_dev *dev ) 
10139{ struct vhost_memory *memory ;
10140  void *tmp___7 ;
10141  struct vhost_memory *__cil_tmp4 ;
10142  struct vhost_memory_region (*__cil_tmp5)[0] ;
10143  unsigned int __cil_tmp6 ;
10144  size_t __cil_tmp7 ;
10145
10146  {
10147  {
10148#line 382
10149  __cil_tmp4 = (struct vhost_memory *)0;
10150#line 382
10151  __cil_tmp5 = & __cil_tmp4->regions;
10152#line 382
10153  __cil_tmp6 = (unsigned int )__cil_tmp5;
10154#line 382
10155  __cil_tmp7 = (size_t )__cil_tmp6;
10156#line 382
10157  tmp___7 = kmalloc(__cil_tmp7, 208U);
10158#line 382
10159  memory = (struct vhost_memory *)tmp___7;
10160  }
10161#line 383
10162  if (! memory) {
10163#line 384
10164    return (-12L);
10165  } else {
10166
10167  }
10168  {
10169#line 386
10170  vhost_dev_cleanup(dev);
10171#line 388
10172  memory->nregions = (__u32 )0;
10173#line 389
10174  dev->memory = memory;
10175  }
10176#line 390
10177  return (0L);
10178}
10179}
10180#line 423 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10181static bool __warned___22  ;
10182#line 394 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10183void vhost_dev_cleanup(struct vhost_dev *dev ) 
10184{ int i ;
10185  int tmp___7 ;
10186  int tmp___8 ;
10187  int __ret_warn_on ;
10188  int tmp___9 ;
10189  int tmp___10 ;
10190  long tmp___11 ;
10191  int __cil_tmp9 ;
10192  struct vhost_virtqueue *__cil_tmp10 ;
10193  struct vhost_virtqueue *__cil_tmp11 ;
10194  struct vhost_virtqueue *__cil_tmp12 ;
10195  struct vhost_virtqueue *__cil_tmp13 ;
10196  struct vhost_virtqueue *__cil_tmp14 ;
10197  struct vhost_virtqueue *__cil_tmp15 ;
10198  struct vhost_poll *__cil_tmp16 ;
10199  struct vhost_virtqueue *__cil_tmp17 ;
10200  struct vhost_virtqueue *__cil_tmp18 ;
10201  struct vhost_poll *__cil_tmp19 ;
10202  struct vhost_virtqueue *__cil_tmp20 ;
10203  struct vhost_virtqueue *__cil_tmp21 ;
10204  struct vhost_virtqueue *__cil_tmp22 ;
10205  struct vhost_virtqueue *__cil_tmp23 ;
10206  struct eventfd_ctx *__cil_tmp24 ;
10207  struct vhost_virtqueue *__cil_tmp25 ;
10208  struct vhost_virtqueue *__cil_tmp26 ;
10209  struct vhost_virtqueue *__cil_tmp27 ;
10210  struct vhost_virtqueue *__cil_tmp28 ;
10211  struct file *__cil_tmp29 ;
10212  struct vhost_virtqueue *__cil_tmp30 ;
10213  struct vhost_virtqueue *__cil_tmp31 ;
10214  struct vhost_virtqueue *__cil_tmp32 ;
10215  struct vhost_virtqueue *__cil_tmp33 ;
10216  struct file *__cil_tmp34 ;
10217  struct vhost_virtqueue *__cil_tmp35 ;
10218  struct vhost_virtqueue *__cil_tmp36 ;
10219  struct vhost_virtqueue *__cil_tmp37 ;
10220  struct vhost_virtqueue *__cil_tmp38 ;
10221  struct eventfd_ctx *__cil_tmp39 ;
10222  struct vhost_virtqueue *__cil_tmp40 ;
10223  struct vhost_virtqueue *__cil_tmp41 ;
10224  struct vhost_virtqueue *__cil_tmp42 ;
10225  struct vhost_virtqueue *__cil_tmp43 ;
10226  struct file *__cil_tmp44 ;
10227  struct vhost_virtqueue *__cil_tmp45 ;
10228  struct vhost_virtqueue *__cil_tmp46 ;
10229  struct eventfd_ctx *__cil_tmp47 ;
10230  void *__cil_tmp48 ;
10231  struct file *__cil_tmp49 ;
10232  void *__cil_tmp50 ;
10233  struct lockdep_map *__cil_tmp51 ;
10234  int __cil_tmp52 ;
10235  int __cil_tmp53 ;
10236  struct vhost_memory *__cil_tmp54 ;
10237  void const   *__cil_tmp55 ;
10238  void *__cil_tmp56 ;
10239  struct list_head *__cil_tmp57 ;
10240  struct list_head  const  *__cil_tmp58 ;
10241  int __cil_tmp59 ;
10242  int __cil_tmp60 ;
10243  long __cil_tmp61 ;
10244  int __cil_tmp62 ;
10245  int __cil_tmp63 ;
10246  int __cil_tmp64 ;
10247  int __cil_tmp65 ;
10248  long __cil_tmp66 ;
10249  struct task_struct *__cil_tmp67 ;
10250  void *__cil_tmp68 ;
10251  struct mm_struct *__cil_tmp69 ;
10252  void *__cil_tmp70 ;
10253
10254  {
10255#line 398
10256  i = 0;
10257  {
10258#line 398
10259  while (1) {
10260    while_continue: /* CIL Label */ ;
10261
10262    {
10263#line 398
10264    __cil_tmp9 = dev->nvqs;
10265#line 398
10266    if (i < __cil_tmp9) {
10267
10268    } else {
10269#line 398
10270      goto while_break;
10271    }
10272    }
10273    {
10274#line 399
10275    __cil_tmp10 = dev->vqs;
10276#line 399
10277    __cil_tmp11 = __cil_tmp10 + i;
10278#line 399
10279    if (__cil_tmp11->kick) {
10280      {
10281#line 399
10282      __cil_tmp12 = dev->vqs;
10283#line 399
10284      __cil_tmp13 = __cil_tmp12 + i;
10285#line 399
10286      if (__cil_tmp13->handle_kick) {
10287        {
10288#line 400
10289        __cil_tmp14 = dev->vqs;
10290#line 400
10291        __cil_tmp15 = __cil_tmp14 + i;
10292#line 400
10293        __cil_tmp16 = & __cil_tmp15->poll;
10294#line 400
10295        vhost_poll_stop(__cil_tmp16);
10296#line 401
10297        __cil_tmp17 = dev->vqs;
10298#line 401
10299        __cil_tmp18 = __cil_tmp17 + i;
10300#line 401
10301        __cil_tmp19 = & __cil_tmp18->poll;
10302#line 401
10303        vhost_poll_flush(__cil_tmp19);
10304        }
10305      } else {
10306
10307      }
10308      }
10309    } else {
10310
10311    }
10312    }
10313    {
10314#line 403
10315    __cil_tmp20 = dev->vqs;
10316#line 403
10317    __cil_tmp21 = __cil_tmp20 + i;
10318#line 403
10319    if (__cil_tmp21->error_ctx) {
10320      {
10321#line 404
10322      __cil_tmp22 = dev->vqs;
10323#line 404
10324      __cil_tmp23 = __cil_tmp22 + i;
10325#line 404
10326      __cil_tmp24 = __cil_tmp23->error_ctx;
10327#line 404
10328      eventfd_ctx_put(__cil_tmp24);
10329      }
10330    } else {
10331
10332    }
10333    }
10334    {
10335#line 405
10336    __cil_tmp25 = dev->vqs;
10337#line 405
10338    __cil_tmp26 = __cil_tmp25 + i;
10339#line 405
10340    if (__cil_tmp26->error) {
10341      {
10342#line 406
10343      __cil_tmp27 = dev->vqs;
10344#line 406
10345      __cil_tmp28 = __cil_tmp27 + i;
10346#line 406
10347      __cil_tmp29 = __cil_tmp28->error;
10348#line 406
10349      fput(__cil_tmp29);
10350      }
10351    } else {
10352
10353    }
10354    }
10355    {
10356#line 407
10357    __cil_tmp30 = dev->vqs;
10358#line 407
10359    __cil_tmp31 = __cil_tmp30 + i;
10360#line 407
10361    if (__cil_tmp31->kick) {
10362      {
10363#line 408
10364      __cil_tmp32 = dev->vqs;
10365#line 408
10366      __cil_tmp33 = __cil_tmp32 + i;
10367#line 408
10368      __cil_tmp34 = __cil_tmp33->kick;
10369#line 408
10370      fput(__cil_tmp34);
10371      }
10372    } else {
10373
10374    }
10375    }
10376    {
10377#line 409
10378    __cil_tmp35 = dev->vqs;
10379#line 409
10380    __cil_tmp36 = __cil_tmp35 + i;
10381#line 409
10382    if (__cil_tmp36->call_ctx) {
10383      {
10384#line 410
10385      __cil_tmp37 = dev->vqs;
10386#line 410
10387      __cil_tmp38 = __cil_tmp37 + i;
10388#line 410
10389      __cil_tmp39 = __cil_tmp38->call_ctx;
10390#line 410
10391      eventfd_ctx_put(__cil_tmp39);
10392      }
10393    } else {
10394
10395    }
10396    }
10397    {
10398#line 411
10399    __cil_tmp40 = dev->vqs;
10400#line 411
10401    __cil_tmp41 = __cil_tmp40 + i;
10402#line 411
10403    if (__cil_tmp41->call) {
10404      {
10405#line 412
10406      __cil_tmp42 = dev->vqs;
10407#line 412
10408      __cil_tmp43 = __cil_tmp42 + i;
10409#line 412
10410      __cil_tmp44 = __cil_tmp43->call;
10411#line 412
10412      fput(__cil_tmp44);
10413      }
10414    } else {
10415
10416    }
10417    }
10418    {
10419#line 413
10420    __cil_tmp45 = dev->vqs;
10421#line 413
10422    __cil_tmp46 = __cil_tmp45 + i;
10423#line 413
10424    vhost_vq_reset(dev, __cil_tmp46);
10425#line 398
10426    i = i + 1;
10427    }
10428  }
10429  while_break___1: /* CIL Label */ ;
10430  }
10431
10432  while_break: 
10433  {
10434#line 415
10435  vhost_dev_free_iovecs(dev);
10436  }
10437#line 416
10438  if (dev->log_ctx) {
10439    {
10440#line 417
10441    __cil_tmp47 = dev->log_ctx;
10442#line 417
10443    eventfd_ctx_put(__cil_tmp47);
10444    }
10445  } else {
10446
10447  }
10448#line 418
10449  __cil_tmp48 = (void *)0;
10450#line 418
10451  dev->log_ctx = (struct eventfd_ctx *)__cil_tmp48;
10452#line 419
10453  if (dev->log_file) {
10454    {
10455#line 420
10456    __cil_tmp49 = dev->log_file;
10457#line 420
10458    fput(__cil_tmp49);
10459    }
10460  } else {
10461
10462  }
10463#line 421
10464  __cil_tmp50 = (void *)0;
10465#line 421
10466  dev->log_file = (struct file *)__cil_tmp50;
10467  {
10468#line 423
10469  while (1) {
10470    while_continue___0: /* CIL Label */ ;
10471    {
10472#line 423
10473    tmp___7 = debug_lockdep_rcu_enabled();
10474    }
10475#line 423
10476    if (tmp___7) {
10477#line 423
10478      if (! __warned___22) {
10479        {
10480#line 423
10481        __cil_tmp51 = & dev->mutex.dep_map;
10482#line 423
10483        tmp___8 = lock_is_held(__cil_tmp51);
10484        }
10485#line 423
10486        if (tmp___8) {
10487
10488        } else {
10489          {
10490#line 423
10491          __warned___22 = (bool )1;
10492#line 423
10493          __cil_tmp52 = (int const   )424;
10494#line 423
10495          __cil_tmp53 = (int )__cil_tmp52;
10496#line 423
10497          lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
10498                                  __cil_tmp53);
10499          }
10500        }
10501      } else {
10502
10503      }
10504    } else {
10505
10506    }
10507#line 423
10508    goto while_break___0;
10509  }
10510  while_break___2: /* CIL Label */ ;
10511  }
10512
10513  while_break___0: 
10514  {
10515#line 423
10516  __cil_tmp54 = dev->memory;
10517#line 423
10518  __cil_tmp55 = (void const   *)__cil_tmp54;
10519#line 423
10520  kfree(__cil_tmp55);
10521#line 425
10522  __cil_tmp56 = (void *)0;
10523#line 425
10524  dev->memory = (struct vhost_memory *)__cil_tmp56;
10525#line 426
10526  __cil_tmp57 = & dev->work_list;
10527#line 426
10528  __cil_tmp58 = (struct list_head  const  *)__cil_tmp57;
10529#line 426
10530  tmp___9 = list_empty(__cil_tmp58);
10531  }
10532#line 426
10533  if (tmp___9) {
10534#line 426
10535    tmp___10 = 0;
10536  } else {
10537#line 426
10538    tmp___10 = 1;
10539  }
10540  {
10541#line 426
10542  __ret_warn_on = tmp___10;
10543#line 426
10544  __cil_tmp59 = ! __ret_warn_on;
10545#line 426
10546  __cil_tmp60 = ! __cil_tmp59;
10547#line 426
10548  __cil_tmp61 = (long )__cil_tmp60;
10549#line 426
10550  tmp___11 = __builtin_expect(__cil_tmp61, 0L);
10551  }
10552#line 426
10553  if (tmp___11) {
10554    {
10555#line 426
10556    __cil_tmp62 = (int const   )426;
10557#line 426
10558    __cil_tmp63 = (int )__cil_tmp62;
10559#line 426
10560    warn_slowpath_null("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
10561                       __cil_tmp63);
10562    }
10563  } else {
10564
10565  }
10566  {
10567#line 426
10568  __cil_tmp64 = ! __ret_warn_on;
10569#line 426
10570  __cil_tmp65 = ! __cil_tmp64;
10571#line 426
10572  __cil_tmp66 = (long )__cil_tmp65;
10573#line 426
10574  __builtin_expect(__cil_tmp66, 0L);
10575  }
10576#line 427
10577  if (dev->worker) {
10578    {
10579#line 428
10580    __cil_tmp67 = dev->worker;
10581#line 428
10582    kthread_stop(__cil_tmp67);
10583#line 429
10584    __cil_tmp68 = (void *)0;
10585#line 429
10586    dev->worker = (struct task_struct *)__cil_tmp68;
10587    }
10588  } else {
10589
10590  }
10591#line 431
10592  if (dev->mm) {
10593    {
10594#line 432
10595    __cil_tmp69 = dev->mm;
10596#line 432
10597    mmput(__cil_tmp69);
10598    }
10599  } else {
10600
10601  }
10602#line 433
10603  __cil_tmp70 = (void *)0;
10604#line 433
10605  dev->mm = (struct mm_struct *)__cil_tmp70;
10606#line 434
10607  return;
10608}
10609}
10610#line 436 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10611static int log_access_ok(void *log_base , u64 addr , unsigned long sz ) 
10612{ u64 a ;
10613  unsigned long flag ;
10614  unsigned long roksum ;
10615  struct thread_info *tmp___7 ;
10616  int tmp___8 ;
10617  long tmp___9 ;
10618  u64 __cil_tmp10 ;
10619  unsigned long __cil_tmp11 ;
10620  unsigned long __cil_tmp12 ;
10621  u64 __cil_tmp13 ;
10622  unsigned long __cil_tmp14 ;
10623  u64 __cil_tmp15 ;
10624  u64 __cil_tmp16 ;
10625  unsigned long __cil_tmp17 ;
10626  unsigned long __cil_tmp18 ;
10627  unsigned long __cil_tmp19 ;
10628  unsigned long __cil_tmp20 ;
10629  long __cil_tmp21 ;
10630
10631  {
10632#line 438
10633  __cil_tmp10 = addr / 4096ULL;
10634#line 438
10635  a = __cil_tmp10 / 8ULL;
10636  {
10637#line 441
10638  __cil_tmp11 = (unsigned long )log_base;
10639#line 441
10640  __cil_tmp12 = 1152921504606846975UL - __cil_tmp11;
10641#line 441
10642  __cil_tmp13 = (u64 )__cil_tmp12;
10643#line 441
10644  if (a > __cil_tmp13) {
10645#line 443
10646    return (0);
10647  } else {
10648    {
10649#line 441
10650    __cil_tmp14 = (unsigned long )log_base;
10651#line 441
10652    __cil_tmp15 = (u64 )__cil_tmp14;
10653#line 441
10654    __cil_tmp16 = a + __cil_tmp15;
10655#line 441
10656    if (__cil_tmp16 > 1152921504606846975ULL) {
10657#line 443
10658      return (0);
10659    } else {
10660
10661    }
10662    }
10663  }
10664  }
10665  {
10666#line 445
10667  tmp___7 = current_thread_info();
10668#line 445
10669  __cil_tmp17 = sz + 32768UL;
10670#line 445
10671  __cil_tmp18 = __cil_tmp17 - 1UL;
10672#line 445
10673  __cil_tmp19 = __cil_tmp18 / 4096UL;
10674#line 445
10675  __cil_tmp20 = __cil_tmp19 / 8UL;
10676#line 445
10677  __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (log_base + a),
10678            "g" ((long )__cil_tmp20), "rm" (tmp___7->addr_limit.seg));
10679  }
10680#line 445
10681  if (flag == 0UL) {
10682#line 445
10683    tmp___8 = 1;
10684  } else {
10685#line 445
10686    tmp___8 = 0;
10687  }
10688  {
10689#line 445
10690  __cil_tmp21 = (long )tmp___8;
10691#line 445
10692  tmp___9 = __builtin_expect(__cil_tmp21, 1L);
10693  }
10694#line 445
10695  return ((int )tmp___9);
10696}
10697}
10698#line 450 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10699static int vq_memory_access_ok(void *log_base , struct vhost_memory *mem , int log_all ) 
10700{ int i ;
10701  struct vhost_memory_region *m ;
10702  unsigned long a ;
10703  int tmp___7 ;
10704  unsigned long flag ;
10705  unsigned long roksum ;
10706  struct thread_info *tmp___8 ;
10707  int tmp___9 ;
10708  long tmp___10 ;
10709  __u32 __cil_tmp13 ;
10710  __u32 __cil_tmp14 ;
10711  struct vhost_memory_region *__cil_tmp15 ;
10712  __u64 __cil_tmp16 ;
10713  __u64 __cil_tmp17 ;
10714  __u64 __cil_tmp18 ;
10715  long __cil_tmp19 ;
10716  __u64 __cil_tmp20 ;
10717  __u64 __cil_tmp21 ;
10718  unsigned long __cil_tmp22 ;
10719
10720  {
10721#line 455
10722  if (! mem) {
10723#line 456
10724    return (0);
10725  } else {
10726
10727  }
10728#line 458
10729  i = 0;
10730  {
10731#line 458
10732  while (1) {
10733    while_continue: /* CIL Label */ ;
10734
10735    {
10736#line 458
10737    __cil_tmp13 = mem->nregions;
10738#line 458
10739    __cil_tmp14 = (__u32 )i;
10740#line 458
10741    if (__cil_tmp14 < __cil_tmp13) {
10742
10743    } else {
10744#line 458
10745      goto while_break;
10746    }
10747    }
10748#line 459
10749    __cil_tmp15 = & mem->regions[0];
10750#line 459
10751    m = __cil_tmp15 + i;
10752#line 460
10753    __cil_tmp16 = m->userspace_addr;
10754#line 460
10755    a = (unsigned long )__cil_tmp16;
10756    {
10757#line 461
10758    __cil_tmp17 = m->memory_size;
10759#line 461
10760    if (__cil_tmp17 > 1152921504606846975ULL) {
10761#line 462
10762      return (0);
10763    } else {
10764      {
10765#line 463
10766      tmp___8 = current_thread_info();
10767#line 463
10768      __cil_tmp18 = m->memory_size;
10769#line 463
10770      __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" ((void *)a),
10771                "g" ((long )__cil_tmp18), "rm" (tmp___8->addr_limit.seg));
10772      }
10773#line 463
10774      if (flag == 0UL) {
10775#line 463
10776        tmp___9 = 1;
10777      } else {
10778#line 463
10779        tmp___9 = 0;
10780      }
10781      {
10782#line 463
10783      __cil_tmp19 = (long )tmp___9;
10784#line 463
10785      tmp___10 = __builtin_expect(__cil_tmp19, 1L);
10786      }
10787#line 463
10788      if (tmp___10) {
10789#line 466
10790        if (log_all) {
10791          {
10792#line 466
10793          __cil_tmp20 = m->guest_phys_addr;
10794#line 466
10795          __cil_tmp21 = m->memory_size;
10796#line 466
10797          __cil_tmp22 = (unsigned long )__cil_tmp21;
10798#line 466
10799          tmp___7 = log_access_ok(log_base, __cil_tmp20, __cil_tmp22);
10800          }
10801#line 466
10802          if (tmp___7) {
10803
10804          } else {
10805#line 469
10806            return (0);
10807          }
10808        } else {
10809
10810        }
10811      } else {
10812#line 465
10813        return (0);
10814      }
10815    }
10816    }
10817#line 458
10818    i = i + 1;
10819  }
10820  while_break___0: /* CIL Label */ ;
10821  }
10822
10823  while_break: ;
10824#line 471
10825  return (1);
10826}
10827}
10828#line 476 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10829static int memory_access_ok(struct vhost_dev *d , struct vhost_memory *mem , int log_all ) 
10830{ int i ;
10831  int ok ;
10832  int __cil_tmp6 ;
10833  struct vhost_virtqueue *__cil_tmp7 ;
10834  struct vhost_virtqueue *__cil_tmp8 ;
10835  struct mutex *__cil_tmp9 ;
10836  struct vhost_virtqueue *__cil_tmp10 ;
10837  struct vhost_virtqueue *__cil_tmp11 ;
10838  struct vhost_virtqueue *__cil_tmp12 ;
10839  struct vhost_virtqueue *__cil_tmp13 ;
10840  void *__cil_tmp14 ;
10841  struct vhost_virtqueue *__cil_tmp15 ;
10842  struct vhost_virtqueue *__cil_tmp16 ;
10843  struct mutex *__cil_tmp17 ;
10844
10845  {
10846#line 481
10847  i = 0;
10848  {
10849#line 481
10850  while (1) {
10851    while_continue: /* CIL Label */ ;
10852
10853    {
10854#line 481
10855    __cil_tmp6 = d->nvqs;
10856#line 481
10857    if (i < __cil_tmp6) {
10858
10859    } else {
10860#line 481
10861      goto while_break;
10862    }
10863    }
10864    {
10865#line 483
10866    __cil_tmp7 = d->vqs;
10867#line 483
10868    __cil_tmp8 = __cil_tmp7 + i;
10869#line 483
10870    __cil_tmp9 = & __cil_tmp8->mutex;
10871#line 483
10872    mutex_lock_nested(__cil_tmp9, 0U);
10873    }
10874    {
10875#line 485
10876    __cil_tmp10 = d->vqs;
10877#line 485
10878    __cil_tmp11 = __cil_tmp10 + i;
10879#line 485
10880    if (__cil_tmp11->private_data) {
10881      {
10882#line 486
10883      __cil_tmp12 = d->vqs;
10884#line 486
10885      __cil_tmp13 = __cil_tmp12 + i;
10886#line 486
10887      __cil_tmp14 = __cil_tmp13->log_base;
10888#line 486
10889      ok = vq_memory_access_ok(__cil_tmp14, mem, log_all);
10890      }
10891    } else {
10892#line 489
10893      ok = 1;
10894    }
10895    }
10896    {
10897#line 490
10898    __cil_tmp15 = d->vqs;
10899#line 490
10900    __cil_tmp16 = __cil_tmp15 + i;
10901#line 490
10902    __cil_tmp17 = & __cil_tmp16->mutex;
10903#line 490
10904    mutex_unlock(__cil_tmp17);
10905    }
10906#line 491
10907    if (! ok) {
10908#line 492
10909      return (0);
10910    } else {
10911
10912    }
10913#line 481
10914    i = i + 1;
10915  }
10916  while_break___0: /* CIL Label */ ;
10917  }
10918
10919  while_break: ;
10920#line 494
10921  return (1);
10922}
10923}
10924#line 497 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10925static int vq_access_ok(struct vhost_dev *d , unsigned int num , struct vring_desc *desc ,
10926                        struct vring_avail *avail , struct vring_used *used ) 
10927{ size_t s ;
10928  int tmp___8 ;
10929  int tmp___9 ;
10930  unsigned long flag ;
10931  unsigned long roksum ;
10932  struct thread_info *tmp___10 ;
10933  int tmp___11 ;
10934  long tmp___12 ;
10935  unsigned long flag___0 ;
10936  unsigned long roksum___0 ;
10937  struct thread_info *tmp___13 ;
10938  int tmp___14 ;
10939  long tmp___15 ;
10940  unsigned long flag___1 ;
10941  unsigned long roksum___1 ;
10942  struct thread_info *tmp___16 ;
10943  int tmp___17 ;
10944  long tmp___18 ;
10945  int tmp___19 ;
10946  unsigned long __cil_tmp25 ;
10947  unsigned long __cil_tmp26 ;
10948  long __cil_tmp27 ;
10949  unsigned long __cil_tmp28 ;
10950  unsigned long __cil_tmp29 ;
10951  unsigned long __cil_tmp30 ;
10952  unsigned long __cil_tmp31 ;
10953  long __cil_tmp32 ;
10954  unsigned long __cil_tmp33 ;
10955  unsigned long __cil_tmp34 ;
10956  unsigned long __cil_tmp35 ;
10957  unsigned long __cil_tmp36 ;
10958  long __cil_tmp37 ;
10959
10960  {
10961  {
10962#line 502
10963  tmp___9 = vhost_has_feature(d, 29);
10964  }
10965#line 502
10966  if (tmp___9) {
10967#line 502
10968    tmp___8 = 2;
10969  } else {
10970#line 502
10971    tmp___8 = 0;
10972  }
10973  {
10974#line 502
10975  s = (size_t )tmp___8;
10976#line 503
10977  tmp___10 = current_thread_info();
10978#line 503
10979  __cil_tmp25 = (unsigned long )num;
10980#line 503
10981  __cil_tmp26 = __cil_tmp25 * 16UL;
10982#line 503
10983  __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (desc),
10984            "g" ((long )__cil_tmp26), "rm" (tmp___10->addr_limit.seg));
10985  }
10986#line 503
10987  if (flag == 0UL) {
10988#line 503
10989    tmp___11 = 1;
10990  } else {
10991#line 503
10992    tmp___11 = 0;
10993  }
10994  {
10995#line 503
10996  __cil_tmp27 = (long )tmp___11;
10997#line 503
10998  tmp___12 = __builtin_expect(__cil_tmp27, 1L);
10999  }
11000#line 506
11001  if (tmp___12) {
11002    {
11003#line 504
11004    tmp___13 = current_thread_info();
11005#line 504
11006    __cil_tmp28 = (unsigned long )num;
11007#line 504
11008    __cil_tmp29 = __cil_tmp28 * 2UL;
11009#line 504
11010    __cil_tmp30 = 4UL + __cil_tmp29;
11011#line 504
11012    __cil_tmp31 = __cil_tmp30 + s;
11013#line 504
11014    __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag___0), "=r" (roksum___0): "1" (avail),
11015              "g" ((long )__cil_tmp31), "rm" (tmp___13->addr_limit.seg));
11016    }
11017#line 504
11018    if (flag___0 == 0UL) {
11019#line 504
11020      tmp___14 = 1;
11021    } else {
11022#line 504
11023      tmp___14 = 0;
11024    }
11025    {
11026#line 504
11027    __cil_tmp32 = (long )tmp___14;
11028#line 504
11029    tmp___15 = __builtin_expect(__cil_tmp32, 1L);
11030    }
11031#line 506
11032    if (tmp___15) {
11033      {
11034#line 506
11035      tmp___16 = current_thread_info();
11036#line 506
11037      __cil_tmp33 = (unsigned long )num;
11038#line 506
11039      __cil_tmp34 = __cil_tmp33 * 8UL;
11040#line 506
11041      __cil_tmp35 = 4UL + __cil_tmp34;
11042#line 506
11043      __cil_tmp36 = __cil_tmp35 + s;
11044#line 506
11045      __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag___1),
11046                "=r" (roksum___1): "1" (used), "g" ((long )__cil_tmp36), "rm" (tmp___16->addr_limit.seg));
11047      }
11048#line 506
11049      if (flag___1 == 0UL) {
11050#line 506
11051        tmp___17 = 1;
11052      } else {
11053#line 506
11054        tmp___17 = 0;
11055      }
11056      {
11057#line 506
11058      __cil_tmp37 = (long )tmp___17;
11059#line 506
11060      tmp___18 = __builtin_expect(__cil_tmp37, 1L);
11061      }
11062#line 506
11063      if (tmp___18) {
11064#line 506
11065        tmp___19 = 1;
11066      } else {
11067#line 506
11068        tmp___19 = 0;
11069      }
11070    } else {
11071#line 506
11072      tmp___19 = 0;
11073    }
11074  } else {
11075#line 506
11076    tmp___19 = 0;
11077  }
11078#line 503
11079  return (tmp___19);
11080}
11081}
11082#line 516 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11083static bool __warned___23  ;
11084#line 512 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11085int vhost_log_access_ok(struct vhost_dev *dev ) 
11086{ struct vhost_memory *mp ;
11087  int tmp___7 ;
11088  int tmp___8 ;
11089  int tmp___9 ;
11090  struct lockdep_map *__cil_tmp6 ;
11091  int __cil_tmp7 ;
11092  int __cil_tmp8 ;
11093
11094  {
11095  {
11096#line 516
11097  while (1) {
11098    while_continue: /* CIL Label */ ;
11099    {
11100#line 516
11101    tmp___7 = debug_lockdep_rcu_enabled();
11102    }
11103#line 516
11104    if (tmp___7) {
11105#line 516
11106      if (! __warned___23) {
11107        {
11108#line 516
11109        __cil_tmp6 = & dev->mutex.dep_map;
11110#line 516
11111        tmp___8 = lock_is_held(__cil_tmp6);
11112        }
11113#line 516
11114        if (tmp___8) {
11115
11116        } else {
11117          {
11118#line 516
11119          __warned___23 = (bool )1;
11120#line 516
11121          __cil_tmp7 = (int const   )517;
11122#line 516
11123          __cil_tmp8 = (int )__cil_tmp7;
11124#line 516
11125          lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
11126                                  __cil_tmp8);
11127          }
11128        }
11129      } else {
11130
11131      }
11132    } else {
11133
11134    }
11135#line 516
11136    goto while_break;
11137  }
11138  while_break___0: /* CIL Label */ ;
11139  }
11140
11141  while_break: 
11142  {
11143#line 516
11144  mp = dev->memory;
11145#line 518
11146  tmp___9 = memory_access_ok(dev, mp, 1);
11147  }
11148#line 518
11149  return (tmp___9);
11150}
11151}
11152#line 529 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11153static bool __warned___24  ;
11154#line 523 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11155static int vq_log_access_ok(struct vhost_dev *d , struct vhost_virtqueue *vq , void *log_base ) 
11156{ struct vhost_memory *mp ;
11157  size_t s ;
11158  int tmp___8 ;
11159  int tmp___9 ;
11160  int tmp___10 ;
11161  int tmp___11 ;
11162  int tmp___12 ;
11163  int tmp___13 ;
11164  int tmp___14 ;
11165  int tmp___15 ;
11166  struct lockdep_map *__cil_tmp14 ;
11167  int __cil_tmp15 ;
11168  int __cil_tmp16 ;
11169  struct vhost_dev *__cil_tmp17 ;
11170  struct vhost_dev *__cil_tmp18 ;
11171  bool __cil_tmp19 ;
11172  u64 __cil_tmp20 ;
11173  unsigned int __cil_tmp21 ;
11174  unsigned long __cil_tmp22 ;
11175  unsigned long __cil_tmp23 ;
11176  unsigned long __cil_tmp24 ;
11177  unsigned long __cil_tmp25 ;
11178
11179  {
11180  {
11181#line 527
11182  tmp___9 = vhost_has_feature(d, 29);
11183  }
11184#line 527
11185  if (tmp___9) {
11186#line 527
11187    tmp___8 = 2;
11188  } else {
11189#line 527
11190    tmp___8 = 0;
11191  }
11192#line 527
11193  s = (size_t )tmp___8;
11194  {
11195#line 529
11196  while (1) {
11197    while_continue: /* CIL Label */ ;
11198    {
11199#line 529
11200    tmp___10 = debug_lockdep_rcu_enabled();
11201    }
11202#line 529
11203    if (tmp___10) {
11204#line 529
11205      if (! __warned___24) {
11206        {
11207#line 529
11208        __cil_tmp14 = & vq->mutex.dep_map;
11209#line 529
11210        tmp___11 = lock_is_held(__cil_tmp14);
11211        }
11212#line 529
11213        if (tmp___11) {
11214
11215        } else {
11216          {
11217#line 529
11218          __warned___24 = (bool )1;
11219#line 529
11220          __cil_tmp15 = (int const   )530;
11221#line 529
11222          __cil_tmp16 = (int )__cil_tmp15;
11223#line 529
11224          lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
11225                                  __cil_tmp16);
11226          }
11227        }
11228      } else {
11229
11230      }
11231    } else {
11232
11233    }
11234#line 529
11235    goto while_break;
11236  }
11237  while_break___0: /* CIL Label */ ;
11238  }
11239
11240  while_break: 
11241  {
11242#line 529
11243  __cil_tmp17 = vq->dev;
11244#line 529
11245  mp = __cil_tmp17->memory;
11246#line 531
11247  __cil_tmp18 = vq->dev;
11248#line 531
11249  tmp___12 = vhost_has_feature(__cil_tmp18, 26);
11250#line 531
11251  tmp___13 = vq_memory_access_ok(log_base, mp, tmp___12);
11252  }
11253#line 531
11254  if (tmp___13) {
11255    {
11256#line 531
11257    __cil_tmp19 = vq->log_used;
11258#line 531
11259    if (! __cil_tmp19) {
11260#line 531
11261      tmp___15 = 1;
11262    } else {
11263      {
11264#line 531
11265      __cil_tmp20 = vq->log_addr;
11266#line 531
11267      __cil_tmp21 = vq->num;
11268#line 531
11269      __cil_tmp22 = (unsigned long )__cil_tmp21;
11270#line 531
11271      __cil_tmp23 = __cil_tmp22 * 8UL;
11272#line 531
11273      __cil_tmp24 = 4UL + __cil_tmp23;
11274#line 531
11275      __cil_tmp25 = __cil_tmp24 + s;
11276#line 531
11277      tmp___14 = log_access_ok(log_base, __cil_tmp20, __cil_tmp25);
11278      }
11279#line 531
11280      if (tmp___14) {
11281#line 531
11282        tmp___15 = 1;
11283      } else {
11284#line 531
11285        tmp___15 = 0;
11286      }
11287    }
11288    }
11289  } else {
11290#line 531
11291    tmp___15 = 0;
11292  }
11293#line 531
11294  return (tmp___15);
11295}
11296}
11297#line 540 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11298int vhost_vq_access_ok(struct vhost_virtqueue *vq ) 
11299{ int tmp___7 ;
11300  int tmp___8 ;
11301  int tmp___9 ;
11302  struct vhost_dev *__cil_tmp5 ;
11303  unsigned int __cil_tmp6 ;
11304  struct vring_desc *__cil_tmp7 ;
11305  struct vring_avail *__cil_tmp8 ;
11306  struct vring_used *__cil_tmp9 ;
11307  struct vhost_dev *__cil_tmp10 ;
11308  void *__cil_tmp11 ;
11309
11310  {
11311  {
11312#line 542
11313  __cil_tmp5 = vq->dev;
11314#line 542
11315  __cil_tmp6 = vq->num;
11316#line 542
11317  __cil_tmp7 = vq->desc;
11318#line 542
11319  __cil_tmp8 = vq->avail;
11320#line 542
11321  __cil_tmp9 = vq->used;
11322#line 542
11323  tmp___7 = vq_access_ok(__cil_tmp5, __cil_tmp6, __cil_tmp7, __cil_tmp8, __cil_tmp9);
11324  }
11325#line 542
11326  if (tmp___7) {
11327    {
11328#line 542
11329    __cil_tmp10 = vq->dev;
11330#line 542
11331    __cil_tmp11 = vq->log_base;
11332#line 542
11333    tmp___8 = vq_log_access_ok(__cil_tmp10, vq, __cil_tmp11);
11334    }
11335#line 542
11336    if (tmp___8) {
11337#line 542
11338      tmp___9 = 1;
11339    } else {
11340#line 542
11341      tmp___9 = 0;
11342    }
11343  } else {
11344#line 542
11345    tmp___9 = 0;
11346  }
11347#line 542
11348  return (tmp___9);
11349}
11350}
11351#line 573 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11352static bool __warned___25  ;
11353#line 546 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11354static long vhost_set_memory(struct vhost_dev *d , struct vhost_memory *m ) 
11355{ struct vhost_memory mem ;
11356  struct vhost_memory *newmem ;
11357  struct vhost_memory *oldmem ;
11358  unsigned long size ;
11359  unsigned long tmp___7 ;
11360  void *tmp___8 ;
11361  size_t __len ;
11362  void *__ret ;
11363  unsigned long tmp___9 ;
11364  int tmp___10 ;
11365  int tmp___11 ;
11366  int tmp___12 ;
11367  int tmp___13 ;
11368  unsigned long tmp ;
11369  unsigned long tmp___14 ;
11370  unsigned long tmp___15 ;
11371  unsigned long tmp___16 ;
11372  struct vhost_memory *__cil_tmp20 ;
11373  struct vhost_memory_region (*__cil_tmp21)[0] ;
11374  unsigned int __cil_tmp22 ;
11375  void *__cil_tmp23 ;
11376  void const   *__cil_tmp24 ;
11377  unsigned long __cil_tmp25 ;
11378  unsigned long __cil_tmp26 ;
11379  unsigned long __cil_tmp27 ;
11380  void *__cil_tmp28 ;
11381  void const   *__cil_tmp29 ;
11382  struct vhost_memory_region *__cil_tmp30 ;
11383  void *__cil_tmp31 ;
11384  struct vhost_memory_region *__cil_tmp32 ;
11385  void const   *__cil_tmp33 ;
11386  unsigned long __cil_tmp34 ;
11387  unsigned long __cil_tmp35 ;
11388  void const   *__cil_tmp36 ;
11389  void const   *__cil_tmp37 ;
11390  struct lockdep_map *__cil_tmp38 ;
11391  int __cil_tmp39 ;
11392  int __cil_tmp40 ;
11393  void const   *__cil_tmp41 ;
11394
11395  {
11396  {
11397#line 549
11398  __cil_tmp20 = (struct vhost_memory *)0;
11399#line 549
11400  __cil_tmp21 = & __cil_tmp20->regions;
11401#line 549
11402  __cil_tmp22 = (unsigned int )__cil_tmp21;
11403#line 549
11404  size = (unsigned long )__cil_tmp22;
11405#line 551
11406  __cil_tmp23 = (void *)(& mem);
11407#line 551
11408  __cil_tmp24 = (void const   *)m;
11409#line 551
11410  tmp___15 = (unsigned long )copy_from_user(__cil_tmp23, __cil_tmp24, size);
11411#line 551
11412  tmp = tmp___15;
11413#line 551
11414  tmp___7 = tmp;
11415  }
11416#line 551
11417  if (tmp___7) {
11418#line 552
11419    return (-14L);
11420  } else {
11421
11422  }
11423#line 553
11424  if (mem.padding) {
11425#line 554
11426    return (-95L);
11427  } else {
11428
11429  }
11430#line 555
11431  if (mem.nregions > 64U) {
11432#line 556
11433    return (-7L);
11434  } else {
11435
11436  }
11437  {
11438#line 557
11439  __cil_tmp25 = (unsigned long )mem.nregions;
11440#line 557
11441  __cil_tmp26 = __cil_tmp25 * 32UL;
11442#line 557
11443  __cil_tmp27 = size + __cil_tmp26;
11444#line 557
11445  tmp___8 = kmalloc(__cil_tmp27, 208U);
11446#line 557
11447  newmem = (struct vhost_memory *)tmp___8;
11448  }
11449#line 558
11450  if (! newmem) {
11451#line 559
11452    return (-12L);
11453  } else {
11454
11455  }
11456  {
11457#line 561
11458  __len = size;
11459#line 561
11460  __cil_tmp28 = (void *)newmem;
11461#line 561
11462  __cil_tmp29 = (void const   *)(& mem);
11463#line 561
11464  __ret = __builtin_memcpy(__cil_tmp28, __cil_tmp29, __len);
11465#line 562
11466  __cil_tmp30 = & newmem->regions[0];
11467#line 562
11468  __cil_tmp31 = (void *)__cil_tmp30;
11469#line 562
11470  __cil_tmp32 = & m->regions[0];
11471#line 562
11472  __cil_tmp33 = (void const   *)__cil_tmp32;
11473#line 562
11474  __cil_tmp34 = (unsigned long )mem.nregions;
11475#line 562
11476  __cil_tmp35 = __cil_tmp34 * 32UL;
11477#line 562
11478  tmp___16 = (unsigned long )copy_from_user(__cil_tmp31, __cil_tmp33, __cil_tmp35);
11479#line 562
11480  tmp___14 = tmp___16;
11481#line 562
11482  tmp___9 = tmp___14;
11483  }
11484#line 562
11485  if (tmp___9) {
11486    {
11487#line 564
11488    __cil_tmp36 = (void const   *)newmem;
11489#line 564
11490    kfree(__cil_tmp36);
11491    }
11492#line 565
11493    return (-14L);
11494  } else {
11495
11496  }
11497  {
11498#line 568
11499  tmp___10 = vhost_has_feature(d, 26);
11500#line 568
11501  tmp___11 = memory_access_ok(d, newmem, tmp___10);
11502  }
11503#line 568
11504  if (tmp___11) {
11505
11506  } else {
11507    {
11508#line 570
11509    __cil_tmp37 = (void const   *)newmem;
11510#line 570
11511    kfree(__cil_tmp37);
11512    }
11513#line 571
11514    return (-14L);
11515  }
11516  {
11517#line 573
11518  while (1) {
11519    while_continue: /* CIL Label */ ;
11520    {
11521#line 573
11522    tmp___12 = debug_lockdep_rcu_enabled();
11523    }
11524#line 573
11525    if (tmp___12) {
11526#line 573
11527      if (! __warned___25) {
11528        {
11529#line 573
11530        __cil_tmp38 = & d->mutex.dep_map;
11531#line 573
11532        tmp___13 = lock_is_held(__cil_tmp38);
11533        }
11534#line 573
11535        if (tmp___13) {
11536
11537        } else {
11538          {
11539#line 573
11540          __warned___25 = (bool )1;
11541#line 573
11542          __cil_tmp39 = (int const   )574;
11543#line 573
11544          __cil_tmp40 = (int )__cil_tmp39;
11545#line 573
11546          lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
11547                                  __cil_tmp40);
11548          }
11549        }
11550      } else {
11551
11552      }
11553    } else {
11554
11555    }
11556#line 573
11557    goto while_break;
11558  }
11559  while_break___0: /* CIL Label */ ;
11560  }
11561
11562  while_break: 
11563  {
11564#line 573
11565  oldmem = d->memory;
11566#line 575
11567  __asm__  volatile   ("": : : "memory");
11568#line 575
11569  d->memory = newmem;
11570#line 576
11571  synchronize_rcu();
11572#line 577
11573  __cil_tmp41 = (void const   *)oldmem;
11574#line 577
11575  kfree(__cil_tmp41);
11576  }
11577#line 578
11578  return (0L);
11579}
11580}
11581#line 581 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11582static int init_used(struct vhost_virtqueue *vq , struct vring_used *used ) 
11583{ int r ;
11584  int __ret_pu ;
11585  __u16 __pu_val ;
11586  int __ret_gu ;
11587  unsigned long __val_gu ;
11588  int __cil_tmp8 ;
11589  int __cil_tmp9 ;
11590  int __cil_tmp10 ;
11591  int __cil_tmp11 ;
11592  int __cil_tmp12 ;
11593  int __cil_tmp13 ;
11594  int __cil_tmp14 ;
11595  int __cil_tmp15 ;
11596
11597  {
11598  {
11599#line 584
11600  might_fault();
11601#line 584
11602  __pu_val = vq->used_flags;
11603  }
11604  {
11605#line 584
11606  __cil_tmp8 = (int )2UL;
11607#line 584
11608  if (__cil_tmp8 == 1) {
11609#line 584
11610    goto case_1;
11611  } else {
11612    {
11613#line 584
11614    __cil_tmp9 = (int )2UL;
11615#line 584
11616    if (__cil_tmp9 == 2) {
11617#line 584
11618      goto case_2;
11619    } else {
11620      {
11621#line 584
11622      __cil_tmp10 = (int )2UL;
11623#line 584
11624      if (__cil_tmp10 == 4) {
11625#line 584
11626        goto case_4;
11627      } else {
11628        {
11629#line 584
11630        __cil_tmp11 = (int )2UL;
11631#line 584
11632        if (__cil_tmp11 == 8) {
11633#line 584
11634          goto case_8;
11635        } else {
11636#line 584
11637          goto switch_default;
11638#line 584
11639          if (0) {
11640            case_1: 
11641#line 584
11642            __asm__  volatile   ("call __put_user_"
11643                                 "1": "=a" (__ret_pu): "0" (__pu_val), "c" (& used->flags): "ebx");
11644#line 584
11645            goto switch_break;
11646            case_2: 
11647#line 584
11648            __asm__  volatile   ("call __put_user_"
11649                                 "2": "=a" (__ret_pu): "0" (__pu_val), "c" (& used->flags): "ebx");
11650#line 584
11651            goto switch_break;
11652            case_4: 
11653#line 584
11654            __asm__  volatile   ("call __put_user_"
11655                                 "4": "=a" (__ret_pu): "0" (__pu_val), "c" (& used->flags): "ebx");
11656#line 584
11657            goto switch_break;
11658            case_8: 
11659#line 584
11660            __asm__  volatile   ("call __put_user_"
11661                                 "8": "=a" (__ret_pu): "0" (__pu_val), "c" (& used->flags): "ebx");
11662#line 584
11663            goto switch_break;
11664            switch_default: 
11665#line 584
11666            __asm__  volatile   ("call __put_user_"
11667                                 "X": "=a" (__ret_pu): "0" (__pu_val), "c" (& used->flags): "ebx");
11668#line 584
11669            goto switch_break;
11670          } else {
11671            switch_break: ;
11672          }
11673        }
11674        }
11675      }
11676      }
11677    }
11678    }
11679  }
11680  }
11681#line 584
11682  r = __ret_pu;
11683#line 586
11684  if (r) {
11685#line 587
11686    return (r);
11687  } else {
11688
11689  }
11690  {
11691#line 588
11692  vq->signalled_used_valid = (bool )0;
11693#line 589
11694  might_fault();
11695  }
11696  {
11697#line 589
11698  __cil_tmp12 = (int )2UL;
11699#line 589
11700  if (__cil_tmp12 == 1) {
11701#line 589
11702    goto case_1___0;
11703  } else {
11704    {
11705#line 589
11706    __cil_tmp13 = (int )2UL;
11707#line 589
11708    if (__cil_tmp13 == 2) {
11709#line 589
11710      goto case_2___0;
11711    } else {
11712      {
11713#line 589
11714      __cil_tmp14 = (int )2UL;
11715#line 589
11716      if (__cil_tmp14 == 4) {
11717#line 589
11718        goto case_4___0;
11719      } else {
11720        {
11721#line 589
11722        __cil_tmp15 = (int )2UL;
11723#line 589
11724        if (__cil_tmp15 == 8) {
11725#line 589
11726          goto case_8___0;
11727        } else {
11728#line 589
11729          goto switch_default___0;
11730#line 589
11731          if (0) {
11732            case_1___0: 
11733#line 589
11734            __asm__  volatile   ("call __get_user_"
11735                                 "1": "=a" (__ret_gu), "=d" (__val_gu): "0" (& used->idx));
11736#line 589
11737            goto switch_break___0;
11738            case_2___0: 
11739#line 589
11740            __asm__  volatile   ("call __get_user_"
11741                                 "2": "=a" (__ret_gu), "=d" (__val_gu): "0" (& used->idx));
11742#line 589
11743            goto switch_break___0;
11744            case_4___0: 
11745#line 589
11746            __asm__  volatile   ("call __get_user_"
11747                                 "4": "=a" (__ret_gu), "=d" (__val_gu): "0" (& used->idx));
11748#line 589
11749            goto switch_break___0;
11750            case_8___0: 
11751#line 589
11752            __asm__  volatile   ("call __get_user_"
11753                                 "8": "=a" (__ret_gu), "=d" (__val_gu): "0" (& used->idx));
11754#line 589
11755            goto switch_break___0;
11756            switch_default___0: 
11757#line 589
11758            __asm__  volatile   ("call __get_user_"
11759                                 "X": "=a" (__ret_gu), "=d" (__val_gu): "0" (& used->idx));
11760#line 589
11761            goto switch_break___0;
11762          } else {
11763            switch_break___0: ;
11764          }
11765        }
11766        }
11767      }
11768      }
11769    }
11770    }
11771  }
11772  }
11773#line 589
11774  vq->last_used_idx = (__u16 )__val_gu;
11775#line 589
11776  return (__ret_gu);
11777}
11778}
11779#line 592 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11780static long vhost_set_vring(struct vhost_dev *d , int ioctl , void *argp ) 
11781{ struct file *eventfp ;
11782  struct file *filep ;
11783  struct file *pollstart ;
11784  struct file *pollstop ;
11785  struct eventfd_ctx *ctx ;
11786  u32 *idxp ;
11787  struct vhost_virtqueue *vq ;
11788  struct vhost_vring_state s ;
11789  struct vhost_vring_file f ;
11790  struct vhost_vring_addr a ;
11791  u32 idx ;
11792  long r ;
11793  int __ret_gu ;
11794  unsigned long __val_gu ;
11795  unsigned long tmp___7 ;
11796  unsigned long tmp___8 ;
11797  int tmp___9 ;
11798  unsigned long tmp___10 ;
11799  int tmp___11 ;
11800  int tmp___12 ;
11801  int tmp___13 ;
11802  unsigned long tmp___14 ;
11803  struct file *tmp___15 ;
11804  long tmp___16 ;
11805  struct file *tmp___17 ;
11806  unsigned long tmp___18 ;
11807  struct file *tmp___19 ;
11808  long tmp___20 ;
11809  struct eventfd_ctx *tmp___21 ;
11810  unsigned long tmp___22 ;
11811  struct file *tmp___23 ;
11812  long tmp___24 ;
11813  struct eventfd_ctx *tmp___25 ;
11814  unsigned long tmp ;
11815  unsigned long tmp___26 ;
11816  int tmp___27 ;
11817  unsigned long tmp___28 ;
11818  unsigned long tmp___29 ;
11819  long tmp___30 ;
11820  long tmp___31 ;
11821  unsigned long tmp___32 ;
11822  long tmp___33 ;
11823  long tmp___34 ;
11824  unsigned long tmp___35 ;
11825  long tmp___36 ;
11826  long tmp___37 ;
11827  unsigned long tmp___38 ;
11828  unsigned long tmp___39 ;
11829  int tmp___40 ;
11830  unsigned long tmp___41 ;
11831  unsigned long tmp___42 ;
11832  long tmp___43 ;
11833  long tmp___44 ;
11834  unsigned long tmp___45 ;
11835  long tmp___46 ;
11836  long tmp___47 ;
11837  unsigned long tmp___48 ;
11838  long tmp___49 ;
11839  long tmp___50 ;
11840  void *__cil_tmp63 ;
11841  void *__cil_tmp64 ;
11842  void *__cil_tmp65 ;
11843  void *__cil_tmp66 ;
11844  int __cil_tmp67 ;
11845  int __cil_tmp68 ;
11846  int __cil_tmp69 ;
11847  int __cil_tmp70 ;
11848  int __cil_tmp71 ;
11849  u32 __cil_tmp72 ;
11850  struct vhost_virtqueue *__cil_tmp73 ;
11851  struct mutex *__cil_tmp74 ;
11852  unsigned long __cil_tmp75 ;
11853  int __cil_tmp76 ;
11854  unsigned int __cil_tmp77 ;
11855  unsigned int __cil_tmp78 ;
11856  unsigned int __cil_tmp79 ;
11857  unsigned int __cil_tmp80 ;
11858  unsigned long __cil_tmp81 ;
11859  unsigned long __cil_tmp82 ;
11860  unsigned long __cil_tmp83 ;
11861  unsigned long __cil_tmp84 ;
11862  int __cil_tmp85 ;
11863  unsigned int __cil_tmp86 ;
11864  unsigned int __cil_tmp87 ;
11865  unsigned int __cil_tmp88 ;
11866  unsigned int __cil_tmp89 ;
11867  unsigned long __cil_tmp90 ;
11868  unsigned long __cil_tmp91 ;
11869  unsigned long __cil_tmp92 ;
11870  unsigned long __cil_tmp93 ;
11871  int __cil_tmp94 ;
11872  unsigned int __cil_tmp95 ;
11873  unsigned int __cil_tmp96 ;
11874  unsigned int __cil_tmp97 ;
11875  unsigned int __cil_tmp98 ;
11876  unsigned long __cil_tmp99 ;
11877  unsigned long __cil_tmp100 ;
11878  unsigned long __cil_tmp101 ;
11879  unsigned long __cil_tmp102 ;
11880  int __cil_tmp103 ;
11881  unsigned int __cil_tmp104 ;
11882  unsigned int __cil_tmp105 ;
11883  unsigned int __cil_tmp106 ;
11884  unsigned int __cil_tmp107 ;
11885  unsigned long __cil_tmp108 ;
11886  unsigned long __cil_tmp109 ;
11887  unsigned long __cil_tmp110 ;
11888  unsigned long __cil_tmp111 ;
11889  int __cil_tmp112 ;
11890  unsigned int __cil_tmp113 ;
11891  unsigned int __cil_tmp114 ;
11892  unsigned int __cil_tmp115 ;
11893  unsigned int __cil_tmp116 ;
11894  unsigned long __cil_tmp117 ;
11895  unsigned long __cil_tmp118 ;
11896  unsigned long __cil_tmp119 ;
11897  unsigned long __cil_tmp120 ;
11898  int __cil_tmp121 ;
11899  unsigned int __cil_tmp122 ;
11900  unsigned int __cil_tmp123 ;
11901  unsigned int __cil_tmp124 ;
11902  unsigned int __cil_tmp125 ;
11903  unsigned long __cil_tmp126 ;
11904  unsigned long __cil_tmp127 ;
11905  unsigned long __cil_tmp128 ;
11906  unsigned long __cil_tmp129 ;
11907  int __cil_tmp130 ;
11908  unsigned int __cil_tmp131 ;
11909  unsigned int __cil_tmp132 ;
11910  unsigned int __cil_tmp133 ;
11911  unsigned int __cil_tmp134 ;
11912  unsigned long __cil_tmp135 ;
11913  unsigned long __cil_tmp136 ;
11914  unsigned long __cil_tmp137 ;
11915  void *__cil_tmp138 ;
11916  void const   *__cil_tmp139 ;
11917  unsigned int __cil_tmp140 ;
11918  void *__cil_tmp141 ;
11919  void const   *__cil_tmp142 ;
11920  u16 __cil_tmp143 ;
11921  void const   *__cil_tmp144 ;
11922  unsigned int __cil_tmp145 ;
11923  void *__cil_tmp146 ;
11924  void const   *__cil_tmp147 ;
11925  unsigned long __cil_tmp148 ;
11926  u64 __cil_tmp149 ;
11927  unsigned long __cil_tmp150 ;
11928  u64 __cil_tmp151 ;
11929  unsigned long __cil_tmp152 ;
11930  u64 __cil_tmp153 ;
11931  unsigned long __cil_tmp154 ;
11932  unsigned long long __cil_tmp155 ;
11933  unsigned long __cil_tmp156 ;
11934  unsigned long long __cil_tmp157 ;
11935  unsigned long __cil_tmp158 ;
11936  unsigned long long __cil_tmp159 ;
11937  unsigned int __cil_tmp160 ;
11938  unsigned long __cil_tmp161 ;
11939  void *__cil_tmp162 ;
11940  struct vring_desc *__cil_tmp163 ;
11941  unsigned long __cil_tmp164 ;
11942  void *__cil_tmp165 ;
11943  struct vring_avail *__cil_tmp166 ;
11944  unsigned long __cil_tmp167 ;
11945  void *__cil_tmp168 ;
11946  struct vring_used *__cil_tmp169 ;
11947  void *__cil_tmp170 ;
11948  unsigned int __cil_tmp171 ;
11949  unsigned long __cil_tmp172 ;
11950  unsigned long __cil_tmp173 ;
11951  unsigned long __cil_tmp174 ;
11952  unsigned long __cil_tmp175 ;
11953  struct vring_used *__cil_tmp176 ;
11954  unsigned int __cil_tmp177 ;
11955  int __cil_tmp178 ;
11956  int __cil_tmp179 ;
11957  unsigned long __cil_tmp180 ;
11958  void *__cil_tmp181 ;
11959  unsigned long __cil_tmp182 ;
11960  void *__cil_tmp183 ;
11961  unsigned long __cil_tmp184 ;
11962  void *__cil_tmp185 ;
11963  void *__cil_tmp186 ;
11964  void const   *__cil_tmp187 ;
11965  void *__cil_tmp188 ;
11966  void const   *__cil_tmp189 ;
11967  void const   *__cil_tmp190 ;
11968  struct file *__cil_tmp191 ;
11969  unsigned long __cil_tmp192 ;
11970  unsigned long __cil_tmp193 ;
11971  void *__cil_tmp194 ;
11972  void const   *__cil_tmp195 ;
11973  void *__cil_tmp196 ;
11974  void const   *__cil_tmp197 ;
11975  void const   *__cil_tmp198 ;
11976  struct file *__cil_tmp199 ;
11977  unsigned long __cil_tmp200 ;
11978  unsigned long __cil_tmp201 ;
11979  void *__cil_tmp202 ;
11980  void *__cil_tmp203 ;
11981  void const   *__cil_tmp204 ;
11982  void *__cil_tmp205 ;
11983  void const   *__cil_tmp206 ;
11984  void const   *__cil_tmp207 ;
11985  struct file *__cil_tmp208 ;
11986  unsigned long __cil_tmp209 ;
11987  unsigned long __cil_tmp210 ;
11988  void *__cil_tmp211 ;
11989  struct vhost_poll *__cil_tmp212 ;
11990  struct vhost_poll *__cil_tmp213 ;
11991  struct file *__cil_tmp214 ;
11992  struct mutex *__cil_tmp215 ;
11993  struct vhost_poll *__cil_tmp216 ;
11994
11995  {
11996  {
11997#line 594
11998  __cil_tmp63 = (void *)0;
11999#line 594
12000  filep = (struct file *)__cil_tmp63;
12001#line 594
12002  __cil_tmp64 = (void *)0;
12003#line 594
12004  pollstart = (struct file *)__cil_tmp64;
12005#line 594
12006  __cil_tmp65 = (void *)0;
12007#line 594
12008  pollstop = (struct file *)__cil_tmp65;
12009#line 596
12010  __cil_tmp66 = (void *)0;
12011#line 596
12012  ctx = (struct eventfd_ctx *)__cil_tmp66;
12013#line 597
12014  idxp = (u32 *)argp;
12015#line 605
12016  might_fault();
12017  }
12018  {
12019#line 605
12020  __cil_tmp67 = (int )4UL;
12021#line 605
12022  if (__cil_tmp67 == 1) {
12023#line 605
12024    goto case_1;
12025  } else {
12026    {
12027#line 605
12028    __cil_tmp68 = (int )4UL;
12029#line 605
12030    if (__cil_tmp68 == 2) {
12031#line 605
12032      goto case_2;
12033    } else {
12034      {
12035#line 605
12036      __cil_tmp69 = (int )4UL;
12037#line 605
12038      if (__cil_tmp69 == 4) {
12039#line 605
12040        goto case_4;
12041      } else {
12042        {
12043#line 605
12044        __cil_tmp70 = (int )4UL;
12045#line 605
12046        if (__cil_tmp70 == 8) {
12047#line 605
12048          goto case_8;
12049        } else {
12050#line 605
12051          goto switch_default;
12052#line 605
12053          if (0) {
12054            case_1: 
12055#line 605
12056            __asm__  volatile   ("call __get_user_"
12057                                 "1": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
12058#line 605
12059            goto switch_break;
12060            case_2: 
12061#line 605
12062            __asm__  volatile   ("call __get_user_"
12063                                 "2": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
12064#line 605
12065            goto switch_break;
12066            case_4: 
12067#line 605
12068            __asm__  volatile   ("call __get_user_"
12069                                 "4": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
12070#line 605
12071            goto switch_break;
12072            case_8: 
12073#line 605
12074            __asm__  volatile   ("call __get_user_"
12075                                 "8": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
12076#line 605
12077            goto switch_break;
12078            switch_default: 
12079#line 605
12080            __asm__  volatile   ("call __get_user_"
12081                                 "X": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
12082#line 605
12083            goto switch_break;
12084          } else {
12085            switch_break: ;
12086          }
12087        }
12088        }
12089      }
12090      }
12091    }
12092    }
12093  }
12094  }
12095#line 605
12096  idx = (u32 )__val_gu;
12097#line 605
12098  r = (long )__ret_gu;
12099#line 606
12100  if (r < 0L) {
12101#line 607
12102    return (r);
12103  } else {
12104
12105  }
12106  {
12107#line 608
12108  __cil_tmp71 = d->nvqs;
12109#line 608
12110  __cil_tmp72 = (u32 )__cil_tmp71;
12111#line 608
12112  if (idx >= __cil_tmp72) {
12113#line 609
12114    return (-105L);
12115  } else {
12116
12117  }
12118  }
12119  {
12120#line 611
12121  __cil_tmp73 = d->vqs;
12122#line 611
12123  vq = __cil_tmp73 + idx;
12124#line 613
12125  __cil_tmp74 = & vq->mutex;
12126#line 613
12127  mutex_lock_nested(__cil_tmp74, 0U);
12128  }
12129  {
12130#line 616
12131  __cil_tmp75 = 8UL << 16;
12132#line 616
12133  __cil_tmp76 = 175 << 8;
12134#line 616
12135  __cil_tmp77 = (unsigned int )__cil_tmp76;
12136#line 616
12137  __cil_tmp78 = 1U << 30;
12138#line 616
12139  __cil_tmp79 = __cil_tmp78 | __cil_tmp77;
12140#line 616
12141  __cil_tmp80 = __cil_tmp79 | 16U;
12142#line 616
12143  __cil_tmp81 = (unsigned long )__cil_tmp80;
12144#line 616
12145  __cil_tmp82 = __cil_tmp81 | __cil_tmp75;
12146#line 616
12147  __cil_tmp83 = (unsigned long )ioctl;
12148#line 616
12149  if (__cil_tmp83 == __cil_tmp82) {
12150#line 616
12151    goto case_exp;
12152  } else {
12153    {
12154#line 633
12155    __cil_tmp84 = 8UL << 16;
12156#line 633
12157    __cil_tmp85 = 175 << 8;
12158#line 633
12159    __cil_tmp86 = (unsigned int )__cil_tmp85;
12160#line 633
12161    __cil_tmp87 = 1U << 30;
12162#line 633
12163    __cil_tmp88 = __cil_tmp87 | __cil_tmp86;
12164#line 633
12165    __cil_tmp89 = __cil_tmp88 | 18U;
12166#line 633
12167    __cil_tmp90 = (unsigned long )__cil_tmp89;
12168#line 633
12169    __cil_tmp91 = __cil_tmp90 | __cil_tmp84;
12170#line 633
12171    __cil_tmp92 = (unsigned long )ioctl;
12172#line 633
12173    if (__cil_tmp92 == __cil_tmp91) {
12174#line 633
12175      goto case_exp___0;
12176    } else {
12177      {
12178#line 652
12179      __cil_tmp93 = 8UL << 16;
12180#line 652
12181      __cil_tmp94 = 175 << 8;
12182#line 652
12183      __cil_tmp95 = (unsigned int )__cil_tmp94;
12184#line 652
12185      __cil_tmp96 = 3U << 30;
12186#line 652
12187      __cil_tmp97 = __cil_tmp96 | __cil_tmp95;
12188#line 652
12189      __cil_tmp98 = __cil_tmp97 | 18U;
12190#line 652
12191      __cil_tmp99 = (unsigned long )__cil_tmp98;
12192#line 652
12193      __cil_tmp100 = __cil_tmp99 | __cil_tmp93;
12194#line 652
12195      __cil_tmp101 = (unsigned long )ioctl;
12196#line 652
12197      if (__cil_tmp101 == __cil_tmp100) {
12198#line 652
12199        goto case_exp___1;
12200      } else {
12201        {
12202#line 658
12203        __cil_tmp102 = 40UL << 16;
12204#line 658
12205        __cil_tmp103 = 175 << 8;
12206#line 658
12207        __cil_tmp104 = (unsigned int )__cil_tmp103;
12208#line 658
12209        __cil_tmp105 = 1U << 30;
12210#line 658
12211        __cil_tmp106 = __cil_tmp105 | __cil_tmp104;
12212#line 658
12213        __cil_tmp107 = __cil_tmp106 | 17U;
12214#line 658
12215        __cil_tmp108 = (unsigned long )__cil_tmp107;
12216#line 658
12217        __cil_tmp109 = __cil_tmp108 | __cil_tmp102;
12218#line 658
12219        __cil_tmp110 = (unsigned long )ioctl;
12220#line 658
12221        if (__cil_tmp110 == __cil_tmp109) {
12222#line 658
12223          goto case_exp___2;
12224        } else {
12225          {
12226#line 714
12227          __cil_tmp111 = 8UL << 16;
12228#line 714
12229          __cil_tmp112 = 175 << 8;
12230#line 714
12231          __cil_tmp113 = (unsigned int )__cil_tmp112;
12232#line 714
12233          __cil_tmp114 = 1U << 30;
12234#line 714
12235          __cil_tmp115 = __cil_tmp114 | __cil_tmp113;
12236#line 714
12237          __cil_tmp116 = __cil_tmp115 | 32U;
12238#line 714
12239          __cil_tmp117 = (unsigned long )__cil_tmp116;
12240#line 714
12241          __cil_tmp118 = __cil_tmp117 | __cil_tmp111;
12242#line 714
12243          __cil_tmp119 = (unsigned long )ioctl;
12244#line 714
12245          if (__cil_tmp119 == __cil_tmp118) {
12246#line 714
12247            goto case_exp___3;
12248          } else {
12249            {
12250#line 730
12251            __cil_tmp120 = 8UL << 16;
12252#line 730
12253            __cil_tmp121 = 175 << 8;
12254#line 730
12255            __cil_tmp122 = (unsigned int )__cil_tmp121;
12256#line 730
12257            __cil_tmp123 = 1U << 30;
12258#line 730
12259            __cil_tmp124 = __cil_tmp123 | __cil_tmp122;
12260#line 730
12261            __cil_tmp125 = __cil_tmp124 | 33U;
12262#line 730
12263            __cil_tmp126 = (unsigned long )__cil_tmp125;
12264#line 730
12265            __cil_tmp127 = __cil_tmp126 | __cil_tmp120;
12266#line 730
12267            __cil_tmp128 = (unsigned long )ioctl;
12268#line 730
12269            if (__cil_tmp128 == __cil_tmp127) {
12270#line 730
12271              goto case_exp___4;
12272            } else {
12273              {
12274#line 749
12275              __cil_tmp129 = 8UL << 16;
12276#line 749
12277              __cil_tmp130 = 175 << 8;
12278#line 749
12279              __cil_tmp131 = (unsigned int )__cil_tmp130;
12280#line 749
12281              __cil_tmp132 = 1U << 30;
12282#line 749
12283              __cil_tmp133 = __cil_tmp132 | __cil_tmp131;
12284#line 749
12285              __cil_tmp134 = __cil_tmp133 | 34U;
12286#line 749
12287              __cil_tmp135 = (unsigned long )__cil_tmp134;
12288#line 749
12289              __cil_tmp136 = __cil_tmp135 | __cil_tmp129;
12290#line 749
12291              __cil_tmp137 = (unsigned long )ioctl;
12292#line 749
12293              if (__cil_tmp137 == __cil_tmp136) {
12294#line 749
12295                goto case_exp___5;
12296              } else {
12297#line 768
12298                goto switch_default___0;
12299#line 615
12300                if (0) {
12301                  case_exp: 
12302#line 619
12303                  if (vq->private_data) {
12304#line 620
12305                    r = -16L;
12306#line 621
12307                    goto switch_break___0;
12308                  } else {
12309
12310                  }
12311                  {
12312#line 623
12313                  __cil_tmp138 = (void *)(& s);
12314#line 623
12315                  __cil_tmp139 = (void const   *)argp;
12316#line 623
12317                  tmp___38 = (unsigned long )copy_from_user(__cil_tmp138, __cil_tmp139,
12318                                                            8UL);
12319#line 623
12320                  tmp = tmp___38;
12321#line 623
12322                  tmp___7 = tmp;
12323                  }
12324#line 623
12325                  if (tmp___7) {
12326#line 624
12327                    r = -14L;
12328#line 625
12329                    goto switch_break___0;
12330                  } else {
12331
12332                  }
12333#line 627
12334                  if (! s.num) {
12335#line 628
12336                    r = -22L;
12337#line 629
12338                    goto switch_break___0;
12339                  } else
12340#line 627
12341                  if (s.num > 65535U) {
12342#line 628
12343                    r = -22L;
12344#line 629
12345                    goto switch_break___0;
12346                  } else {
12347                    {
12348#line 627
12349                    __cil_tmp140 = s.num - 1U;
12350#line 627
12351                    if (s.num & __cil_tmp140) {
12352#line 628
12353                      r = -22L;
12354#line 629
12355                      goto switch_break___0;
12356                    } else {
12357
12358                    }
12359                    }
12360                  }
12361#line 631
12362                  vq->num = s.num;
12363#line 632
12364                  goto switch_break___0;
12365                  case_exp___0: 
12366#line 636
12367                  if (vq->private_data) {
12368#line 637
12369                    r = -16L;
12370#line 638
12371                    goto switch_break___0;
12372                  } else {
12373
12374                  }
12375                  {
12376#line 640
12377                  __cil_tmp141 = (void *)(& s);
12378#line 640
12379                  __cil_tmp142 = (void const   *)argp;
12380#line 640
12381                  tmp___39 = (unsigned long )copy_from_user(__cil_tmp141, __cil_tmp142,
12382                                                            8UL);
12383#line 640
12384                  tmp___26 = tmp___39;
12385#line 640
12386                  tmp___8 = tmp___26;
12387                  }
12388#line 640
12389                  if (tmp___8) {
12390#line 641
12391                    r = -14L;
12392#line 642
12393                    goto switch_break___0;
12394                  } else {
12395
12396                  }
12397#line 644
12398                  if (s.num > 65535U) {
12399#line 645
12400                    r = -22L;
12401#line 646
12402                    goto switch_break___0;
12403                  } else {
12404
12405                  }
12406#line 648
12407                  vq->last_avail_idx = (u16 )s.num;
12408#line 650
12409                  vq->avail_idx = vq->last_avail_idx;
12410#line 651
12411                  goto switch_break___0;
12412                  case_exp___1: 
12413                  {
12414#line 653
12415                  s.index = idx;
12416#line 654
12417                  __cil_tmp143 = vq->last_avail_idx;
12418#line 654
12419                  s.num = (unsigned int )__cil_tmp143;
12420#line 655
12421                  __cil_tmp144 = (void const   *)(& s);
12422#line 655
12423                  __cil_tmp145 = (unsigned int )8UL;
12424#line 655
12425                  tmp___40 = (int )copy_to_user(argp, __cil_tmp144, __cil_tmp145);
12426#line 655
12427                  tmp___27 = tmp___40;
12428#line 655
12429                  tmp___9 = tmp___27;
12430                  }
12431#line 655
12432                  if (tmp___9) {
12433#line 656
12434                    r = -14L;
12435                  } else {
12436
12437                  }
12438#line 657
12439                  goto switch_break___0;
12440                  case_exp___2: 
12441                  {
12442#line 659
12443                  __cil_tmp146 = (void *)(& a);
12444#line 659
12445                  __cil_tmp147 = (void const   *)argp;
12446#line 659
12447                  tmp___41 = (unsigned long )copy_from_user(__cil_tmp146, __cil_tmp147,
12448                                                            40UL);
12449#line 659
12450                  tmp___28 = tmp___41;
12451#line 659
12452                  tmp___10 = tmp___28;
12453                  }
12454#line 659
12455                  if (tmp___10) {
12456#line 660
12457                    r = -14L;
12458#line 661
12459                    goto switch_break___0;
12460                  } else {
12461
12462                  }
12463#line 663
12464                  if (a.flags & 4294967294U) {
12465#line 664
12466                    r = -95L;
12467#line 665
12468                    goto switch_break___0;
12469                  } else {
12470
12471                  }
12472                  {
12473#line 669
12474                  __cil_tmp148 = (unsigned long )a.desc_user_addr;
12475#line 669
12476                  __cil_tmp149 = (u64 )__cil_tmp148;
12477#line 669
12478                  if (__cil_tmp149 != a.desc_user_addr) {
12479#line 672
12480                    r = -14L;
12481#line 673
12482                    goto switch_break___0;
12483                  } else {
12484                    {
12485#line 669
12486                    __cil_tmp150 = (unsigned long )a.used_user_addr;
12487#line 669
12488                    __cil_tmp151 = (u64 )__cil_tmp150;
12489#line 669
12490                    if (__cil_tmp151 != a.used_user_addr) {
12491#line 672
12492                      r = -14L;
12493#line 673
12494                      goto switch_break___0;
12495                    } else {
12496                      {
12497#line 669
12498                      __cil_tmp152 = (unsigned long )a.avail_user_addr;
12499#line 669
12500                      __cil_tmp153 = (u64 )__cil_tmp152;
12501#line 669
12502                      if (__cil_tmp153 != a.avail_user_addr) {
12503#line 672
12504                        r = -14L;
12505#line 673
12506                        goto switch_break___0;
12507                      } else {
12508
12509                      }
12510                      }
12511                    }
12512                    }
12513                  }
12514                  }
12515                  {
12516#line 675
12517                  __cil_tmp154 = 2UL - 1UL;
12518#line 675
12519                  __cil_tmp155 = (unsigned long long )__cil_tmp154;
12520#line 675
12521                  if (a.avail_user_addr & __cil_tmp155) {
12522#line 678
12523                    r = -22L;
12524#line 679
12525                    goto switch_break___0;
12526                  } else {
12527                    {
12528#line 675
12529                    __cil_tmp156 = 8UL - 1UL;
12530#line 675
12531                    __cil_tmp157 = (unsigned long long )__cil_tmp156;
12532#line 675
12533                    if (a.used_user_addr & __cil_tmp157) {
12534#line 678
12535                      r = -22L;
12536#line 679
12537                      goto switch_break___0;
12538                    } else {
12539                      {
12540#line 675
12541                      __cil_tmp158 = 8UL - 1UL;
12542#line 675
12543                      __cil_tmp159 = (unsigned long long )__cil_tmp158;
12544#line 675
12545                      if (a.log_guest_addr & __cil_tmp159) {
12546#line 678
12547                        r = -22L;
12548#line 679
12549                        goto switch_break___0;
12550                      } else {
12551
12552                      }
12553                      }
12554                    }
12555                    }
12556                  }
12557                  }
12558#line 685
12559                  if (vq->private_data) {
12560                    {
12561#line 686
12562                    __cil_tmp160 = vq->num;
12563#line 686
12564                    __cil_tmp161 = (unsigned long )a.desc_user_addr;
12565#line 686
12566                    __cil_tmp162 = (void *)__cil_tmp161;
12567#line 686
12568                    __cil_tmp163 = (struct vring_desc *)__cil_tmp162;
12569#line 686
12570                    __cil_tmp164 = (unsigned long )a.avail_user_addr;
12571#line 686
12572                    __cil_tmp165 = (void *)__cil_tmp164;
12573#line 686
12574                    __cil_tmp166 = (struct vring_avail *)__cil_tmp165;
12575#line 686
12576                    __cil_tmp167 = (unsigned long )a.used_user_addr;
12577#line 686
12578                    __cil_tmp168 = (void *)__cil_tmp167;
12579#line 686
12580                    __cil_tmp169 = (struct vring_used *)__cil_tmp168;
12581#line 686
12582                    tmp___11 = vq_access_ok(d, __cil_tmp160, __cil_tmp163, __cil_tmp166,
12583                                            __cil_tmp169);
12584                    }
12585#line 686
12586                    if (tmp___11) {
12587
12588                    } else {
12589#line 690
12590                      r = -22L;
12591#line 691
12592                      goto switch_break___0;
12593                    }
12594#line 695
12595                    if (a.flags & 1U) {
12596                      {
12597#line 695
12598                      __cil_tmp170 = vq->log_base;
12599#line 695
12600                      __cil_tmp171 = vq->num;
12601#line 695
12602                      __cil_tmp172 = (unsigned long )__cil_tmp171;
12603#line 695
12604                      __cil_tmp173 = __cil_tmp172 * 8UL;
12605#line 695
12606                      __cil_tmp174 = 4UL + __cil_tmp173;
12607#line 695
12608                      tmp___12 = log_access_ok(__cil_tmp170, a.log_guest_addr, __cil_tmp174);
12609                      }
12610#line 695
12611                      if (tmp___12) {
12612
12613                      } else {
12614#line 699
12615                        r = -22L;
12616#line 700
12617                        goto switch_break___0;
12618                      }
12619                    } else {
12620
12621                    }
12622                  } else {
12623
12624                  }
12625                  {
12626#line 704
12627                  __cil_tmp175 = (unsigned long )a.used_user_addr;
12628#line 704
12629                  __cil_tmp176 = (struct vring_used *)__cil_tmp175;
12630#line 704
12631                  tmp___13 = init_used(vq, __cil_tmp176);
12632#line 704
12633                  r = (long )tmp___13;
12634                  }
12635#line 706
12636                  if (r) {
12637#line 707
12638                    goto switch_break___0;
12639                  } else {
12640
12641                  }
12642#line 708
12643                  __cil_tmp177 = a.flags & 1U;
12644#line 708
12645                  __cil_tmp178 = ! __cil_tmp177;
12646#line 708
12647                  __cil_tmp179 = ! __cil_tmp178;
12648#line 708
12649                  vq->log_used = (bool )__cil_tmp179;
12650#line 709
12651                  __cil_tmp180 = (unsigned long )a.desc_user_addr;
12652#line 709
12653                  __cil_tmp181 = (void *)__cil_tmp180;
12654#line 709
12655                  vq->desc = (struct vring_desc *)__cil_tmp181;
12656#line 710
12657                  __cil_tmp182 = (unsigned long )a.avail_user_addr;
12658#line 710
12659                  __cil_tmp183 = (void *)__cil_tmp182;
12660#line 710
12661                  vq->avail = (struct vring_avail *)__cil_tmp183;
12662#line 711
12663                  vq->log_addr = a.log_guest_addr;
12664#line 712
12665                  __cil_tmp184 = (unsigned long )a.used_user_addr;
12666#line 712
12667                  __cil_tmp185 = (void *)__cil_tmp184;
12668#line 712
12669                  vq->used = (struct vring_used *)__cil_tmp185;
12670#line 713
12671                  goto switch_break___0;
12672                  case_exp___3: 
12673                  {
12674#line 715
12675                  __cil_tmp186 = (void *)(& f);
12676#line 715
12677                  __cil_tmp187 = (void const   *)argp;
12678#line 715
12679                  tmp___42 = (unsigned long )copy_from_user(__cil_tmp186, __cil_tmp187,
12680                                                            8UL);
12681#line 715
12682                  tmp___29 = tmp___42;
12683#line 715
12684                  tmp___14 = tmp___29;
12685                  }
12686#line 715
12687                  if (tmp___14) {
12688#line 716
12689                    r = -14L;
12690#line 717
12691                    goto switch_break___0;
12692                  } else {
12693
12694                  }
12695#line 719
12696                  if (f.fd == -1) {
12697#line 719
12698                    __cil_tmp188 = (void *)0;
12699#line 719
12700                    eventfp = (struct file *)__cil_tmp188;
12701                  } else {
12702                    {
12703#line 719
12704                    tmp___15 = eventfd_fget(f.fd);
12705#line 719
12706                    eventfp = tmp___15;
12707                    }
12708                  }
12709                  {
12710#line 720
12711                  __cil_tmp189 = (void const   *)eventfp;
12712#line 720
12713                  tmp___43 = (long )IS_ERR(__cil_tmp189);
12714#line 720
12715                  tmp___30 = tmp___43;
12716#line 720
12717                  tmp___16 = tmp___30;
12718                  }
12719#line 720
12720                  if (tmp___16) {
12721                    {
12722#line 721
12723                    __cil_tmp190 = (void const   *)eventfp;
12724#line 721
12725                    tmp___44 = (long )PTR_ERR(__cil_tmp190);
12726#line 721
12727                    tmp___31 = tmp___44;
12728#line 721
12729                    r = tmp___31;
12730                    }
12731#line 722
12732                    goto switch_break___0;
12733                  } else {
12734
12735                  }
12736                  {
12737#line 724
12738                  __cil_tmp191 = vq->kick;
12739#line 724
12740                  __cil_tmp192 = (unsigned long )__cil_tmp191;
12741#line 724
12742                  __cil_tmp193 = (unsigned long )eventfp;
12743#line 724
12744                  if (__cil_tmp193 != __cil_tmp192) {
12745#line 725
12746                    filep = vq->kick;
12747#line 725
12748                    pollstop = filep;
12749#line 726
12750                    tmp___17 = eventfp;
12751#line 726
12752                    vq->kick = tmp___17;
12753#line 726
12754                    pollstart = tmp___17;
12755                  } else {
12756#line 728
12757                    filep = eventfp;
12758                  }
12759                  }
12760#line 729
12761                  goto switch_break___0;
12762                  case_exp___4: 
12763                  {
12764#line 731
12765                  __cil_tmp194 = (void *)(& f);
12766#line 731
12767                  __cil_tmp195 = (void const   *)argp;
12768#line 731
12769                  tmp___45 = (unsigned long )copy_from_user(__cil_tmp194, __cil_tmp195,
12770                                                            8UL);
12771#line 731
12772                  tmp___32 = tmp___45;
12773#line 731
12774                  tmp___18 = tmp___32;
12775                  }
12776#line 731
12777                  if (tmp___18) {
12778#line 732
12779                    r = -14L;
12780#line 733
12781                    goto switch_break___0;
12782                  } else {
12783
12784                  }
12785#line 735
12786                  if (f.fd == -1) {
12787#line 735
12788                    __cil_tmp196 = (void *)0;
12789#line 735
12790                    eventfp = (struct file *)__cil_tmp196;
12791                  } else {
12792                    {
12793#line 735
12794                    tmp___19 = eventfd_fget(f.fd);
12795#line 735
12796                    eventfp = tmp___19;
12797                    }
12798                  }
12799                  {
12800#line 736
12801                  __cil_tmp197 = (void const   *)eventfp;
12802#line 736
12803                  tmp___46 = (long )IS_ERR(__cil_tmp197);
12804#line 736
12805                  tmp___33 = tmp___46;
12806#line 736
12807                  tmp___20 = tmp___33;
12808                  }
12809#line 736
12810                  if (tmp___20) {
12811                    {
12812#line 737
12813                    __cil_tmp198 = (void const   *)eventfp;
12814#line 737
12815                    tmp___47 = (long )PTR_ERR(__cil_tmp198);
12816#line 737
12817                    tmp___34 = tmp___47;
12818#line 737
12819                    r = tmp___34;
12820                    }
12821#line 738
12822                    goto switch_break___0;
12823                  } else {
12824
12825                  }
12826                  {
12827#line 740
12828                  __cil_tmp199 = vq->call;
12829#line 740
12830                  __cil_tmp200 = (unsigned long )__cil_tmp199;
12831#line 740
12832                  __cil_tmp201 = (unsigned long )eventfp;
12833#line 740
12834                  if (__cil_tmp201 != __cil_tmp200) {
12835#line 741
12836                    filep = vq->call;
12837#line 742
12838                    ctx = vq->call_ctx;
12839#line 743
12840                    vq->call = eventfp;
12841#line 744
12842                    if (eventfp) {
12843                      {
12844#line 744
12845                      tmp___21 = eventfd_ctx_fileget(eventfp);
12846#line 744
12847                      vq->call_ctx = tmp___21;
12848                      }
12849                    } else {
12850#line 744
12851                      __cil_tmp202 = (void *)0;
12852#line 744
12853                      vq->call_ctx = (struct eventfd_ctx *)__cil_tmp202;
12854                    }
12855                  } else {
12856#line 747
12857                    filep = eventfp;
12858                  }
12859                  }
12860#line 748
12861                  goto switch_break___0;
12862                  case_exp___5: 
12863                  {
12864#line 750
12865                  __cil_tmp203 = (void *)(& f);
12866#line 750
12867                  __cil_tmp204 = (void const   *)argp;
12868#line 750
12869                  tmp___48 = (unsigned long )copy_from_user(__cil_tmp203, __cil_tmp204,
12870                                                            8UL);
12871#line 750
12872                  tmp___35 = tmp___48;
12873#line 750
12874                  tmp___22 = tmp___35;
12875                  }
12876#line 750
12877                  if (tmp___22) {
12878#line 751
12879                    r = -14L;
12880#line 752
12881                    goto switch_break___0;
12882                  } else {
12883
12884                  }
12885#line 754
12886                  if (f.fd == -1) {
12887#line 754
12888                    __cil_tmp205 = (void *)0;
12889#line 754
12890                    eventfp = (struct file *)__cil_tmp205;
12891                  } else {
12892                    {
12893#line 754
12894                    tmp___23 = eventfd_fget(f.fd);
12895#line 754
12896                    eventfp = tmp___23;
12897                    }
12898                  }
12899                  {
12900#line 755
12901                  __cil_tmp206 = (void const   *)eventfp;
12902#line 755
12903                  tmp___49 = (long )IS_ERR(__cil_tmp206);
12904#line 755
12905                  tmp___36 = tmp___49;
12906#line 755
12907                  tmp___24 = tmp___36;
12908                  }
12909#line 755
12910                  if (tmp___24) {
12911                    {
12912#line 756
12913                    __cil_tmp207 = (void const   *)eventfp;
12914#line 756
12915                    tmp___50 = (long )PTR_ERR(__cil_tmp207);
12916#line 756
12917                    tmp___37 = tmp___50;
12918#line 756
12919                    r = tmp___37;
12920                    }
12921#line 757
12922                    goto switch_break___0;
12923                  } else {
12924
12925                  }
12926                  {
12927#line 759
12928                  __cil_tmp208 = vq->error;
12929#line 759
12930                  __cil_tmp209 = (unsigned long )__cil_tmp208;
12931#line 759
12932                  __cil_tmp210 = (unsigned long )eventfp;
12933#line 759
12934                  if (__cil_tmp210 != __cil_tmp209) {
12935#line 760
12936                    filep = vq->error;
12937#line 761
12938                    vq->error = eventfp;
12939#line 762
12940                    ctx = vq->error_ctx;
12941#line 763
12942                    if (eventfp) {
12943                      {
12944#line 763
12945                      tmp___25 = eventfd_ctx_fileget(eventfp);
12946#line 763
12947                      vq->error_ctx = tmp___25;
12948                      }
12949                    } else {
12950#line 763
12951                      __cil_tmp211 = (void *)0;
12952#line 763
12953                      vq->error_ctx = (struct eventfd_ctx *)__cil_tmp211;
12954                    }
12955                  } else {
12956#line 766
12957                    filep = eventfp;
12958                  }
12959                  }
12960#line 767
12961                  goto switch_break___0;
12962                  switch_default___0: 
12963#line 769
12964                  r = -515L;
12965                } else {
12966                  switch_break___0: ;
12967                }
12968              }
12969              }
12970            }
12971            }
12972          }
12973          }
12974        }
12975        }
12976      }
12977      }
12978    }
12979    }
12980  }
12981  }
12982#line 772
12983  if (pollstop) {
12984#line 772
12985    if (vq->handle_kick) {
12986      {
12987#line 773
12988      __cil_tmp212 = & vq->poll;
12989#line 773
12990      vhost_poll_stop(__cil_tmp212);
12991      }
12992    } else {
12993
12994    }
12995  } else {
12996
12997  }
12998#line 775
12999  if (ctx) {
13000    {
13001#line 776
13002    eventfd_ctx_put(ctx);
13003    }
13004  } else {
13005
13006  }
13007#line 777
13008  if (filep) {
13009    {
13010#line 778
13011    fput(filep);
13012    }
13013  } else {
13014
13015  }
13016#line 780
13017  if (pollstart) {
13018#line 780
13019    if (vq->handle_kick) {
13020      {
13021#line 781
13022      __cil_tmp213 = & vq->poll;
13023#line 781
13024      __cil_tmp214 = vq->kick;
13025#line 781
13026      vhost_poll_start(__cil_tmp213, __cil_tmp214);
13027      }
13028    } else {
13029
13030    }
13031  } else {
13032
13033  }
13034  {
13035#line 783
13036  __cil_tmp215 = & vq->mutex;
13037#line 783
13038  mutex_unlock(__cil_tmp215);
13039  }
13040#line 785
13041  if (pollstop) {
13042#line 785
13043    if (vq->handle_kick) {
13044      {
13045#line 786
13046      __cil_tmp216 = & vq->poll;
13047#line 786
13048      vhost_poll_flush(__cil_tmp216);
13049      }
13050    } else {
13051
13052    }
13053  } else {
13054
13055  }
13056#line 787
13057  return (r);
13058}
13059}
13060#line 791 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
13061long vhost_dev_ioctl(struct vhost_dev *d , unsigned int ioctl , unsigned long arg ) 
13062{ void *argp ;
13063  struct file *eventfp ;
13064  struct file *filep ;
13065  struct eventfd_ctx *ctx ;
13066  u64 p ;
13067  long r ;
13068  int i ;
13069  int fd ;
13070  unsigned long tmp___7 ;
13071  struct vhost_virtqueue *vq ;
13072  void *base ;
13073  int tmp___8 ;
13074  int __ret_gu ;
13075  unsigned long __val_gu ;
13076  struct file *tmp___9 ;
13077  long tmp___10 ;
13078  struct eventfd_ctx *tmp___11 ;
13079  unsigned long tmp ;
13080  long tmp___12 ;
13081  long tmp___13 ;
13082  unsigned long tmp___14 ;
13083  long tmp___15 ;
13084  long tmp___16 ;
13085  void *__cil_tmp27 ;
13086  void *__cil_tmp28 ;
13087  int __cil_tmp29 ;
13088  unsigned int __cil_tmp30 ;
13089  unsigned int __cil_tmp31 ;
13090  unsigned long __cil_tmp32 ;
13091  int __cil_tmp33 ;
13092  unsigned int __cil_tmp34 ;
13093  unsigned int __cil_tmp35 ;
13094  unsigned int __cil_tmp36 ;
13095  unsigned int __cil_tmp37 ;
13096  unsigned long __cil_tmp38 ;
13097  unsigned long __cil_tmp39 ;
13098  int __cil_tmp40 ;
13099  unsigned long __cil_tmp41 ;
13100  unsigned long __cil_tmp42 ;
13101  int __cil_tmp43 ;
13102  unsigned int __cil_tmp44 ;
13103  unsigned int __cil_tmp45 ;
13104  unsigned int __cil_tmp46 ;
13105  unsigned int __cil_tmp47 ;
13106  unsigned long __cil_tmp48 ;
13107  unsigned long __cil_tmp49 ;
13108  int __cil_tmp50 ;
13109  unsigned long __cil_tmp51 ;
13110  unsigned long __cil_tmp52 ;
13111  int __cil_tmp53 ;
13112  unsigned int __cil_tmp54 ;
13113  unsigned int __cil_tmp55 ;
13114  unsigned int __cil_tmp56 ;
13115  unsigned int __cil_tmp57 ;
13116  unsigned long __cil_tmp58 ;
13117  unsigned long __cil_tmp59 ;
13118  int __cil_tmp60 ;
13119  unsigned long __cil_tmp61 ;
13120  struct vhost_memory *__cil_tmp62 ;
13121  void *__cil_tmp63 ;
13122  void const   *__cil_tmp64 ;
13123  unsigned long __cil_tmp65 ;
13124  u64 __cil_tmp66 ;
13125  int __cil_tmp67 ;
13126  unsigned long __cil_tmp68 ;
13127  struct vhost_virtqueue *__cil_tmp69 ;
13128  struct mutex *__cil_tmp70 ;
13129  struct mutex *__cil_tmp71 ;
13130  int __cil_tmp72 ;
13131  int __cil_tmp73 ;
13132  int __cil_tmp74 ;
13133  int __cil_tmp75 ;
13134  void *__cil_tmp76 ;
13135  void const   *__cil_tmp77 ;
13136  void const   *__cil_tmp78 ;
13137  struct file *__cil_tmp79 ;
13138  unsigned long __cil_tmp80 ;
13139  unsigned long __cil_tmp81 ;
13140  void *__cil_tmp82 ;
13141  int __cil_tmp83 ;
13142  struct vhost_virtqueue *__cil_tmp84 ;
13143  struct vhost_virtqueue *__cil_tmp85 ;
13144  struct mutex *__cil_tmp86 ;
13145  struct vhost_virtqueue *__cil_tmp87 ;
13146  struct vhost_virtqueue *__cil_tmp88 ;
13147  struct vhost_virtqueue *__cil_tmp89 ;
13148  struct vhost_virtqueue *__cil_tmp90 ;
13149  struct mutex *__cil_tmp91 ;
13150  int __cil_tmp92 ;
13151
13152  {
13153#line 793
13154  argp = (void *)arg;
13155#line 794
13156  __cil_tmp27 = (void *)0;
13157#line 794
13158  filep = (struct file *)__cil_tmp27;
13159#line 795
13160  __cil_tmp28 = (void *)0;
13161#line 795
13162  ctx = (struct eventfd_ctx *)__cil_tmp28;
13163  {
13164#line 801
13165  __cil_tmp29 = 175 << 8;
13166#line 801
13167  __cil_tmp30 = (unsigned int )__cil_tmp29;
13168#line 801
13169  __cil_tmp31 = __cil_tmp30 | 1U;
13170#line 801
13171  if (ioctl == __cil_tmp31) {
13172    {
13173#line 802
13174    r = vhost_dev_set_owner(d);
13175    }
13176#line 803
13177    goto done;
13178  } else {
13179
13180  }
13181  }
13182  {
13183#line 807
13184  r = vhost_dev_check_owner(d);
13185  }
13186#line 808
13187  if (r) {
13188#line 809
13189    goto done;
13190  } else {
13191
13192  }
13193  {
13194#line 812
13195  __cil_tmp32 = 8UL << 16;
13196#line 812
13197  __cil_tmp33 = 175 << 8;
13198#line 812
13199  __cil_tmp34 = (unsigned int )__cil_tmp33;
13200#line 812
13201  __cil_tmp35 = 1U << 30;
13202#line 812
13203  __cil_tmp36 = __cil_tmp35 | __cil_tmp34;
13204#line 812
13205  __cil_tmp37 = __cil_tmp36 | 3U;
13206#line 812
13207  __cil_tmp38 = (unsigned long )__cil_tmp37;
13208#line 812
13209  __cil_tmp39 = __cil_tmp38 | __cil_tmp32;
13210#line 812
13211  __cil_tmp40 = (int )ioctl;
13212#line 812
13213  __cil_tmp41 = (unsigned long )__cil_tmp40;
13214#line 812
13215  if (__cil_tmp41 == __cil_tmp39) {
13216#line 812
13217    goto case_exp;
13218  } else {
13219    {
13220#line 815
13221    __cil_tmp42 = 8UL << 16;
13222#line 815
13223    __cil_tmp43 = 175 << 8;
13224#line 815
13225    __cil_tmp44 = (unsigned int )__cil_tmp43;
13226#line 815
13227    __cil_tmp45 = 1U << 30;
13228#line 815
13229    __cil_tmp46 = __cil_tmp45 | __cil_tmp44;
13230#line 815
13231    __cil_tmp47 = __cil_tmp46 | 4U;
13232#line 815
13233    __cil_tmp48 = (unsigned long )__cil_tmp47;
13234#line 815
13235    __cil_tmp49 = __cil_tmp48 | __cil_tmp42;
13236#line 815
13237    __cil_tmp50 = (int )ioctl;
13238#line 815
13239    __cil_tmp51 = (unsigned long )__cil_tmp50;
13240#line 815
13241    if (__cil_tmp51 == __cil_tmp49) {
13242#line 815
13243      goto case_exp___0;
13244    } else {
13245      {
13246#line 837
13247      __cil_tmp52 = 4UL << 16;
13248#line 837
13249      __cil_tmp53 = 175 << 8;
13250#line 837
13251      __cil_tmp54 = (unsigned int )__cil_tmp53;
13252#line 837
13253      __cil_tmp55 = 1U << 30;
13254#line 837
13255      __cil_tmp56 = __cil_tmp55 | __cil_tmp54;
13256#line 837
13257      __cil_tmp57 = __cil_tmp56 | 7U;
13258#line 837
13259      __cil_tmp58 = (unsigned long )__cil_tmp57;
13260#line 837
13261      __cil_tmp59 = __cil_tmp58 | __cil_tmp52;
13262#line 837
13263      __cil_tmp60 = (int )ioctl;
13264#line 837
13265      __cil_tmp61 = (unsigned long )__cil_tmp60;
13266#line 837
13267      if (__cil_tmp61 == __cil_tmp59) {
13268#line 837
13269        goto case_exp___1;
13270      } else {
13271#line 863
13272        goto switch_default___0;
13273#line 811
13274        if (0) {
13275          case_exp: 
13276          {
13277#line 813
13278          __cil_tmp62 = (struct vhost_memory *)argp;
13279#line 813
13280          r = vhost_set_memory(d, __cil_tmp62);
13281          }
13282#line 814
13283          goto switch_break;
13284          case_exp___0: 
13285          {
13286#line 816
13287          __cil_tmp63 = (void *)(& p);
13288#line 816
13289          __cil_tmp64 = (void const   *)argp;
13290#line 816
13291          tmp___14 = (unsigned long )copy_from_user(__cil_tmp63, __cil_tmp64, 8UL);
13292#line 816
13293          tmp = tmp___14;
13294#line 816
13295          tmp___7 = tmp;
13296          }
13297#line 816
13298          if (tmp___7) {
13299#line 817
13300            r = -14L;
13301#line 818
13302            goto switch_break;
13303          } else {
13304
13305          }
13306          {
13307#line 820
13308          __cil_tmp65 = (unsigned long )p;
13309#line 820
13310          __cil_tmp66 = (u64 )__cil_tmp65;
13311#line 820
13312          if (__cil_tmp66 != p) {
13313#line 821
13314            r = -14L;
13315#line 822
13316            goto switch_break;
13317          } else {
13318
13319          }
13320          }
13321#line 824
13322          i = 0;
13323          {
13324#line 824
13325          while (1) {
13326            while_continue: /* CIL Label */ ;
13327
13328            {
13329#line 824
13330            __cil_tmp67 = d->nvqs;
13331#line 824
13332            if (i < __cil_tmp67) {
13333
13334            } else {
13335#line 824
13336              goto while_break;
13337            }
13338            }
13339            {
13340#line 826
13341            __cil_tmp68 = (unsigned long )p;
13342#line 826
13343            base = (void *)__cil_tmp68;
13344#line 827
13345            __cil_tmp69 = d->vqs;
13346#line 827
13347            vq = __cil_tmp69 + i;
13348#line 828
13349            __cil_tmp70 = & vq->mutex;
13350#line 828
13351            mutex_lock_nested(__cil_tmp70, 0U);
13352            }
13353#line 830
13354            if (vq->private_data) {
13355              {
13356#line 830
13357              tmp___8 = vq_log_access_ok(d, vq, base);
13358              }
13359#line 830
13360              if (tmp___8) {
13361#line 833
13362                vq->log_base = base;
13363              } else {
13364#line 831
13365                r = -14L;
13366              }
13367            } else {
13368#line 833
13369              vq->log_base = base;
13370            }
13371            {
13372#line 834
13373            __cil_tmp71 = & vq->mutex;
13374#line 834
13375            mutex_unlock(__cil_tmp71);
13376#line 824
13377            i = i + 1;
13378            }
13379          }
13380          while_break___1: /* CIL Label */ ;
13381          }
13382
13383          while_break: ;
13384#line 836
13385          goto switch_break;
13386          case_exp___1: 
13387          {
13388#line 838
13389          might_fault();
13390          }
13391          {
13392#line 838
13393          __cil_tmp72 = (int )4UL;
13394#line 838
13395          if (__cil_tmp72 == 1) {
13396#line 838
13397            goto case_1;
13398          } else {
13399            {
13400#line 838
13401            __cil_tmp73 = (int )4UL;
13402#line 838
13403            if (__cil_tmp73 == 2) {
13404#line 838
13405              goto case_2;
13406            } else {
13407              {
13408#line 838
13409              __cil_tmp74 = (int )4UL;
13410#line 838
13411              if (__cil_tmp74 == 4) {
13412#line 838
13413                goto case_4;
13414              } else {
13415                {
13416#line 838
13417                __cil_tmp75 = (int )4UL;
13418#line 838
13419                if (__cil_tmp75 == 8) {
13420#line 838
13421                  goto case_8;
13422                } else {
13423#line 838
13424                  goto switch_default;
13425#line 838
13426                  if (0) {
13427                    case_1: 
13428#line 838
13429                    __asm__  volatile   ("call __get_user_"
13430                                         "1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
13431#line 838
13432                    goto switch_break___0;
13433                    case_2: 
13434#line 838
13435                    __asm__  volatile   ("call __get_user_"
13436                                         "2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
13437#line 838
13438                    goto switch_break___0;
13439                    case_4: 
13440#line 838
13441                    __asm__  volatile   ("call __get_user_"
13442                                         "4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
13443#line 838
13444                    goto switch_break___0;
13445                    case_8: 
13446#line 838
13447                    __asm__  volatile   ("call __get_user_"
13448                                         "8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
13449#line 838
13450                    goto switch_break___0;
13451                    switch_default: 
13452#line 838
13453                    __asm__  volatile   ("call __get_user_"
13454                                         "X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
13455#line 838
13456                    goto switch_break___0;
13457                  } else {
13458                    switch_break___0: ;
13459                  }
13460                }
13461                }
13462              }
13463              }
13464            }
13465            }
13466          }
13467          }
13468#line 838
13469          fd = (int )__val_gu;
13470#line 838
13471          r = (long )__ret_gu;
13472#line 839
13473          if (r < 0L) {
13474#line 840
13475            goto switch_break;
13476          } else {
13477
13478          }
13479#line 841
13480          if (fd == -1) {
13481#line 841
13482            __cil_tmp76 = (void *)0;
13483#line 841
13484            eventfp = (struct file *)__cil_tmp76;
13485          } else {
13486            {
13487#line 841
13488            tmp___9 = eventfd_fget(fd);
13489#line 841
13490            eventfp = tmp___9;
13491            }
13492          }
13493          {
13494#line 842
13495          __cil_tmp77 = (void const   *)eventfp;
13496#line 842
13497          tmp___15 = (long )IS_ERR(__cil_tmp77);
13498#line 842
13499          tmp___12 = tmp___15;
13500#line 842
13501          tmp___10 = tmp___12;
13502          }
13503#line 842
13504          if (tmp___10) {
13505            {
13506#line 843
13507            __cil_tmp78 = (void const   *)eventfp;
13508#line 843
13509            tmp___16 = (long )PTR_ERR(__cil_tmp78);
13510#line 843
13511            tmp___13 = tmp___16;
13512#line 843
13513            r = tmp___13;
13514            }
13515#line 844
13516            goto switch_break;
13517          } else {
13518
13519          }
13520          {
13521#line 846
13522          __cil_tmp79 = d->log_file;
13523#line 846
13524          __cil_tmp80 = (unsigned long )__cil_tmp79;
13525#line 846
13526          __cil_tmp81 = (unsigned long )eventfp;
13527#line 846
13528          if (__cil_tmp81 != __cil_tmp80) {
13529#line 847
13530            filep = d->log_file;
13531#line 848
13532            ctx = d->log_ctx;
13533#line 849
13534            if (eventfp) {
13535              {
13536#line 849
13537              tmp___11 = eventfd_ctx_fileget(eventfp);
13538#line 849
13539              d->log_ctx = tmp___11;
13540              }
13541            } else {
13542#line 849
13543              __cil_tmp82 = (void *)0;
13544#line 849
13545              d->log_ctx = (struct eventfd_ctx *)__cil_tmp82;
13546            }
13547          } else {
13548#line 852
13549            filep = eventfp;
13550          }
13551          }
13552#line 853
13553          i = 0;
13554          {
13555#line 853
13556          while (1) {
13557            while_continue___0: /* CIL Label */ ;
13558
13559            {
13560#line 853
13561            __cil_tmp83 = d->nvqs;
13562#line 853
13563            if (i < __cil_tmp83) {
13564
13565            } else {
13566#line 853
13567              goto while_break___0;
13568            }
13569            }
13570            {
13571#line 854
13572            __cil_tmp84 = d->vqs;
13573#line 854
13574            __cil_tmp85 = __cil_tmp84 + i;
13575#line 854
13576            __cil_tmp86 = & __cil_tmp85->mutex;
13577#line 854
13578            mutex_lock_nested(__cil_tmp86, 0U);
13579#line 855
13580            __cil_tmp87 = d->vqs;
13581#line 855
13582            __cil_tmp88 = __cil_tmp87 + i;
13583#line 855
13584            __cil_tmp88->log_ctx = d->log_ctx;
13585#line 856
13586            __cil_tmp89 = d->vqs;
13587#line 856
13588            __cil_tmp90 = __cil_tmp89 + i;
13589#line 856
13590            __cil_tmp91 = & __cil_tmp90->mutex;
13591#line 856
13592            mutex_unlock(__cil_tmp91);
13593#line 853
13594            i = i + 1;
13595            }
13596          }
13597          while_break___2: /* CIL Label */ ;
13598          }
13599
13600          while_break___0: ;
13601#line 858
13602          if (ctx) {
13603            {
13604#line 859
13605            eventfd_ctx_put(ctx);
13606            }
13607          } else {
13608
13609          }
13610#line 860
13611          if (filep) {
13612            {
13613#line 861
13614            fput(filep);
13615            }
13616          } else {
13617
13618          }
13619#line 862
13620          goto switch_break;
13621          switch_default___0: 
13622          {
13623#line 864
13624          __cil_tmp92 = (int )ioctl;
13625#line 864
13626          r = vhost_set_vring(d, __cil_tmp92, argp);
13627          }
13628#line 865
13629          goto switch_break;
13630        } else {
13631          switch_break: ;
13632        }
13633      }
13634      }
13635    }
13636    }
13637  }
13638  }
13639  done: 
13640#line 868
13641  return (r);
13642}
13643}
13644#line 871 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
13645static struct vhost_memory_region  const  *find_region(struct vhost_memory *mem ,
13646                                                       __u64 addr , __u32 len ) 
13647{ struct vhost_memory_region *reg ;
13648  int i ;
13649  __u32 __cil_tmp6 ;
13650  __u32 __cil_tmp7 ;
13651  struct vhost_memory_region *__cil_tmp8 ;
13652  __u64 __cil_tmp9 ;
13653  __u64 __cil_tmp10 ;
13654  __u64 __cil_tmp11 ;
13655  __u64 __cil_tmp12 ;
13656  __u64 __cil_tmp13 ;
13657  void *__cil_tmp14 ;
13658
13659  {
13660#line 879
13661  i = 0;
13662  {
13663#line 879
13664  while (1) {
13665    while_continue: /* CIL Label */ ;
13666
13667    {
13668#line 879
13669    __cil_tmp6 = mem->nregions;
13670#line 879
13671    __cil_tmp7 = (__u32 )i;
13672#line 879
13673    if (__cil_tmp7 < __cil_tmp6) {
13674
13675    } else {
13676#line 879
13677      goto while_break;
13678    }
13679    }
13680#line 880
13681    __cil_tmp8 = & mem->regions[0];
13682#line 880
13683    reg = __cil_tmp8 + i;
13684    {
13685#line 881
13686    __cil_tmp9 = reg->guest_phys_addr;
13687#line 881
13688    if (__cil_tmp9 <= addr) {
13689      {
13690#line 881
13691      __cil_tmp10 = reg->memory_size;
13692#line 881
13693      __cil_tmp11 = reg->guest_phys_addr;
13694#line 881
13695      __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
13696#line 881
13697      __cil_tmp13 = __cil_tmp12 - 1ULL;
13698#line 881
13699      if (__cil_tmp13 >= addr) {
13700#line 883
13701        return ((struct vhost_memory_region  const  *)reg);
13702      } else {
13703
13704      }
13705      }
13706    } else {
13707
13708    }
13709    }
13710#line 879
13711    i = i + 1;
13712  }
13713  while_break___0: /* CIL Label */ ;
13714  }
13715
13716  while_break: ;
13717  {
13718#line 885
13719  __cil_tmp14 = (void *)0;
13720#line 885
13721  return ((struct vhost_memory_region  const  *)__cil_tmp14);
13722  }
13723}
13724}
13725#line 892 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
13726static int set_bit_to_user(int nr , void *addr ) 
13727{ unsigned long log ;
13728  struct page *page ;
13729  void *base ;
13730  int bit ;
13731  int r ;
13732  long tmp___7 ;
13733  unsigned long __cil_tmp9 ;
13734  unsigned long __cil_tmp10 ;
13735  unsigned long __cil_tmp11 ;
13736  unsigned long __cil_tmp12 ;
13737  unsigned long __cil_tmp13 ;
13738  int __cil_tmp14 ;
13739  int __cil_tmp15 ;
13740  int __cil_tmp16 ;
13741  long __cil_tmp17 ;
13742  unsigned int __cil_tmp18 ;
13743  unsigned long volatile   *__cil_tmp19 ;
13744
13745  {
13746  {
13747#line 894
13748  log = (unsigned long )addr;
13749#line 897
13750  __cil_tmp9 = 1UL << 12;
13751#line 897
13752  __cil_tmp10 = log % __cil_tmp9;
13753#line 897
13754  __cil_tmp11 = __cil_tmp10 * 8UL;
13755#line 897
13756  __cil_tmp12 = (unsigned long )nr;
13757#line 897
13758  __cil_tmp13 = __cil_tmp12 + __cil_tmp11;
13759#line 897
13760  bit = (int )__cil_tmp13;
13761#line 900
13762  r = get_user_pages_fast(log, 1, 1, & page);
13763  }
13764#line 901
13765  if (r < 0) {
13766#line 902
13767    return (r);
13768  } else {
13769
13770  }
13771  {
13772#line 903
13773  while (1) {
13774    while_continue: /* CIL Label */ ;
13775    {
13776#line 903
13777    __cil_tmp14 = r != 1;
13778#line 903
13779    __cil_tmp15 = ! __cil_tmp14;
13780#line 903
13781    __cil_tmp16 = ! __cil_tmp15;
13782#line 903
13783    __cil_tmp17 = (long )__cil_tmp16;
13784#line 903
13785    tmp___7 = __builtin_expect(__cil_tmp17, 0L);
13786    }
13787#line 903
13788    if (tmp___7) {
13789      {
13790#line 903
13791      while (1) {
13792        while_continue___0: /* CIL Label */ ;
13793#line 903
13794        __asm__  volatile   ("1:\tud2\n"
13795                             ".pushsection __bug_table,\"a\"\n"
13796                             "2:\t.long 1b - 2b, %c0 - 2b\n"
13797                             "\t.word %c1, 0\n"
13798                             "\t.org 2b+%c2\n"
13799                             ".popsection": : "i" ("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"),
13800                             "i" (903), "i" (12UL));
13801        {
13802#line 903
13803        while (1) {
13804          while_continue___1: /* CIL Label */ ;
13805
13806        }
13807        while_break___5: /* CIL Label */ ;
13808        }
13809
13810#line 903
13811        goto while_break___0;
13812      }
13813      while_break___4: /* CIL Label */ ;
13814      }
13815
13816      while_break___0: ;
13817    } else {
13818
13819    }
13820#line 903
13821    goto while_break;
13822  }
13823  while_break___3: /* CIL Label */ ;
13824  }
13825
13826  while_break: 
13827  {
13828#line 904
13829  base = __kmap_atomic(page);
13830#line 905
13831  __cil_tmp18 = (unsigned int )bit;
13832#line 905
13833  __cil_tmp19 = (unsigned long volatile   *)base;
13834#line 905
13835  set_bit(__cil_tmp18, __cil_tmp19);
13836  }
13837  {
13838#line 906
13839  while (1) {
13840    while_continue___2: /* CIL Label */ ;
13841    {
13842#line 906
13843    __kunmap_atomic(base);
13844    }
13845#line 906
13846    goto while_break___2;
13847  }
13848  while_break___6: /* CIL Label */ ;
13849  }
13850
13851  while_break___2: 
13852  {
13853#line 907
13854  set_page_dirty_lock(page);
13855#line 908
13856  put_page(page);
13857  }
13858#line 909
13859  return (0);
13860}
13861}
13862#line 912 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
13863static int log_write(void *log_base , u64 write_address , u64 write_length ) 
13864{ u64 write_page ;
13865  int r ;
13866  u64 base ;
13867  u64 log ;
13868  int bit ;
13869  unsigned long long __cil_tmp9 ;
13870  unsigned long __cil_tmp10 ;
13871  u64 __cil_tmp11 ;
13872  unsigned long long __cil_tmp12 ;
13873  unsigned long __cil_tmp13 ;
13874  u64 __cil_tmp14 ;
13875  unsigned long __cil_tmp15 ;
13876  void *__cil_tmp16 ;
13877
13878  {
13879#line 915
13880  write_page = write_address / 4096ULL;
13881#line 918
13882  if (! write_length) {
13883#line 919
13884    return (0);
13885  } else {
13886
13887  }
13888#line 920
13889  __cil_tmp9 = write_address % 4096ULL;
13890#line 920
13891  write_length = write_length + __cil_tmp9;
13892  {
13893#line 921
13894  while (1) {
13895    while_continue: /* CIL Label */ ;
13896#line 922
13897    __cil_tmp10 = (unsigned long )log_base;
13898#line 922
13899    base = (u64 )__cil_tmp10;
13900#line 923
13901    __cil_tmp11 = write_page / 8ULL;
13902#line 923
13903    log = base + __cil_tmp11;
13904#line 924
13905    __cil_tmp12 = write_page % 8ULL;
13906#line 924
13907    bit = (int )__cil_tmp12;
13908    {
13909#line 925
13910    __cil_tmp13 = (unsigned long )log;
13911#line 925
13912    __cil_tmp14 = (u64 )__cil_tmp13;
13913#line 925
13914    if (__cil_tmp14 != log) {
13915#line 926
13916      return (-14);
13917    } else {
13918
13919    }
13920    }
13921    {
13922#line 927
13923    __cil_tmp15 = (unsigned long )log;
13924#line 927
13925    __cil_tmp16 = (void *)__cil_tmp15;
13926#line 927
13927    r = set_bit_to_user(bit, __cil_tmp16);
13928    }
13929#line 928
13930    if (r < 0) {
13931#line 929
13932      return (r);
13933    } else {
13934
13935    }
13936#line 930
13937    if (write_length <= 4096ULL) {
13938#line 931
13939      goto while_break;
13940    } else {
13941
13942    }
13943#line 932
13944    write_length = write_length - 4096ULL;
13945#line 933
13946    write_page = write_page + 1ULL;
13947  }
13948  while_break___0: /* CIL Label */ ;
13949  }
13950
13951  while_break: ;
13952#line 935
13953  return (r);
13954}
13955}
13956#line 938 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
13957int vhost_log_write(struct vhost_virtqueue *vq , struct vhost_log *log , unsigned int log_num ,
13958                    u64 len ) 
13959{ int i ;
13960  int r ;
13961  u64 l ;
13962  u64 _min1 ;
13963  u64 _min2 ;
13964  u64 tmp___7 ;
13965  unsigned int __cil_tmp11 ;
13966  struct vhost_log *__cil_tmp12 ;
13967  void *__cil_tmp13 ;
13968  struct vhost_log *__cil_tmp14 ;
13969  u64 __cil_tmp15 ;
13970  struct eventfd_ctx *__cil_tmp16 ;
13971
13972  {
13973#line 944
13974  __asm__  volatile   ("": : : "memory");
13975#line 945
13976  i = 0;
13977  {
13978#line 945
13979  while (1) {
13980    while_continue: /* CIL Label */ ;
13981
13982    {
13983#line 945
13984    __cil_tmp11 = (unsigned int )i;
13985#line 945
13986    if (__cil_tmp11 < log_num) {
13987
13988    } else {
13989#line 945
13990      goto while_break;
13991    }
13992    }
13993#line 946
13994    __cil_tmp12 = log + i;
13995#line 946
13996    _min1 = __cil_tmp12->len;
13997#line 946
13998    _min2 = len;
13999#line 946
14000    if (_min1 < _min2) {
14001#line 946
14002      tmp___7 = _min1;
14003    } else {
14004#line 946
14005      tmp___7 = _min2;
14006    }
14007    {
14008#line 946
14009    l = tmp___7;
14010#line 947
14011    __cil_tmp13 = vq->log_base;
14012#line 947
14013    __cil_tmp14 = log + i;
14014#line 947
14015    __cil_tmp15 = __cil_tmp14->addr;
14016#line 947
14017    r = log_write(__cil_tmp13, __cil_tmp15, l);
14018    }
14019#line 948
14020    if (r < 0) {
14021#line 949
14022      return (r);
14023    } else {
14024
14025    }
14026#line 950
14027    len = len - l;
14028#line 951
14029    if (! len) {
14030#line 952
14031      if (vq->log_ctx) {
14032        {
14033#line 953
14034        __cil_tmp16 = vq->log_ctx;
14035#line 953
14036        eventfd_signal(__cil_tmp16, 1);
14037        }
14038      } else {
14039
14040      }
14041#line 954
14042      return (0);
14043    } else {
14044
14045    }
14046#line 945
14047    i = i + 1;
14048  }
14049  while_break___1: /* CIL Label */ ;
14050  }
14051
14052  while_break: ;
14053  {
14054#line 958
14055  while (1) {
14056    while_continue___0: /* CIL Label */ ;
14057#line 958
14058    __asm__  volatile   ("1:\tud2\n"
14059                         ".pushsection __bug_table,\"a\"\n"
14060                         "2:\t.long 1b - 2b, %c0 - 2b\n"
14061                         "\t.word %c1, 0\n"
14062                         "\t.org 2b+%c2\n"
14063                         ".popsection": : "i" ("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"),
14064                         "i" (958), "i" (12UL));
14065    {
14066#line 958
14067    while (1) {
14068      while_continue___1: /* CIL Label */ ;
14069
14070    }
14071    while_break___3: /* CIL Label */ ;
14072    }
14073
14074#line 958
14075    goto while_break___0;
14076  }
14077  while_break___2: /* CIL Label */ ;
14078  }
14079
14080  while_break___0: ;
14081#line 959
14082  return (0);
14083}
14084}
14085#line 973 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14086static bool __warned___26  ;
14087#line 962 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14088static int translate_desc(struct vhost_dev *dev , u64 addr , u32 len , struct iovec *iov ,
14089                          int iov_size ) 
14090{ struct vhost_memory_region  const  *reg ;
14091  struct vhost_memory *mem ;
14092  struct iovec *_iov ;
14093  u64 s ;
14094  int ret ;
14095  struct vhost_memory *_________p1 ;
14096  int tmp___7 ;
14097  int tmp___8 ;
14098  u64 size ;
14099  long tmp___9 ;
14100  long tmp___10 ;
14101  u64 _min1 ;
14102  u64 _min2 ;
14103  u64 tmp___11 ;
14104  struct vhost_memory **__cil_tmp20 ;
14105  struct vhost_memory * volatile  *__cil_tmp21 ;
14106  struct vhost_memory * volatile  __cil_tmp22 ;
14107  int __cil_tmp23 ;
14108  int __cil_tmp24 ;
14109  u64 __cil_tmp25 ;
14110  int __cil_tmp26 ;
14111  int __cil_tmp27 ;
14112  int __cil_tmp28 ;
14113  long __cil_tmp29 ;
14114  int __cil_tmp30 ;
14115  int __cil_tmp31 ;
14116  int __cil_tmp32 ;
14117  long __cil_tmp33 ;
14118  __u64 __cil_tmp34 ;
14119  __u64 __cil_tmp35 ;
14120  __u64 __cil_tmp36 ;
14121  __u64 __cil_tmp37 ;
14122  __u64 __cil_tmp38 ;
14123  __u64 __cil_tmp39 ;
14124  __u64 __cil_tmp40 ;
14125  __u64 __cil_tmp41 ;
14126  __u64 __cil_tmp42 ;
14127  __u64 __cil_tmp43 ;
14128  unsigned long __cil_tmp44 ;
14129
14130  {
14131  {
14132#line 968
14133  s = (u64 )0;
14134#line 969
14135  ret = 0;
14136#line 971
14137  rcu_read_lock();
14138#line 973
14139  __cil_tmp20 = & dev->memory;
14140#line 973
14141  __cil_tmp21 = (struct vhost_memory * volatile  *)__cil_tmp20;
14142#line 973
14143  __cil_tmp22 = *__cil_tmp21;
14144#line 973
14145  _________p1 = (struct vhost_memory *)__cil_tmp22;
14146  }
14147  {
14148#line 973
14149  while (1) {
14150    while_continue: /* CIL Label */ ;
14151    {
14152#line 973
14153    tmp___7 = debug_lockdep_rcu_enabled();
14154    }
14155#line 973
14156    if (tmp___7) {
14157#line 973
14158      if (! __warned___26) {
14159        {
14160#line 973
14161        tmp___8 = rcu_read_lock_held();
14162        }
14163#line 973
14164        if (tmp___8) {
14165
14166        } else {
14167          {
14168#line 973
14169          __warned___26 = (bool )1;
14170#line 973
14171          __cil_tmp23 = (int const   )973;
14172#line 973
14173          __cil_tmp24 = (int )__cil_tmp23;
14174#line 973
14175          lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14176                                  __cil_tmp24);
14177          }
14178        }
14179      } else {
14180
14181      }
14182    } else {
14183
14184    }
14185#line 973
14186    goto while_break;
14187  }
14188  while_break___2: /* CIL Label */ ;
14189  }
14190
14191  while_break: ;
14192  {
14193#line 973
14194  while (1) {
14195    while_continue___0: /* CIL Label */ ;
14196
14197#line 973
14198    goto while_break___0;
14199  }
14200  while_break___3: /* CIL Label */ ;
14201  }
14202
14203  while_break___0: 
14204#line 973
14205  mem = _________p1;
14206  {
14207#line 974
14208  while (1) {
14209    while_continue___1: /* CIL Label */ ;
14210
14211    {
14212#line 974
14213    __cil_tmp25 = (u64 )len;
14214#line 974
14215    if (__cil_tmp25 > s) {
14216
14217    } else {
14218#line 974
14219      goto while_break___1;
14220    }
14221    }
14222    {
14223#line 976
14224    __cil_tmp26 = ret >= iov_size;
14225#line 976
14226    __cil_tmp27 = ! __cil_tmp26;
14227#line 976
14228    __cil_tmp28 = ! __cil_tmp27;
14229#line 976
14230    __cil_tmp29 = (long )__cil_tmp28;
14231#line 976
14232    tmp___9 = __builtin_expect(__cil_tmp29, 0L);
14233    }
14234#line 976
14235    if (tmp___9) {
14236#line 977
14237      ret = -105;
14238#line 978
14239      goto while_break___1;
14240    } else {
14241
14242    }
14243    {
14244#line 980
14245    reg = find_region(mem, addr, len);
14246#line 981
14247    __cil_tmp30 = ! reg;
14248#line 981
14249    __cil_tmp31 = ! __cil_tmp30;
14250#line 981
14251    __cil_tmp32 = ! __cil_tmp31;
14252#line 981
14253    __cil_tmp33 = (long )__cil_tmp32;
14254#line 981
14255    tmp___10 = __builtin_expect(__cil_tmp33, 0L);
14256    }
14257#line 981
14258    if (tmp___10) {
14259#line 982
14260      ret = -14;
14261#line 983
14262      goto while_break___1;
14263    } else {
14264
14265    }
14266#line 985
14267    _iov = iov + ret;
14268#line 986
14269    __cil_tmp34 = reg->guest_phys_addr;
14270#line 986
14271    __cil_tmp35 = (__u64 const   )addr;
14272#line 986
14273    __cil_tmp36 = reg->memory_size;
14274#line 986
14275    __cil_tmp37 = __cil_tmp36 - __cil_tmp35;
14276#line 986
14277    __cil_tmp38 = __cil_tmp37 + __cil_tmp34;
14278#line 986
14279    size = (u64 )__cil_tmp38;
14280#line 987
14281    _min1 = (u64 )len;
14282#line 987
14283    _min2 = size;
14284#line 987
14285    if (_min1 < _min2) {
14286#line 987
14287      tmp___11 = _min1;
14288    } else {
14289#line 987
14290      tmp___11 = _min2;
14291    }
14292#line 987
14293    _iov->iov_len = (__kernel_size_t )tmp___11;
14294#line 988
14295    __cil_tmp39 = reg->guest_phys_addr;
14296#line 988
14297    __cil_tmp40 = (__u64 const   )addr;
14298#line 988
14299    __cil_tmp41 = reg->userspace_addr;
14300#line 988
14301    __cil_tmp42 = __cil_tmp41 + __cil_tmp40;
14302#line 988
14303    __cil_tmp43 = __cil_tmp42 - __cil_tmp39;
14304#line 988
14305    __cil_tmp44 = (unsigned long )__cil_tmp43;
14306#line 988
14307    _iov->iov_base = (void *)__cil_tmp44;
14308#line 990
14309    s = s + size;
14310#line 991
14311    addr = addr + size;
14312#line 992
14313    ret = ret + 1;
14314  }
14315  while_break___4: /* CIL Label */ ;
14316  }
14317
14318  while_break___1: 
14319  {
14320#line 995
14321  rcu_read_unlock();
14322  }
14323#line 996
14324  return (ret);
14325}
14326}
14327#line 1002 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14328static unsigned int next_desc(struct vring_desc *desc ) 
14329{ unsigned int next ;
14330  __u16 __cil_tmp3 ;
14331  int __cil_tmp4 ;
14332  int __cil_tmp5 ;
14333  __u16 __cil_tmp6 ;
14334
14335  {
14336  {
14337#line 1007
14338  __cil_tmp3 = desc->flags;
14339#line 1007
14340  __cil_tmp4 = (int )__cil_tmp3;
14341#line 1007
14342  __cil_tmp5 = __cil_tmp4 & 1;
14343#line 1007
14344  if (! __cil_tmp5) {
14345#line 1008
14346    return (4294967295U);
14347  } else {
14348
14349  }
14350  }
14351#line 1011
14352  __cil_tmp6 = desc->next;
14353#line 1011
14354  next = (unsigned int )__cil_tmp6;
14355  {
14356#line 1015
14357  while (1) {
14358    while_continue: /* CIL Label */ ;
14359
14360#line 1015
14361    goto while_break;
14362  }
14363  while_break___0: /* CIL Label */ ;
14364  }
14365
14366  while_break: ;
14367#line 1017
14368  return (next);
14369}
14370}
14371#line 1032
14372static int get_indirect(struct vhost_dev *dev , struct vhost_virtqueue *vq , struct iovec *iov ,
14373                        unsigned int iov_size , unsigned int *out_num , unsigned int *in_num ,
14374                        struct vhost_log *log , unsigned int *log_num , struct vring_desc *indirect ) ;
14375#line 1032 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14376static struct _ddebug descriptor  __attribute__((__used__, __section__("__verbose"),
14377__aligned__(8)))  =    {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14378    "Invalid length in indirect descriptor: len 0x%llx not multiple of 0x%zx\n", 1035U,
14379    0U, (char)0};
14380#line 1042 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14381static struct _ddebug descriptor___0  __attribute__((__used__, __section__("__verbose"),
14382__aligned__(8)))  =    {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14383    "Translation failure %d in indirect.\n", 1042U, 0U, (char)0};
14384#line 1054 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14385static struct _ddebug descriptor___1  __attribute__((__used__, __section__("__verbose"),
14386__aligned__(8)))  =    {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14387    "Indirect buffer length too big: %d\n", 1055U, 0U, (char)0};
14388#line 1062 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14389static struct _ddebug descriptor___2  __attribute__((__used__, __section__("__verbose"),
14390__aligned__(8)))  =    {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14391    "Loop detected: last one at %u indirect size %u\n", 1064U, 0U, (char)0};
14392#line 1069 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14393static struct _ddebug descriptor___3  __attribute__((__used__, __section__("__verbose"),
14394__aligned__(8)))  =    {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14395    "Failed indirect descriptor: idx %d, %zx\n", 1070U, 0U, (char)0};
14396#line 1074 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14397static struct _ddebug descriptor___4  __attribute__((__used__, __section__("__verbose"),
14398__aligned__(8)))  =    {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14399    "Nested indirect descriptor: idx %d, %zx\n", 1075U, 0U, (char)0};
14400#line 1082 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14401static struct _ddebug descriptor___5  __attribute__((__used__, __section__("__verbose"),
14402__aligned__(8)))  =    {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14403    "Translation failure %d indirect idx %d\n", 1083U, 0U, (char)0};
14404#line 1098 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14405static struct _ddebug descriptor___6  __attribute__((__used__, __section__("__verbose"),
14406__aligned__(8)))  =    {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14407    "Indirect descriptor has out after in: idx %d\n", 1099U, 0U, (char)0};
14408#line 1020 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14409static int get_indirect(struct vhost_dev *dev , struct vhost_virtqueue *vq , struct iovec *iov ,
14410                        unsigned int iov_size , unsigned int *out_num , unsigned int *in_num ,
14411                        struct vhost_log *log , unsigned int *log_num , struct vring_desc *indirect ) 
14412{ struct vring_desc desc ;
14413  unsigned int i ;
14414  unsigned int count ;
14415  unsigned int found ;
14416  int ret ;
14417  long tmp___7 ;
14418  long tmp___8 ;
14419  long tmp___9 ;
14420  long tmp___10 ;
14421  long tmp___11 ;
14422  long tmp___12 ;
14423  unsigned int iov_count ;
14424  long tmp___13 ;
14425  int tmp___14 ;
14426  long tmp___15 ;
14427  long tmp___16 ;
14428  int tmp___17 ;
14429  int tmp___18 ;
14430  long tmp___19 ;
14431  long tmp___20 ;
14432  long tmp___21 ;
14433  long tmp___22 ;
14434  long tmp___23 ;
14435  long tmp___24 ;
14436  long tmp___25 ;
14437  long tmp___26 ;
14438  __u32 __cil_tmp36 ;
14439  unsigned long __cil_tmp37 ;
14440  unsigned long __cil_tmp38 ;
14441  int __cil_tmp39 ;
14442  int __cil_tmp40 ;
14443  long __cil_tmp41 ;
14444  int __cil_tmp42 ;
14445  int __cil_tmp43 ;
14446  long __cil_tmp44 ;
14447  __u32 __cil_tmp45 ;
14448  unsigned long long __cil_tmp46 ;
14449  struct eventfd_ctx *__cil_tmp47 ;
14450  __u64 __cil_tmp48 ;
14451  __u32 __cil_tmp49 ;
14452  struct iovec *__cil_tmp50 ;
14453  int __cil_tmp51 ;
14454  int __cil_tmp52 ;
14455  int __cil_tmp53 ;
14456  long __cil_tmp54 ;
14457  int __cil_tmp55 ;
14458  int __cil_tmp56 ;
14459  long __cil_tmp57 ;
14460  struct eventfd_ctx *__cil_tmp58 ;
14461  __u32 __cil_tmp59 ;
14462  unsigned long __cil_tmp60 ;
14463  unsigned long __cil_tmp61 ;
14464  int __cil_tmp62 ;
14465  int __cil_tmp63 ;
14466  int __cil_tmp64 ;
14467  long __cil_tmp65 ;
14468  int __cil_tmp66 ;
14469  int __cil_tmp67 ;
14470  long __cil_tmp68 ;
14471  __u32 __cil_tmp69 ;
14472  struct eventfd_ctx *__cil_tmp70 ;
14473  unsigned int __cil_tmp71 ;
14474  unsigned int __cil_tmp72 ;
14475  long __cil_tmp73 ;
14476  int __cil_tmp74 ;
14477  int __cil_tmp75 ;
14478  long __cil_tmp76 ;
14479  struct eventfd_ctx *__cil_tmp77 ;
14480  unsigned char *__cil_tmp78 ;
14481  struct iovec *__cil_tmp79 ;
14482  int __cil_tmp80 ;
14483  long __cil_tmp81 ;
14484  int __cil_tmp82 ;
14485  int __cil_tmp83 ;
14486  long __cil_tmp84 ;
14487  unsigned long __cil_tmp85 ;
14488  unsigned long __cil_tmp86 ;
14489  __u64 __cil_tmp87 ;
14490  size_t __cil_tmp88 ;
14491  size_t __cil_tmp89 ;
14492  struct eventfd_ctx *__cil_tmp90 ;
14493  int __cil_tmp91 ;
14494  int __cil_tmp92 ;
14495  int __cil_tmp93 ;
14496  int __cil_tmp94 ;
14497  long __cil_tmp95 ;
14498  int __cil_tmp96 ;
14499  int __cil_tmp97 ;
14500  long __cil_tmp98 ;
14501  unsigned long __cil_tmp99 ;
14502  unsigned long __cil_tmp100 ;
14503  __u64 __cil_tmp101 ;
14504  size_t __cil_tmp102 ;
14505  size_t __cil_tmp103 ;
14506  struct eventfd_ctx *__cil_tmp104 ;
14507  struct iovec *__cil_tmp105 ;
14508  unsigned int __cil_tmp106 ;
14509  int __cil_tmp107 ;
14510  int __cil_tmp108 ;
14511  int __cil_tmp109 ;
14512  int __cil_tmp110 ;
14513  long __cil_tmp111 ;
14514  int __cil_tmp112 ;
14515  int __cil_tmp113 ;
14516  long __cil_tmp114 ;
14517  struct eventfd_ctx *__cil_tmp115 ;
14518  int __cil_tmp116 ;
14519  unsigned int __cil_tmp117 ;
14520  unsigned int __cil_tmp118 ;
14521  int __cil_tmp119 ;
14522  int __cil_tmp120 ;
14523  long __cil_tmp121 ;
14524  unsigned int __cil_tmp122 ;
14525  struct vhost_log *__cil_tmp123 ;
14526  unsigned int __cil_tmp124 ;
14527  struct vhost_log *__cil_tmp125 ;
14528  unsigned int __cil_tmp126 ;
14529  unsigned int __cil_tmp127 ;
14530  int __cil_tmp128 ;
14531  int __cil_tmp129 ;
14532  long __cil_tmp130 ;
14533  int __cil_tmp131 ;
14534  int __cil_tmp132 ;
14535  long __cil_tmp133 ;
14536  struct eventfd_ctx *__cil_tmp134 ;
14537  unsigned int __cil_tmp135 ;
14538  unsigned int __cil_tmp136 ;
14539
14540  {
14541  {
14542#line 1027
14543  i = 0U;
14544#line 1027
14545  found = 0U;
14546#line 1031
14547  __cil_tmp36 = indirect->len;
14548#line 1031
14549  __cil_tmp37 = (unsigned long )__cil_tmp36;
14550#line 1031
14551  __cil_tmp38 = __cil_tmp37 % 16UL;
14552#line 1031
14553  __cil_tmp39 = ! __cil_tmp38;
14554#line 1031
14555  __cil_tmp40 = ! __cil_tmp39;
14556#line 1031
14557  __cil_tmp41 = (long )__cil_tmp40;
14558#line 1031
14559  tmp___8 = __builtin_expect(__cil_tmp41, 0L);
14560  }
14561#line 1031
14562  if (tmp___8) {
14563    {
14564#line 1032
14565    while (1) {
14566      while_continue: /* CIL Label */ ;
14567
14568      {
14569#line 1032
14570      while (1) {
14571        while_continue___0: /* CIL Label */ ;
14572        {
14573#line 1032
14574        __cil_tmp42 = ! descriptor.enabled;
14575#line 1032
14576        __cil_tmp43 = ! __cil_tmp42;
14577#line 1032
14578        __cil_tmp44 = (long )__cil_tmp43;
14579#line 1032
14580        tmp___7 = __builtin_expect(__cil_tmp44, 0L);
14581        }
14582#line 1032
14583        if (tmp___7) {
14584          {
14585#line 1032
14586          __cil_tmp45 = indirect->len;
14587#line 1032
14588          __cil_tmp46 = (unsigned long long )__cil_tmp45;
14589#line 1032
14590          __dynamic_pr_debug(& descriptor, "Invalid length in indirect descriptor: len 0x%llx not multiple of 0x%zx\n",
14591                             __cil_tmp46, 16UL);
14592          }
14593        } else {
14594
14595        }
14596#line 1032
14597        goto while_break___0;
14598      }
14599      while_break___18: /* CIL Label */ ;
14600      }
14601
14602      while_break___0: ;
14603#line 1032
14604      if (vq->error_ctx) {
14605        {
14606#line 1032
14607        __cil_tmp47 = vq->error_ctx;
14608#line 1032
14609        eventfd_signal(__cil_tmp47, 1);
14610        }
14611      } else {
14612
14613      }
14614#line 1032
14615      goto while_break;
14616    }
14617    while_break___17: /* CIL Label */ ;
14618    }
14619
14620    while_break: ;
14621#line 1036
14622    return (-22);
14623  } else {
14624
14625  }
14626  {
14627#line 1039
14628  __cil_tmp48 = indirect->addr;
14629#line 1039
14630  __cil_tmp49 = indirect->len;
14631#line 1039
14632  __cil_tmp50 = vq->indirect;
14633#line 1039
14634  ret = translate_desc(dev, __cil_tmp48, __cil_tmp49, __cil_tmp50, 1024);
14635#line 1041
14636  __cil_tmp51 = ret < 0;
14637#line 1041
14638  __cil_tmp52 = ! __cil_tmp51;
14639#line 1041
14640  __cil_tmp53 = ! __cil_tmp52;
14641#line 1041
14642  __cil_tmp54 = (long )__cil_tmp53;
14643#line 1041
14644  tmp___10 = __builtin_expect(__cil_tmp54, 0L);
14645  }
14646#line 1041
14647  if (tmp___10) {
14648    {
14649#line 1042
14650    while (1) {
14651      while_continue___1: /* CIL Label */ ;
14652
14653      {
14654#line 1042
14655      while (1) {
14656        while_continue___2: /* CIL Label */ ;
14657        {
14658#line 1042
14659        __cil_tmp55 = ! descriptor___0.enabled;
14660#line 1042
14661        __cil_tmp56 = ! __cil_tmp55;
14662#line 1042
14663        __cil_tmp57 = (long )__cil_tmp56;
14664#line 1042
14665        tmp___9 = __builtin_expect(__cil_tmp57, 0L);
14666        }
14667#line 1042
14668        if (tmp___9) {
14669          {
14670#line 1042
14671          __dynamic_pr_debug(& descriptor___0, "Translation failure %d in indirect.\n",
14672                             ret);
14673          }
14674        } else {
14675
14676        }
14677#line 1042
14678        goto while_break___2;
14679      }
14680      while_break___20: /* CIL Label */ ;
14681      }
14682
14683      while_break___2: ;
14684#line 1042
14685      if (vq->error_ctx) {
14686        {
14687#line 1042
14688        __cil_tmp58 = vq->error_ctx;
14689#line 1042
14690        eventfd_signal(__cil_tmp58, 1);
14691        }
14692      } else {
14693
14694      }
14695#line 1042
14696      goto while_break___1;
14697    }
14698    while_break___19: /* CIL Label */ ;
14699    }
14700
14701    while_break___1: ;
14702#line 1043
14703    return (ret);
14704  } else {
14705
14706  }
14707  {
14708#line 1048
14709  while (1) {
14710    while_continue___3: /* CIL Label */ ;
14711
14712#line 1048
14713    goto while_break___3;
14714  }
14715  while_break___21: /* CIL Label */ ;
14716  }
14717
14718  while_break___3: 
14719  {
14720#line 1050
14721  __cil_tmp59 = indirect->len;
14722#line 1050
14723  __cil_tmp60 = (unsigned long )__cil_tmp59;
14724#line 1050
14725  __cil_tmp61 = __cil_tmp60 / 16UL;
14726#line 1050
14727  count = (unsigned int )__cil_tmp61;
14728#line 1053
14729  __cil_tmp62 = count > 65536U;
14730#line 1053
14731  __cil_tmp63 = ! __cil_tmp62;
14732#line 1053
14733  __cil_tmp64 = ! __cil_tmp63;
14734#line 1053
14735  __cil_tmp65 = (long )__cil_tmp64;
14736#line 1053
14737  tmp___12 = __builtin_expect(__cil_tmp65, 0L);
14738  }
14739#line 1053
14740  if (tmp___12) {
14741    {
14742#line 1054
14743    while (1) {
14744      while_continue___4: /* CIL Label */ ;
14745
14746      {
14747#line 1054
14748      while (1) {
14749        while_continue___5: /* CIL Label */ ;
14750        {
14751#line 1054
14752        __cil_tmp66 = ! descriptor___1.enabled;
14753#line 1054
14754        __cil_tmp67 = ! __cil_tmp66;
14755#line 1054
14756        __cil_tmp68 = (long )__cil_tmp67;
14757#line 1054
14758        tmp___11 = __builtin_expect(__cil_tmp68, 0L);
14759        }
14760#line 1054
14761        if (tmp___11) {
14762          {
14763#line 1054
14764          __cil_tmp69 = indirect->len;
14765#line 1054
14766          __dynamic_pr_debug(& descriptor___1, "Indirect buffer length too big: %d\n",
14767                             __cil_tmp69);
14768          }
14769        } else {
14770
14771        }
14772#line 1054
14773        goto while_break___5;
14774      }
14775      while_break___23: /* CIL Label */ ;
14776      }
14777
14778      while_break___5: ;
14779#line 1054
14780      if (vq->error_ctx) {
14781        {
14782#line 1054
14783        __cil_tmp70 = vq->error_ctx;
14784#line 1054
14785        eventfd_signal(__cil_tmp70, 1);
14786        }
14787      } else {
14788
14789      }
14790#line 1054
14791      goto while_break___4;
14792    }
14793    while_break___22: /* CIL Label */ ;
14794    }
14795
14796    while_break___4: ;
14797#line 1056
14798    return (-7);
14799  } else {
14800
14801  }
14802  {
14803#line 1059
14804  while (1) {
14805    while_continue___6: /* CIL Label */ ;
14806#line 1060
14807    __cil_tmp71 = *out_num;
14808#line 1060
14809    __cil_tmp72 = *in_num;
14810#line 1060
14811    iov_count = __cil_tmp72 + __cil_tmp71;
14812#line 1061
14813    found = found + 1U;
14814#line 1061
14815    if (found > count) {
14816#line 1061
14817      tmp___14 = 1;
14818    } else {
14819#line 1061
14820      tmp___14 = 0;
14821    }
14822    {
14823#line 1061
14824    __cil_tmp73 = (long )tmp___14;
14825#line 1061
14826    tmp___15 = __builtin_expect(__cil_tmp73, 0L);
14827    }
14828#line 1061
14829    if (tmp___15) {
14830      {
14831#line 1062
14832      while (1) {
14833        while_continue___7: /* CIL Label */ ;
14834
14835        {
14836#line 1062
14837        while (1) {
14838          while_continue___8: /* CIL Label */ ;
14839          {
14840#line 1062
14841          __cil_tmp74 = ! descriptor___2.enabled;
14842#line 1062
14843          __cil_tmp75 = ! __cil_tmp74;
14844#line 1062
14845          __cil_tmp76 = (long )__cil_tmp75;
14846#line 1062
14847          tmp___13 = __builtin_expect(__cil_tmp76, 0L);
14848          }
14849#line 1062
14850          if (tmp___13) {
14851            {
14852#line 1062
14853            __dynamic_pr_debug(& descriptor___2, "Loop detected: last one at %u indirect size %u\n",
14854                               i, count);
14855            }
14856          } else {
14857
14858          }
14859#line 1062
14860          goto while_break___8;
14861        }
14862        while_break___26: /* CIL Label */ ;
14863        }
14864
14865        while_break___8: ;
14866#line 1062
14867        if (vq->error_ctx) {
14868          {
14869#line 1062
14870          __cil_tmp77 = vq->error_ctx;
14871#line 1062
14872          eventfd_signal(__cil_tmp77, 1);
14873          }
14874        } else {
14875
14876        }
14877#line 1062
14878        goto while_break___7;
14879      }
14880      while_break___25: /* CIL Label */ ;
14881      }
14882
14883      while_break___7: ;
14884#line 1065
14885      return (-22);
14886    } else {
14887
14888    }
14889    {
14890#line 1067
14891    __cil_tmp78 = (unsigned char *)(& desc);
14892#line 1067
14893    __cil_tmp79 = vq->indirect;
14894#line 1067
14895    __cil_tmp80 = (int )16UL;
14896#line 1067
14897    tmp___17 = memcpy_fromiovec(__cil_tmp78, __cil_tmp79, __cil_tmp80);
14898    }
14899#line 1067
14900    if (tmp___17) {
14901#line 1067
14902      tmp___18 = 1;
14903    } else {
14904#line 1067
14905      tmp___18 = 0;
14906    }
14907    {
14908#line 1067
14909    __cil_tmp81 = (long )tmp___18;
14910#line 1067
14911    tmp___19 = __builtin_expect(__cil_tmp81, 0L);
14912    }
14913#line 1067
14914    if (tmp___19) {
14915      {
14916#line 1069
14917      while (1) {
14918        while_continue___9: /* CIL Label */ ;
14919
14920        {
14921#line 1069
14922        while (1) {
14923          while_continue___10: /* CIL Label */ ;
14924          {
14925#line 1069
14926          __cil_tmp82 = ! descriptor___3.enabled;
14927#line 1069
14928          __cil_tmp83 = ! __cil_tmp82;
14929#line 1069
14930          __cil_tmp84 = (long )__cil_tmp83;
14931#line 1069
14932          tmp___16 = __builtin_expect(__cil_tmp84, 0L);
14933          }
14934#line 1069
14935          if (tmp___16) {
14936            {
14937#line 1069
14938            __cil_tmp85 = (unsigned long )i;
14939#line 1069
14940            __cil_tmp86 = __cil_tmp85 * 16UL;
14941#line 1069
14942            __cil_tmp87 = indirect->addr;
14943#line 1069
14944            __cil_tmp88 = (size_t )__cil_tmp87;
14945#line 1069
14946            __cil_tmp89 = __cil_tmp88 + __cil_tmp86;
14947#line 1069
14948            __dynamic_pr_debug(& descriptor___3, "Failed indirect descriptor: idx %d, %zx\n",
14949                               i, __cil_tmp89);
14950            }
14951          } else {
14952
14953          }
14954#line 1069
14955          goto while_break___10;
14956        }
14957        while_break___28: /* CIL Label */ ;
14958        }
14959
14960        while_break___10: ;
14961#line 1069
14962        if (vq->error_ctx) {
14963          {
14964#line 1069
14965          __cil_tmp90 = vq->error_ctx;
14966#line 1069
14967          eventfd_signal(__cil_tmp90, 1);
14968          }
14969        } else {
14970
14971        }
14972#line 1069
14973        goto while_break___9;
14974      }
14975      while_break___27: /* CIL Label */ ;
14976      }
14977
14978      while_break___9: ;
14979#line 1071
14980      return (-22);
14981    } else {
14982
14983    }
14984    {
14985#line 1073
14986    __cil_tmp91 = (int )desc.flags;
14987#line 1073
14988    __cil_tmp92 = __cil_tmp91 & 4;
14989#line 1073
14990    __cil_tmp93 = ! __cil_tmp92;
14991#line 1073
14992    __cil_tmp94 = ! __cil_tmp93;
14993#line 1073
14994    __cil_tmp95 = (long )__cil_tmp94;
14995#line 1073
14996    tmp___21 = __builtin_expect(__cil_tmp95, 0L);
14997    }
14998#line 1073
14999    if (tmp___21) {
15000      {
15001#line 1074
15002      while (1) {
15003        while_continue___11: /* CIL Label */ ;
15004
15005        {
15006#line 1074
15007        while (1) {
15008          while_continue___12: /* CIL Label */ ;
15009          {
15010#line 1074
15011          __cil_tmp96 = ! descriptor___4.enabled;
15012#line 1074
15013          __cil_tmp97 = ! __cil_tmp96;
15014#line 1074
15015          __cil_tmp98 = (long )__cil_tmp97;
15016#line 1074
15017          tmp___20 = __builtin_expect(__cil_tmp98, 0L);
15018          }
15019#line 1074
15020          if (tmp___20) {
15021            {
15022#line 1074
15023            __cil_tmp99 = (unsigned long )i;
15024#line 1074
15025            __cil_tmp100 = __cil_tmp99 * 16UL;
15026#line 1074
15027            __cil_tmp101 = indirect->addr;
15028#line 1074
15029            __cil_tmp102 = (size_t )__cil_tmp101;
15030#line 1074
15031            __cil_tmp103 = __cil_tmp102 + __cil_tmp100;
15032#line 1074
15033            __dynamic_pr_debug(& descriptor___4, "Nested indirect descriptor: idx %d, %zx\n",
15034                               i, __cil_tmp103);
15035            }
15036          } else {
15037
15038          }
15039#line 1074
15040          goto while_break___12;
15041        }
15042        while_break___30: /* CIL Label */ ;
15043        }
15044
15045        while_break___12: ;
15046#line 1074
15047        if (vq->error_ctx) {
15048          {
15049#line 1074
15050          __cil_tmp104 = vq->error_ctx;
15051#line 1074
15052          eventfd_signal(__cil_tmp104, 1);
15053          }
15054        } else {
15055
15056        }
15057#line 1074
15058        goto while_break___11;
15059      }
15060      while_break___29: /* CIL Label */ ;
15061      }
15062
15063      while_break___11: ;
15064#line 1076
15065      return (-22);
15066    } else {
15067
15068    }
15069    {
15070#line 1079
15071    __cil_tmp105 = iov + iov_count;
15072#line 1079
15073    __cil_tmp106 = iov_size - iov_count;
15074#line 1079
15075    __cil_tmp107 = (int )__cil_tmp106;
15076#line 1079
15077    ret = translate_desc(dev, desc.addr, desc.len, __cil_tmp105, __cil_tmp107);
15078#line 1081
15079    __cil_tmp108 = ret < 0;
15080#line 1081
15081    __cil_tmp109 = ! __cil_tmp108;
15082#line 1081
15083    __cil_tmp110 = ! __cil_tmp109;
15084#line 1081
15085    __cil_tmp111 = (long )__cil_tmp110;
15086#line 1081
15087    tmp___23 = __builtin_expect(__cil_tmp111, 0L);
15088    }
15089#line 1081
15090    if (tmp___23) {
15091      {
15092#line 1082
15093      while (1) {
15094        while_continue___13: /* CIL Label */ ;
15095
15096        {
15097#line 1082
15098        while (1) {
15099          while_continue___14: /* CIL Label */ ;
15100          {
15101#line 1082
15102          __cil_tmp112 = ! descriptor___5.enabled;
15103#line 1082
15104          __cil_tmp113 = ! __cil_tmp112;
15105#line 1082
15106          __cil_tmp114 = (long )__cil_tmp113;
15107#line 1082
15108          tmp___22 = __builtin_expect(__cil_tmp114, 0L);
15109          }
15110#line 1082
15111          if (tmp___22) {
15112            {
15113#line 1082
15114            __dynamic_pr_debug(& descriptor___5, "Translation failure %d indirect idx %d\n",
15115                               ret, i);
15116            }
15117          } else {
15118
15119          }
15120#line 1082
15121          goto while_break___14;
15122        }
15123        while_break___32: /* CIL Label */ ;
15124        }
15125
15126        while_break___14: ;
15127#line 1082
15128        if (vq->error_ctx) {
15129          {
15130#line 1082
15131          __cil_tmp115 = vq->error_ctx;
15132#line 1082
15133          eventfd_signal(__cil_tmp115, 1);
15134          }
15135        } else {
15136
15137        }
15138#line 1082
15139        goto while_break___13;
15140      }
15141      while_break___31: /* CIL Label */ ;
15142      }
15143
15144      while_break___13: ;
15145#line 1084
15146      return (ret);
15147    } else {
15148
15149    }
15150    {
15151#line 1087
15152    __cil_tmp116 = (int )desc.flags;
15153#line 1087
15154    if (__cil_tmp116 & 2) {
15155      {
15156#line 1088
15157      __cil_tmp117 = (unsigned int )ret;
15158#line 1088
15159      __cil_tmp118 = *in_num;
15160#line 1088
15161      *in_num = __cil_tmp118 + __cil_tmp117;
15162#line 1089
15163      __cil_tmp119 = ! log;
15164#line 1089
15165      __cil_tmp120 = ! __cil_tmp119;
15166#line 1089
15167      __cil_tmp121 = (long )__cil_tmp120;
15168#line 1089
15169      tmp___24 = __builtin_expect(__cil_tmp121, 0L);
15170      }
15171#line 1089
15172      if (tmp___24) {
15173#line 1090
15174        __cil_tmp122 = *log_num;
15175#line 1090
15176        __cil_tmp123 = log + __cil_tmp122;
15177#line 1090
15178        __cil_tmp123->addr = desc.addr;
15179#line 1091
15180        __cil_tmp124 = *log_num;
15181#line 1091
15182        __cil_tmp125 = log + __cil_tmp124;
15183#line 1091
15184        __cil_tmp125->len = (u64 )desc.len;
15185#line 1092
15186        __cil_tmp126 = *log_num;
15187#line 1092
15188        *log_num = __cil_tmp126 + 1U;
15189      } else {
15190
15191      }
15192    } else {
15193      {
15194#line 1097
15195      __cil_tmp127 = *in_num;
15196#line 1097
15197      __cil_tmp128 = ! __cil_tmp127;
15198#line 1097
15199      __cil_tmp129 = ! __cil_tmp128;
15200#line 1097
15201      __cil_tmp130 = (long )__cil_tmp129;
15202#line 1097
15203      tmp___26 = __builtin_expect(__cil_tmp130, 0L);
15204      }
15205#line 1097
15206      if (tmp___26) {
15207        {
15208#line 1098
15209        while (1) {
15210          while_continue___15: /* CIL Label */ ;
15211
15212          {
15213#line 1098
15214          while (1) {
15215            while_continue___16: /* CIL Label */ ;
15216            {
15217#line 1098
15218            __cil_tmp131 = ! descriptor___6.enabled;
15219#line 1098
15220            __cil_tmp132 = ! __cil_tmp131;
15221#line 1098
15222            __cil_tmp133 = (long )__cil_tmp132;
15223#line 1098
15224            tmp___25 = __builtin_expect(__cil_tmp133, 0L);
15225            }
15226#line 1098
15227            if (tmp___25) {
15228              {
15229#line 1098
15230              __dynamic_pr_debug(& descriptor___6, "Indirect descriptor has out after in: idx %d\n",
15231                                 i);
15232              }
15233            } else {
15234
15235            }
15236#line 1098
15237            goto while_break___16;
15238          }
15239          while_break___34: /* CIL Label */ ;
15240          }
15241
15242          while_break___16: ;
15243#line 1098
15244          if (vq->error_ctx) {
15245            {
15246#line 1098
15247            __cil_tmp134 = vq->error_ctx;
15248#line 1098
15249            eventfd_signal(__cil_tmp134, 1);
15250            }
15251          } else {
15252
15253          }
15254#line 1098
15255          goto while_break___15;
15256        }
15257        while_break___33: /* CIL Label */ ;
15258        }
15259
15260        while_break___15: ;
15261#line 1100
15262        return (-22);
15263      } else {
15264
15265      }
15266#line 1102
15267      __cil_tmp135 = (unsigned int )ret;
15268#line 1102
15269      __cil_tmp136 = *out_num;
15270#line 1102
15271      *out_num = __cil_tmp136 + __cil_tmp135;
15272    }
15273    }
15274    {
15275#line 1059
15276    i = next_desc(& desc);
15277    }
15278#line 1059
15279    if (i != 4294967295U) {
15280
15281    } else {
15282#line 1059
15283      goto while_break___6;
15284    }
15285  }
15286  while_break___24: /* CIL Label */ ;
15287  }
15288
15289  while_break___6: ;
15290#line 1105
15291  return (0);
15292}
15293}
15294#line 1129 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15295static struct _ddebug descriptor___7  __attribute__((__used__, __section__("__verbose"),
15296__aligned__(8)))  =    {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15297    "Failed to access avail idx at %p\n", 1130U, 0U, (char)0};
15298#line 1135 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15299static struct _ddebug descriptor___8  __attribute__((__used__, __section__("__verbose"),
15300__aligned__(8)))  =    {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15301    "Guest moved used index from %u to %u", 1136U, 0U, (char)0};
15302#line 1151 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15303static struct _ddebug descriptor___9  __attribute__((__used__, __section__("__verbose"),
15304__aligned__(8)))  =    {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15305    "Failed to read head: idx %d address %p\n", 1153U, 0U, (char)0};
15306#line 1159 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15307static struct _ddebug descriptor___10  __attribute__((__used__, __section__("__verbose"),
15308__aligned__(8)))  =    {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15309    "Guest says index %u > %u is available", 1160U, 0U, (char)0};
15310#line 1173 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15311static struct _ddebug descriptor___11  __attribute__((__used__, __section__("__verbose"),
15312__aligned__(8)))  =    {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15313    "Desc index is %u > %u, head = %u", 1174U, 0U, (char)0};
15314#line 1178 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15315static struct _ddebug descriptor___12  __attribute__((__used__, __section__("__verbose"),
15316__aligned__(8)))  =    {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15317    "Loop detected: last one at %u vq size %u head %u\n", 1180U, 0U, (char)0};
15318#line 1185 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15319static struct _ddebug descriptor___13  __attribute__((__used__, __section__("__verbose"),
15320__aligned__(8)))  =    {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15321    "Failed to get descriptor: idx %d addr %p\n", 1186U, 0U, (char)0};
15322#line 1194 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15323static struct _ddebug descriptor___14  __attribute__((__used__, __section__("__verbose"),
15324__aligned__(8)))  =    {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15325    "Failure detected in indirect descriptor at idx %d\n", 1195U, 0U, (char)0};
15326#line 1204 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15327static struct _ddebug descriptor___15  __attribute__((__used__, __section__("__verbose"),
15328__aligned__(8)))  =    {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15329    "Translation failure %d descriptor idx %d\n", 1205U, 0U, (char)0};
15330#line 1221 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15331static struct _ddebug descriptor___16  __attribute__((__used__, __section__("__verbose"),
15332__aligned__(8)))  =    {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15333    "Descriptor has out after in: idx %d\n", 1222U, 0U, (char)0};
15334#line 1116 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15335int vhost_get_vq_desc(struct vhost_dev *dev , struct vhost_virtqueue *vq , struct iovec *iov ,
15336                      unsigned int iov_size , unsigned int *out_num , unsigned int *in_num ,
15337                      struct vhost_log *log , unsigned int *log_num ) 
15338{ struct vring_desc desc ;
15339  unsigned int i ;
15340  unsigned int head ;
15341  unsigned int found ;
15342  u16 last_avail_idx ;
15343  int ret ;
15344  long tmp___7 ;
15345  int __gu_err ;
15346  unsigned long __gu_val ;
15347  int tmp___8 ;
15348  int tmp___9 ;
15349  long tmp___10 ;
15350  long tmp___11 ;
15351  long tmp___12 ;
15352  long tmp___13 ;
15353  int __gu_err___0 ;
15354  unsigned long __gu_val___0 ;
15355  int tmp___14 ;
15356  int tmp___15 ;
15357  long tmp___16 ;
15358  long tmp___17 ;
15359  long tmp___18 ;
15360  unsigned int tmp___19 ;
15361  long tmp___20 ;
15362  unsigned int iov_count ;
15363  long tmp___21 ;
15364  long tmp___22 ;
15365  long tmp___23 ;
15366  int tmp___24 ;
15367  long tmp___25 ;
15368  long tmp___26 ;
15369  long tmp___27 ;
15370  long tmp___28 ;
15371  long tmp___29 ;
15372  long tmp___30 ;
15373  long tmp___31 ;
15374  long tmp___32 ;
15375  long tmp___33 ;
15376  long tmp___34 ;
15377  long tmp___35 ;
15378  int tmp ;
15379  int tmp___36 ;
15380  int __cil_tmp51 ;
15381  int __cil_tmp52 ;
15382  int __cil_tmp53 ;
15383  int __cil_tmp54 ;
15384  struct vring_avail *__cil_tmp55 ;
15385  __u16 *__cil_tmp56 ;
15386  struct __large_struct *__cil_tmp57 ;
15387  struct vring_avail *__cil_tmp58 ;
15388  __u16 *__cil_tmp59 ;
15389  struct __large_struct *__cil_tmp60 ;
15390  struct vring_avail *__cil_tmp61 ;
15391  __u16 *__cil_tmp62 ;
15392  struct __large_struct *__cil_tmp63 ;
15393  struct vring_avail *__cil_tmp64 ;
15394  __u16 *__cil_tmp65 ;
15395  struct __large_struct *__cil_tmp66 ;
15396  long __cil_tmp67 ;
15397  int __cil_tmp68 ;
15398  int __cil_tmp69 ;
15399  long __cil_tmp70 ;
15400  struct vring_avail *__cil_tmp71 ;
15401  __u16 *__cil_tmp72 ;
15402  struct eventfd_ctx *__cil_tmp73 ;
15403  unsigned int __cil_tmp74 ;
15404  int __cil_tmp75 ;
15405  u16 __cil_tmp76 ;
15406  int __cil_tmp77 ;
15407  int __cil_tmp78 ;
15408  u16 __cil_tmp79 ;
15409  unsigned int __cil_tmp80 ;
15410  int __cil_tmp81 ;
15411  int __cil_tmp82 ;
15412  int __cil_tmp83 ;
15413  long __cil_tmp84 ;
15414  int __cil_tmp85 ;
15415  int __cil_tmp86 ;
15416  long __cil_tmp87 ;
15417  int __cil_tmp88 ;
15418  u16 __cil_tmp89 ;
15419  int __cil_tmp90 ;
15420  struct eventfd_ctx *__cil_tmp91 ;
15421  int __cil_tmp92 ;
15422  u16 __cil_tmp93 ;
15423  int __cil_tmp94 ;
15424  unsigned int __cil_tmp95 ;
15425  int __cil_tmp96 ;
15426  int __cil_tmp97 ;
15427  int __cil_tmp98 ;
15428  int __cil_tmp99 ;
15429  struct vring_avail *__cil_tmp100 ;
15430  __u16 *__cil_tmp101 ;
15431  struct __large_struct *__cil_tmp102 ;
15432  struct vring_avail *__cil_tmp103 ;
15433  __u16 *__cil_tmp104 ;
15434  struct __large_struct *__cil_tmp105 ;
15435  struct vring_avail *__cil_tmp106 ;
15436  __u16 *__cil_tmp107 ;
15437  struct __large_struct *__cil_tmp108 ;
15438  struct vring_avail *__cil_tmp109 ;
15439  __u16 *__cil_tmp110 ;
15440  struct __large_struct *__cil_tmp111 ;
15441  __u16 __cil_tmp112 ;
15442  long __cil_tmp113 ;
15443  int __cil_tmp114 ;
15444  int __cil_tmp115 ;
15445  long __cil_tmp116 ;
15446  int __cil_tmp117 ;
15447  struct vring_avail *__cil_tmp118 ;
15448  __u16 *__cil_tmp119 ;
15449  struct eventfd_ctx *__cil_tmp120 ;
15450  unsigned int __cil_tmp121 ;
15451  int __cil_tmp122 ;
15452  int __cil_tmp123 ;
15453  int __cil_tmp124 ;
15454  long __cil_tmp125 ;
15455  int __cil_tmp126 ;
15456  int __cil_tmp127 ;
15457  long __cil_tmp128 ;
15458  unsigned int __cil_tmp129 ;
15459  struct eventfd_ctx *__cil_tmp130 ;
15460  int __cil_tmp131 ;
15461  int __cil_tmp132 ;
15462  long __cil_tmp133 ;
15463  unsigned int __cil_tmp134 ;
15464  unsigned int __cil_tmp135 ;
15465  unsigned int __cil_tmp136 ;
15466  int __cil_tmp137 ;
15467  int __cil_tmp138 ;
15468  int __cil_tmp139 ;
15469  long __cil_tmp140 ;
15470  int __cil_tmp141 ;
15471  int __cil_tmp142 ;
15472  long __cil_tmp143 ;
15473  unsigned int __cil_tmp144 ;
15474  struct eventfd_ctx *__cil_tmp145 ;
15475  unsigned int __cil_tmp146 ;
15476  long __cil_tmp147 ;
15477  int __cil_tmp148 ;
15478  int __cil_tmp149 ;
15479  long __cil_tmp150 ;
15480  unsigned int __cil_tmp151 ;
15481  struct eventfd_ctx *__cil_tmp152 ;
15482  void *__cil_tmp153 ;
15483  struct vring_desc *__cil_tmp154 ;
15484  struct vring_desc *__cil_tmp155 ;
15485  void const   *__cil_tmp156 ;
15486  unsigned int __cil_tmp157 ;
15487  int __cil_tmp158 ;
15488  int __cil_tmp159 ;
15489  long __cil_tmp160 ;
15490  int __cil_tmp161 ;
15491  int __cil_tmp162 ;
15492  long __cil_tmp163 ;
15493  struct vring_desc *__cil_tmp164 ;
15494  struct vring_desc *__cil_tmp165 ;
15495  struct eventfd_ctx *__cil_tmp166 ;
15496  int __cil_tmp167 ;
15497  int __cil_tmp168 ;
15498  int __cil_tmp169 ;
15499  int __cil_tmp170 ;
15500  long __cil_tmp171 ;
15501  int __cil_tmp172 ;
15502  int __cil_tmp173 ;
15503  long __cil_tmp174 ;
15504  struct eventfd_ctx *__cil_tmp175 ;
15505  struct iovec *__cil_tmp176 ;
15506  unsigned int __cil_tmp177 ;
15507  int __cil_tmp178 ;
15508  int __cil_tmp179 ;
15509  int __cil_tmp180 ;
15510  int __cil_tmp181 ;
15511  long __cil_tmp182 ;
15512  int __cil_tmp183 ;
15513  int __cil_tmp184 ;
15514  long __cil_tmp185 ;
15515  struct eventfd_ctx *__cil_tmp186 ;
15516  int __cil_tmp187 ;
15517  unsigned int __cil_tmp188 ;
15518  unsigned int __cil_tmp189 ;
15519  int __cil_tmp190 ;
15520  int __cil_tmp191 ;
15521  long __cil_tmp192 ;
15522  unsigned int __cil_tmp193 ;
15523  struct vhost_log *__cil_tmp194 ;
15524  unsigned int __cil_tmp195 ;
15525  struct vhost_log *__cil_tmp196 ;
15526  unsigned int __cil_tmp197 ;
15527  unsigned int __cil_tmp198 ;
15528  int __cil_tmp199 ;
15529  int __cil_tmp200 ;
15530  long __cil_tmp201 ;
15531  int __cil_tmp202 ;
15532  int __cil_tmp203 ;
15533  long __cil_tmp204 ;
15534  struct eventfd_ctx *__cil_tmp205 ;
15535  unsigned int __cil_tmp206 ;
15536  unsigned int __cil_tmp207 ;
15537  u16 __cil_tmp208 ;
15538  int __cil_tmp209 ;
15539  int __cil_tmp210 ;
15540  u16 __cil_tmp211 ;
15541  int __cil_tmp212 ;
15542  int __cil_tmp213 ;
15543  int __cil_tmp214 ;
15544  int __cil_tmp215 ;
15545  int __cil_tmp216 ;
15546  long __cil_tmp217 ;
15547
15548  {
15549#line 1122
15550  found = 0U;
15551#line 1127
15552  last_avail_idx = vq->last_avail_idx;
15553  {
15554#line 1128
15555  while (1) {
15556    while_continue: /* CIL Label */ ;
15557#line 1128
15558    __gu_err = 0;
15559    {
15560#line 1128
15561    __cil_tmp51 = (int )2UL;
15562#line 1128
15563    if (__cil_tmp51 == 1) {
15564#line 1128
15565      goto case_1;
15566    } else {
15567      {
15568#line 1128
15569      __cil_tmp52 = (int )2UL;
15570#line 1128
15571      if (__cil_tmp52 == 2) {
15572#line 1128
15573        goto case_2;
15574      } else {
15575        {
15576#line 1128
15577        __cil_tmp53 = (int )2UL;
15578#line 1128
15579        if (__cil_tmp53 == 4) {
15580#line 1128
15581          goto case_4;
15582        } else {
15583          {
15584#line 1128
15585          __cil_tmp54 = (int )2UL;
15586#line 1128
15587          if (__cil_tmp54 == 8) {
15588#line 1128
15589            goto case_8;
15590          } else {
15591#line 1128
15592            goto switch_default;
15593#line 1128
15594            if (0) {
15595              case_1: 
15596#line 1128
15597              __cil_tmp55 = vq->avail;
15598#line 1128
15599              __cil_tmp56 = & __cil_tmp55->idx;
15600#line 1128
15601              __cil_tmp57 = (struct __large_struct *)__cil_tmp56;
15602#line 1128
15603              __asm__  volatile   ("1:\tmov"
15604                                   "b"
15605                                   " %2,%"
15606                                   "b"
15607                                   "1\n"
15608                                   "2:\n"
15609                                   ".section .fixup,\"ax\"\n"
15610                                   "3:\tmov %3,%0\n"
15611                                   "\txor"
15612                                   "b"
15613                                   " %"
15614                                   "b"
15615                                   "1,%"
15616                                   "b"
15617                                   "1\n"
15618                                   "\tjmp 2b\n"
15619                                   ".previous\n"
15620                                   " .section __ex_table,\"a\"\n"
15621                                   " "
15622                                   ".balign 8"
15623                                   " "
15624                                   "\n"
15625                                   " "
15626                                   ".quad"
15627                                   " "
15628                                   "1b"
15629                                   ","
15630                                   "3b"
15631                                   "\n"
15632                                   " .previous\n": "=r" (__gu_err), "=q" (__gu_val): "m" (*__cil_tmp57),
15633                                   "i" (-14), "0" (__gu_err));
15634#line 1128
15635              goto switch_break;
15636              case_2: 
15637#line 1128
15638              __cil_tmp58 = vq->avail;
15639#line 1128
15640              __cil_tmp59 = & __cil_tmp58->idx;
15641#line 1128
15642              __cil_tmp60 = (struct __large_struct *)__cil_tmp59;
15643#line 1128
15644              __asm__  volatile   ("1:\tmov"
15645                                   "w"
15646                                   " %2,%"
15647                                   "w"
15648                                   "1\n"
15649                                   "2:\n"
15650                                   ".section .fixup,\"ax\"\n"
15651                                   "3:\tmov %3,%0\n"
15652                                   "\txor"
15653                                   "w"
15654                                   " %"
15655                                   "w"
15656                                   "1,%"
15657                                   "w"
15658                                   "1\n"
15659                                   "\tjmp 2b\n"
15660                                   ".previous\n"
15661                                   " .section __ex_table,\"a\"\n"
15662                                   " "
15663                                   ".balign 8"
15664                                   " "
15665                                   "\n"
15666                                   " "
15667                                   ".quad"
15668                                   " "
15669                                   "1b"
15670                                   ","
15671                                   "3b"
15672                                   "\n"
15673                                   " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp60),
15674                                   "i" (-14), "0" (__gu_err));
15675#line 1128
15676              goto switch_break;
15677              case_4: 
15678#line 1128
15679              __cil_tmp61 = vq->avail;
15680#line 1128
15681              __cil_tmp62 = & __cil_tmp61->idx;
15682#line 1128
15683              __cil_tmp63 = (struct __large_struct *)__cil_tmp62;
15684#line 1128
15685              __asm__  volatile   ("1:\tmov"
15686                                   "l"
15687                                   " %2,%"
15688                                   "k"
15689                                   "1\n"
15690                                   "2:\n"
15691                                   ".section .fixup,\"ax\"\n"
15692                                   "3:\tmov %3,%0\n"
15693                                   "\txor"
15694                                   "l"
15695                                   " %"
15696                                   "k"
15697                                   "1,%"
15698                                   "k"
15699                                   "1\n"
15700                                   "\tjmp 2b\n"
15701                                   ".previous\n"
15702                                   " .section __ex_table,\"a\"\n"
15703                                   " "
15704                                   ".balign 8"
15705                                   " "
15706                                   "\n"
15707                                   " "
15708                                   ".quad"
15709                                   " "
15710                                   "1b"
15711                                   ","
15712                                   "3b"
15713                                   "\n"
15714                                   " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp63),
15715                                   "i" (-14), "0" (__gu_err));
15716#line 1128
15717              goto switch_break;
15718              case_8: 
15719#line 1128
15720              __cil_tmp64 = vq->avail;
15721#line 1128
15722              __cil_tmp65 = & __cil_tmp64->idx;
15723#line 1128
15724              __cil_tmp66 = (struct __large_struct *)__cil_tmp65;
15725#line 1128
15726              __asm__  volatile   ("1:\tmov"
15727                                   "q"
15728                                   " %2,%"
15729                                   ""
15730                                   "1\n"
15731                                   "2:\n"
15732                                   ".section .fixup,\"ax\"\n"
15733                                   "3:\tmov %3,%0\n"
15734                                   "\txor"
15735                                   "q"
15736                                   " %"
15737                                   ""
15738                                   "1,%"
15739                                   ""
15740                                   "1\n"
15741                                   "\tjmp 2b\n"
15742                                   ".previous\n"
15743                                   " .section __ex_table,\"a\"\n"
15744                                   " "
15745                                   ".balign 8"
15746                                   " "
15747                                   "\n"
15748                                   " "
15749                                   ".quad"
15750                                   " "
15751                                   "1b"
15752                                   ","
15753                                   "3b"
15754                                   "\n"
15755                                   " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp66),
15756                                   "i" (-14), "0" (__gu_err));
15757#line 1128
15758              goto switch_break;
15759              switch_default: 
15760              {
15761#line 1128
15762              tmp___8 = __get_user_bad();
15763#line 1128
15764              __gu_val = (unsigned long )tmp___8;
15765              }
15766            } else {
15767              switch_break: ;
15768            }
15769          }
15770          }
15771        }
15772        }
15773      }
15774      }
15775    }
15776    }
15777#line 1128
15778    goto while_break;
15779  }
15780  while_break___24: /* CIL Label */ ;
15781  }
15782
15783  while_break: 
15784#line 1128
15785  vq->avail_idx = (__u16 )__gu_val;
15786#line 1128
15787  if (__gu_err) {
15788#line 1128
15789    tmp___9 = 1;
15790  } else {
15791#line 1128
15792    tmp___9 = 0;
15793  }
15794  {
15795#line 1128
15796  __cil_tmp67 = (long )tmp___9;
15797#line 1128
15798  tmp___10 = __builtin_expect(__cil_tmp67, 0L);
15799  }
15800#line 1128
15801  if (tmp___10) {
15802    {
15803#line 1129
15804    while (1) {
15805      while_continue___0: /* CIL Label */ ;
15806
15807      {
15808#line 1129
15809      while (1) {
15810        while_continue___1: /* CIL Label */ ;
15811        {
15812#line 1129
15813        __cil_tmp68 = ! descriptor___7.enabled;
15814#line 1129
15815        __cil_tmp69 = ! __cil_tmp68;
15816#line 1129
15817        __cil_tmp70 = (long )__cil_tmp69;
15818#line 1129
15819        tmp___7 = __builtin_expect(__cil_tmp70, 0L);
15820        }
15821#line 1129
15822        if (tmp___7) {
15823          {
15824#line 1129
15825          __cil_tmp71 = vq->avail;
15826#line 1129
15827          __cil_tmp72 = & __cil_tmp71->idx;
15828#line 1129
15829          __dynamic_pr_debug(& descriptor___7, "Failed to access avail idx at %p\n",
15830                             __cil_tmp72);
15831          }
15832        } else {
15833
15834        }
15835#line 1129
15836        goto while_break___1;
15837      }
15838      while_break___26: /* CIL Label */ ;
15839      }
15840
15841      while_break___1: ;
15842#line 1129
15843      if (vq->error_ctx) {
15844        {
15845#line 1129
15846        __cil_tmp73 = vq->error_ctx;
15847#line 1129
15848        eventfd_signal(__cil_tmp73, 1);
15849        }
15850      } else {
15851
15852      }
15853#line 1129
15854      goto while_break___0;
15855    }
15856    while_break___25: /* CIL Label */ ;
15857    }
15858
15859    while_break___0: ;
15860#line 1131
15861    return (-14);
15862  } else {
15863
15864  }
15865  {
15866#line 1134
15867  __cil_tmp74 = vq->num;
15868#line 1134
15869  __cil_tmp75 = (int )last_avail_idx;
15870#line 1134
15871  __cil_tmp76 = vq->avail_idx;
15872#line 1134
15873  __cil_tmp77 = (int )__cil_tmp76;
15874#line 1134
15875  __cil_tmp78 = __cil_tmp77 - __cil_tmp75;
15876#line 1134
15877  __cil_tmp79 = (u16 )__cil_tmp78;
15878#line 1134
15879  __cil_tmp80 = (unsigned int )__cil_tmp79;
15880#line 1134
15881  __cil_tmp81 = __cil_tmp80 > __cil_tmp74;
15882#line 1134
15883  __cil_tmp82 = ! __cil_tmp81;
15884#line 1134
15885  __cil_tmp83 = ! __cil_tmp82;
15886#line 1134
15887  __cil_tmp84 = (long )__cil_tmp83;
15888#line 1134
15889  tmp___12 = __builtin_expect(__cil_tmp84, 0L);
15890  }
15891#line 1134
15892  if (tmp___12) {
15893    {
15894#line 1135
15895    while (1) {
15896      while_continue___2: /* CIL Label */ ;
15897
15898      {
15899#line 1135
15900      while (1) {
15901        while_continue___3: /* CIL Label */ ;
15902        {
15903#line 1135
15904        __cil_tmp85 = ! descriptor___8.enabled;
15905#line 1135
15906        __cil_tmp86 = ! __cil_tmp85;
15907#line 1135
15908        __cil_tmp87 = (long )__cil_tmp86;
15909#line 1135
15910        tmp___11 = __builtin_expect(__cil_tmp87, 0L);
15911        }
15912#line 1135
15913        if (tmp___11) {
15914          {
15915#line 1135
15916          __cil_tmp88 = (int )last_avail_idx;
15917#line 1135
15918          __cil_tmp89 = vq->avail_idx;
15919#line 1135
15920          __cil_tmp90 = (int )__cil_tmp89;
15921#line 1135
15922          __dynamic_pr_debug(& descriptor___8, "Guest moved used index from %u to %u",
15923                             __cil_tmp88, __cil_tmp90);
15924          }
15925        } else {
15926
15927        }
15928#line 1135
15929        goto while_break___3;
15930      }
15931      while_break___28: /* CIL Label */ ;
15932      }
15933
15934      while_break___3: ;
15935#line 1135
15936      if (vq->error_ctx) {
15937        {
15938#line 1135
15939        __cil_tmp91 = vq->error_ctx;
15940#line 1135
15941        eventfd_signal(__cil_tmp91, 1);
15942        }
15943      } else {
15944
15945      }
15946#line 1135
15947      goto while_break___2;
15948    }
15949    while_break___27: /* CIL Label */ ;
15950    }
15951
15952    while_break___2: ;
15953#line 1137
15954    return (-14);
15955  } else {
15956
15957  }
15958  {
15959#line 1141
15960  __cil_tmp92 = (int )last_avail_idx;
15961#line 1141
15962  __cil_tmp93 = vq->avail_idx;
15963#line 1141
15964  __cil_tmp94 = (int )__cil_tmp93;
15965#line 1141
15966  if (__cil_tmp94 == __cil_tmp92) {
15967    {
15968#line 1142
15969    __cil_tmp95 = vq->num;
15970#line 1142
15971    return ((int )__cil_tmp95);
15972    }
15973  } else {
15974
15975  }
15976  }
15977#line 1145
15978  __asm__  volatile   ("": : : "memory");
15979  {
15980#line 1149
15981  while (1) {
15982    while_continue___4: /* CIL Label */ ;
15983#line 1149
15984    __gu_err___0 = 0;
15985    {
15986#line 1149
15987    __cil_tmp96 = (int )2UL;
15988#line 1149
15989    if (__cil_tmp96 == 1) {
15990#line 1149
15991      goto case_1___0;
15992    } else {
15993      {
15994#line 1149
15995      __cil_tmp97 = (int )2UL;
15996#line 1149
15997      if (__cil_tmp97 == 2) {
15998#line 1149
15999        goto case_2___0;
16000      } else {
16001        {
16002#line 1149
16003        __cil_tmp98 = (int )2UL;
16004#line 1149
16005        if (__cil_tmp98 == 4) {
16006#line 1149
16007          goto case_4___0;
16008        } else {
16009          {
16010#line 1149
16011          __cil_tmp99 = (int )2UL;
16012#line 1149
16013          if (__cil_tmp99 == 8) {
16014#line 1149
16015            goto case_8___0;
16016          } else {
16017#line 1149
16018            goto switch_default___0;
16019#line 1149
16020            if (0) {
16021              case_1___0: 
16022#line 1149
16023              __cil_tmp100 = vq->avail;
16024#line 1149
16025              __cil_tmp101 = & __cil_tmp100->ring[(unsigned int )last_avail_idx % vq->num];
16026#line 1149
16027              __cil_tmp102 = (struct __large_struct *)__cil_tmp101;
16028#line 1149
16029              __asm__  volatile   ("1:\tmov"
16030                                   "b"
16031                                   " %2,%"
16032                                   "b"
16033                                   "1\n"
16034                                   "2:\n"
16035                                   ".section .fixup,\"ax\"\n"
16036                                   "3:\tmov %3,%0\n"
16037                                   "\txor"
16038                                   "b"
16039                                   " %"
16040                                   "b"
16041                                   "1,%"
16042                                   "b"
16043                                   "1\n"
16044                                   "\tjmp 2b\n"
16045                                   ".previous\n"
16046                                   " .section __ex_table,\"a\"\n"
16047                                   " "
16048                                   ".balign 8"
16049                                   " "
16050                                   "\n"
16051                                   " "
16052                                   ".quad"
16053                                   " "
16054                                   "1b"
16055                                   ","
16056                                   "3b"
16057                                   "\n"
16058                                   " .previous\n": "=r" (__gu_err___0), "=q" (__gu_val___0): "m" (*__cil_tmp102),
16059                                   "i" (-14), "0" (__gu_err___0));
16060#line 1149
16061              goto switch_break___0;
16062              case_2___0: 
16063#line 1149
16064              __cil_tmp103 = vq->avail;
16065#line 1149
16066              __cil_tmp104 = & __cil_tmp103->ring[(unsigned int )last_avail_idx % vq->num];
16067#line 1149
16068              __cil_tmp105 = (struct __large_struct *)__cil_tmp104;
16069#line 1149
16070              __asm__  volatile   ("1:\tmov"
16071                                   "w"
16072                                   " %2,%"
16073                                   "w"
16074                                   "1\n"
16075                                   "2:\n"
16076                                   ".section .fixup,\"ax\"\n"
16077                                   "3:\tmov %3,%0\n"
16078                                   "\txor"
16079                                   "w"
16080                                   " %"
16081                                   "w"
16082                                   "1,%"
16083                                   "w"
16084                                   "1\n"
16085                                   "\tjmp 2b\n"
16086                                   ".previous\n"
16087                                   " .section __ex_table,\"a\"\n"
16088                                   " "
16089                                   ".balign 8"
16090                                   " "
16091                                   "\n"
16092                                   " "
16093                                   ".quad"
16094                                   " "
16095                                   "1b"
16096                                   ","
16097                                   "3b"
16098                                   "\n"
16099                                   " .previous\n": "=r" (__gu_err___0), "=r" (__gu_val___0): "m" (*__cil_tmp105),
16100                                   "i" (-14), "0" (__gu_err___0));
16101#line 1149
16102              goto switch_break___0;
16103              case_4___0: 
16104#line 1149
16105              __cil_tmp106 = vq->avail;
16106#line 1149
16107              __cil_tmp107 = & __cil_tmp106->ring[(unsigned int )last_avail_idx % vq->num];
16108#line 1149
16109              __cil_tmp108 = (struct __large_struct *)__cil_tmp107;
16110#line 1149
16111              __asm__  volatile   ("1:\tmov"
16112                                   "l"
16113                                   " %2,%"
16114                                   "k"
16115                                   "1\n"
16116                                   "2:\n"
16117                                   ".section .fixup,\"ax\"\n"
16118                                   "3:\tmov %3,%0\n"
16119                                   "\txor"
16120                                   "l"
16121                                   " %"
16122                                   "k"
16123                                   "1,%"
16124                                   "k"
16125                                   "1\n"
16126                                   "\tjmp 2b\n"
16127                                   ".previous\n"
16128                                   " .section __ex_table,\"a\"\n"
16129                                   " "
16130                                   ".balign 8"
16131                                   " "
16132                                   "\n"
16133                                   " "
16134                                   ".quad"
16135                                   " "
16136                                   "1b"
16137                                   ","
16138                                   "3b"
16139                                   "\n"
16140                                   " .previous\n": "=r" (__gu_err___0), "=r" (__gu_val___0): "m" (*__cil_tmp108),
16141                                   "i" (-14), "0" (__gu_err___0));
16142#line 1149
16143              goto switch_break___0;
16144              case_8___0: 
16145#line 1149
16146              __cil_tmp109 = vq->avail;
16147#line 1149
16148              __cil_tmp110 = & __cil_tmp109->ring[(unsigned int )last_avail_idx % vq->num];
16149#line 1149
16150              __cil_tmp111 = (struct __large_struct *)__cil_tmp110;
16151#line 1149
16152              __asm__  volatile   ("1:\tmov"
16153                                   "q"
16154                                   " %2,%"
16155                                   ""
16156                                   "1\n"
16157                                   "2:\n"
16158                                   ".section .fixup,\"ax\"\n"
16159                                   "3:\tmov %3,%0\n"
16160                                   "\txor"
16161                                   "q"
16162                                   " %"
16163                                   ""
16164                                   "1,%"
16165                                   ""
16166                                   "1\n"
16167                                   "\tjmp 2b\n"
16168                                   ".previous\n"
16169                                   " .section __ex_table,\"a\"\n"
16170                                   " "
16171                                   ".balign 8"
16172                                   " "
16173                                   "\n"
16174                                   " "
16175                                   ".quad"
16176                                   " "
16177                                   "1b"
16178                                   ","
16179                                   "3b"
16180                                   "\n"
16181                                   " .previous\n": "=r" (__gu_err___0), "=r" (__gu_val___0): "m" (*__cil_tmp111),
16182                                   "i" (-14), "0" (__gu_err___0));
16183#line 1149
16184              goto switch_break___0;
16185              switch_default___0: 
16186              {
16187#line 1149
16188              tmp___14 = __get_user_bad();
16189#line 1149
16190              __gu_val___0 = (unsigned long )tmp___14;
16191              }
16192            } else {
16193              switch_break___0: ;
16194            }
16195          }
16196          }
16197        }
16198        }
16199      }
16200      }
16201    }
16202    }
16203#line 1149
16204    goto while_break___4;
16205  }
16206  while_break___29: /* CIL Label */ ;
16207  }
16208
16209  while_break___4: 
16210#line 1149
16211  __cil_tmp112 = (__u16 )__gu_val___0;
16212#line 1149
16213  head = (unsigned int )__cil_tmp112;
16214#line 1149
16215  if (__gu_err___0) {
16216#line 1149
16217    tmp___15 = 1;
16218  } else {
16219#line 1149
16220    tmp___15 = 0;
16221  }
16222  {
16223#line 1149
16224  __cil_tmp113 = (long )tmp___15;
16225#line 1149
16226  tmp___16 = __builtin_expect(__cil_tmp113, 0L);
16227  }
16228#line 1149
16229  if (tmp___16) {
16230    {
16231#line 1151
16232    while (1) {
16233      while_continue___5: /* CIL Label */ ;
16234
16235      {
16236#line 1151
16237      while (1) {
16238        while_continue___6: /* CIL Label */ ;
16239        {
16240#line 1151
16241        __cil_tmp114 = ! descriptor___9.enabled;
16242#line 1151
16243        __cil_tmp115 = ! __cil_tmp114;
16244#line 1151
16245        __cil_tmp116 = (long )__cil_tmp115;
16246#line 1151
16247        tmp___13 = __builtin_expect(__cil_tmp116, 0L);
16248        }
16249#line 1151
16250        if (tmp___13) {
16251          {
16252#line 1151
16253          __cil_tmp117 = (int )last_avail_idx;
16254#line 1151
16255          __cil_tmp118 = vq->avail;
16256#line 1151
16257          __cil_tmp119 = & __cil_tmp118->ring[(unsigned int )last_avail_idx % vq->num];
16258#line 1151
16259          __dynamic_pr_debug(& descriptor___9, "Failed to read head: idx %d address %p\n",
16260                             __cil_tmp117, __cil_tmp119);
16261          }
16262        } else {
16263
16264        }
16265#line 1151
16266        goto while_break___6;
16267      }
16268      while_break___31: /* CIL Label */ ;
16269      }
16270
16271      while_break___6: ;
16272#line 1151
16273      if (vq->error_ctx) {
16274        {
16275#line 1151
16276        __cil_tmp120 = vq->error_ctx;
16277#line 1151
16278        eventfd_signal(__cil_tmp120, 1);
16279        }
16280      } else {
16281
16282      }
16283#line 1151
16284      goto while_break___5;
16285    }
16286    while_break___30: /* CIL Label */ ;
16287    }
16288
16289    while_break___5: ;
16290#line 1154
16291    return (-14);
16292  } else {
16293
16294  }
16295  {
16296#line 1158
16297  __cil_tmp121 = vq->num;
16298#line 1158
16299  __cil_tmp122 = head >= __cil_tmp121;
16300#line 1158
16301  __cil_tmp123 = ! __cil_tmp122;
16302#line 1158
16303  __cil_tmp124 = ! __cil_tmp123;
16304#line 1158
16305  __cil_tmp125 = (long )__cil_tmp124;
16306#line 1158
16307  tmp___18 = __builtin_expect(__cil_tmp125, 0L);
16308  }
16309#line 1158
16310  if (tmp___18) {
16311    {
16312#line 1159
16313    while (1) {
16314      while_continue___7: /* CIL Label */ ;
16315
16316      {
16317#line 1159
16318      while (1) {
16319        while_continue___8: /* CIL Label */ ;
16320        {
16321#line 1159
16322        __cil_tmp126 = ! descriptor___10.enabled;
16323#line 1159
16324        __cil_tmp127 = ! __cil_tmp126;
16325#line 1159
16326        __cil_tmp128 = (long )__cil_tmp127;
16327#line 1159
16328        tmp___17 = __builtin_expect(__cil_tmp128, 0L);
16329        }
16330#line 1159
16331        if (tmp___17) {
16332          {
16333#line 1159
16334          __cil_tmp129 = vq->num;
16335#line 1159
16336          __dynamic_pr_debug(& descriptor___10, "Guest says index %u > %u is available",
16337                             head, __cil_tmp129);
16338          }
16339        } else {
16340
16341        }
16342#line 1159
16343        goto while_break___8;
16344      }
16345      while_break___33: /* CIL Label */ ;
16346      }
16347
16348      while_break___8: ;
16349#line 1159
16350      if (vq->error_ctx) {
16351        {
16352#line 1159
16353        __cil_tmp130 = vq->error_ctx;
16354#line 1159
16355        eventfd_signal(__cil_tmp130, 1);
16356        }
16357      } else {
16358
16359      }
16360#line 1159
16361      goto while_break___7;
16362    }
16363    while_break___32: /* CIL Label */ ;
16364    }
16365
16366    while_break___7: ;
16367#line 1161
16368    return (-22);
16369  } else {
16370
16371  }
16372  {
16373#line 1165
16374  tmp___19 = 0U;
16375#line 1165
16376  *in_num = tmp___19;
16377#line 1165
16378  *out_num = tmp___19;
16379#line 1166
16380  __cil_tmp131 = ! log;
16381#line 1166
16382  __cil_tmp132 = ! __cil_tmp131;
16383#line 1166
16384  __cil_tmp133 = (long )__cil_tmp132;
16385#line 1166
16386  tmp___20 = __builtin_expect(__cil_tmp133, 0L);
16387  }
16388#line 1166
16389  if (tmp___20) {
16390#line 1167
16391    *log_num = 0U;
16392  } else {
16393
16394  }
16395#line 1169
16396  i = head;
16397  {
16398#line 1170
16399  while (1) {
16400    while_continue___9: /* CIL Label */ ;
16401    {
16402#line 1171
16403    __cil_tmp134 = *out_num;
16404#line 1171
16405    __cil_tmp135 = *in_num;
16406#line 1171
16407    iov_count = __cil_tmp135 + __cil_tmp134;
16408#line 1172
16409    __cil_tmp136 = vq->num;
16410#line 1172
16411    __cil_tmp137 = i >= __cil_tmp136;
16412#line 1172
16413    __cil_tmp138 = ! __cil_tmp137;
16414#line 1172
16415    __cil_tmp139 = ! __cil_tmp138;
16416#line 1172
16417    __cil_tmp140 = (long )__cil_tmp139;
16418#line 1172
16419    tmp___22 = __builtin_expect(__cil_tmp140, 0L);
16420    }
16421#line 1172
16422    if (tmp___22) {
16423      {
16424#line 1173
16425      while (1) {
16426        while_continue___10: /* CIL Label */ ;
16427
16428        {
16429#line 1173
16430        while (1) {
16431          while_continue___11: /* CIL Label */ ;
16432          {
16433#line 1173
16434          __cil_tmp141 = ! descriptor___11.enabled;
16435#line 1173
16436          __cil_tmp142 = ! __cil_tmp141;
16437#line 1173
16438          __cil_tmp143 = (long )__cil_tmp142;
16439#line 1173
16440          tmp___21 = __builtin_expect(__cil_tmp143, 0L);
16441          }
16442#line 1173
16443          if (tmp___21) {
16444            {
16445#line 1173
16446            __cil_tmp144 = vq->num;
16447#line 1173
16448            __dynamic_pr_debug(& descriptor___11, "Desc index is %u > %u, head = %u",
16449                               i, __cil_tmp144, head);
16450            }
16451          } else {
16452
16453          }
16454#line 1173
16455          goto while_break___11;
16456        }
16457        while_break___36: /* CIL Label */ ;
16458        }
16459
16460        while_break___11: ;
16461#line 1173
16462        if (vq->error_ctx) {
16463          {
16464#line 1173
16465          __cil_tmp145 = vq->error_ctx;
16466#line 1173
16467          eventfd_signal(__cil_tmp145, 1);
16468          }
16469        } else {
16470
16471        }
16472#line 1173
16473        goto while_break___10;
16474      }
16475      while_break___35: /* CIL Label */ ;
16476      }
16477
16478      while_break___10: ;
16479#line 1175
16480      return (-22);
16481    } else {
16482
16483    }
16484#line 1177
16485    found = found + 1U;
16486    {
16487#line 1177
16488    __cil_tmp146 = vq->num;
16489#line 1177
16490    if (found > __cil_tmp146) {
16491#line 1177
16492      tmp___24 = 1;
16493    } else {
16494#line 1177
16495      tmp___24 = 0;
16496    }
16497    }
16498    {
16499#line 1177
16500    __cil_tmp147 = (long )tmp___24;
16501#line 1177
16502    tmp___25 = __builtin_expect(__cil_tmp147, 0L);
16503    }
16504#line 1177
16505    if (tmp___25) {
16506      {
16507#line 1178
16508      while (1) {
16509        while_continue___12: /* CIL Label */ ;
16510
16511        {
16512#line 1178
16513        while (1) {
16514          while_continue___13: /* CIL Label */ ;
16515          {
16516#line 1178
16517          __cil_tmp148 = ! descriptor___12.enabled;
16518#line 1178
16519          __cil_tmp149 = ! __cil_tmp148;
16520#line 1178
16521          __cil_tmp150 = (long )__cil_tmp149;
16522#line 1178
16523          tmp___23 = __builtin_expect(__cil_tmp150, 0L);
16524          }
16525#line 1178
16526          if (tmp___23) {
16527            {
16528#line 1178
16529            __cil_tmp151 = vq->num;
16530#line 1178
16531            __dynamic_pr_debug(& descriptor___12, "Loop detected: last one at %u vq size %u head %u\n",
16532                               i, __cil_tmp151, head);
16533            }
16534          } else {
16535
16536          }
16537#line 1178
16538          goto while_break___13;
16539        }
16540        while_break___38: /* CIL Label */ ;
16541        }
16542
16543        while_break___13: ;
16544#line 1178
16545        if (vq->error_ctx) {
16546          {
16547#line 1178
16548          __cil_tmp152 = vq->error_ctx;
16549#line 1178
16550          eventfd_signal(__cil_tmp152, 1);
16551          }
16552        } else {
16553
16554        }
16555#line 1178
16556        goto while_break___12;
16557      }
16558      while_break___37: /* CIL Label */ ;
16559      }
16560
16561      while_break___12: ;
16562#line 1181
16563      return (-22);
16564    } else {
16565
16566    }
16567    {
16568#line 1183
16569    __cil_tmp153 = (void *)(& desc);
16570#line 1183
16571    __cil_tmp154 = vq->desc;
16572#line 1183
16573    __cil_tmp155 = __cil_tmp154 + i;
16574#line 1183
16575    __cil_tmp156 = (void const   *)__cil_tmp155;
16576#line 1183
16577    __cil_tmp157 = (unsigned int )16UL;
16578#line 1183
16579    tmp___36 = (int )__copy_from_user(__cil_tmp153, __cil_tmp156, __cil_tmp157);
16580#line 1183
16581    tmp = tmp___36;
16582#line 1183
16583    ret = tmp;
16584#line 1184
16585    __cil_tmp158 = ! ret;
16586#line 1184
16587    __cil_tmp159 = ! __cil_tmp158;
16588#line 1184
16589    __cil_tmp160 = (long )__cil_tmp159;
16590#line 1184
16591    tmp___27 = __builtin_expect(__cil_tmp160, 0L);
16592    }
16593#line 1184
16594    if (tmp___27) {
16595      {
16596#line 1185
16597      while (1) {
16598        while_continue___14: /* CIL Label */ ;
16599
16600        {
16601#line 1185
16602        while (1) {
16603          while_continue___15: /* CIL Label */ ;
16604          {
16605#line 1185
16606          __cil_tmp161 = ! descriptor___13.enabled;
16607#line 1185
16608          __cil_tmp162 = ! __cil_tmp161;
16609#line 1185
16610          __cil_tmp163 = (long )__cil_tmp162;
16611#line 1185
16612          tmp___26 = __builtin_expect(__cil_tmp163, 0L);
16613          }
16614#line 1185
16615          if (tmp___26) {
16616            {
16617#line 1185
16618            __cil_tmp164 = vq->desc;
16619#line 1185
16620            __cil_tmp165 = __cil_tmp164 + i;
16621#line 1185
16622            __dynamic_pr_debug(& descriptor___13, "Failed to get descriptor: idx %d addr %p\n",
16623                               i, __cil_tmp165);
16624            }
16625          } else {
16626
16627          }
16628#line 1185
16629          goto while_break___15;
16630        }
16631        while_break___40: /* CIL Label */ ;
16632        }
16633
16634        while_break___15: ;
16635#line 1185
16636        if (vq->error_ctx) {
16637          {
16638#line 1185
16639          __cil_tmp166 = vq->error_ctx;
16640#line 1185
16641          eventfd_signal(__cil_tmp166, 1);
16642          }
16643        } else {
16644
16645        }
16646#line 1185
16647        goto while_break___14;
16648      }
16649      while_break___39: /* CIL Label */ ;
16650      }
16651
16652      while_break___14: ;
16653#line 1187
16654      return (-14);
16655    } else {
16656
16657    }
16658    {
16659#line 1189
16660    __cil_tmp167 = (int )desc.flags;
16661#line 1189
16662    if (__cil_tmp167 & 4) {
16663      {
16664#line 1190
16665      ret = get_indirect(dev, vq, iov, iov_size, out_num, in_num, log, log_num, & desc);
16666#line 1193
16667      __cil_tmp168 = ret < 0;
16668#line 1193
16669      __cil_tmp169 = ! __cil_tmp168;
16670#line 1193
16671      __cil_tmp170 = ! __cil_tmp169;
16672#line 1193
16673      __cil_tmp171 = (long )__cil_tmp170;
16674#line 1193
16675      tmp___29 = __builtin_expect(__cil_tmp171, 0L);
16676      }
16677#line 1193
16678      if (tmp___29) {
16679        {
16680#line 1194
16681        while (1) {
16682          while_continue___16: /* CIL Label */ ;
16683
16684          {
16685#line 1194
16686          while (1) {
16687            while_continue___17: /* CIL Label */ ;
16688            {
16689#line 1194
16690            __cil_tmp172 = ! descriptor___14.enabled;
16691#line 1194
16692            __cil_tmp173 = ! __cil_tmp172;
16693#line 1194
16694            __cil_tmp174 = (long )__cil_tmp173;
16695#line 1194
16696            tmp___28 = __builtin_expect(__cil_tmp174, 0L);
16697            }
16698#line 1194
16699            if (tmp___28) {
16700              {
16701#line 1194
16702              __dynamic_pr_debug(& descriptor___14, "Failure detected in indirect descriptor at idx %d\n",
16703                                 i);
16704              }
16705            } else {
16706
16707            }
16708#line 1194
16709            goto while_break___17;
16710          }
16711          while_break___42: /* CIL Label */ ;
16712          }
16713
16714          while_break___17: ;
16715#line 1194
16716          if (vq->error_ctx) {
16717            {
16718#line 1194
16719            __cil_tmp175 = vq->error_ctx;
16720#line 1194
16721            eventfd_signal(__cil_tmp175, 1);
16722            }
16723          } else {
16724
16725          }
16726#line 1194
16727          goto while_break___16;
16728        }
16729        while_break___41: /* CIL Label */ ;
16730        }
16731
16732        while_break___16: ;
16733#line 1196
16734        return (ret);
16735      } else {
16736
16737      }
16738#line 1198
16739      goto __Cont;
16740    } else {
16741
16742    }
16743    }
16744    {
16745#line 1201
16746    __cil_tmp176 = iov + iov_count;
16747#line 1201
16748    __cil_tmp177 = iov_size - iov_count;
16749#line 1201
16750    __cil_tmp178 = (int )__cil_tmp177;
16751#line 1201
16752    ret = translate_desc(dev, desc.addr, desc.len, __cil_tmp176, __cil_tmp178);
16753#line 1203
16754    __cil_tmp179 = ret < 0;
16755#line 1203
16756    __cil_tmp180 = ! __cil_tmp179;
16757#line 1203
16758    __cil_tmp181 = ! __cil_tmp180;
16759#line 1203
16760    __cil_tmp182 = (long )__cil_tmp181;
16761#line 1203
16762    tmp___31 = __builtin_expect(__cil_tmp182, 0L);
16763    }
16764#line 1203
16765    if (tmp___31) {
16766      {
16767#line 1204
16768      while (1) {
16769        while_continue___18: /* CIL Label */ ;
16770
16771        {
16772#line 1204
16773        while (1) {
16774          while_continue___19: /* CIL Label */ ;
16775          {
16776#line 1204
16777          __cil_tmp183 = ! descriptor___15.enabled;
16778#line 1204
16779          __cil_tmp184 = ! __cil_tmp183;
16780#line 1204
16781          __cil_tmp185 = (long )__cil_tmp184;
16782#line 1204
16783          tmp___30 = __builtin_expect(__cil_tmp185, 0L);
16784          }
16785#line 1204
16786          if (tmp___30) {
16787            {
16788#line 1204
16789            __dynamic_pr_debug(& descriptor___15, "Translation failure %d descriptor idx %d\n",
16790                               ret, i);
16791            }
16792          } else {
16793
16794          }
16795#line 1204
16796          goto while_break___19;
16797        }
16798        while_break___44: /* CIL Label */ ;
16799        }
16800
16801        while_break___19: ;
16802#line 1204
16803        if (vq->error_ctx) {
16804          {
16805#line 1204
16806          __cil_tmp186 = vq->error_ctx;
16807#line 1204
16808          eventfd_signal(__cil_tmp186, 1);
16809          }
16810        } else {
16811
16812        }
16813#line 1204
16814        goto while_break___18;
16815      }
16816      while_break___43: /* CIL Label */ ;
16817      }
16818
16819      while_break___18: ;
16820#line 1206
16821      return (ret);
16822    } else {
16823
16824    }
16825    {
16826#line 1208
16827    __cil_tmp187 = (int )desc.flags;
16828#line 1208
16829    if (__cil_tmp187 & 2) {
16830      {
16831#line 1211
16832      __cil_tmp188 = (unsigned int )ret;
16833#line 1211
16834      __cil_tmp189 = *in_num;
16835#line 1211
16836      *in_num = __cil_tmp189 + __cil_tmp188;
16837#line 1212
16838      __cil_tmp190 = ! log;
16839#line 1212
16840      __cil_tmp191 = ! __cil_tmp190;
16841#line 1212
16842      __cil_tmp192 = (long )__cil_tmp191;
16843#line 1212
16844      tmp___32 = __builtin_expect(__cil_tmp192, 0L);
16845      }
16846#line 1212
16847      if (tmp___32) {
16848#line 1213
16849        __cil_tmp193 = *log_num;
16850#line 1213
16851        __cil_tmp194 = log + __cil_tmp193;
16852#line 1213
16853        __cil_tmp194->addr = desc.addr;
16854#line 1214
16855        __cil_tmp195 = *log_num;
16856#line 1214
16857        __cil_tmp196 = log + __cil_tmp195;
16858#line 1214
16859        __cil_tmp196->len = (u64 )desc.len;
16860#line 1215
16861        __cil_tmp197 = *log_num;
16862#line 1215
16863        *log_num = __cil_tmp197 + 1U;
16864      } else {
16865
16866      }
16867    } else {
16868      {
16869#line 1220
16870      __cil_tmp198 = *in_num;
16871#line 1220
16872      __cil_tmp199 = ! __cil_tmp198;
16873#line 1220
16874      __cil_tmp200 = ! __cil_tmp199;
16875#line 1220
16876      __cil_tmp201 = (long )__cil_tmp200;
16877#line 1220
16878      tmp___34 = __builtin_expect(__cil_tmp201, 0L);
16879      }
16880#line 1220
16881      if (tmp___34) {
16882        {
16883#line 1221
16884        while (1) {
16885          while_continue___20: /* CIL Label */ ;
16886
16887          {
16888#line 1221
16889          while (1) {
16890            while_continue___21: /* CIL Label */ ;
16891            {
16892#line 1221
16893            __cil_tmp202 = ! descriptor___16.enabled;
16894#line 1221
16895            __cil_tmp203 = ! __cil_tmp202;
16896#line 1221
16897            __cil_tmp204 = (long )__cil_tmp203;
16898#line 1221
16899            tmp___33 = __builtin_expect(__cil_tmp204, 0L);
16900            }
16901#line 1221
16902            if (tmp___33) {
16903              {
16904#line 1221
16905              __dynamic_pr_debug(& descriptor___16, "Descriptor has out after in: idx %d\n",
16906                                 i);
16907              }
16908            } else {
16909
16910            }
16911#line 1221
16912            goto while_break___21;
16913          }
16914          while_break___46: /* CIL Label */ ;
16915          }
16916
16917          while_break___21: ;
16918#line 1221
16919          if (vq->error_ctx) {
16920            {
16921#line 1221
16922            __cil_tmp205 = vq->error_ctx;
16923#line 1221
16924            eventfd_signal(__cil_tmp205, 1);
16925            }
16926          } else {
16927
16928          }
16929#line 1221
16930          goto while_break___20;
16931        }
16932        while_break___45: /* CIL Label */ ;
16933        }
16934
16935        while_break___20: ;
16936#line 1223
16937        return (-22);
16938      } else {
16939
16940      }
16941#line 1225
16942      __cil_tmp206 = (unsigned int )ret;
16943#line 1225
16944      __cil_tmp207 = *out_num;
16945#line 1225
16946      *out_num = __cil_tmp207 + __cil_tmp206;
16947    }
16948    }
16949    __Cont: 
16950    {
16951#line 1170
16952    i = next_desc(& desc);
16953    }
16954#line 1170
16955    if (i != 4294967295U) {
16956
16957    } else {
16958#line 1170
16959      goto while_break___9;
16960    }
16961  }
16962  while_break___34: /* CIL Label */ ;
16963  }
16964
16965  while_break___9: 
16966#line 1230
16967  __cil_tmp208 = vq->last_avail_idx;
16968#line 1230
16969  __cil_tmp209 = (int )__cil_tmp208;
16970#line 1230
16971  __cil_tmp210 = __cil_tmp209 + 1;
16972#line 1230
16973  vq->last_avail_idx = (u16 )__cil_tmp210;
16974  {
16975#line 1234
16976  while (1) {
16977    while_continue___22: /* CIL Label */ ;
16978    {
16979#line 1234
16980    __cil_tmp211 = vq->used_flags;
16981#line 1234
16982    __cil_tmp212 = (int )__cil_tmp211;
16983#line 1234
16984    __cil_tmp213 = __cil_tmp212 & 1;
16985#line 1234
16986    __cil_tmp214 = ! __cil_tmp213;
16987#line 1234
16988    __cil_tmp215 = ! __cil_tmp214;
16989#line 1234
16990    __cil_tmp216 = ! __cil_tmp215;
16991#line 1234
16992    __cil_tmp217 = (long )__cil_tmp216;
16993#line 1234
16994    tmp___35 = __builtin_expect(__cil_tmp217, 0L);
16995    }
16996#line 1234
16997    if (tmp___35) {
16998      {
16999#line 1234
17000      while (1) {
17001        while_continue___23: /* CIL Label */ ;
17002#line 1234
17003        __asm__  volatile   ("1:\tud2\n"
17004                             ".pushsection __bug_table,\"a\"\n"
17005                             "2:\t.long 1b - 2b, %c0 - 2b\n"
17006                             "\t.word %c1, 0\n"
17007                             "\t.org 2b+%c2\n"
17008                             ".popsection": : "i" ("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"),
17009                             "i" (1234), "i" (12UL));
17010        {
17011#line 1234
17012        while (1) {
17013          while_continue___24: /* CIL Label */ ;
17014
17015        }
17016        while_break___49: /* CIL Label */ ;
17017        }
17018
17019#line 1234
17020        goto while_break___23;
17021      }
17022      while_break___48: /* CIL Label */ ;
17023      }
17024
17025      while_break___23: ;
17026    } else {
17027
17028    }
17029#line 1234
17030    goto while_break___22;
17031  }
17032  while_break___47: /* CIL Label */ ;
17033  }
17034
17035  while_break___22: ;
17036#line 1235
17037  return ((int )head);
17038}
17039}
17040#line 1239 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
17041void vhost_discard_vq_desc(struct vhost_virtqueue *vq , int n ) 
17042{ u16 __cil_tmp3 ;
17043  int __cil_tmp4 ;
17044  int __cil_tmp5 ;
17045
17046  {
17047#line 1241
17048  __cil_tmp3 = vq->last_avail_idx;
17049#line 1241
17050  __cil_tmp4 = (int )__cil_tmp3;
17051#line 1241
17052  __cil_tmp5 = __cil_tmp4 - n;
17053#line 1241
17054  vq->last_avail_idx = (u16 )__cil_tmp5;
17055#line 1242
17056  return;
17057}
17058}
17059#line 1254 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
17060static struct _ddebug descriptor___17  __attribute__((__used__, __section__("__verbose"),
17061__aligned__(8)))  =    {"vhost_net", "vhost_add_used", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
17062    "Failed to write used id", 1254U, 0U, (char)0};
17063#line 1258 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
17064static struct _ddebug descriptor___18  __attribute__((__used__, __section__("__verbose"),
17065__aligned__(8)))  =    {"vhost_net", "vhost_add_used", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
17066    "Failed to write used len", 1258U, 0U, (char)0};
17067#line 1264 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
17068static struct _ddebug descriptor___19  __attribute__((__used__, __section__("__verbose"),
17069__aligned__(8)))  =    {"vhost_net", "vhost_add_used", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
17070    "Failed to increment used idx", 1264U, 0U, (char)0};
17071#line 1246 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
17072int vhost_add_used(struct vhost_virtqueue *vq , unsigned int head , int len ) 
17073{ struct vring_used_elem *used ;
17074  long tmp___7 ;
17075  int __pu_err ;
17076  long tmp___8 ;
17077  int __pu_err___0 ;
17078  long tmp___9 ;
17079  int __pu_err___1 ;
17080  long tmp___10 ;
17081  long tmp___11 ;
17082  struct vring_used *__cil_tmp13 ;
17083  int __cil_tmp14 ;
17084  int __cil_tmp15 ;
17085  int __cil_tmp16 ;
17086  int __cil_tmp17 ;
17087  __u32 *__cil_tmp18 ;
17088  struct __large_struct *__cil_tmp19 ;
17089  __u32 *__cil_tmp20 ;
17090  struct __large_struct *__cil_tmp21 ;
17091  __u32 *__cil_tmp22 ;
17092  struct __large_struct *__cil_tmp23 ;
17093  __u32 *__cil_tmp24 ;
17094  struct __large_struct *__cil_tmp25 ;
17095  int __cil_tmp26 ;
17096  int __cil_tmp27 ;
17097  long __cil_tmp28 ;
17098  struct eventfd_ctx *__cil_tmp29 ;
17099  int __cil_tmp30 ;
17100  int __cil_tmp31 ;
17101  int __cil_tmp32 ;
17102  int __cil_tmp33 ;
17103  __u32 *__cil_tmp34 ;
17104  struct __large_struct *__cil_tmp35 ;
17105  __u32 *__cil_tmp36 ;
17106  struct __large_struct *__cil_tmp37 ;
17107  __u32 *__cil_tmp38 ;
17108  struct __large_struct *__cil_tmp39 ;
17109  __u32 *__cil_tmp40 ;
17110  struct __large_struct *__cil_tmp41 ;
17111  int __cil_tmp42 ;
17112  int __cil_tmp43 ;
17113  long __cil_tmp44 ;
17114  struct eventfd_ctx *__cil_tmp45 ;
17115  int __cil_tmp46 ;
17116  int __cil_tmp47 ;
17117  int __cil_tmp48 ;
17118  int __cil_tmp49 ;
17119  u16 __cil_tmp50 ;
17120  int __cil_tmp51 ;
17121  int __cil_tmp52 ;
17122  struct vring_used *__cil_tmp53 ;
17123  __u16 *__cil_tmp54 ;
17124  struct __large_struct *__cil_tmp55 ;
17125  u16 __cil_tmp56 ;
17126  int __cil_tmp57 ;
17127  int __cil_tmp58 ;
17128  struct vring_used *__cil_tmp59 ;
17129  __u16 *__cil_tmp60 ;
17130  struct __large_struct *__cil_tmp61 ;
17131  u16 __cil_tmp62 ;
17132  int __cil_tmp63 ;
17133  int __cil_tmp64 ;
17134  struct vring_used *__cil_tmp65 ;
17135  __u16 *__cil_tmp66 ;
17136  struct __large_struct *__cil_tmp67 ;
17137  u16 __cil_tmp68 ;
17138  int __cil_tmp69 ;
17139  int __cil_tmp70 ;
17140  struct vring_used *__cil_tmp71 ;
17141  __u16 *__cil_tmp72 ;
17142  struct __large_struct *__cil_tmp73 ;
17143  int __cil_tmp74 ;
17144  int __cil_tmp75 ;
17145  long __cil_tmp76 ;
17146  struct eventfd_ctx *__cil_tmp77 ;
17147  bool __cil_tmp78 ;
17148  int __cil_tmp79 ;
17149  int __cil_tmp80 ;
17150  long __cil_tmp81 ;
17151  void *__cil_tmp82 ;
17152  struct vring_used *__cil_tmp83 ;
17153  void *__cil_tmp84 ;
17154  void *__cil_tmp85 ;
17155  int __cil_tmp86 ;
17156  u64 __cil_tmp87 ;
17157  u64 __cil_tmp88 ;
17158  u64 __cil_tmp89 ;
17159  u64 __cil_tmp90 ;
17160  void *__cil_tmp91 ;
17161  struct vring_used *__cil_tmp92 ;
17162  __u16 *__cil_tmp93 ;
17163  unsigned int __cil_tmp94 ;
17164  u64 __cil_tmp95 ;
17165  u64 __cil_tmp96 ;
17166  u64 __cil_tmp97 ;
17167  u64 __cil_tmp98 ;
17168  struct eventfd_ctx *__cil_tmp99 ;
17169  u16 __cil_tmp100 ;
17170  int __cil_tmp101 ;
17171  int __cil_tmp102 ;
17172  u16 __cil_tmp103 ;
17173  int __cil_tmp104 ;
17174  u16 __cil_tmp105 ;
17175  int __cil_tmp106 ;
17176  int __cil_tmp107 ;
17177  int __cil_tmp108 ;
17178  int __cil_tmp109 ;
17179  long __cil_tmp110 ;
17180
17181  {
17182#line 1252
17183  __cil_tmp13 = vq->used;
17184#line 1252
17185  used = & __cil_tmp13->ring[(unsigned int )vq->last_used_idx % vq->num];
17186  {
17187#line 1253
17188  while (1) {
17189    while_continue: /* CIL Label */ ;
17190#line 1253
17191    __pu_err = 0;
17192    {
17193#line 1253
17194    __cil_tmp14 = (int )4UL;
17195#line 1253
17196    if (__cil_tmp14 == 1) {
17197#line 1253
17198      goto case_1;
17199    } else {
17200      {
17201#line 1253
17202      __cil_tmp15 = (int )4UL;
17203#line 1253
17204      if (__cil_tmp15 == 2) {
17205#line 1253
17206        goto case_2;
17207      } else {
17208        {
17209#line 1253
17210        __cil_tmp16 = (int )4UL;
17211#line 1253
17212        if (__cil_tmp16 == 4) {
17213#line 1253
17214          goto case_4;
17215        } else {
17216          {
17217#line 1253
17218          __cil_tmp17 = (int )4UL;
17219#line 1253
17220          if (__cil_tmp17 == 8) {
17221#line 1253
17222            goto case_8;
17223          } else {
17224#line 1253
17225            goto switch_default;
17226#line 1253
17227            if (0) {
17228              case_1: 
17229#line 1253
17230              __cil_tmp18 = & used->id;
17231#line 1253
17232              __cil_tmp19 = (struct __large_struct *)__cil_tmp18;
17233#line 1253
17234              __asm__  volatile   ("1:\tmov"
17235                                   "b"
17236                                   " %"
17237                                   "b"
17238                                   "1,%2\n"
17239                                   "2:\n"
17240                                   ".section .fixup,\"ax\"\n"
17241                                   "3:\tmov %3,%0\n"
17242                                   "\tjmp 2b\n"
17243                                   ".previous\n"
17244                                   " .section __ex_table,\"a\"\n"
17245                                   " "
17246                                   ".balign 8"
17247                                   " "
17248                                   "\n"
17249                                   " "
17250                                   ".quad"
17251                                   " "
17252                                   "1b"
17253                                   ","
17254                                   "3b"
17255                                   "\n"
17256                                   " .previous\n": "=r" (__pu_err): "iq" (head), "m" (*__cil_tmp19),
17257                                   "i" (-14), "0" (__pu_err));
17258#line 1253
17259              goto switch_break;
17260              case_2: 
17261#line 1253
17262              __cil_tmp20 = & used->id;
17263#line 1253
17264              __cil_tmp21 = (struct __large_struct *)__cil_tmp20;
17265#line 1253
17266              __asm__  volatile   ("1:\tmov"
17267                                   "w"
17268                                   " %"
17269                                   "w"
17270                                   "1,%2\n"
17271                                   "2:\n"
17272                                   ".section .fixup,\"ax\"\n"
17273                                   "3:\tmov %3,%0\n"
17274                                   "\tjmp 2b\n"
17275                                   ".previous\n"
17276                                   " .section __ex_table,\"a\"\n"
17277                                   " "
17278                                   ".balign 8"
17279                                   " "
17280                                   "\n"
17281                                   " "
17282                                   ".quad"
17283                                   " "
17284                                   "1b"
17285                                   ","
17286                                   "3b"
17287                                   "\n"
17288                                   " .previous\n": "=r" (__pu_err): "ir" (head), "m" (*__cil_tmp21),
17289                                   "i" (-14), "0" (__pu_err));
17290#line 1253
17291              goto switch_break;
17292              case_4: 
17293#line 1253
17294              __cil_tmp22 = & used->id;
17295#line 1253
17296              __cil_tmp23 = (struct __large_struct *)__cil_tmp22;
17297#line 1253
17298              __asm__  volatile   ("1:\tmov"
17299                                   "l"
17300                                   " %"
17301                                   "k"
17302                                   "1,%2\n"
17303                                   "2:\n"
17304                                   ".section .fixup,\"ax\"\n"
17305                                   "3:\tmov %3,%0\n"
17306                                   "\tjmp 2b\n"
17307                                   ".previous\n"
17308                                   " .section __ex_table,\"a\"\n"
17309                                   " "
17310                                   ".balign 8"
17311                                   " "
17312                                   "\n"
17313                                   " "
17314                                   ".quad"
17315                                   " "
17316                                   "1b"
17317                                   ","
17318                                   "3b"
17319                                   "\n"
17320                                   " .previous\n": "=r" (__pu_err): "ir" (head), "m" (*__cil_tmp23),
17321                                   "i" (-14), "0" (__pu_err));
17322#line 1253
17323              goto switch_break;
17324              case_8: 
17325#line 1253
17326              __cil_tmp24 = & used->id;
17327#line 1253
17328              __cil_tmp25 = (struct __large_struct *)__cil_tmp24;
17329#line 1253
17330/*              __asm__  volatile   ("1:\tmov"
17331                                   "q"
17332                                   " %"
17333                                   ""
17334                                   "1,%2\n"
17335                                   "2:\n"
17336                                   ".section .fixup,\"ax\"\n"
17337                                   "3:\tmov %3,%0\n"
17338                                   "\tjmp 2b\n"
17339                                   ".previous\n"
17340                                   " .section __ex_table,\"a\"\n"
17341                                   " "
17342                                   ".balign 8"
17343                                   " "
17344                                   "\n"
17345                                   " "
17346                                   ".quad"
17347                                   " "
17348                                   "1b"
17349                                   ","
17350                                   "3b"
17351                                   "\n"
17352                                   " .previous\n": "=r" (__pu_err): "er" (head), "m" (*__cil_tmp25),
17353                                   "i" (-14), "0" (__pu_err));*/
17354#line 1253
17355              goto switch_break;
17356              switch_default: 
17357              {
17358#line 1253
17359              __put_user_bad();
17360              }
17361            } else {
17362              switch_break: ;
17363            }
17364          }
17365          }
17366        }
17367        }
17368      }
17369      }
17370    }
17371    }
17372#line 1253
17373    goto while_break;
17374  }
17375  while_break___8: /* CIL Label */ ;
17376  }
17377
17378  while_break: ;
17379#line 1253
17380  if (__pu_err) {
17381    {
17382#line 1254
17383    while (1) {
17384      while_continue___0: /* CIL Label */ ;
17385
17386      {
17387#line 1254
17388      while (1) {
17389        while_continue___1: /* CIL Label */ ;
17390        {
17391#line 1254
17392        __cil_tmp26 = ! descriptor___17.enabled;
17393#line 1254
17394        __cil_tmp27 = ! __cil_tmp26;
17395#line 1254
17396        __cil_tmp28 = (long )__cil_tmp27;
17397#line 1254
17398        tmp___7 = __builtin_expect(__cil_tmp28, 0L);
17399        }
17400#line 1254
17401        if (tmp___7) {
17402          {
17403#line 1254
17404          __dynamic_pr_debug(& descriptor___17, "Failed to write used id");
17405          }
17406        } else {
17407
17408        }
17409#line 1254
17410        goto while_break___1;
17411      }
17412      while_break___10: /* CIL Label */ ;
17413      }
17414
17415      while_break___1: ;
17416#line 1254
17417      if (vq->error_ctx) {
17418        {
17419#line 1254
17420        __cil_tmp29 = vq->error_ctx;
17421#line 1254
17422        eventfd_signal(__cil_tmp29, 1);
17423        }
17424      } else {
17425
17426      }
17427#line 1254
17428      goto while_break___0;
17429    }
17430    while_break___9: /* CIL Label */ ;
17431    }
17432
17433    while_break___0: ;
17434#line 1255
17435    return (-14);
17436  } else {
17437
17438  }
17439  {
17440#line 1257
17441  while (1) {
17442    while_continue___2: /* CIL Label */ ;
17443#line 1257
17444    __pu_err___0 = 0;
17445    {
17446#line 1257
17447    __cil_tmp30 = (int )4UL;
17448#line 1257
17449    if (__cil_tmp30 == 1) {
17450#line 1257
17451      goto case_1___0;
17452    } else {
17453      {
17454#line 1257
17455      __cil_tmp31 = (int )4UL;
17456#line 1257
17457      if (__cil_tmp31 == 2) {
17458#line 1257
17459        goto case_2___0;
17460      } else {
17461        {
17462#line 1257
17463        __cil_tmp32 = (int )4UL;
17464#line 1257
17465        if (__cil_tmp32 == 4) {
17466#line 1257
17467          goto case_4___0;
17468        } else {
17469          {
17470#line 1257
17471          __cil_tmp33 = (int )4UL;
17472#line 1257
17473          if (__cil_tmp33 == 8) {
17474#line 1257
17475            goto case_8___0;
17476          } else {
17477#line 1257
17478            goto switch_default___0;
17479#line 1257
17480            if (0) {
17481              case_1___0: 
17482#line 1257
17483              __cil_tmp34 = & used->len;
17484#line 1257
17485              __cil_tmp35 = (struct __large_struct *)__cil_tmp34;
17486#line 1257
17487              __asm__  volatile   ("1:\tmov"
17488                                   "b"
17489                                   " %"
17490                                   "b"
17491                                   "1,%2\n"
17492                                   "2:\n"
17493                                   ".section .fixup,\"ax\"\n"
17494                                   "3:\tmov %3,%0\n"
17495                                   "\tjmp 2b\n"
17496                                   ".previous\n"
17497                                   " .section __ex_table,\"a\"\n"
17498                                   " "
17499                                   ".balign 8"
17500                                   " "
17501                                   "\n"
17502                                   " "
17503                                   ".quad"
17504                                   " "
17505                                   "1b"
17506                                   ","
17507                                   "3b"
17508                                   "\n"
17509                                   " .previous\n": "=r" (__pu_err___0): "iq" ((__u32 )len),
17510                                   "m" (*__cil_tmp35), "i" (-14), "0" (__pu_err___0));
17511#line 1257
17512              goto switch_break___0;
17513              case_2___0: 
17514#line 1257
17515              __cil_tmp36 = & used->len;
17516#line 1257
17517              __cil_tmp37 = (struct __large_struct *)__cil_tmp36;
17518#line 1257
17519              __asm__  volatile   ("1:\tmov"
17520                                   "w"
17521                                   " %"
17522                                   "w"
17523                                   "1,%2\n"
17524                                   "2:\n"
17525                                   ".section .fixup,\"ax\"\n"
17526                                   "3:\tmov %3,%0\n"
17527                                   "\tjmp 2b\n"
17528                                   ".previous\n"
17529                                   " .section __ex_table,\"a\"\n"
17530                                   " "
17531                                   ".balign 8"
17532                                   " "
17533                                   "\n"
17534                                   " "
17535                                   ".quad"
17536                                   " "
17537                                   "1b"
17538                                   ","
17539                                   "3b"
17540                                   "\n"
17541                                   " .previous\n": "=r" (__pu_err___0): "ir" ((__u32 )len),
17542                                   "m" (*__cil_tmp37), "i" (-14), "0" (__pu_err___0));
17543#line 1257
17544              goto switch_break___0;
17545              case_4___0: 
17546#line 1257
17547              __cil_tmp38 = & used->len;
17548#line 1257
17549              __cil_tmp39 = (struct __large_struct *)__cil_tmp38;
17550#line 1257
17551              __asm__  volatile   ("1:\tmov"
17552                                   "l"
17553                                   " %"
17554                                   "k"
17555                                   "1,%2\n"
17556                                   "2:\n"
17557                                   ".section .fixup,\"ax\"\n"
17558                                   "3:\tmov %3,%0\n"
17559                                   "\tjmp 2b\n"
17560                                   ".previous\n"
17561                                   " .section __ex_table,\"a\"\n"
17562                                   " "
17563                                   ".balign 8"
17564                                   " "
17565                                   "\n"
17566                                   " "
17567                                   ".quad"
17568                                   " "
17569                                   "1b"
17570                                   ","
17571                                   "3b"
17572                                   "\n"
17573                                   " .previous\n": "=r" (__pu_err___0): "ir" ((__u32 )len),
17574                                   "m" (*__cil_tmp39), "i" (-14), "0" (__pu_err___0));
17575#line 1257
17576              goto switch_break___0;
17577              case_8___0: 
17578#line 1257
17579              __cil_tmp40 = & used->len;
17580#line 1257
17581              __cil_tmp41 = (struct __large_struct *)__cil_tmp40;
17582#line 1257
17583/*              __asm__  volatile   ("1:\tmov"
17584                                   "q"
17585                                   " %"
17586                                   ""
17587                                   "1,%2\n"
17588                                   "2:\n"
17589                                   ".section .fixup,\"ax\"\n"
17590                                   "3:\tmov %3,%0\n"
17591                                   "\tjmp 2b\n"
17592                                   ".previous\n"
17593                                   " .section __ex_table,\"a\"\n"
17594                                   " "
17595                                   ".balign 8"
17596                                   " "
17597                                   "\n"
17598                                   " "
17599                                   ".quad"
17600                                   " "
17601                                   "1b"
17602                                   ","
17603                                   "3b"
17604                                   "\n"
17605                                   " .previous\n": "=r" (__pu_err___0): "er" ((__u32 )len),
17606                                   "m" (*__cil_tmp41), "i" (-14), "0" (__pu_err___0));*/
17607#line 1257
17608              goto switch_break___0;
17609              switch_default___0: 
17610              {
17611#line 1257
17612              __put_user_bad();
17613              }
17614            } else {
17615              switch_break___0: ;
17616            }
17617          }
17618          }
17619        }
17620        }
17621      }
17622      }
17623    }
17624    }
17625#line 1257
17626    goto while_break___2;
17627  }
17628  while_break___11: /* CIL Label */ ;
17629  }
17630
17631  while_break___2: ;
17632#line 1257
17633  if (__pu_err___0) {
17634    {
17635#line 1258
17636    while (1) {
17637      while_continue___3: /* CIL Label */ ;
17638
17639      {
17640#line 1258
17641      while (1) {
17642        while_continue___4: /* CIL Label */ ;
17643        {
17644#line 1258
17645        __cil_tmp42 = ! descriptor___18.enabled;
17646#line 1258
17647        __cil_tmp43 = ! __cil_tmp42;
17648#line 1258
17649        __cil_tmp44 = (long )__cil_tmp43;
17650#line 1258
17651        tmp___8 = __builtin_expect(__cil_tmp44, 0L);
17652        }
17653#line 1258
17654        if (tmp___8) {
17655          {
17656#line 1258
17657          __dynamic_pr_debug(& descriptor___18, "Failed to write used len");
17658          }
17659        } else {
17660
17661        }
17662#line 1258
17663        goto while_break___4;
17664      }
17665      while_break___13: /* CIL Label */ ;
17666      }
17667
17668      while_break___4: ;
17669#line 1258
17670      if (vq->error_ctx) {
17671        {
17672#line 1258
17673        __cil_tmp45 = vq->error_ctx;
17674#line 1258
17675        eventfd_signal(__cil_tmp45, 1);
17676        }
17677      } else {
17678
17679      }
17680#line 1258
17681      goto while_break___3;
17682    }
17683    while_break___12: /* CIL Label */ ;
17684    }
17685
17686    while_break___3: ;
17687#line 1259
17688    return (-14);
17689  } else {
17690
17691  }
17692#line 1262
17693  __asm__  volatile   ("": : : "memory");
17694  {
17695#line 1263
17696  while (1) {
17697    while_continue___5: /* CIL Label */ ;
17698#line 1263
17699    __pu_err___1 = 0;
17700    {
17701#line 1263
17702    __cil_tmp46 = (int )2UL;
17703#line 1263
17704    if (__cil_tmp46 == 1) {
17705#line 1263
17706      goto case_1___1;
17707    } else {
17708      {
17709#line 1263
17710      __cil_tmp47 = (int )2UL;
17711#line 1263
17712      if (__cil_tmp47 == 2) {
17713#line 1263
17714        goto case_2___1;
17715      } else {
17716        {
17717#line 1263
17718        __cil_tmp48 = (int )2UL;
17719#line 1263
17720        if (__cil_tmp48 == 4) {
17721#line 1263
17722          goto case_4___1;
17723        } else {
17724          {
17725#line 1263
17726          __cil_tmp49 = (int )2UL;
17727#line 1263
17728          if (__cil_tmp49 == 8) {
17729#line 1263
17730            goto case_8___1;
17731          } else {
17732#line 1263
17733            goto switch_default___1;
17734#line 1263
17735            if (0) {
17736              case_1___1: 
17737#line 1263
17738              __cil_tmp50 = vq->last_used_idx;
17739#line 1263
17740              __cil_tmp51 = (int )__cil_tmp50;
17741#line 1263
17742              __cil_tmp52 = __cil_tmp51 + 1;
17743#line 1263
17744              __cil_tmp53 = vq->used;
17745#line 1263
17746              __cil_tmp54 = & __cil_tmp53->idx;
17747#line 1263
17748              __cil_tmp55 = (struct __large_struct *)__cil_tmp54;
17749#line 1263
17750              __asm__  volatile   ("1:\tmov"
17751                                   "b"
17752                                   " %"
17753                                   "b"
17754                                   "1,%2\n"
17755                                   "2:\n"
17756                                   ".section .fixup,\"ax\"\n"
17757                                   "3:\tmov %3,%0\n"
17758                                   "\tjmp 2b\n"
17759                                   ".previous\n"
17760                                   " .section __ex_table,\"a\"\n"
17761                                   " "
17762                                   ".balign 8"
17763                                   " "
17764                                   "\n"
17765                                   " "
17766                                   ".quad"
17767                                   " "
17768                                   "1b"
17769                                   ","
17770                                   "3b"
17771                                   "\n"
17772                                   " .previous\n": "=r" (__pu_err___1): "iq" ((__u16 )__cil_tmp52),
17773                                   "m" (*__cil_tmp55), "i" (-14), "0" (__pu_err___1));
17774#line 1263
17775              goto switch_break___1;
17776              case_2___1: 
17777#line 1263
17778              __cil_tmp56 = vq->last_used_idx;
17779#line 1263
17780              __cil_tmp57 = (int )__cil_tmp56;
17781#line 1263
17782              __cil_tmp58 = __cil_tmp57 + 1;
17783#line 1263
17784              __cil_tmp59 = vq->used;
17785#line 1263
17786              __cil_tmp60 = & __cil_tmp59->idx;
17787#line 1263
17788              __cil_tmp61 = (struct __large_struct *)__cil_tmp60;
17789#line 1263
17790              __asm__  volatile   ("1:\tmov"
17791                                   "w"
17792                                   " %"
17793                                   "w"
17794                                   "1,%2\n"
17795                                   "2:\n"
17796                                   ".section .fixup,\"ax\"\n"
17797                                   "3:\tmov %3,%0\n"
17798                                   "\tjmp 2b\n"
17799                                   ".previous\n"
17800                                   " .section __ex_table,\"a\"\n"
17801                                   " "
17802                                   ".balign 8"
17803                                   " "
17804                                   "\n"
17805                                   " "
17806                                   ".quad"
17807                                   " "
17808                                   "1b"
17809                                   ","
17810                                   "3b"
17811                                   "\n"
17812                                   " .previous\n": "=r" (__pu_err___1): "ir" ((__u16 )__cil_tmp58),
17813                                   "m" (*__cil_tmp61), "i" (-14), "0" (__pu_err___1));
17814#line 1263
17815              goto switch_break___1;
17816              case_4___1: 
17817#line 1263
17818              __cil_tmp62 = vq->last_used_idx;
17819#line 1263
17820              __cil_tmp63 = (int )__cil_tmp62;
17821#line 1263
17822              __cil_tmp64 = __cil_tmp63 + 1;
17823#line 1263
17824              __cil_tmp65 = vq->used;
17825#line 1263
17826              __cil_tmp66 = & __cil_tmp65->idx;
17827#line 1263
17828              __cil_tmp67 = (struct __large_struct *)__cil_tmp66;
17829#line 1263
17830              __asm__  volatile   ("1:\tmov"
17831                                   "l"
17832                                   " %"
17833                                   "k"
17834                                   "1,%2\n"
17835                                   "2:\n"
17836                                   ".section .fixup,\"ax\"\n"
17837                                   "3:\tmov %3,%0\n"
17838                                   "\tjmp 2b\n"
17839                                   ".previous\n"
17840                                   " .section __ex_table,\"a\"\n"
17841                                   " "
17842                                   ".balign 8"
17843                                   " "
17844                                   "\n"
17845                                   " "
17846                                   ".quad"
17847                                   " "
17848                                   "1b"
17849                                   ","
17850                                   "3b"
17851                                   "\n"
17852                                   " .previous\n": "=r" (__pu_err___1): "ir" ((__u16 )__cil_tmp64),
17853                                   "m" (*__cil_tmp67), "i" (-14), "0" (__pu_err___1));
17854#line 1263
17855              goto switch_break___1;
17856              case_8___1: 
17857#line 1263
17858              __cil_tmp68 = vq->last_used_idx;
17859#line 1263
17860              __cil_tmp69 = (int )__cil_tmp68;
17861#line 1263
17862              __cil_tmp70 = __cil_tmp69 + 1;
17863#line 1263
17864              __cil_tmp71 = vq->used;
17865#line 1263
17866              __cil_tmp72 = & __cil_tmp71->idx;
17867#line 1263
17868              __cil_tmp73 = (struct __large_struct *)__cil_tmp72;
17869#line 1263
17870/*              __asm__  volatile   ("1:\tmov"
17871                                   "q"
17872                                   " %"
17873                                   ""
17874                                   "1,%2\n"
17875                                   "2:\n"
17876                                   ".section .fixup,\"ax\"\n"
17877                                   "3:\tmov %3,%0\n"
17878                                   "\tjmp 2b\n"
17879                                   ".previous\n"
17880                                   " .section __ex_table,\"a\"\n"
17881                                   " "
17882                                   ".balign 8"
17883                                   " "
17884                                   "\n"
17885                                   " "
17886                                   ".quad"
17887                                   " "
17888                                   "1b"
17889                                   ","
17890                                   "3b"
17891                                   "\n"
17892                                   " .previous\n": "=r" (__pu_err___1): "er" ((__u16 )__cil_tmp70),
17893                                   "m" (*__cil_tmp73), "i" (-14), "0" (__pu_err___1));*/
17894#line 1263
17895              goto switch_break___1;
17896              switch_default___1: 
17897              {
17898#line 1263
17899              __put_user_bad();
17900              }
17901            } else {
17902              switch_break___1: ;
17903            }
17904          }
17905          }
17906        }
17907        }
17908      }
17909      }
17910    }
17911    }
17912#line 1263
17913    goto while_break___5;
17914  }
17915  while_break___14: /* CIL Label */ ;
17916  }
17917
17918  while_break___5: ;
17919#line 1263
17920  if (__pu_err___1) {
17921    {
17922#line 1264
17923    while (1) {
17924      while_continue___6: /* CIL Label */ ;
17925
17926      {
17927#line 1264
17928      while (1) {
17929        while_continue___7: /* CIL Label */ ;
17930        {
17931#line 1264
17932        __cil_tmp74 = ! descriptor___19.enabled;
17933#line 1264
17934        __cil_tmp75 = ! __cil_tmp74;
17935#line 1264
17936        __cil_tmp76 = (long )__cil_tmp75;
17937#line 1264
17938        tmp___9 = __builtin_expect(__cil_tmp76, 0L);
17939        }
17940#line 1264
17941        if (tmp___9) {
17942          {
17943#line 1264
17944          __dynamic_pr_debug(& descriptor___19, "Failed to increment used idx");
17945          }
17946        } else {
17947
17948        }
17949#line 1264
17950        goto while_break___7;
17951      }
17952      while_break___16: /* CIL Label */ ;
17953      }
17954
17955      while_break___7: ;
17956#line 1264
17957      if (vq->error_ctx) {
17958        {
17959#line 1264
17960        __cil_tmp77 = vq->error_ctx;
17961#line 1264
17962        eventfd_signal(__cil_tmp77, 1);
17963        }
17964      } else {
17965
17966      }
17967#line 1264
17968      goto while_break___6;
17969    }
17970    while_break___15: /* CIL Label */ ;
17971    }
17972
17973    while_break___6: ;
17974#line 1265
17975    return (-14);
17976  } else {
17977
17978  }
17979  {
17980#line 1267
17981  __cil_tmp78 = vq->log_used;
17982#line 1267
17983  __cil_tmp79 = ! __cil_tmp78;
17984#line 1267
17985  __cil_tmp80 = ! __cil_tmp79;
17986#line 1267
17987  __cil_tmp81 = (long )__cil_tmp80;
17988#line 1267
17989  tmp___10 = __builtin_expect(__cil_tmp81, 0L);
17990  }
17991#line 1267
17992  if (tmp___10) {
17993    {
17994#line 1269
17995    __asm__  volatile   ("": : : "memory");
17996#line 1271
17997    __cil_tmp82 = vq->log_base;
17998#line 1271
17999    __cil_tmp83 = vq->used;
18000#line 1271
18001    __cil_tmp84 = (void *)__cil_tmp83;
18002#line 1271
18003    __cil_tmp85 = (void *)used;
18004#line 1271
18005    __cil_tmp86 = __cil_tmp85 - __cil_tmp84;
18006#line 1271
18007    __cil_tmp87 = (u64 )__cil_tmp86;
18008#line 1271
18009    __cil_tmp88 = vq->log_addr;
18010#line 1271
18011    __cil_tmp89 = __cil_tmp88 + __cil_tmp87;
18012#line 1271
18013    __cil_tmp90 = (u64 )8UL;
18014#line 1271
18015    log_write(__cil_tmp82, __cil_tmp89, __cil_tmp90);
18016#line 1276
18017    __cil_tmp91 = vq->log_base;
18018#line 1276
18019    __cil_tmp92 = (struct vring_used *)0;
18020#line 1276
18021    __cil_tmp93 = & __cil_tmp92->idx;
18022#line 1276
18023    __cil_tmp94 = (unsigned int )__cil_tmp93;
18024#line 1276
18025    __cil_tmp95 = (u64 )__cil_tmp94;
18026#line 1276
18027    __cil_tmp96 = vq->log_addr;
18028#line 1276
18029    __cil_tmp97 = __cil_tmp96 + __cil_tmp95;
18030#line 1276
18031    __cil_tmp98 = (u64 )2UL;
18032#line 1276
18033    log_write(__cil_tmp91, __cil_tmp97, __cil_tmp98);
18034    }
18035#line 1279
18036    if (vq->log_ctx) {
18037      {
18038#line 1280
18039      __cil_tmp99 = vq->log_ctx;
18040#line 1280
18041      eventfd_signal(__cil_tmp99, 1);
18042      }
18043    } else {
18044
18045    }
18046  } else {
18047
18048  }
18049  {
18050#line 1282
18051  __cil_tmp100 = vq->last_used_idx;
18052#line 1282
18053  __cil_tmp101 = (int )__cil_tmp100;
18054#line 1282
18055  __cil_tmp102 = __cil_tmp101 + 1;
18056#line 1282
18057  vq->last_used_idx = (u16 )__cil_tmp102;
18058#line 1287
18059  __cil_tmp103 = vq->signalled_used;
18060#line 1287
18061  __cil_tmp104 = (int )__cil_tmp103;
18062#line 1287
18063  __cil_tmp105 = vq->last_used_idx;
18064#line 1287
18065  __cil_tmp106 = (int )__cil_tmp105;
18066#line 1287
18067  __cil_tmp107 = __cil_tmp106 == __cil_tmp104;
18068#line 1287
18069  __cil_tmp108 = ! __cil_tmp107;
18070#line 1287
18071  __cil_tmp109 = ! __cil_tmp108;
18072#line 1287
18073  __cil_tmp110 = (long )__cil_tmp109;
18074#line 1287
18075  tmp___11 = __builtin_expect(__cil_tmp110, 0L);
18076  }
18077#line 1287
18078  if (tmp___11) {
18079#line 1288
18080    vq->signalled_used_valid = (bool )0;
18081  } else {
18082
18083  }
18084#line 1289
18085  return (0);
18086}
18087}
18088#line 1303
18089static int __vhost_add_used_n(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
18090                              unsigned int count ) ;
18091#line 1303 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18092static struct _ddebug descriptor___20  __attribute__((__used__, __section__("__verbose"),
18093__aligned__(8)))  =    {"vhost_net", "__vhost_add_used_n", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
18094    "Failed to write used", 1303U, 0U, (char)0};
18095#line 1292 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18096static int __vhost_add_used_n(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
18097                              unsigned int count ) 
18098{ struct vring_used_elem *used ;
18099  u16 old ;
18100  u16 new ;
18101  int start ;
18102  long tmp___7 ;
18103  int tmp___8 ;
18104  long tmp___9 ;
18105  u16 tmp___10 ;
18106  long tmp___11 ;
18107  int tmp ;
18108  int tmp___12 ;
18109  unsigned int __cil_tmp15 ;
18110  u16 __cil_tmp16 ;
18111  unsigned int __cil_tmp17 ;
18112  unsigned int __cil_tmp18 ;
18113  struct vring_used *__cil_tmp19 ;
18114  struct vring_used_elem *__cil_tmp20 ;
18115  void *__cil_tmp21 ;
18116  void const   *__cil_tmp22 ;
18117  unsigned long __cil_tmp23 ;
18118  unsigned long __cil_tmp24 ;
18119  unsigned int __cil_tmp25 ;
18120  int __cil_tmp26 ;
18121  int __cil_tmp27 ;
18122  long __cil_tmp28 ;
18123  struct eventfd_ctx *__cil_tmp29 ;
18124  bool __cil_tmp30 ;
18125  int __cil_tmp31 ;
18126  int __cil_tmp32 ;
18127  long __cil_tmp33 ;
18128  void *__cil_tmp34 ;
18129  struct vring_used *__cil_tmp35 ;
18130  void *__cil_tmp36 ;
18131  void *__cil_tmp37 ;
18132  int __cil_tmp38 ;
18133  u64 __cil_tmp39 ;
18134  u64 __cil_tmp40 ;
18135  u64 __cil_tmp41 ;
18136  unsigned long __cil_tmp42 ;
18137  unsigned long __cil_tmp43 ;
18138  u64 __cil_tmp44 ;
18139  u16 __cil_tmp45 ;
18140  unsigned int __cil_tmp46 ;
18141  unsigned int __cil_tmp47 ;
18142  int __cil_tmp48 ;
18143  int __cil_tmp49 ;
18144  int __cil_tmp50 ;
18145  u16 __cil_tmp51 ;
18146  int __cil_tmp52 ;
18147  u16 __cil_tmp53 ;
18148  int __cil_tmp54 ;
18149  int __cil_tmp55 ;
18150  int __cil_tmp56 ;
18151  u16 __cil_tmp57 ;
18152  int __cil_tmp58 ;
18153  int __cil_tmp59 ;
18154  int __cil_tmp60 ;
18155  int __cil_tmp61 ;
18156  long __cil_tmp62 ;
18157
18158  {
18159  {
18160#line 1300
18161  __cil_tmp15 = vq->num;
18162#line 1300
18163  __cil_tmp16 = vq->last_used_idx;
18164#line 1300
18165  __cil_tmp17 = (unsigned int )__cil_tmp16;
18166#line 1300
18167  __cil_tmp18 = __cil_tmp17 % __cil_tmp15;
18168#line 1300
18169  start = (int )__cil_tmp18;
18170#line 1301
18171  __cil_tmp19 = vq->used;
18172#line 1301
18173  __cil_tmp20 = & __cil_tmp19->ring[0];
18174#line 1301
18175  used = __cil_tmp20 + start;
18176#line 1302
18177  __cil_tmp21 = (void *)used;
18178#line 1302
18179  __cil_tmp22 = (void const   *)heads;
18180#line 1302
18181  __cil_tmp23 = (unsigned long )count;
18182#line 1302
18183  __cil_tmp24 = __cil_tmp23 * 8UL;
18184#line 1302
18185  __cil_tmp25 = (unsigned int )__cil_tmp24;
18186#line 1302
18187  tmp___12 = (int )__copy_to_user(__cil_tmp21, __cil_tmp22, __cil_tmp25);
18188#line 1302
18189  tmp = tmp___12;
18190#line 1302
18191  tmp___8 = tmp;
18192  }
18193#line 1302
18194  if (tmp___8) {
18195    {
18196#line 1303
18197    while (1) {
18198      while_continue: /* CIL Label */ ;
18199
18200      {
18201#line 1303
18202      while (1) {
18203        while_continue___0: /* CIL Label */ ;
18204        {
18205#line 1303
18206        __cil_tmp26 = ! descriptor___20.enabled;
18207#line 1303
18208        __cil_tmp27 = ! __cil_tmp26;
18209#line 1303
18210        __cil_tmp28 = (long )__cil_tmp27;
18211#line 1303
18212        tmp___7 = __builtin_expect(__cil_tmp28, 0L);
18213        }
18214#line 1303
18215        if (tmp___7) {
18216          {
18217#line 1303
18218          __dynamic_pr_debug(& descriptor___20, "Failed to write used");
18219          }
18220        } else {
18221
18222        }
18223#line 1303
18224        goto while_break___0;
18225      }
18226      while_break___2: /* CIL Label */ ;
18227      }
18228
18229      while_break___0: ;
18230#line 1303
18231      if (vq->error_ctx) {
18232        {
18233#line 1303
18234        __cil_tmp29 = vq->error_ctx;
18235#line 1303
18236        eventfd_signal(__cil_tmp29, 1);
18237        }
18238      } else {
18239
18240      }
18241#line 1303
18242      goto while_break;
18243    }
18244    while_break___1: /* CIL Label */ ;
18245    }
18246
18247    while_break: ;
18248#line 1304
18249    return (-14);
18250  } else {
18251
18252  }
18253  {
18254#line 1306
18255  __cil_tmp30 = vq->log_used;
18256#line 1306
18257  __cil_tmp31 = ! __cil_tmp30;
18258#line 1306
18259  __cil_tmp32 = ! __cil_tmp31;
18260#line 1306
18261  __cil_tmp33 = (long )__cil_tmp32;
18262#line 1306
18263  tmp___9 = __builtin_expect(__cil_tmp33, 0L);
18264  }
18265#line 1306
18266  if (tmp___9) {
18267    {
18268#line 1308
18269    __asm__  volatile   ("": : : "memory");
18270#line 1310
18271    __cil_tmp34 = vq->log_base;
18272#line 1310
18273    __cil_tmp35 = vq->used;
18274#line 1310
18275    __cil_tmp36 = (void *)__cil_tmp35;
18276#line 1310
18277    __cil_tmp37 = (void *)used;
18278#line 1310
18279    __cil_tmp38 = __cil_tmp37 - __cil_tmp36;
18280#line 1310
18281    __cil_tmp39 = (u64 )__cil_tmp38;
18282#line 1310
18283    __cil_tmp40 = vq->log_addr;
18284#line 1310
18285    __cil_tmp41 = __cil_tmp40 + __cil_tmp39;
18286#line 1310
18287    __cil_tmp42 = (unsigned long )count;
18288#line 1310
18289    __cil_tmp43 = __cil_tmp42 * 8UL;
18290#line 1310
18291    __cil_tmp44 = (u64 )__cil_tmp43;
18292#line 1310
18293    log_write(__cil_tmp34, __cil_tmp41, __cil_tmp44);
18294    }
18295  } else {
18296
18297  }
18298  {
18299#line 1315
18300  old = vq->last_used_idx;
18301#line 1316
18302  __cil_tmp45 = vq->last_used_idx;
18303#line 1316
18304  __cil_tmp46 = (unsigned int )__cil_tmp45;
18305#line 1316
18306  __cil_tmp47 = __cil_tmp46 + count;
18307#line 1316
18308  tmp___10 = (u16 )__cil_tmp47;
18309#line 1316
18310  vq->last_used_idx = tmp___10;
18311#line 1316
18312  new = tmp___10;
18313#line 1321
18314  __cil_tmp48 = (int )old;
18315#line 1321
18316  __cil_tmp49 = (int )new;
18317#line 1321
18318  __cil_tmp50 = __cil_tmp49 - __cil_tmp48;
18319#line 1321
18320  __cil_tmp51 = (u16 )__cil_tmp50;
18321#line 1321
18322  __cil_tmp52 = (int )__cil_tmp51;
18323#line 1321
18324  __cil_tmp53 = vq->signalled_used;
18325#line 1321
18326  __cil_tmp54 = (int )__cil_tmp53;
18327#line 1321
18328  __cil_tmp55 = (int )new;
18329#line 1321
18330  __cil_tmp56 = __cil_tmp55 - __cil_tmp54;
18331#line 1321
18332  __cil_tmp57 = (u16 )__cil_tmp56;
18333#line 1321
18334  __cil_tmp58 = (int )__cil_tmp57;
18335#line 1321
18336  __cil_tmp59 = __cil_tmp58 < __cil_tmp52;
18337#line 1321
18338  __cil_tmp60 = ! __cil_tmp59;
18339#line 1321
18340  __cil_tmp61 = ! __cil_tmp60;
18341#line 1321
18342  __cil_tmp62 = (long )__cil_tmp61;
18343#line 1321
18344  tmp___11 = __builtin_expect(__cil_tmp62, 0L);
18345  }
18346#line 1321
18347  if (tmp___11) {
18348#line 1322
18349    vq->signalled_used_valid = (bool )0;
18350  } else {
18351
18352  }
18353#line 1323
18354  return (0);
18355}
18356}
18357#line 1347 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18358static struct _ddebug descriptor___21  __attribute__((__used__, __section__("__verbose"),
18359__aligned__(8)))  =    {"vhost_net", "vhost_add_used_n", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
18360    "Failed to increment used idx", 1347U, 0U, (char)0};
18361#line 1328 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18362int vhost_add_used_n(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
18363                     unsigned int count ) 
18364{ int start ;
18365  int n ;
18366  int r ;
18367  long tmp___7 ;
18368  int __ret_pu ;
18369  __u16 __pu_val ;
18370  long tmp___8 ;
18371  unsigned int __cil_tmp11 ;
18372  u16 __cil_tmp12 ;
18373  unsigned int __cil_tmp13 ;
18374  unsigned int __cil_tmp14 ;
18375  unsigned int __cil_tmp15 ;
18376  unsigned int __cil_tmp16 ;
18377  unsigned int __cil_tmp17 ;
18378  unsigned int __cil_tmp18 ;
18379  unsigned int __cil_tmp19 ;
18380  unsigned int __cil_tmp20 ;
18381  int __cil_tmp21 ;
18382  int __cil_tmp22 ;
18383  int __cil_tmp23 ;
18384  int __cil_tmp24 ;
18385  struct vring_used *__cil_tmp25 ;
18386  struct vring_used *__cil_tmp26 ;
18387  struct vring_used *__cil_tmp27 ;
18388  struct vring_used *__cil_tmp28 ;
18389  struct vring_used *__cil_tmp29 ;
18390  int __cil_tmp30 ;
18391  int __cil_tmp31 ;
18392  long __cil_tmp32 ;
18393  struct eventfd_ctx *__cil_tmp33 ;
18394  bool __cil_tmp34 ;
18395  int __cil_tmp35 ;
18396  int __cil_tmp36 ;
18397  long __cil_tmp37 ;
18398  void *__cil_tmp38 ;
18399  struct vring_used *__cil_tmp39 ;
18400  __u16 *__cil_tmp40 ;
18401  unsigned int __cil_tmp41 ;
18402  u64 __cil_tmp42 ;
18403  u64 __cil_tmp43 ;
18404  u64 __cil_tmp44 ;
18405  u64 __cil_tmp45 ;
18406  struct eventfd_ctx *__cil_tmp46 ;
18407
18408  {
18409#line 1333
18410  __cil_tmp11 = vq->num;
18411#line 1333
18412  __cil_tmp12 = vq->last_used_idx;
18413#line 1333
18414  __cil_tmp13 = (unsigned int )__cil_tmp12;
18415#line 1333
18416  __cil_tmp14 = __cil_tmp13 % __cil_tmp11;
18417#line 1333
18418  start = (int )__cil_tmp14;
18419#line 1334
18420  __cil_tmp15 = (unsigned int )start;
18421#line 1334
18422  __cil_tmp16 = vq->num;
18423#line 1334
18424  __cil_tmp17 = __cil_tmp16 - __cil_tmp15;
18425#line 1334
18426  n = (int )__cil_tmp17;
18427  {
18428#line 1335
18429  __cil_tmp18 = (unsigned int )n;
18430#line 1335
18431  if (__cil_tmp18 < count) {
18432    {
18433#line 1336
18434    __cil_tmp19 = (unsigned int )n;
18435#line 1336
18436    r = __vhost_add_used_n(vq, heads, __cil_tmp19);
18437    }
18438#line 1337
18439    if (r < 0) {
18440#line 1338
18441      return (r);
18442    } else {
18443
18444    }
18445#line 1339
18446    heads = heads + n;
18447#line 1340
18448    __cil_tmp20 = (unsigned int )n;
18449#line 1340
18450    count = count - __cil_tmp20;
18451  } else {
18452
18453  }
18454  }
18455  {
18456#line 1342
18457  r = __vhost_add_used_n(vq, heads, count);
18458#line 1345
18459  __asm__  volatile   ("": : : "memory");
18460#line 1346
18461  might_fault();
18462#line 1346
18463  __pu_val = vq->last_used_idx;
18464  }
18465  {
18466#line 1346
18467  __cil_tmp21 = (int )2UL;
18468#line 1346
18469  if (__cil_tmp21 == 1) {
18470#line 1346
18471    goto case_1;
18472  } else {
18473    {
18474#line 1346
18475    __cil_tmp22 = (int )2UL;
18476#line 1346
18477    if (__cil_tmp22 == 2) {
18478#line 1346
18479      goto case_2;
18480    } else {
18481      {
18482#line 1346
18483      __cil_tmp23 = (int )2UL;
18484#line 1346
18485      if (__cil_tmp23 == 4) {
18486#line 1346
18487        goto case_4;
18488      } else {
18489        {
18490#line 1346
18491        __cil_tmp24 = (int )2UL;
18492#line 1346
18493        if (__cil_tmp24 == 8) {
18494#line 1346
18495          goto case_8;
18496        } else {
18497#line 1346
18498          goto switch_default;
18499#line 1346
18500          if (0) {
18501            case_1: 
18502#line 1346
18503            __cil_tmp25 = vq->used;
18504#line 1346
18505            __asm__  volatile   ("call __put_user_"
18506                                 "1": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp25->idx): "ebx");
18507#line 1346
18508            goto switch_break;
18509            case_2: 
18510#line 1346
18511            __cil_tmp26 = vq->used;
18512#line 1346
18513            __asm__  volatile   ("call __put_user_"
18514                                 "2": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp26->idx): "ebx");
18515#line 1346
18516            goto switch_break;
18517            case_4: 
18518#line 1346
18519            __cil_tmp27 = vq->used;
18520#line 1346
18521            __asm__  volatile   ("call __put_user_"
18522                                 "4": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp27->idx): "ebx");
18523#line 1346
18524            goto switch_break;
18525            case_8: 
18526#line 1346
18527            __cil_tmp28 = vq->used;
18528#line 1346
18529            __asm__  volatile   ("call __put_user_"
18530                                 "8": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp28->idx): "ebx");
18531#line 1346
18532            goto switch_break;
18533            switch_default: 
18534#line 1346
18535            __cil_tmp29 = vq->used;
18536#line 1346
18537            __asm__  volatile   ("call __put_user_"
18538                                 "X": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp29->idx): "ebx");
18539#line 1346
18540            goto switch_break;
18541          } else {
18542            switch_break: ;
18543          }
18544        }
18545        }
18546      }
18547      }
18548    }
18549    }
18550  }
18551  }
18552#line 1346
18553  if (__ret_pu) {
18554    {
18555#line 1347
18556    while (1) {
18557      while_continue: /* CIL Label */ ;
18558
18559      {
18560#line 1347
18561      while (1) {
18562        while_continue___0: /* CIL Label */ ;
18563        {
18564#line 1347
18565        __cil_tmp30 = ! descriptor___21.enabled;
18566#line 1347
18567        __cil_tmp31 = ! __cil_tmp30;
18568#line 1347
18569        __cil_tmp32 = (long )__cil_tmp31;
18570#line 1347
18571        tmp___7 = __builtin_expect(__cil_tmp32, 0L);
18572        }
18573#line 1347
18574        if (tmp___7) {
18575          {
18576#line 1347
18577          __dynamic_pr_debug(& descriptor___21, "Failed to increment used idx");
18578          }
18579        } else {
18580
18581        }
18582#line 1347
18583        goto while_break___0;
18584      }
18585      while_break___2: /* CIL Label */ ;
18586      }
18587
18588      while_break___0: ;
18589#line 1347
18590      if (vq->error_ctx) {
18591        {
18592#line 1347
18593        __cil_tmp33 = vq->error_ctx;
18594#line 1347
18595        eventfd_signal(__cil_tmp33, 1);
18596        }
18597      } else {
18598
18599      }
18600#line 1347
18601      goto while_break;
18602    }
18603    while_break___1: /* CIL Label */ ;
18604    }
18605
18606    while_break: ;
18607#line 1348
18608    return (-14);
18609  } else {
18610
18611  }
18612  {
18613#line 1350
18614  __cil_tmp34 = vq->log_used;
18615#line 1350
18616  __cil_tmp35 = ! __cil_tmp34;
18617#line 1350
18618  __cil_tmp36 = ! __cil_tmp35;
18619#line 1350
18620  __cil_tmp37 = (long )__cil_tmp36;
18621#line 1350
18622  tmp___8 = __builtin_expect(__cil_tmp37, 0L);
18623  }
18624#line 1350
18625  if (tmp___8) {
18626    {
18627#line 1352
18628    __cil_tmp38 = vq->log_base;
18629#line 1352
18630    __cil_tmp39 = (struct vring_used *)0;
18631#line 1352
18632    __cil_tmp40 = & __cil_tmp39->idx;
18633#line 1352
18634    __cil_tmp41 = (unsigned int )__cil_tmp40;
18635#line 1352
18636    __cil_tmp42 = (u64 )__cil_tmp41;
18637#line 1352
18638    __cil_tmp43 = vq->log_addr;
18639#line 1352
18640    __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
18641#line 1352
18642    __cil_tmp45 = (u64 )2UL;
18643#line 1352
18644    log_write(__cil_tmp38, __cil_tmp44, __cil_tmp45);
18645    }
18646#line 1355
18647    if (vq->log_ctx) {
18648      {
18649#line 1356
18650      __cil_tmp46 = vq->log_ctx;
18651#line 1356
18652      eventfd_signal(__cil_tmp46, 1);
18653      }
18654    } else {
18655
18656    }
18657  } else {
18658
18659  }
18660#line 1358
18661  return (r);
18662}
18663}
18664#line 1377
18665static bool vhost_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) ;
18666#line 1377 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18667static struct _ddebug descriptor___22  __attribute__((__used__, __section__("__verbose"),
18668__aligned__(8)))  =    {"vhost_net", "vhost_notify", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
18669    "Failed to get flags", 1377U, 0U, (char)0};
18670#line 1391 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18671static struct _ddebug descriptor___23  __attribute__((__used__, __section__("__verbose"),
18672__aligned__(8)))  =    {"vhost_net", "vhost_notify", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
18673    "Failed to get used event idx", 1391U, 0U, (char)0};
18674#line 1361 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18675static bool vhost_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) 
18676{ __u16 old ;
18677  __u16 new ;
18678  __u16 event ;
18679  bool v ;
18680  int tmp___7 ;
18681  long tmp___8 ;
18682  __u16 flags ;
18683  long tmp___9 ;
18684  int __gu_err ;
18685  unsigned long __gu_val ;
18686  int tmp___10 ;
18687  int tmp___11 ;
18688  u16 tmp___12 ;
18689  long tmp___13 ;
18690  long tmp___14 ;
18691  int __ret_gu ;
18692  unsigned long __val_gu ;
18693  int tmp___15 ;
18694  u16 __cil_tmp21 ;
18695  int __cil_tmp22 ;
18696  u16 __cil_tmp23 ;
18697  int __cil_tmp24 ;
18698  int __cil_tmp25 ;
18699  int __cil_tmp26 ;
18700  int __cil_tmp27 ;
18701  long __cil_tmp28 ;
18702  int __cil_tmp29 ;
18703  int __cil_tmp30 ;
18704  int __cil_tmp31 ;
18705  int __cil_tmp32 ;
18706  struct vring_avail *__cil_tmp33 ;
18707  __u16 *__cil_tmp34 ;
18708  struct __large_struct *__cil_tmp35 ;
18709  struct vring_avail *__cil_tmp36 ;
18710  __u16 *__cil_tmp37 ;
18711  struct __large_struct *__cil_tmp38 ;
18712  struct vring_avail *__cil_tmp39 ;
18713  __u16 *__cil_tmp40 ;
18714  struct __large_struct *__cil_tmp41 ;
18715  struct vring_avail *__cil_tmp42 ;
18716  __u16 *__cil_tmp43 ;
18717  struct __large_struct *__cil_tmp44 ;
18718  int __cil_tmp45 ;
18719  int __cil_tmp46 ;
18720  long __cil_tmp47 ;
18721  struct eventfd_ctx *__cil_tmp48 ;
18722  int __cil_tmp49 ;
18723  int __cil_tmp50 ;
18724  int __cil_tmp51 ;
18725  int __cil_tmp52 ;
18726  int __cil_tmp53 ;
18727  int __cil_tmp54 ;
18728  long __cil_tmp55 ;
18729  int __cil_tmp56 ;
18730  int __cil_tmp57 ;
18731  int __cil_tmp58 ;
18732  int __cil_tmp59 ;
18733  struct vring_avail *__cil_tmp60 ;
18734  struct vring_avail *__cil_tmp61 ;
18735  struct vring_avail *__cil_tmp62 ;
18736  struct vring_avail *__cil_tmp63 ;
18737  struct vring_avail *__cil_tmp64 ;
18738  int __cil_tmp65 ;
18739  int __cil_tmp66 ;
18740  long __cil_tmp67 ;
18741  struct eventfd_ctx *__cil_tmp68 ;
18742
18743  {
18744  {
18745#line 1368
18746  __asm__  volatile   ("mfence": : : "memory");
18747#line 1370
18748  tmp___7 = vhost_has_feature(dev, 24);
18749  }
18750#line 1370
18751  if (tmp___7) {
18752    {
18753#line 1370
18754    __cil_tmp21 = vq->last_avail_idx;
18755#line 1370
18756    __cil_tmp22 = (int )__cil_tmp21;
18757#line 1370
18758    __cil_tmp23 = vq->avail_idx;
18759#line 1370
18760    __cil_tmp24 = (int )__cil_tmp23;
18761#line 1370
18762    __cil_tmp25 = __cil_tmp24 == __cil_tmp22;
18763#line 1370
18764    __cil_tmp26 = ! __cil_tmp25;
18765#line 1370
18766    __cil_tmp27 = ! __cil_tmp26;
18767#line 1370
18768    __cil_tmp28 = (long )__cil_tmp27;
18769#line 1370
18770    tmp___8 = __builtin_expect(__cil_tmp28, 0L);
18771    }
18772#line 1370
18773    if (tmp___8) {
18774#line 1372
18775      return ((bool )1);
18776    } else {
18777
18778    }
18779  } else {
18780
18781  }
18782  {
18783#line 1374
18784  tmp___11 = vhost_has_feature(dev, 29);
18785  }
18786#line 1374
18787  if (tmp___11) {
18788
18789  } else {
18790    {
18791#line 1376
18792    while (1) {
18793      while_continue: /* CIL Label */ ;
18794#line 1376
18795      __gu_err = 0;
18796      {
18797#line 1376
18798      __cil_tmp29 = (int )2UL;
18799#line 1376
18800      if (__cil_tmp29 == 1) {
18801#line 1376
18802        goto case_1;
18803      } else {
18804        {
18805#line 1376
18806        __cil_tmp30 = (int )2UL;
18807#line 1376
18808        if (__cil_tmp30 == 2) {
18809#line 1376
18810          goto case_2;
18811        } else {
18812          {
18813#line 1376
18814          __cil_tmp31 = (int )2UL;
18815#line 1376
18816          if (__cil_tmp31 == 4) {
18817#line 1376
18818            goto case_4;
18819          } else {
18820            {
18821#line 1376
18822            __cil_tmp32 = (int )2UL;
18823#line 1376
18824            if (__cil_tmp32 == 8) {
18825#line 1376
18826              goto case_8;
18827            } else {
18828#line 1376
18829              goto switch_default;
18830#line 1376
18831              if (0) {
18832                case_1: 
18833#line 1376
18834                __cil_tmp33 = vq->avail;
18835#line 1376
18836                __cil_tmp34 = & __cil_tmp33->flags;
18837#line 1376
18838                __cil_tmp35 = (struct __large_struct *)__cil_tmp34;
18839#line 1376
18840                __asm__  volatile   ("1:\tmov"
18841                                     "b"
18842                                     " %2,%"
18843                                     "b"
18844                                     "1\n"
18845                                     "2:\n"
18846                                     ".section .fixup,\"ax\"\n"
18847                                     "3:\tmov %3,%0\n"
18848                                     "\txor"
18849                                     "b"
18850                                     " %"
18851                                     "b"
18852                                     "1,%"
18853                                     "b"
18854                                     "1\n"
18855                                     "\tjmp 2b\n"
18856                                     ".previous\n"
18857                                     " .section __ex_table,\"a\"\n"
18858                                     " "
18859                                     ".balign 8"
18860                                     " "
18861                                     "\n"
18862                                     " "
18863                                     ".quad"
18864                                     " "
18865                                     "1b"
18866                                     ","
18867                                     "3b"
18868                                     "\n"
18869                                     " .previous\n": "=r" (__gu_err), "=q" (__gu_val): "m" (*__cil_tmp35),
18870                                     "i" (-14), "0" (__gu_err));
18871#line 1376
18872                goto switch_break;
18873                case_2: 
18874#line 1376
18875                __cil_tmp36 = vq->avail;
18876#line 1376
18877                __cil_tmp37 = & __cil_tmp36->flags;
18878#line 1376
18879                __cil_tmp38 = (struct __large_struct *)__cil_tmp37;
18880#line 1376
18881                __asm__  volatile   ("1:\tmov"
18882                                     "w"
18883                                     " %2,%"
18884                                     "w"
18885                                     "1\n"
18886                                     "2:\n"
18887                                     ".section .fixup,\"ax\"\n"
18888                                     "3:\tmov %3,%0\n"
18889                                     "\txor"
18890                                     "w"
18891                                     " %"
18892                                     "w"
18893                                     "1,%"
18894                                     "w"
18895                                     "1\n"
18896                                     "\tjmp 2b\n"
18897                                     ".previous\n"
18898                                     " .section __ex_table,\"a\"\n"
18899                                     " "
18900                                     ".balign 8"
18901                                     " "
18902                                     "\n"
18903                                     " "
18904                                     ".quad"
18905                                     " "
18906                                     "1b"
18907                                     ","
18908                                     "3b"
18909                                     "\n"
18910                                     " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp38),
18911                                     "i" (-14), "0" (__gu_err));
18912#line 1376
18913                goto switch_break;
18914                case_4: 
18915#line 1376
18916                __cil_tmp39 = vq->avail;
18917#line 1376
18918                __cil_tmp40 = & __cil_tmp39->flags;
18919#line 1376
18920                __cil_tmp41 = (struct __large_struct *)__cil_tmp40;
18921#line 1376
18922                __asm__  volatile   ("1:\tmov"
18923                                     "l"
18924                                     " %2,%"
18925                                     "k"
18926                                     "1\n"
18927                                     "2:\n"
18928                                     ".section .fixup,\"ax\"\n"
18929                                     "3:\tmov %3,%0\n"
18930                                     "\txor"
18931                                     "l"
18932                                     " %"
18933                                     "k"
18934                                     "1,%"
18935                                     "k"
18936                                     "1\n"
18937                                     "\tjmp 2b\n"
18938                                     ".previous\n"
18939                                     " .section __ex_table,\"a\"\n"
18940                                     " "
18941                                     ".balign 8"
18942                                     " "
18943                                     "\n"
18944                                     " "
18945                                     ".quad"
18946                                     " "
18947                                     "1b"
18948                                     ","
18949                                     "3b"
18950                                     "\n"
18951                                     " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp41),
18952                                     "i" (-14), "0" (__gu_err));
18953#line 1376
18954                goto switch_break;
18955                case_8: 
18956#line 1376
18957                __cil_tmp42 = vq->avail;
18958#line 1376
18959                __cil_tmp43 = & __cil_tmp42->flags;
18960#line 1376
18961                __cil_tmp44 = (struct __large_struct *)__cil_tmp43;
18962#line 1376
18963                __asm__  volatile   ("1:\tmov"
18964                                     "q"
18965                                     " %2,%"
18966                                     ""
18967                                     "1\n"
18968                                     "2:\n"
18969                                     ".section .fixup,\"ax\"\n"
18970                                     "3:\tmov %3,%0\n"
18971                                     "\txor"
18972                                     "q"
18973                                     " %"
18974                                     ""
18975                                     "1,%"
18976                                     ""
18977                                     "1\n"
18978                                     "\tjmp 2b\n"
18979                                     ".previous\n"
18980                                     " .section __ex_table,\"a\"\n"
18981                                     " "
18982                                     ".balign 8"
18983                                     " "
18984                                     "\n"
18985                                     " "
18986                                     ".quad"
18987                                     " "
18988                                     "1b"
18989                                     ","
18990                                     "3b"
18991                                     "\n"
18992                                     " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp44),
18993                                     "i" (-14), "0" (__gu_err));
18994#line 1376
18995                goto switch_break;
18996                switch_default: 
18997                {
18998#line 1376
18999                tmp___10 = __get_user_bad();
19000#line 1376
19001                __gu_val = (unsigned long )tmp___10;
19002                }
19003              } else {
19004                switch_break: ;
19005              }
19006            }
19007            }
19008          }
19009          }
19010        }
19011        }
19012      }
19013      }
19014#line 1376
19015      goto while_break;
19016    }
19017    while_break___4: /* CIL Label */ ;
19018    }
19019
19020    while_break: 
19021#line 1376
19022    flags = (__u16 )__gu_val;
19023#line 1376
19024    if (__gu_err) {
19025      {
19026#line 1377
19027      while (1) {
19028        while_continue___0: /* CIL Label */ ;
19029
19030        {
19031#line 1377
19032        while (1) {
19033          while_continue___1: /* CIL Label */ ;
19034          {
19035#line 1377
19036          __cil_tmp45 = ! descriptor___22.enabled;
19037#line 1377
19038          __cil_tmp46 = ! __cil_tmp45;
19039#line 1377
19040          __cil_tmp47 = (long )__cil_tmp46;
19041#line 1377
19042          tmp___9 = __builtin_expect(__cil_tmp47, 0L);
19043          }
19044#line 1377
19045          if (tmp___9) {
19046            {
19047#line 1377
19048            __dynamic_pr_debug(& descriptor___22, "Failed to get flags");
19049            }
19050          } else {
19051
19052          }
19053#line 1377
19054          goto while_break___1;
19055        }
19056        while_break___6: /* CIL Label */ ;
19057        }
19058
19059        while_break___1: ;
19060#line 1377
19061        if (vq->error_ctx) {
19062          {
19063#line 1377
19064          __cil_tmp48 = vq->error_ctx;
19065#line 1377
19066          eventfd_signal(__cil_tmp48, 1);
19067          }
19068        } else {
19069
19070        }
19071#line 1377
19072        goto while_break___0;
19073      }
19074      while_break___5: /* CIL Label */ ;
19075      }
19076
19077      while_break___0: ;
19078#line 1378
19079      return ((bool )1);
19080    } else {
19081
19082    }
19083    {
19084#line 1380
19085    __cil_tmp49 = (int )flags;
19086#line 1380
19087    __cil_tmp50 = __cil_tmp49 & 1;
19088#line 1380
19089    __cil_tmp51 = ! __cil_tmp50;
19090#line 1380
19091    return ((bool )__cil_tmp51);
19092    }
19093  }
19094  {
19095#line 1382
19096  old = vq->signalled_used;
19097#line 1383
19098  v = vq->signalled_used_valid;
19099#line 1384
19100  tmp___12 = vq->last_used_idx;
19101#line 1384
19102  vq->signalled_used = tmp___12;
19103#line 1384
19104  new = tmp___12;
19105#line 1385
19106  vq->signalled_used_valid = (bool )1;
19107#line 1387
19108  __cil_tmp52 = ! v;
19109#line 1387
19110  __cil_tmp53 = ! __cil_tmp52;
19111#line 1387
19112  __cil_tmp54 = ! __cil_tmp53;
19113#line 1387
19114  __cil_tmp55 = (long )__cil_tmp54;
19115#line 1387
19116  tmp___13 = __builtin_expect(__cil_tmp55, 0L);
19117  }
19118#line 1387
19119  if (tmp___13) {
19120#line 1388
19121    return ((bool )1);
19122  } else {
19123
19124  }
19125  {
19126#line 1390
19127  might_fault();
19128  }
19129  {
19130#line 1390
19131  __cil_tmp56 = (int )2UL;
19132#line 1390
19133  if (__cil_tmp56 == 1) {
19134#line 1390
19135    goto case_1___0;
19136  } else {
19137    {
19138#line 1390
19139    __cil_tmp57 = (int )2UL;
19140#line 1390
19141    if (__cil_tmp57 == 2) {
19142#line 1390
19143      goto case_2___0;
19144    } else {
19145      {
19146#line 1390
19147      __cil_tmp58 = (int )2UL;
19148#line 1390
19149      if (__cil_tmp58 == 4) {
19150#line 1390
19151        goto case_4___0;
19152      } else {
19153        {
19154#line 1390
19155        __cil_tmp59 = (int )2UL;
19156#line 1390
19157        if (__cil_tmp59 == 8) {
19158#line 1390
19159          goto case_8___0;
19160        } else {
19161#line 1390
19162          goto switch_default___0;
19163#line 1390
19164          if (0) {
19165            case_1___0: 
19166#line 1390
19167            __cil_tmp60 = vq->avail;
19168#line 1390
19169            __asm__  volatile   ("call __get_user_"
19170                                 "1": "=a" (__ret_gu), "=d" (__val_gu): "0" (& __cil_tmp60->ring[vq->num]));
19171#line 1390
19172            goto switch_break___0;
19173            case_2___0: 
19174#line 1390
19175            __cil_tmp61 = vq->avail;
19176#line 1390
19177            __asm__  volatile   ("call __get_user_"
19178                                 "2": "=a" (__ret_gu), "=d" (__val_gu): "0" (& __cil_tmp61->ring[vq->num]));
19179#line 1390
19180            goto switch_break___0;
19181            case_4___0: 
19182#line 1390
19183            __cil_tmp62 = vq->avail;
19184#line 1390
19185            __asm__  volatile   ("call __get_user_"
19186                                 "4": "=a" (__ret_gu), "=d" (__val_gu): "0" (& __cil_tmp62->ring[vq->num]));
19187#line 1390
19188            goto switch_break___0;
19189            case_8___0: 
19190#line 1390
19191            __cil_tmp63 = vq->avail;
19192#line 1390
19193            __asm__  volatile   ("call __get_user_"
19194                                 "8": "=a" (__ret_gu), "=d" (__val_gu): "0" (& __cil_tmp63->ring[vq->num]));
19195#line 1390
19196            goto switch_break___0;
19197            switch_default___0: 
19198#line 1390
19199            __cil_tmp64 = vq->avail;
19200#line 1390
19201            __asm__  volatile   ("call __get_user_"
19202                                 "X": "=a" (__ret_gu), "=d" (__val_gu): "0" (& __cil_tmp64->ring[vq->num]));
19203#line 1390
19204            goto switch_break___0;
19205          } else {
19206            switch_break___0: ;
19207          }
19208        }
19209        }
19210      }
19211      }
19212    }
19213    }
19214  }
19215  }
19216#line 1390
19217  event = (u16 )__val_gu;
19218#line 1390
19219  if (__ret_gu) {
19220    {
19221#line 1391
19222    while (1) {
19223      while_continue___2: /* CIL Label */ ;
19224
19225      {
19226#line 1391
19227      while (1) {
19228        while_continue___3: /* CIL Label */ ;
19229        {
19230#line 1391
19231        __cil_tmp65 = ! descriptor___23.enabled;
19232#line 1391
19233        __cil_tmp66 = ! __cil_tmp65;
19234#line 1391
19235        __cil_tmp67 = (long )__cil_tmp66;
19236#line 1391
19237        tmp___14 = __builtin_expect(__cil_tmp67, 0L);
19238        }
19239#line 1391
19240        if (tmp___14) {
19241          {
19242#line 1391
19243          __dynamic_pr_debug(& descriptor___23, "Failed to get used event idx");
19244          }
19245        } else {
19246
19247        }
19248#line 1391
19249        goto while_break___3;
19250      }
19251      while_break___8: /* CIL Label */ ;
19252      }
19253
19254      while_break___3: ;
19255#line 1391
19256      if (vq->error_ctx) {
19257        {
19258#line 1391
19259        __cil_tmp68 = vq->error_ctx;
19260#line 1391
19261        eventfd_signal(__cil_tmp68, 1);
19262        }
19263      } else {
19264
19265      }
19266#line 1391
19267      goto while_break___2;
19268    }
19269    while_break___7: /* CIL Label */ ;
19270    }
19271
19272    while_break___2: ;
19273#line 1392
19274    return ((bool )1);
19275  } else {
19276
19277  }
19278  {
19279#line 1394
19280  tmp___15 = vring_need_event(event, new, old);
19281  }
19282#line 1394
19283  return ((bool )tmp___15);
19284}
19285}
19286#line 1398 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19287void vhost_signal(struct vhost_dev *dev , struct vhost_virtqueue *vq ) 
19288{ bool tmp___7 ;
19289  struct eventfd_ctx *__cil_tmp4 ;
19290
19291  {
19292#line 1401
19293  if (vq->call_ctx) {
19294    {
19295#line 1401
19296    tmp___7 = vhost_notify(dev, vq);
19297    }
19298#line 1401
19299    if (tmp___7) {
19300      {
19301#line 1402
19302      __cil_tmp4 = vq->call_ctx;
19303#line 1402
19304      eventfd_signal(__cil_tmp4, 1);
19305      }
19306    } else {
19307
19308    }
19309  } else {
19310
19311  }
19312#line 1403
19313  return;
19314}
19315}
19316#line 1406 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19317void vhost_add_used_and_signal(struct vhost_dev *dev , struct vhost_virtqueue *vq ,
19318                               unsigned int head , int len ) 
19319{ 
19320
19321  {
19322  {
19323#line 1410
19324  vhost_add_used(vq, head, len);
19325#line 1411
19326  vhost_signal(dev, vq);
19327  }
19328#line 1412
19329  return;
19330}
19331}
19332#line 1415 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19333void vhost_add_used_and_signal_n(struct vhost_dev *dev , struct vhost_virtqueue *vq ,
19334                                 struct vring_used_elem *heads , unsigned int count ) 
19335{ 
19336
19337  {
19338  {
19339#line 1419
19340  vhost_add_used_n(vq, heads, count);
19341#line 1420
19342  vhost_signal(dev, vq);
19343  }
19344#line 1421
19345  return;
19346}
19347}
19348#line 1435 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19349static struct _ddebug descriptor___24  __attribute__((__used__, __section__("__verbose"),
19350__aligned__(8)))  =    {"vhost_net", "vhost_enable_notify", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
19351    "Failed to enable notification at %p: %d\n", 1436U, 0U, (char)0};
19352#line 1442 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19353static struct _ddebug descriptor___25  __attribute__((__used__, __section__("__verbose"),
19354__aligned__(8)))  =    {"vhost_net", "vhost_enable_notify", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
19355    "Failed to update avail event index at %p: %d\n", 1443U, 0U, (char)0};
19356#line 1466 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19357static struct _ddebug descriptor___26  __attribute__((__used__, __section__("__verbose"),
19358__aligned__(8)))  =    {"vhost_net", "vhost_enable_notify", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
19359    "Failed to check avail idx at %p: %d\n", 1467U, 0U, (char)0};
19360#line 1424 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19361bool vhost_enable_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) 
19362{ u16 avail_idx ;
19363  int r ;
19364  int __ret_pu ;
19365  __u16 __pu_val ;
19366  long tmp___7 ;
19367  int __ret_pu___0 ;
19368  u16 __pu_val___0 ;
19369  long tmp___8 ;
19370  int tmp___9 ;
19371  void *used ;
19372  int tmp___11 ;
19373  long tmp___12 ;
19374  int __gu_err ;
19375  unsigned long __gu_val ;
19376  int tmp___13 ;
19377  long tmp___14 ;
19378  u16 __cil_tmp19 ;
19379  int __cil_tmp20 ;
19380  int __cil_tmp21 ;
19381  u16 __cil_tmp22 ;
19382  int __cil_tmp23 ;
19383  int __cil_tmp24 ;
19384  int __cil_tmp25 ;
19385  int __cil_tmp26 ;
19386  int __cil_tmp27 ;
19387  int __cil_tmp28 ;
19388  struct vring_used *__cil_tmp29 ;
19389  struct vring_used_elem *__cil_tmp30 ;
19390  struct vring_used *__cil_tmp31 ;
19391  struct vring_used_elem *__cil_tmp32 ;
19392  struct vring_used *__cil_tmp33 ;
19393  struct vring_used_elem *__cil_tmp34 ;
19394  struct vring_used *__cil_tmp35 ;
19395  struct vring_used_elem *__cil_tmp36 ;
19396  struct vring_used *__cil_tmp37 ;
19397  struct vring_used_elem *__cil_tmp38 ;
19398  int __cil_tmp39 ;
19399  int __cil_tmp40 ;
19400  long __cil_tmp41 ;
19401  struct vring_used *__cil_tmp42 ;
19402  struct vring_used_elem *__cil_tmp43 ;
19403  u16 *__cil_tmp44 ;
19404  struct eventfd_ctx *__cil_tmp45 ;
19405  int __cil_tmp46 ;
19406  int __cil_tmp47 ;
19407  int __cil_tmp48 ;
19408  int __cil_tmp49 ;
19409  struct vring_used *__cil_tmp50 ;
19410  struct vring_used *__cil_tmp51 ;
19411  struct vring_used *__cil_tmp52 ;
19412  struct vring_used *__cil_tmp53 ;
19413  struct vring_used *__cil_tmp54 ;
19414  int __cil_tmp55 ;
19415  int __cil_tmp56 ;
19416  long __cil_tmp57 ;
19417  struct vring_used *__cil_tmp58 ;
19418  __u16 *__cil_tmp59 ;
19419  struct eventfd_ctx *__cil_tmp60 ;
19420  bool __cil_tmp61 ;
19421  int __cil_tmp62 ;
19422  int __cil_tmp63 ;
19423  long __cil_tmp64 ;
19424  struct vring_used *__cil_tmp65 ;
19425  __u16 *__cil_tmp66 ;
19426  struct vring_used *__cil_tmp67 ;
19427  struct vring_used_elem *__cil_tmp68 ;
19428  u16 *__cil_tmp69 ;
19429  void *__cil_tmp70 ;
19430  struct vring_used *__cil_tmp71 ;
19431  void *__cil_tmp72 ;
19432  int __cil_tmp73 ;
19433  u64 __cil_tmp74 ;
19434  u64 __cil_tmp75 ;
19435  u64 __cil_tmp76 ;
19436  u64 __cil_tmp77 ;
19437  struct eventfd_ctx *__cil_tmp78 ;
19438  int __cil_tmp79 ;
19439  int __cil_tmp80 ;
19440  int __cil_tmp81 ;
19441  int __cil_tmp82 ;
19442  struct vring_avail *__cil_tmp83 ;
19443  __u16 *__cil_tmp84 ;
19444  struct __large_struct *__cil_tmp85 ;
19445  struct vring_avail *__cil_tmp86 ;
19446  __u16 *__cil_tmp87 ;
19447  struct __large_struct *__cil_tmp88 ;
19448  struct vring_avail *__cil_tmp89 ;
19449  __u16 *__cil_tmp90 ;
19450  struct __large_struct *__cil_tmp91 ;
19451  struct vring_avail *__cil_tmp92 ;
19452  __u16 *__cil_tmp93 ;
19453  struct __large_struct *__cil_tmp94 ;
19454  int __cil_tmp95 ;
19455  int __cil_tmp96 ;
19456  long __cil_tmp97 ;
19457  struct vring_avail *__cil_tmp98 ;
19458  __u16 *__cil_tmp99 ;
19459  struct eventfd_ctx *__cil_tmp100 ;
19460  u16 __cil_tmp101 ;
19461  int __cil_tmp102 ;
19462  int __cil_tmp103 ;
19463  int __cil_tmp104 ;
19464
19465  {
19466  {
19467#line 1429
19468  __cil_tmp19 = vq->used_flags;
19469#line 1429
19470  __cil_tmp20 = (int )__cil_tmp19;
19471#line 1429
19472  __cil_tmp21 = __cil_tmp20 & 1;
19473#line 1429
19474  if (! __cil_tmp21) {
19475#line 1430
19476    return ((bool )0);
19477  } else {
19478
19479  }
19480  }
19481  {
19482#line 1431
19483  __cil_tmp22 = vq->used_flags;
19484#line 1431
19485  __cil_tmp23 = (int )__cil_tmp22;
19486#line 1431
19487  __cil_tmp24 = __cil_tmp23 & -2;
19488#line 1431
19489  vq->used_flags = (u16 )__cil_tmp24;
19490#line 1432
19491  tmp___9 = vhost_has_feature(dev, 29);
19492  }
19493#line 1432
19494  if (tmp___9) {
19495    {
19496#line 1440
19497    might_fault();
19498#line 1440
19499    __pu_val___0 = vq->avail_idx;
19500    }
19501    {
19502#line 1440
19503    __cil_tmp25 = (int )2UL;
19504#line 1440
19505    if (__cil_tmp25 == 1) {
19506#line 1440
19507      goto case_1;
19508    } else {
19509      {
19510#line 1440
19511      __cil_tmp26 = (int )2UL;
19512#line 1440
19513      if (__cil_tmp26 == 2) {
19514#line 1440
19515        goto case_2;
19516      } else {
19517        {
19518#line 1440
19519        __cil_tmp27 = (int )2UL;
19520#line 1440
19521        if (__cil_tmp27 == 4) {
19522#line 1440
19523          goto case_4;
19524        } else {
19525          {
19526#line 1440
19527          __cil_tmp28 = (int )2UL;
19528#line 1440
19529          if (__cil_tmp28 == 8) {
19530#line 1440
19531            goto case_8;
19532          } else {
19533#line 1440
19534            goto switch_default;
19535#line 1440
19536            if (0) {
19537              case_1: 
19538#line 1440
19539              __cil_tmp29 = vq->used;
19540#line 1440
19541              __cil_tmp30 = & __cil_tmp29->ring[vq->num];
19542#line 1440
19543              __asm__  volatile   ("call __put_user_"
19544                                   "1": "=a" (__ret_pu___0): "0" (__pu_val___0), "c" ((u16 *)__cil_tmp30): "ebx");
19545#line 1440
19546              goto switch_break;
19547              case_2: 
19548#line 1440
19549              __cil_tmp31 = vq->used;
19550#line 1440
19551              __cil_tmp32 = & __cil_tmp31->ring[vq->num];
19552#line 1440
19553              __asm__  volatile   ("call __put_user_"
19554                                   "2": "=a" (__ret_pu___0): "0" (__pu_val___0), "c" ((u16 *)__cil_tmp32): "ebx");
19555#line 1440
19556              goto switch_break;
19557              case_4: 
19558#line 1440
19559              __cil_tmp33 = vq->used;
19560#line 1440
19561              __cil_tmp34 = & __cil_tmp33->ring[vq->num];
19562#line 1440
19563              __asm__  volatile   ("call __put_user_"
19564                                   "4": "=a" (__ret_pu___0): "0" (__pu_val___0), "c" ((u16 *)__cil_tmp34): "ebx");
19565#line 1440
19566              goto switch_break;
19567              case_8: 
19568#line 1440
19569              __cil_tmp35 = vq->used;
19570#line 1440
19571              __cil_tmp36 = & __cil_tmp35->ring[vq->num];
19572#line 1440
19573              __asm__  volatile   ("call __put_user_"
19574                                   "8": "=a" (__ret_pu___0): "0" (__pu_val___0), "c" ((u16 *)__cil_tmp36): "ebx");
19575#line 1440
19576              goto switch_break;
19577              switch_default: 
19578#line 1440
19579              __cil_tmp37 = vq->used;
19580#line 1440
19581              __cil_tmp38 = & __cil_tmp37->ring[vq->num];
19582#line 1440
19583              __asm__  volatile   ("call __put_user_"
19584                                   "X": "=a" (__ret_pu___0): "0" (__pu_val___0), "c" ((u16 *)__cil_tmp38): "ebx");
19585#line 1440
19586              goto switch_break;
19587            } else {
19588              switch_break: ;
19589            }
19590          }
19591          }
19592        }
19593        }
19594      }
19595      }
19596    }
19597    }
19598#line 1440
19599    r = __ret_pu___0;
19600#line 1441
19601    if (r) {
19602      {
19603#line 1442
19604      while (1) {
19605        while_continue: /* CIL Label */ ;
19606
19607        {
19608#line 1442
19609        while (1) {
19610          while_continue___0: /* CIL Label */ ;
19611          {
19612#line 1442
19613          __cil_tmp39 = ! descriptor___25.enabled;
19614#line 1442
19615          __cil_tmp40 = ! __cil_tmp39;
19616#line 1442
19617          __cil_tmp41 = (long )__cil_tmp40;
19618#line 1442
19619          tmp___8 = __builtin_expect(__cil_tmp41, 0L);
19620          }
19621#line 1442
19622          if (tmp___8) {
19623            {
19624#line 1442
19625            __cil_tmp42 = vq->used;
19626#line 1442
19627            __cil_tmp43 = & __cil_tmp42->ring[vq->num];
19628#line 1442
19629            __cil_tmp44 = (u16 *)__cil_tmp43;
19630#line 1442
19631            __dynamic_pr_debug(& descriptor___25, "Failed to update avail event index at %p: %d\n",
19632                               __cil_tmp44, r);
19633            }
19634          } else {
19635
19636          }
19637#line 1442
19638          goto while_break___0;
19639        }
19640        while_break___7: /* CIL Label */ ;
19641        }
19642
19643        while_break___0: ;
19644#line 1442
19645        if (vq->error_ctx) {
19646          {
19647#line 1442
19648          __cil_tmp45 = vq->error_ctx;
19649#line 1442
19650          eventfd_signal(__cil_tmp45, 1);
19651          }
19652        } else {
19653
19654        }
19655#line 1442
19656        goto while_break;
19657      }
19658      while_break___6: /* CIL Label */ ;
19659      }
19660
19661      while_break: ;
19662#line 1444
19663      return ((bool )0);
19664    } else {
19665
19666    }
19667  } else {
19668    {
19669#line 1433
19670    might_fault();
19671#line 1433
19672    __pu_val = vq->used_flags;
19673    }
19674    {
19675#line 1433
19676    __cil_tmp46 = (int )2UL;
19677#line 1433
19678    if (__cil_tmp46 == 1) {
19679#line 1433
19680      goto case_1___0;
19681    } else {
19682      {
19683#line 1433
19684      __cil_tmp47 = (int )2UL;
19685#line 1433
19686      if (__cil_tmp47 == 2) {
19687#line 1433
19688        goto case_2___0;
19689      } else {
19690        {
19691#line 1433
19692        __cil_tmp48 = (int )2UL;
19693#line 1433
19694        if (__cil_tmp48 == 4) {
19695#line 1433
19696          goto case_4___0;
19697        } else {
19698          {
19699#line 1433
19700          __cil_tmp49 = (int )2UL;
19701#line 1433
19702          if (__cil_tmp49 == 8) {
19703#line 1433
19704            goto case_8___0;
19705          } else {
19706#line 1433
19707            goto switch_default___0;
19708#line 1433
19709            if (0) {
19710              case_1___0: 
19711#line 1433
19712              __cil_tmp50 = vq->used;
19713#line 1433
19714              __asm__  volatile   ("call __put_user_"
19715                                   "1": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp50->flags): "ebx");
19716#line 1433
19717              goto switch_break___0;
19718              case_2___0: 
19719#line 1433
19720              __cil_tmp51 = vq->used;
19721#line 1433
19722              __asm__  volatile   ("call __put_user_"
19723                                   "2": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp51->flags): "ebx");
19724#line 1433
19725              goto switch_break___0;
19726              case_4___0: 
19727#line 1433
19728              __cil_tmp52 = vq->used;
19729#line 1433
19730              __asm__  volatile   ("call __put_user_"
19731                                   "4": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp52->flags): "ebx");
19732#line 1433
19733              goto switch_break___0;
19734              case_8___0: 
19735#line 1433
19736              __cil_tmp53 = vq->used;
19737#line 1433
19738              __asm__  volatile   ("call __put_user_"
19739                                   "8": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp53->flags): "ebx");
19740#line 1433
19741              goto switch_break___0;
19742              switch_default___0: 
19743#line 1433
19744              __cil_tmp54 = vq->used;
19745#line 1433
19746              __asm__  volatile   ("call __put_user_"
19747                                   "X": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp54->flags): "ebx");
19748#line 1433
19749              goto switch_break___0;
19750            } else {
19751              switch_break___0: ;
19752            }
19753          }
19754          }
19755        }
19756        }
19757      }
19758      }
19759    }
19760    }
19761#line 1433
19762    r = __ret_pu;
19763#line 1434
19764    if (r) {
19765      {
19766#line 1435
19767      while (1) {
19768        while_continue___1: /* CIL Label */ ;
19769
19770        {
19771#line 1435
19772        while (1) {
19773          while_continue___2: /* CIL Label */ ;
19774          {
19775#line 1435
19776          __cil_tmp55 = ! descriptor___24.enabled;
19777#line 1435
19778          __cil_tmp56 = ! __cil_tmp55;
19779#line 1435
19780          __cil_tmp57 = (long )__cil_tmp56;
19781#line 1435
19782          tmp___7 = __builtin_expect(__cil_tmp57, 0L);
19783          }
19784#line 1435
19785          if (tmp___7) {
19786            {
19787#line 1435
19788            __cil_tmp58 = vq->used;
19789#line 1435
19790            __cil_tmp59 = & __cil_tmp58->flags;
19791#line 1435
19792            __dynamic_pr_debug(& descriptor___24, "Failed to enable notification at %p: %d\n",
19793                               __cil_tmp59, r);
19794            }
19795          } else {
19796
19797          }
19798#line 1435
19799          goto while_break___2;
19800        }
19801        while_break___9: /* CIL Label */ ;
19802        }
19803
19804        while_break___2: ;
19805#line 1435
19806        if (vq->error_ctx) {
19807          {
19808#line 1435
19809          __cil_tmp60 = vq->error_ctx;
19810#line 1435
19811          eventfd_signal(__cil_tmp60, 1);
19812          }
19813        } else {
19814
19815        }
19816#line 1435
19817        goto while_break___1;
19818      }
19819      while_break___8: /* CIL Label */ ;
19820      }
19821
19822      while_break___1: ;
19823#line 1437
19824      return ((bool )0);
19825    } else {
19826
19827    }
19828  }
19829  {
19830#line 1447
19831  __cil_tmp61 = vq->log_used;
19832#line 1447
19833  __cil_tmp62 = ! __cil_tmp61;
19834#line 1447
19835  __cil_tmp63 = ! __cil_tmp62;
19836#line 1447
19837  __cil_tmp64 = (long )__cil_tmp63;
19838#line 1447
19839  tmp___12 = __builtin_expect(__cil_tmp64, 0L);
19840  }
19841#line 1447
19842  if (tmp___12) {
19843    {
19844#line 1450
19845    __asm__  volatile   ("": : : "memory");
19846#line 1451
19847    tmp___11 = vhost_has_feature(dev, 29);
19848    }
19849#line 1451
19850    if (tmp___11) {
19851#line 1451
19852      __cil_tmp65 = vq->used;
19853#line 1451
19854      __cil_tmp66 = & __cil_tmp65->flags;
19855#line 1451
19856      used = (void *)__cil_tmp66;
19857    } else {
19858#line 1451
19859      __cil_tmp67 = vq->used;
19860#line 1451
19861      __cil_tmp68 = & __cil_tmp67->ring[vq->num];
19862#line 1451
19863      __cil_tmp69 = (u16 *)__cil_tmp68;
19864#line 1451
19865      used = (void *)__cil_tmp69;
19866    }
19867    {
19868#line 1455
19869    __cil_tmp70 = vq->log_base;
19870#line 1455
19871    __cil_tmp71 = vq->used;
19872#line 1455
19873    __cil_tmp72 = (void *)__cil_tmp71;
19874#line 1455
19875    __cil_tmp73 = used - __cil_tmp72;
19876#line 1455
19877    __cil_tmp74 = (u64 )__cil_tmp73;
19878#line 1455
19879    __cil_tmp75 = vq->log_addr;
19880#line 1455
19881    __cil_tmp76 = __cil_tmp75 + __cil_tmp74;
19882#line 1455
19883    __cil_tmp77 = (u64 )2UL;
19884#line 1455
19885    log_write(__cil_tmp70, __cil_tmp76, __cil_tmp77);
19886    }
19887#line 1458
19888    if (vq->log_ctx) {
19889      {
19890#line 1459
19891      __cil_tmp78 = vq->log_ctx;
19892#line 1459
19893      eventfd_signal(__cil_tmp78, 1);
19894      }
19895    } else {
19896
19897    }
19898  } else {
19899
19900  }
19901#line 1463
19902  __asm__  volatile   ("mfence": : : "memory");
19903  {
19904#line 1464
19905  while (1) {
19906    while_continue___3: /* CIL Label */ ;
19907#line 1464
19908    __gu_err = 0;
19909    {
19910#line 1464
19911    __cil_tmp79 = (int )2UL;
19912#line 1464
19913    if (__cil_tmp79 == 1) {
19914#line 1464
19915      goto case_1___1;
19916    } else {
19917      {
19918#line 1464
19919      __cil_tmp80 = (int )2UL;
19920#line 1464
19921      if (__cil_tmp80 == 2) {
19922#line 1464
19923        goto case_2___1;
19924      } else {
19925        {
19926#line 1464
19927        __cil_tmp81 = (int )2UL;
19928#line 1464
19929        if (__cil_tmp81 == 4) {
19930#line 1464
19931          goto case_4___1;
19932        } else {
19933          {
19934#line 1464
19935          __cil_tmp82 = (int )2UL;
19936#line 1464
19937          if (__cil_tmp82 == 8) {
19938#line 1464
19939            goto case_8___1;
19940          } else {
19941#line 1464
19942            goto switch_default___1;
19943#line 1464
19944            if (0) {
19945              case_1___1: 
19946#line 1464
19947              __cil_tmp83 = vq->avail;
19948#line 1464
19949              __cil_tmp84 = & __cil_tmp83->idx;
19950#line 1464
19951              __cil_tmp85 = (struct __large_struct *)__cil_tmp84;
19952#line 1464
19953              __asm__  volatile   ("1:\tmov"
19954                                   "b"
19955                                   " %2,%"
19956                                   "b"
19957                                   "1\n"
19958                                   "2:\n"
19959                                   ".section .fixup,\"ax\"\n"
19960                                   "3:\tmov %3,%0\n"
19961                                   "\txor"
19962                                   "b"
19963                                   " %"
19964                                   "b"
19965                                   "1,%"
19966                                   "b"
19967                                   "1\n"
19968                                   "\tjmp 2b\n"
19969                                   ".previous\n"
19970                                   " .section __ex_table,\"a\"\n"
19971                                   " "
19972                                   ".balign 8"
19973                                   " "
19974                                   "\n"
19975                                   " "
19976                                   ".quad"
19977                                   " "
19978                                   "1b"
19979                                   ","
19980                                   "3b"
19981                                   "\n"
19982                                   " .previous\n": "=r" (__gu_err), "=q" (__gu_val): "m" (*__cil_tmp85),
19983                                   "i" (-14), "0" (__gu_err));
19984#line 1464
19985              goto switch_break___1;
19986              case_2___1: 
19987#line 1464
19988              __cil_tmp86 = vq->avail;
19989#line 1464
19990              __cil_tmp87 = & __cil_tmp86->idx;
19991#line 1464
19992              __cil_tmp88 = (struct __large_struct *)__cil_tmp87;
19993#line 1464
19994              __asm__  volatile   ("1:\tmov"
19995                                   "w"
19996                                   " %2,%"
19997                                   "w"
19998                                   "1\n"
19999                                   "2:\n"
20000                                   ".section .fixup,\"ax\"\n"
20001                                   "3:\tmov %3,%0\n"
20002                                   "\txor"
20003                                   "w"
20004                                   " %"
20005                                   "w"
20006                                   "1,%"
20007                                   "w"
20008                                   "1\n"
20009                                   "\tjmp 2b\n"
20010                                   ".previous\n"
20011                                   " .section __ex_table,\"a\"\n"
20012                                   " "
20013                                   ".balign 8"
20014                                   " "
20015                                   "\n"
20016                                   " "
20017                                   ".quad"
20018                                   " "
20019                                   "1b"
20020                                   ","
20021                                   "3b"
20022                                   "\n"
20023                                   " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp88),
20024                                   "i" (-14), "0" (__gu_err));
20025#line 1464
20026              goto switch_break___1;
20027              case_4___1: 
20028#line 1464
20029              __cil_tmp89 = vq->avail;
20030#line 1464
20031              __cil_tmp90 = & __cil_tmp89->idx;
20032#line 1464
20033              __cil_tmp91 = (struct __large_struct *)__cil_tmp90;
20034#line 1464
20035              __asm__  volatile   ("1:\tmov"
20036                                   "l"
20037                                   " %2,%"
20038                                   "k"
20039                                   "1\n"
20040                                   "2:\n"
20041                                   ".section .fixup,\"ax\"\n"
20042                                   "3:\tmov %3,%0\n"
20043                                   "\txor"
20044                                   "l"
20045                                   " %"
20046                                   "k"
20047                                   "1,%"
20048                                   "k"
20049                                   "1\n"
20050                                   "\tjmp 2b\n"
20051                                   ".previous\n"
20052                                   " .section __ex_table,\"a\"\n"
20053                                   " "
20054                                   ".balign 8"
20055                                   " "
20056                                   "\n"
20057                                   " "
20058                                   ".quad"
20059                                   " "
20060                                   "1b"
20061                                   ","
20062                                   "3b"
20063                                   "\n"
20064                                   " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp91),
20065                                   "i" (-14), "0" (__gu_err));
20066#line 1464
20067              goto switch_break___1;
20068              case_8___1: 
20069#line 1464
20070              __cil_tmp92 = vq->avail;
20071#line 1464
20072              __cil_tmp93 = & __cil_tmp92->idx;
20073#line 1464
20074              __cil_tmp94 = (struct __large_struct *)__cil_tmp93;
20075#line 1464
20076              __asm__  volatile   ("1:\tmov"
20077                                   "q"
20078                                   " %2,%"
20079                                   ""
20080                                   "1\n"
20081                                   "2:\n"
20082                                   ".section .fixup,\"ax\"\n"
20083                                   "3:\tmov %3,%0\n"
20084                                   "\txor"
20085                                   "q"
20086                                   " %"
20087                                   ""
20088                                   "1,%"
20089                                   ""
20090                                   "1\n"
20091                                   "\tjmp 2b\n"
20092                                   ".previous\n"
20093                                   " .section __ex_table,\"a\"\n"
20094                                   " "
20095                                   ".balign 8"
20096                                   " "
20097                                   "\n"
20098                                   " "
20099                                   ".quad"
20100                                   " "
20101                                   "1b"
20102                                   ","
20103                                   "3b"
20104                                   "\n"
20105                                   " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp94),
20106                                   "i" (-14), "0" (__gu_err));
20107#line 1464
20108              goto switch_break___1;
20109              switch_default___1: 
20110              {
20111#line 1464
20112              tmp___13 = __get_user_bad();
20113#line 1464
20114              __gu_val = (unsigned long )tmp___13;
20115              }
20116            } else {
20117              switch_break___1: ;
20118            }
20119          }
20120          }
20121        }
20122        }
20123      }
20124      }
20125    }
20126    }
20127#line 1464
20128    goto while_break___3;
20129  }
20130  while_break___10: /* CIL Label */ ;
20131  }
20132
20133  while_break___3: 
20134#line 1464
20135  avail_idx = (__u16 )__gu_val;
20136#line 1464
20137  r = __gu_err;
20138#line 1465
20139  if (r) {
20140    {
20141#line 1466
20142    while (1) {
20143      while_continue___4: /* CIL Label */ ;
20144
20145      {
20146#line 1466
20147      while (1) {
20148        while_continue___5: /* CIL Label */ ;
20149        {
20150#line 1466
20151        __cil_tmp95 = ! descriptor___26.enabled;
20152#line 1466
20153        __cil_tmp96 = ! __cil_tmp95;
20154#line 1466
20155        __cil_tmp97 = (long )__cil_tmp96;
20156#line 1466
20157        tmp___14 = __builtin_expect(__cil_tmp97, 0L);
20158        }
20159#line 1466
20160        if (tmp___14) {
20161          {
20162#line 1466
20163          __cil_tmp98 = vq->avail;
20164#line 1466
20165          __cil_tmp99 = & __cil_tmp98->idx;
20166#line 1466
20167          __dynamic_pr_debug(& descriptor___26, "Failed to check avail idx at %p: %d\n",
20168                             __cil_tmp99, r);
20169          }
20170        } else {
20171
20172        }
20173#line 1466
20174        goto while_break___5;
20175      }
20176      while_break___12: /* CIL Label */ ;
20177      }
20178
20179      while_break___5: ;
20180#line 1466
20181      if (vq->error_ctx) {
20182        {
20183#line 1466
20184        __cil_tmp100 = vq->error_ctx;
20185#line 1466
20186        eventfd_signal(__cil_tmp100, 1);
20187        }
20188      } else {
20189
20190      }
20191#line 1466
20192      goto while_break___4;
20193    }
20194    while_break___11: /* CIL Label */ ;
20195    }
20196
20197    while_break___4: ;
20198#line 1468
20199    return ((bool )0);
20200  } else {
20201
20202  }
20203  {
20204#line 1471
20205  __cil_tmp101 = vq->avail_idx;
20206#line 1471
20207  __cil_tmp102 = (int )__cil_tmp101;
20208#line 1471
20209  __cil_tmp103 = (int )avail_idx;
20210#line 1471
20211  __cil_tmp104 = __cil_tmp103 != __cil_tmp102;
20212#line 1471
20213  return ((bool )__cil_tmp104);
20214  }
20215}
20216}
20217#line 1485 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
20218static struct _ddebug descriptor___27  __attribute__((__used__, __section__("__verbose"),
20219__aligned__(8)))  =    {"vhost_net", "vhost_disable_notify", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
20220    "Failed to enable notification at %p: %d\n", 1486U, 0U, (char)0};
20221#line 1475 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
20222void vhost_disable_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) 
20223{ int r ;
20224  int __ret_pu ;
20225  __u16 __pu_val ;
20226  long tmp___7 ;
20227  int tmp___8 ;
20228  u16 __cil_tmp8 ;
20229  int __cil_tmp9 ;
20230  u16 __cil_tmp10 ;
20231  int __cil_tmp11 ;
20232  int __cil_tmp12 ;
20233  int __cil_tmp13 ;
20234  int __cil_tmp14 ;
20235  int __cil_tmp15 ;
20236  int __cil_tmp16 ;
20237  struct vring_used *__cil_tmp17 ;
20238  struct vring_used *__cil_tmp18 ;
20239  struct vring_used *__cil_tmp19 ;
20240  struct vring_used *__cil_tmp20 ;
20241  struct vring_used *__cil_tmp21 ;
20242  int __cil_tmp22 ;
20243  int __cil_tmp23 ;
20244  long __cil_tmp24 ;
20245  struct vring_used *__cil_tmp25 ;
20246  __u16 *__cil_tmp26 ;
20247  struct eventfd_ctx *__cil_tmp27 ;
20248
20249  {
20250  {
20251#line 1479
20252  __cil_tmp8 = vq->used_flags;
20253#line 1479
20254  __cil_tmp9 = (int )__cil_tmp8;
20255#line 1479
20256  if (__cil_tmp9 & 1) {
20257#line 1480
20258    return;
20259  } else {
20260
20261  }
20262  }
20263  {
20264#line 1481
20265  __cil_tmp10 = vq->used_flags;
20266#line 1481
20267  __cil_tmp11 = (int )__cil_tmp10;
20268#line 1481
20269  __cil_tmp12 = __cil_tmp11 | 1;
20270#line 1481
20271  vq->used_flags = (u16 )__cil_tmp12;
20272#line 1482
20273  tmp___8 = vhost_has_feature(dev, 29);
20274  }
20275#line 1482
20276  if (tmp___8) {
20277
20278  } else {
20279    {
20280#line 1483
20281    might_fault();
20282#line 1483
20283    __pu_val = vq->used_flags;
20284    }
20285    {
20286#line 1483
20287    __cil_tmp13 = (int )2UL;
20288#line 1483
20289    if (__cil_tmp13 == 1) {
20290#line 1483
20291      goto case_1;
20292    } else {
20293      {
20294#line 1483
20295      __cil_tmp14 = (int )2UL;
20296#line 1483
20297      if (__cil_tmp14 == 2) {
20298#line 1483
20299        goto case_2;
20300      } else {
20301        {
20302#line 1483
20303        __cil_tmp15 = (int )2UL;
20304#line 1483
20305        if (__cil_tmp15 == 4) {
20306#line 1483
20307          goto case_4;
20308        } else {
20309          {
20310#line 1483
20311          __cil_tmp16 = (int )2UL;
20312#line 1483
20313          if (__cil_tmp16 == 8) {
20314#line 1483
20315            goto case_8;
20316          } else {
20317#line 1483
20318            goto switch_default;
20319#line 1483
20320            if (0) {
20321              case_1: 
20322#line 1483
20323              __cil_tmp17 = vq->used;
20324#line 1483
20325              __asm__  volatile   ("call __put_user_"
20326                                   "1": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp17->flags): "ebx");
20327#line 1483
20328              goto switch_break;
20329              case_2: 
20330#line 1483
20331              __cil_tmp18 = vq->used;
20332#line 1483
20333              __asm__  volatile   ("call __put_user_"
20334                                   "2": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp18->flags): "ebx");
20335#line 1483
20336              goto switch_break;
20337              case_4: 
20338#line 1483
20339              __cil_tmp19 = vq->used;
20340#line 1483
20341              __asm__  volatile   ("call __put_user_"
20342                                   "4": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp19->flags): "ebx");
20343#line 1483
20344              goto switch_break;
20345              case_8: 
20346#line 1483
20347              __cil_tmp20 = vq->used;
20348#line 1483
20349              __asm__  volatile   ("call __put_user_"
20350                                   "8": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp20->flags): "ebx");
20351#line 1483
20352              goto switch_break;
20353              switch_default: 
20354#line 1483
20355              __cil_tmp21 = vq->used;
20356#line 1483
20357              __asm__  volatile   ("call __put_user_"
20358                                   "X": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp21->flags): "ebx");
20359#line 1483
20360              goto switch_break;
20361            } else {
20362              switch_break: ;
20363            }
20364          }
20365          }
20366        }
20367        }
20368      }
20369      }
20370    }
20371    }
20372#line 1483
20373    r = __ret_pu;
20374#line 1484
20375    if (r) {
20376      {
20377#line 1485
20378      while (1) {
20379        while_continue: /* CIL Label */ ;
20380
20381        {
20382#line 1485
20383        while (1) {
20384          while_continue___0: /* CIL Label */ ;
20385          {
20386#line 1485
20387          __cil_tmp22 = ! descriptor___27.enabled;
20388#line 1485
20389          __cil_tmp23 = ! __cil_tmp22;
20390#line 1485
20391          __cil_tmp24 = (long )__cil_tmp23;
20392#line 1485
20393          tmp___7 = __builtin_expect(__cil_tmp24, 0L);
20394          }
20395#line 1485
20396          if (tmp___7) {
20397            {
20398#line 1485
20399            __cil_tmp25 = vq->used;
20400#line 1485
20401            __cil_tmp26 = & __cil_tmp25->flags;
20402#line 1485
20403            __dynamic_pr_debug(& descriptor___27, "Failed to enable notification at %p: %d\n",
20404                               __cil_tmp26, r);
20405            }
20406          } else {
20407
20408          }
20409#line 1485
20410          goto while_break___0;
20411        }
20412        while_break___2: /* CIL Label */ ;
20413        }
20414
20415        while_break___0: ;
20416#line 1485
20417        if (vq->error_ctx) {
20418          {
20419#line 1485
20420          __cil_tmp27 = vq->error_ctx;
20421#line 1485
20422          eventfd_signal(__cil_tmp27, 1);
20423          }
20424        } else {
20425
20426        }
20427#line 1485
20428        goto while_break;
20429      }
20430      while_break___1: /* CIL Label */ ;
20431      }
20432
20433      while_break: ;
20434    } else {
20435
20436    }
20437  }
20438#line 1488
20439  return;
20440}
20441}
20442#line 5 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/engine-blast-assert.h"
20443void ldv_blast_assert(void) 
20444{ 
20445
20446  {
20447  ERROR: 
20448#line 6
20449  goto ERROR;
20450}
20451}
20452#line 7 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/engine-blast.h"
20453extern void *ldv_undefined_pointer(void) ;
20454#line 1332 "include/linux/usb.h"
20455struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags )  __attribute__((__ldv_model__)) ;
20456#line 1333
20457void usb_free_urb(struct urb *urb )  __attribute__((__ldv_model__)) ;
20458#line 1377
20459void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
20460                         dma_addr_t *dma )  __attribute__((__ldv_model__)) ;
20461#line 1379
20462void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma )  __attribute__((__ldv_model__)) ;
20463#line 10 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20464void ldv_assume_stop(void)  __attribute__((__ldv_model_inline__)) ;
20465#line 17
20466void ldv_check_final_state(void)  __attribute__((__ldv_model__)) ;
20467#line 22
20468void ldv_assume_stop(void)  __attribute__((__ldv_model_inline__)) ;
20469#line 22 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20470void ldv_assume_stop(void) 
20471{ 
20472
20473  {
20474  LDV_STOP: 
20475#line 23
20476  goto LDV_STOP;
20477}
20478}
20479#line 29 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20480int ldv_urb_state  =    0;
20481#line 31 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20482int ldv_coherent_state  =    0;
20483#line 62
20484void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
20485                         dma_addr_t *dma )  __attribute__((__ldv_model__)) ;
20486#line 62 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20487void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
20488                         dma_addr_t *dma ) 
20489{ void *arbitrary_memory ;
20490  void *tmp___7 ;
20491
20492  {
20493  {
20494#line 64
20495  while (1) {
20496    while_continue: /* CIL Label */ ;
20497    {
20498#line 64
20499    tmp___7 = ldv_undefined_pointer();
20500#line 64
20501    arbitrary_memory = tmp___7;
20502    }
20503#line 64
20504    if (! arbitrary_memory) {
20505#line 64
20506      return ((void *)0);
20507    } else {
20508
20509    }
20510#line 64
20511    ldv_coherent_state = ldv_coherent_state + 1;
20512#line 64
20513    return (arbitrary_memory);
20514#line 64
20515    goto while_break;
20516  }
20517  while_break___0: /* CIL Label */ ;
20518  }
20519
20520  while_break: ;
20521#line 65
20522  return ((void *)0);
20523}
20524}
20525#line 68
20526void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma )  __attribute__((__ldv_model__)) ;
20527#line 68 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20528void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma ) 
20529{ void *__cil_tmp5 ;
20530  unsigned long __cil_tmp6 ;
20531  unsigned long __cil_tmp7 ;
20532  int __cil_tmp8 ;
20533
20534  {
20535  {
20536#line 70
20537  while (1) {
20538    while_continue: /* CIL Label */ ;
20539
20540    {
20541#line 70
20542    __cil_tmp5 = (void *)0;
20543#line 70
20544    __cil_tmp6 = (unsigned long )__cil_tmp5;
20545#line 70
20546    __cil_tmp7 = (unsigned long )addr;
20547#line 70
20548    __cil_tmp8 = __cil_tmp7 != __cil_tmp6;
20549#line 70
20550    if (! __cil_tmp8) {
20551      {
20552#line 70
20553      ldv_assume_stop();
20554      }
20555    } else {
20556
20557    }
20558    }
20559#line 70
20560    if (addr) {
20561#line 70
20562      if (ldv_coherent_state >= 1) {
20563
20564      } else {
20565        {
20566#line 70
20567        ldv_blast_assert();
20568        }
20569      }
20570#line 70
20571      ldv_coherent_state = ldv_coherent_state - 1;
20572    } else {
20573
20574    }
20575#line 70
20576    goto while_break;
20577  }
20578  while_break___0: /* CIL Label */ ;
20579  }
20580
20581  while_break: ;
20582#line 71
20583  return;
20584}
20585}
20586#line 74
20587struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags )  __attribute__((__ldv_model__)) ;
20588#line 74 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20589struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags ) 
20590{ void *arbitrary_memory ;
20591  void *tmp___7 ;
20592  void *__cil_tmp5 ;
20593
20594  {
20595  {
20596#line 75
20597  while (1) {
20598    while_continue: /* CIL Label */ ;
20599    {
20600#line 75
20601    tmp___7 = ldv_undefined_pointer();
20602#line 75
20603    arbitrary_memory = tmp___7;
20604    }
20605#line 75
20606    if (! arbitrary_memory) {
20607      {
20608#line 75
20609      __cil_tmp5 = (void *)0;
20610#line 75
20611      return ((struct urb *)__cil_tmp5);
20612      }
20613    } else {
20614
20615    }
20616#line 75
20617    ldv_urb_state = ldv_urb_state + 1;
20618#line 75
20619    return ((struct urb *)arbitrary_memory);
20620#line 75
20621    goto while_break;
20622  }
20623  while_break___0: /* CIL Label */ ;
20624  }
20625
20626  while_break: ;
20627#line 76
20628  return ((struct urb *)0);
20629}
20630}
20631#line 79
20632void usb_free_urb(struct urb *urb )  __attribute__((__ldv_model__)) ;
20633#line 79 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20634void usb_free_urb(struct urb *urb ) 
20635{ struct urb *__cil_tmp2 ;
20636  unsigned long __cil_tmp3 ;
20637  unsigned long __cil_tmp4 ;
20638  int __cil_tmp5 ;
20639
20640  {
20641  {
20642#line 80
20643  while (1) {
20644    while_continue: /* CIL Label */ ;
20645
20646    {
20647#line 80
20648    __cil_tmp2 = (struct urb *)0;
20649#line 80
20650    __cil_tmp3 = (unsigned long )__cil_tmp2;
20651#line 80
20652    __cil_tmp4 = (unsigned long )urb;
20653#line 80
20654    __cil_tmp5 = __cil_tmp4 != __cil_tmp3;
20655#line 80
20656    if (! __cil_tmp5) {
20657      {
20658#line 80
20659      ldv_assume_stop();
20660      }
20661    } else {
20662
20663    }
20664    }
20665#line 80
20666    if (urb) {
20667#line 80
20668      if (ldv_urb_state >= 1) {
20669
20670      } else {
20671        {
20672#line 80
20673        ldv_blast_assert();
20674        }
20675      }
20676#line 80
20677      ldv_urb_state = ldv_urb_state - 1;
20678    } else {
20679
20680    }
20681#line 80
20682    goto while_break;
20683  }
20684  while_break___0: /* CIL Label */ ;
20685  }
20686
20687  while_break: ;
20688#line 81
20689  return;
20690}
20691}
20692#line 84
20693void ldv_check_final_state(void)  __attribute__((__ldv_model__)) ;
20694#line 84 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20695void ldv_check_final_state(void) 
20696{ 
20697
20698  {
20699#line 86
20700  if (ldv_urb_state == 0) {
20701
20702  } else {
20703    {
20704#line 86
20705    ldv_blast_assert();
20706    }
20707  }
20708#line 88
20709  if (ldv_coherent_state == 0) {
20710
20711  } else {
20712    {
20713#line 88
20714    ldv_blast_assert();
20715    }
20716  }
20717#line 89
20718  return;
20719}
20720}
20721#line 22 "include/linux/err.h"
20722__inline static void * __attribute__((__warn_unused_result__)) ERR_PTR(long error ) 
20723{ 
20724
20725  {
20726#line 24
20727  return ((void *)error);
20728}
20729}
20730#line 23 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
20731__inline static int atomic_read(atomic_t const   *v ) 
20732{ int const   *__cil_tmp2 ;
20733  int volatile   *__cil_tmp3 ;
20734  int volatile   __cil_tmp4 ;
20735
20736  {
20737  {
20738#line 25
20739  __cil_tmp2 = & v->counter;
20740#line 25
20741  __cil_tmp3 = (int volatile   *)__cil_tmp2;
20742#line 25
20743  __cil_tmp4 = *__cil_tmp3;
20744#line 25
20745  return ((int )__cil_tmp4);
20746  }
20747}
20748}
20749#line 43 "include/linux/uio.h"
20750__inline static size_t iov_length(struct iovec  const  *iov , unsigned long nr_segs ) 
20751{ unsigned long seg ;
20752  size_t ret ;
20753  struct iovec  const  *__cil_tmp5 ;
20754  __kernel_size_t __cil_tmp6 ;
20755  size_t __cil_tmp7 ;
20756
20757  {
20758#line 46
20759  ret = (size_t )0;
20760#line 48
20761  seg = 0UL;
20762  {
20763#line 48
20764  while (1) {
20765    while_continue: /* CIL Label */ ;
20766
20767#line 48
20768    if (seg < nr_segs) {
20769
20770    } else {
20771#line 48
20772      goto while_break;
20773    }
20774#line 49
20775    __cil_tmp5 = iov + seg;
20776#line 49
20777    __cil_tmp6 = __cil_tmp5->iov_len;
20778#line 49
20779    __cil_tmp7 = (size_t )__cil_tmp6;
20780#line 49
20781    ret = ret + __cil_tmp7;
20782#line 48
20783    seg = seg + 1UL;
20784  }
20785  while_break___0: /* CIL Label */ ;
20786  }
20787
20788  while_break: ;
20789#line 50
20790  return (ret);
20791}
20792}
20793#line 327 "include/linux/socket.h"
20794extern int memcpy_toiovecend(struct iovec  const  *v , unsigned char *kdata , int offset ,
20795                             int len ) ;
20796#line 2336 "include/linux/fs.h"
20797extern loff_t noop_llseek(struct file *file , loff_t offset , int origin ) ;
20798#line 198 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
20799__inline static void *compat_ptr(compat_uptr_t uptr ) 
20800{ unsigned long __cil_tmp2 ;
20801
20802  {
20803  {
20804#line 200
20805  __cil_tmp2 = (unsigned long )uptr;
20806#line 200
20807  return ((void *)__cil_tmp2);
20808  }
20809}
20810}
20811#line 30 "include/linux/file.h"
20812extern struct file *fget(unsigned int fd ) ;
20813#line 79 "include/linux/module.h"
20814int init_module(void) ;
20815#line 80
20816void cleanup_module(void) ;
20817#line 99
20818extern struct module __this_module ;
20819#line 248 "include/linux/net.h"
20820extern struct socket *sockfd_lookup(int fd , int *err ) ;
20821#line 808 "include/linux/skbuff.h"
20822__inline static struct sk_buff *skb_peek(struct sk_buff_head *list_ ) 
20823{ struct sk_buff *list ;
20824  struct sk_buff *__cil_tmp3 ;
20825  struct sk_buff *__cil_tmp4 ;
20826  unsigned long __cil_tmp5 ;
20827  unsigned long __cil_tmp6 ;
20828  void *__cil_tmp7 ;
20829
20830  {
20831#line 810
20832  __cil_tmp3 = (struct sk_buff *)list_;
20833#line 810
20834  list = __cil_tmp3->next;
20835  {
20836#line 811
20837  __cil_tmp4 = (struct sk_buff *)list_;
20838#line 811
20839  __cil_tmp5 = (unsigned long )__cil_tmp4;
20840#line 811
20841  __cil_tmp6 = (unsigned long )list;
20842#line 811
20843  if (__cil_tmp6 == __cil_tmp5) {
20844#line 812
20845    __cil_tmp7 = (void *)0;
20846#line 812
20847    list = (struct sk_buff *)__cil_tmp7;
20848  } else {
20849
20850  }
20851  }
20852#line 813
20853  return (list);
20854}
20855}
20856#line 58 "include/linux/miscdevice.h"
20857extern int misc_register(struct miscdevice *misc ) ;
20858#line 59
20859extern int misc_deregister(struct miscdevice *misc ) ;
20860#line 96 "include/linux/if_tun.h"
20861extern struct socket *tun_get_socket(struct file * ) ;
20862#line 12 "include/linux/if_macvlan.h"
20863extern struct socket *macvtap_get_socket(struct file * ) ;
20864#line 59 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
20865static int move_iovec_hdr(struct iovec *from , struct iovec *to , size_t len , int iov_count ) 
20866{ int seg ;
20867  size_t size ;
20868  __kernel_size_t _min1 ;
20869  size_t _min2 ;
20870  __kernel_size_t tmp___7 ;
20871  __kernel_size_t __cil_tmp10 ;
20872  void *__cil_tmp11 ;
20873
20874  {
20875#line 62
20876  seg = 0;
20877  {
20878#line 65
20879  while (1) {
20880    while_continue: /* CIL Label */ ;
20881
20882#line 65
20883    if (len) {
20884#line 65
20885      if (seg < iov_count) {
20886
20887      } else {
20888#line 65
20889        goto while_break;
20890      }
20891    } else {
20892#line 65
20893      goto while_break;
20894    }
20895#line 66
20896    _min1 = from->iov_len;
20897#line 66
20898    _min2 = len;
20899#line 66
20900    if (_min1 < _min2) {
20901#line 66
20902      tmp___7 = _min1;
20903    } else {
20904#line 66
20905      tmp___7 = _min2;
20906    }
20907#line 66
20908    size = tmp___7;
20909#line 67
20910    to->iov_base = from->iov_base;
20911#line 68
20912    to->iov_len = size;
20913#line 69
20914    __cil_tmp10 = from->iov_len;
20915#line 69
20916    from->iov_len = __cil_tmp10 - size;
20917#line 70
20918    __cil_tmp11 = from->iov_base;
20919#line 70
20920    from->iov_base = __cil_tmp11 + size;
20921#line 71
20922    len = len - size;
20923#line 72
20924    from = from + 1;
20925#line 73
20926    to = to + 1;
20927#line 74
20928    seg = seg + 1;
20929  }
20930  while_break___0: /* CIL Label */ ;
20931  }
20932
20933  while_break: ;
20934#line 76
20935  return (seg);
20936}
20937}
20938#line 79 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
20939static void copy_iovec_hdr(struct iovec  const  *from , struct iovec *to , size_t len ,
20940                           int iovcount ) 
20941{ int seg ;
20942  size_t size ;
20943  __kernel_size_t _min1 ;
20944  size_t _min2 ;
20945  __kernel_size_t tmp___7 ;
20946  __kernel_size_t __cil_tmp10 ;
20947  void *__cil_tmp11 ;
20948
20949  {
20950#line 82
20951  seg = 0;
20952  {
20953#line 85
20954  while (1) {
20955    while_continue: /* CIL Label */ ;
20956
20957#line 85
20958    if (len) {
20959#line 85
20960      if (seg < iovcount) {
20961
20962      } else {
20963#line 85
20964        goto while_break;
20965      }
20966    } else {
20967#line 85
20968      goto while_break;
20969    }
20970#line 86
20971    __cil_tmp10 = from->iov_len;
20972#line 86
20973    _min1 = (__kernel_size_t )__cil_tmp10;
20974#line 86
20975    _min2 = len;
20976#line 86
20977    if (_min1 < _min2) {
20978#line 86
20979      tmp___7 = _min1;
20980    } else {
20981#line 86
20982      tmp___7 = _min2;
20983    }
20984#line 86
20985    size = tmp___7;
20986#line 87
20987    __cil_tmp11 = from->iov_base;
20988#line 87
20989    to->iov_base = (void *)__cil_tmp11;
20990#line 88
20991    to->iov_len = size;
20992#line 89
20993    len = len - size;
20994#line 90
20995    from = from + 1;
20996#line 91
20997    to = to + 1;
20998#line 92
20999    seg = seg + 1;
21000  }
21001  while_break___0: /* CIL Label */ ;
21002  }
21003
21004  while_break: ;
21005#line 94
21006  return;
21007}
21008}
21009#line 97 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21010static void tx_poll_stop(struct vhost_net *net ) 
21011{ long tmp___7 ;
21012  enum vhost_net_poll_state __cil_tmp3 ;
21013  unsigned int __cil_tmp4 ;
21014  int __cil_tmp5 ;
21015  int __cil_tmp6 ;
21016  int __cil_tmp7 ;
21017  long __cil_tmp8 ;
21018  struct vhost_poll *__cil_tmp9 ;
21019  struct vhost_poll *__cil_tmp10 ;
21020
21021  {
21022  {
21023#line 99
21024  __cil_tmp3 = net->tx_poll_state;
21025#line 99
21026  __cil_tmp4 = (unsigned int )__cil_tmp3;
21027#line 99
21028  __cil_tmp5 = __cil_tmp4 != 1U;
21029#line 99
21030  __cil_tmp6 = ! __cil_tmp5;
21031#line 99
21032  __cil_tmp7 = ! __cil_tmp6;
21033#line 99
21034  __cil_tmp8 = (long )__cil_tmp7;
21035#line 99
21036  tmp___7 = __builtin_expect(__cil_tmp8, 1L);
21037  }
21038#line 99
21039  if (tmp___7) {
21040#line 100
21041    return;
21042  } else {
21043
21044  }
21045  {
21046#line 101
21047  __cil_tmp9 = & net->poll[0];
21048#line 101
21049  __cil_tmp10 = __cil_tmp9 + 1;
21050#line 101
21051  vhost_poll_stop(__cil_tmp10);
21052#line 102
21053  net->tx_poll_state = (enum vhost_net_poll_state )2;
21054  }
21055#line 103
21056  return;
21057}
21058}
21059#line 106 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21060static void tx_poll_start(struct vhost_net *net , struct socket *sock ) 
21061{ long tmp___7 ;
21062  enum vhost_net_poll_state __cil_tmp4 ;
21063  unsigned int __cil_tmp5 ;
21064  int __cil_tmp6 ;
21065  int __cil_tmp7 ;
21066  int __cil_tmp8 ;
21067  long __cil_tmp9 ;
21068  struct vhost_poll *__cil_tmp10 ;
21069  struct vhost_poll *__cil_tmp11 ;
21070  struct file *__cil_tmp12 ;
21071
21072  {
21073  {
21074#line 108
21075  __cil_tmp4 = net->tx_poll_state;
21076#line 108
21077  __cil_tmp5 = (unsigned int )__cil_tmp4;
21078#line 108
21079  __cil_tmp6 = __cil_tmp5 != 2U;
21080#line 108
21081  __cil_tmp7 = ! __cil_tmp6;
21082#line 108
21083  __cil_tmp8 = ! __cil_tmp7;
21084#line 108
21085  __cil_tmp9 = (long )__cil_tmp8;
21086#line 108
21087  tmp___7 = __builtin_expect(__cil_tmp9, 0L);
21088  }
21089#line 108
21090  if (tmp___7) {
21091#line 109
21092    return;
21093  } else {
21094
21095  }
21096  {
21097#line 110
21098  __cil_tmp10 = & net->poll[0];
21099#line 110
21100  __cil_tmp11 = __cil_tmp10 + 1;
21101#line 110
21102  __cil_tmp12 = sock->file;
21103#line 110
21104  vhost_poll_start(__cil_tmp11, __cil_tmp12);
21105#line 111
21106  net->tx_poll_state = (enum vhost_net_poll_state )1;
21107  }
21108#line 112
21109  return;
21110}
21111}
21112#line 135 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21113static bool __warned___29  ;
21114#line 177
21115static void handle_tx(struct vhost_net *net ) ;
21116#line 177 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21117static struct _ddebug descriptor___28  __attribute__((__used__, __section__("__verbose"),
21118__aligned__(8)))  =    {"vhost_net", "handle_tx", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
21119    "Unexpected descriptor format for TX: out %d, int %d\n", 178U, 0U, (char)0};
21120#line 187 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21121static struct _ddebug descriptor___29  __attribute__((__used__, __section__("__verbose"),
21122__aligned__(8)))  =    {"vhost_net", "handle_tx", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
21123    "Unexpected header len for TX: %zd expected %zd\n", 189U, 0U, (char)0};
21124#line 200 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21125static struct _ddebug descriptor___30  __attribute__((__used__, __section__("__verbose"),
21126__aligned__(8)))  =    {"vhost_net", "handle_tx", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
21127    "Truncated TX packet:  len %d != %zd\n", 201U, 0U, (char)0};
21128#line 116 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21129static void handle_tx(struct vhost_net *net ) 
21130{ struct vhost_virtqueue *vq ;
21131  unsigned int out ;
21132  unsigned int in ;
21133  unsigned int s ;
21134  int head ;
21135  struct msghdr msg ;
21136  size_t len ;
21137  size_t total_len ;
21138  int err ;
21139  int wmem ;
21140  size_t hdr_size ;
21141  struct socket *sock ;
21142  void *_________p1 ;
21143  int tmp___7 ;
21144  int tmp___8 ;
21145  long tmp___9 ;
21146  bool tmp___10 ;
21147  int tmp___11 ;
21148  long tmp___12 ;
21149  long tmp___13 ;
21150  int tmp___14 ;
21151  size_t tmp___15 ;
21152  long tmp___16 ;
21153  long tmp___17 ;
21154  long tmp___18 ;
21155  long tmp___19 ;
21156  struct vhost_virtqueue *__cil_tmp28 ;
21157  void **__cil_tmp29 ;
21158  void * volatile  *__cil_tmp30 ;
21159  void * volatile  __cil_tmp31 ;
21160  struct sock *__cil_tmp32 ;
21161  atomic_t *__cil_tmp33 ;
21162  atomic_t const   *__cil_tmp34 ;
21163  struct sock *__cil_tmp35 ;
21164  int __cil_tmp36 ;
21165  struct mutex *__cil_tmp37 ;
21166  struct mutex *__cil_tmp38 ;
21167  struct mutex *__cil_tmp39 ;
21168  struct vhost_dev *__cil_tmp40 ;
21169  struct sock *__cil_tmp41 ;
21170  int __cil_tmp42 ;
21171  int __cil_tmp43 ;
21172  struct vhost_dev *__cil_tmp44 ;
21173  struct iovec *__cil_tmp45 ;
21174  unsigned long __cil_tmp46 ;
21175  unsigned long __cil_tmp47 ;
21176  unsigned int __cil_tmp48 ;
21177  void *__cil_tmp49 ;
21178  struct vhost_log *__cil_tmp50 ;
21179  void *__cil_tmp51 ;
21180  unsigned int *__cil_tmp52 ;
21181  int __cil_tmp53 ;
21182  int __cil_tmp54 ;
21183  int __cil_tmp55 ;
21184  long __cil_tmp56 ;
21185  unsigned int __cil_tmp57 ;
21186  unsigned int __cil_tmp58 ;
21187  struct sock *__cil_tmp59 ;
21188  atomic_t *__cil_tmp60 ;
21189  atomic_t const   *__cil_tmp61 ;
21190  struct sock *__cil_tmp62 ;
21191  int __cil_tmp63 ;
21192  int __cil_tmp64 ;
21193  int __cil_tmp65 ;
21194  unsigned long *__cil_tmp66 ;
21195  unsigned long volatile   *__cil_tmp67 ;
21196  struct vhost_dev *__cil_tmp68 ;
21197  long __cil_tmp69 ;
21198  struct vhost_dev *__cil_tmp70 ;
21199  int __cil_tmp71 ;
21200  int __cil_tmp72 ;
21201  long __cil_tmp73 ;
21202  struct eventfd_ctx *__cil_tmp74 ;
21203  struct iovec *__cil_tmp75 ;
21204  struct iovec *__cil_tmp76 ;
21205  int __cil_tmp77 ;
21206  struct iovec *__cil_tmp78 ;
21207  struct iovec  const  *__cil_tmp79 ;
21208  unsigned long __cil_tmp80 ;
21209  int __cil_tmp81 ;
21210  int __cil_tmp82 ;
21211  long __cil_tmp83 ;
21212  struct iovec *__cil_tmp84 ;
21213  struct iovec  const  *__cil_tmp85 ;
21214  unsigned long __cil_tmp86 ;
21215  struct eventfd_ctx *__cil_tmp87 ;
21216  struct proto_ops  const  *__cil_tmp88 ;
21217  int (*__cil_tmp89)(struct kiocb *iocb , struct socket *sock , struct msghdr *m ,
21218                     size_t total_len ) ;
21219  void *__cil_tmp90 ;
21220  struct kiocb *__cil_tmp91 ;
21221  int __cil_tmp92 ;
21222  int __cil_tmp93 ;
21223  int __cil_tmp94 ;
21224  long __cil_tmp95 ;
21225  size_t __cil_tmp96 ;
21226  int __cil_tmp97 ;
21227  int __cil_tmp98 ;
21228  long __cil_tmp99 ;
21229  struct vhost_dev *__cil_tmp100 ;
21230  unsigned int __cil_tmp101 ;
21231  int __cil_tmp102 ;
21232  int __cil_tmp103 ;
21233  int __cil_tmp104 ;
21234  long __cil_tmp105 ;
21235  struct vhost_poll *__cil_tmp106 ;
21236  struct mutex *__cil_tmp107 ;
21237
21238  {
21239#line 118
21240  __cil_tmp28 = net->dev.vqs;
21241#line 118
21242  vq = __cil_tmp28 + 1;
21243#line 121
21244  msg.msg_name = (void *)0;
21245#line 121
21246  msg.msg_namelen = 0;
21247#line 121
21248  msg.msg_iov = & vq->iov[0];
21249#line 121
21250  msg.msg_iovlen = 0UL;
21251#line 121
21252  msg.msg_control = (void *)0;
21253#line 121
21254  msg.msg_controllen = (__kernel_size_t )0;
21255#line 121
21256  msg.msg_flags = 64U;
21257#line 129
21258  total_len = (size_t )0;
21259#line 135
21260  __cil_tmp29 = & vq->private_data;
21261#line 135
21262  __cil_tmp30 = (void * volatile  *)__cil_tmp29;
21263#line 135
21264  __cil_tmp31 = *__cil_tmp30;
21265#line 135
21266  _________p1 = (void *)__cil_tmp31;
21267  {
21268#line 135
21269  while (1) {
21270    while_continue: /* CIL Label */ ;
21271    {
21272#line 135
21273    tmp___7 = debug_lockdep_rcu_enabled();
21274    }
21275#line 135
21276    if (tmp___7) {
21277#line 135
21278      if (! __warned___29) {
21279        {
21280#line 135
21281        tmp___8 = rcu_read_lock_held();
21282        }
21283      } else {
21284
21285      }
21286    } else {
21287
21288    }
21289#line 135
21290    goto while_break;
21291  }
21292  while_break___7: /* CIL Label */ ;
21293  }
21294
21295  while_break: ;
21296  {
21297#line 135
21298  while (1) {
21299    while_continue___0: /* CIL Label */ ;
21300
21301#line 135
21302    goto while_break___0;
21303  }
21304  while_break___8: /* CIL Label */ ;
21305  }
21306
21307  while_break___0: 
21308#line 135
21309  sock = (struct socket *)_________p1;
21310#line 136
21311  if (! sock) {
21312#line 137
21313    return;
21314  } else {
21315
21316  }
21317  {
21318#line 139
21319  __cil_tmp32 = sock->sk;
21320#line 139
21321  __cil_tmp33 = & __cil_tmp32->sk_wmem_alloc;
21322#line 139
21323  __cil_tmp34 = (atomic_t const   *)__cil_tmp33;
21324#line 139
21325  wmem = atomic_read(__cil_tmp34);
21326  }
21327  {
21328#line 140
21329  __cil_tmp35 = sock->sk;
21330#line 140
21331  __cil_tmp36 = __cil_tmp35->sk_sndbuf;
21332#line 140
21333  if (wmem >= __cil_tmp36) {
21334    {
21335#line 141
21336    __cil_tmp37 = & vq->mutex;
21337#line 141
21338    mutex_lock_nested(__cil_tmp37, 0U);
21339#line 142
21340    tx_poll_start(net, sock);
21341#line 143
21342    __cil_tmp38 = & vq->mutex;
21343#line 143
21344    mutex_unlock(__cil_tmp38);
21345    }
21346#line 144
21347    return;
21348  } else {
21349
21350  }
21351  }
21352  {
21353#line 147
21354  __cil_tmp39 = & vq->mutex;
21355#line 147
21356  mutex_lock_nested(__cil_tmp39, 0U);
21357#line 148
21358  __cil_tmp40 = & net->dev;
21359#line 148
21360  vhost_disable_notify(__cil_tmp40, vq);
21361  }
21362  {
21363#line 150
21364  __cil_tmp41 = sock->sk;
21365#line 150
21366  __cil_tmp42 = __cil_tmp41->sk_sndbuf;
21367#line 150
21368  __cil_tmp43 = __cil_tmp42 / 2;
21369#line 150
21370  if (wmem < __cil_tmp43) {
21371    {
21372#line 151
21373    tx_poll_stop(net);
21374    }
21375  } else {
21376
21377  }
21378  }
21379#line 152
21380  hdr_size = vq->vhost_hlen;
21381  {
21382#line 154
21383  while (1) {
21384    while_continue___1: /* CIL Label */ ;
21385    {
21386#line 155
21387    __cil_tmp44 = & net->dev;
21388#line 155
21389    __cil_tmp45 = & vq->iov[0];
21390#line 155
21391    __cil_tmp46 = 16384UL / 16UL;
21392#line 155
21393    __cil_tmp47 = __cil_tmp46 + 0UL;
21394#line 155
21395    __cil_tmp48 = (unsigned int )__cil_tmp47;
21396#line 155
21397    __cil_tmp49 = (void *)0;
21398#line 155
21399    __cil_tmp50 = (struct vhost_log *)__cil_tmp49;
21400#line 155
21401    __cil_tmp51 = (void *)0;
21402#line 155
21403    __cil_tmp52 = (unsigned int *)__cil_tmp51;
21404#line 155
21405    head = vhost_get_vq_desc(__cil_tmp44, vq, __cil_tmp45, __cil_tmp48, & out, & in,
21406                             __cil_tmp50, __cil_tmp52);
21407#line 160
21408    __cil_tmp53 = head < 0;
21409#line 160
21410    __cil_tmp54 = ! __cil_tmp53;
21411#line 160
21412    __cil_tmp55 = ! __cil_tmp54;
21413#line 160
21414    __cil_tmp56 = (long )__cil_tmp55;
21415#line 160
21416    tmp___9 = __builtin_expect(__cil_tmp56, 0L);
21417    }
21418#line 160
21419    if (tmp___9) {
21420#line 161
21421      goto while_break___1;
21422    } else {
21423
21424    }
21425    {
21426#line 163
21427    __cil_tmp57 = vq->num;
21428#line 163
21429    __cil_tmp58 = (unsigned int )head;
21430#line 163
21431    if (__cil_tmp58 == __cil_tmp57) {
21432      {
21433#line 164
21434      __cil_tmp59 = sock->sk;
21435#line 164
21436      __cil_tmp60 = & __cil_tmp59->sk_wmem_alloc;
21437#line 164
21438      __cil_tmp61 = (atomic_t const   *)__cil_tmp60;
21439#line 164
21440      wmem = atomic_read(__cil_tmp61);
21441      }
21442      {
21443#line 165
21444      __cil_tmp62 = sock->sk;
21445#line 165
21446      __cil_tmp63 = __cil_tmp62->sk_sndbuf;
21447#line 165
21448      __cil_tmp64 = __cil_tmp63 * 3;
21449#line 165
21450      __cil_tmp65 = __cil_tmp64 / 4;
21451#line 165
21452      if (wmem >= __cil_tmp65) {
21453        {
21454#line 166
21455        tx_poll_start(net, sock);
21456#line 167
21457        __cil_tmp66 = & sock->flags;
21458#line 167
21459        __cil_tmp67 = (unsigned long volatile   *)__cil_tmp66;
21460#line 167
21461        set_bit(0U, __cil_tmp67);
21462        }
21463#line 168
21464        goto while_break___1;
21465      } else {
21466
21467      }
21468      }
21469      {
21470#line 170
21471      __cil_tmp68 = & net->dev;
21472#line 170
21473      tmp___10 = vhost_enable_notify(__cil_tmp68, vq);
21474      }
21475#line 170
21476      if (tmp___10) {
21477#line 170
21478        tmp___11 = 1;
21479      } else {
21480#line 170
21481        tmp___11 = 0;
21482      }
21483      {
21484#line 170
21485      __cil_tmp69 = (long )tmp___11;
21486#line 170
21487      tmp___12 = __builtin_expect(__cil_tmp69, 0L);
21488      }
21489#line 170
21490      if (tmp___12) {
21491        {
21492#line 171
21493        __cil_tmp70 = & net->dev;
21494#line 171
21495        vhost_disable_notify(__cil_tmp70, vq);
21496        }
21497#line 172
21498        goto __Cont;
21499      } else {
21500
21501      }
21502#line 174
21503      goto while_break___1;
21504    } else {
21505
21506    }
21507    }
21508#line 176
21509    if (in) {
21510      {
21511#line 177
21512      while (1) {
21513        while_continue___2: /* CIL Label */ ;
21514
21515        {
21516#line 177
21517        while (1) {
21518          while_continue___3: /* CIL Label */ ;
21519          {
21520#line 177
21521          __cil_tmp71 = ! descriptor___28.enabled;
21522#line 177
21523          __cil_tmp72 = ! __cil_tmp71;
21524#line 177
21525          __cil_tmp73 = (long )__cil_tmp72;
21526#line 177
21527          tmp___13 = __builtin_expect(__cil_tmp73, 0L);
21528          }
21529#line 177
21530          if (tmp___13) {
21531            {
21532#line 177
21533            __dynamic_pr_debug(& descriptor___28, "Unexpected descriptor format for TX: out %d, int %d\n",
21534                               out, in);
21535            }
21536          } else {
21537
21538          }
21539#line 177
21540          goto while_break___3;
21541        }
21542        while_break___11: /* CIL Label */ ;
21543        }
21544
21545        while_break___3: ;
21546#line 177
21547        if (vq->error_ctx) {
21548          {
21549#line 177
21550          __cil_tmp74 = vq->error_ctx;
21551#line 177
21552          eventfd_signal(__cil_tmp74, 1);
21553          }
21554        } else {
21555
21556        }
21557#line 177
21558        goto while_break___2;
21559      }
21560      while_break___10: /* CIL Label */ ;
21561      }
21562
21563      while_break___2: ;
21564#line 179
21565      goto while_break___1;
21566    } else {
21567
21568    }
21569    {
21570#line 182
21571    __cil_tmp75 = & vq->iov[0];
21572#line 182
21573    __cil_tmp76 = & vq->hdr[0];
21574#line 182
21575    __cil_tmp77 = (int )out;
21576#line 182
21577    tmp___14 = move_iovec_hdr(__cil_tmp75, __cil_tmp76, hdr_size, __cil_tmp77);
21578#line 182
21579    s = (unsigned int )tmp___14;
21580#line 183
21581    msg.msg_iovlen = (__kernel_size_t )out;
21582#line 184
21583    __cil_tmp78 = & vq->iov[0];
21584#line 184
21585    __cil_tmp79 = (struct iovec  const  *)__cil_tmp78;
21586#line 184
21587    __cil_tmp80 = (unsigned long )out;
21588#line 184
21589    len = iov_length(__cil_tmp79, __cil_tmp80);
21590    }
21591#line 186
21592    if (! len) {
21593      {
21594#line 187
21595      while (1) {
21596        while_continue___4: /* CIL Label */ ;
21597
21598        {
21599#line 187
21600        while (1) {
21601          while_continue___5: /* CIL Label */ ;
21602          {
21603#line 187
21604          __cil_tmp81 = ! descriptor___29.enabled;
21605#line 187
21606          __cil_tmp82 = ! __cil_tmp81;
21607#line 187
21608          __cil_tmp83 = (long )__cil_tmp82;
21609#line 187
21610          tmp___16 = __builtin_expect(__cil_tmp83, 0L);
21611          }
21612#line 187
21613          if (tmp___16) {
21614            {
21615#line 187
21616            __cil_tmp84 = & vq->hdr[0];
21617#line 187
21618            __cil_tmp85 = (struct iovec  const  *)__cil_tmp84;
21619#line 187
21620            __cil_tmp86 = (unsigned long )s;
21621#line 187
21622            tmp___15 = iov_length(__cil_tmp85, __cil_tmp86);
21623#line 187
21624            __dynamic_pr_debug(& descriptor___29, "Unexpected header len for TX: %zd expected %zd\n",
21625                               tmp___15, hdr_size);
21626            }
21627          } else {
21628
21629          }
21630#line 187
21631          goto while_break___5;
21632        }
21633        while_break___13: /* CIL Label */ ;
21634        }
21635
21636        while_break___5: ;
21637#line 187
21638        if (vq->error_ctx) {
21639          {
21640#line 187
21641          __cil_tmp87 = vq->error_ctx;
21642#line 187
21643          eventfd_signal(__cil_tmp87, 1);
21644          }
21645        } else {
21646
21647        }
21648#line 187
21649        goto while_break___4;
21650      }
21651      while_break___12: /* CIL Label */ ;
21652      }
21653
21654      while_break___4: ;
21655#line 190
21656      goto while_break___1;
21657    } else {
21658
21659    }
21660    {
21661#line 193
21662    __cil_tmp88 = sock->ops;
21663#line 193
21664    __cil_tmp89 = __cil_tmp88->sendmsg;
21665#line 193
21666    __cil_tmp90 = (void *)0;
21667#line 193
21668    __cil_tmp91 = (struct kiocb *)__cil_tmp90;
21669#line 193
21670    err = (*__cil_tmp89)(__cil_tmp91, sock, & msg, len);
21671#line 194
21672    __cil_tmp92 = err < 0;
21673#line 194
21674    __cil_tmp93 = ! __cil_tmp92;
21675#line 194
21676    __cil_tmp94 = ! __cil_tmp93;
21677#line 194
21678    __cil_tmp95 = (long )__cil_tmp94;
21679#line 194
21680    tmp___17 = __builtin_expect(__cil_tmp95, 0L);
21681    }
21682#line 194
21683    if (tmp___17) {
21684      {
21685#line 195
21686      vhost_discard_vq_desc(vq, 1);
21687#line 196
21688      tx_poll_start(net, sock);
21689      }
21690#line 197
21691      goto while_break___1;
21692    } else {
21693
21694    }
21695    {
21696#line 199
21697    __cil_tmp96 = (size_t )err;
21698#line 199
21699    if (__cil_tmp96 != len) {
21700      {
21701#line 200
21702      while (1) {
21703        while_continue___6: /* CIL Label */ ;
21704        {
21705#line 200
21706        __cil_tmp97 = ! descriptor___30.enabled;
21707#line 200
21708        __cil_tmp98 = ! __cil_tmp97;
21709#line 200
21710        __cil_tmp99 = (long )__cil_tmp98;
21711#line 200
21712        tmp___18 = __builtin_expect(__cil_tmp99, 0L);
21713        }
21714#line 200
21715        if (tmp___18) {
21716          {
21717#line 200
21718          __dynamic_pr_debug(& descriptor___30, "Truncated TX packet:  len %d != %zd\n",
21719                             err, len);
21720          }
21721        } else {
21722
21723        }
21724#line 200
21725        goto while_break___6;
21726      }
21727      while_break___14: /* CIL Label */ ;
21728      }
21729
21730      while_break___6: ;
21731    } else {
21732
21733    }
21734    }
21735    {
21736#line 202
21737    __cil_tmp100 = & net->dev;
21738#line 202
21739    __cil_tmp101 = (unsigned int )head;
21740#line 202
21741    vhost_add_used_and_signal(__cil_tmp100, vq, __cil_tmp101, 0);
21742#line 203
21743    total_len = total_len + len;
21744#line 204
21745    __cil_tmp102 = total_len >= 524288UL;
21746#line 204
21747    __cil_tmp103 = ! __cil_tmp102;
21748#line 204
21749    __cil_tmp104 = ! __cil_tmp103;
21750#line 204
21751    __cil_tmp105 = (long )__cil_tmp104;
21752#line 204
21753    tmp___19 = __builtin_expect(__cil_tmp105, 0L);
21754    }
21755#line 204
21756    if (tmp___19) {
21757      {
21758#line 205
21759      __cil_tmp106 = & vq->poll;
21760#line 205
21761      vhost_poll_queue(__cil_tmp106);
21762      }
21763#line 206
21764      goto while_break___1;
21765    } else {
21766
21767    }
21768    __Cont: ;
21769  }
21770  while_break___9: /* CIL Label */ ;
21771  }
21772
21773  while_break___1: 
21774  {
21775#line 210
21776  __cil_tmp107 = & vq->mutex;
21777#line 210
21778  mutex_unlock(__cil_tmp107);
21779  }
21780#line 211
21781  return;
21782}
21783}
21784#line 213 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21785static int peek_head_len(struct sock *sk ) 
21786{ struct sk_buff *head ;
21787  int len ;
21788  unsigned long flags ;
21789  raw_spinlock_t *tmp___7 ;
21790  long tmp___8 ;
21791  spinlock_t *__cil_tmp7 ;
21792  struct sk_buff_head *__cil_tmp8 ;
21793  int __cil_tmp9 ;
21794  int __cil_tmp10 ;
21795  long __cil_tmp11 ;
21796  unsigned int __cil_tmp12 ;
21797  spinlock_t *__cil_tmp13 ;
21798
21799  {
21800#line 216
21801  len = 0;
21802  {
21803#line 219
21804  while (1) {
21805    while_continue: /* CIL Label */ ;
21806
21807    {
21808#line 219
21809    while (1) {
21810      while_continue___0: /* CIL Label */ ;
21811      {
21812#line 219
21813      __cil_tmp7 = & sk->sk_receive_queue.lock;
21814#line 219
21815      tmp___7 = spinlock_check(__cil_tmp7);
21816#line 219
21817      flags = _raw_spin_lock_irqsave(tmp___7);
21818      }
21819#line 219
21820      goto while_break___0;
21821    }
21822    while_break___2: /* CIL Label */ ;
21823    }
21824
21825    while_break___0: ;
21826#line 219
21827    goto while_break;
21828  }
21829  while_break___1: /* CIL Label */ ;
21830  }
21831
21832  while_break: 
21833  {
21834#line 220
21835  __cil_tmp8 = & sk->sk_receive_queue;
21836#line 220
21837  head = skb_peek(__cil_tmp8);
21838#line 221
21839  __cil_tmp9 = ! head;
21840#line 221
21841  __cil_tmp10 = ! __cil_tmp9;
21842#line 221
21843  __cil_tmp11 = (long )__cil_tmp10;
21844#line 221
21845  tmp___8 = __builtin_expect(__cil_tmp11, 1L);
21846  }
21847#line 221
21848  if (tmp___8) {
21849#line 222
21850    __cil_tmp12 = head->len;
21851#line 222
21852    len = (int )__cil_tmp12;
21853  } else {
21854
21855  }
21856  {
21857#line 223
21858  __cil_tmp13 = & sk->sk_receive_queue.lock;
21859#line 223
21860  spin_unlock_irqrestore(__cil_tmp13, flags);
21861  }
21862#line 224
21863  return (len);
21864}
21865}
21866#line 264
21867static int get_rx_bufs(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
21868                       int datalen , unsigned int *iovcount , struct vhost_log *log ,
21869                       unsigned int *log_num , unsigned int quota ) ;
21870#line 264 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21871static struct _ddebug descriptor___31  __attribute__((__used__, __section__("__verbose"),
21872__aligned__(8)))  =    {"vhost_net", "get_rx_bufs", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
21873    "unexpected descriptor format for RX: out %d, in %d\n", 265U, 0U, (char)0};
21874#line 237 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21875static int get_rx_bufs(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
21876                       int datalen , unsigned int *iovcount , struct vhost_log *log ,
21877                       unsigned int *log_num , unsigned int quota ) 
21878{ unsigned int out ;
21879  unsigned int in ;
21880  int seg ;
21881  int headcount ;
21882  unsigned int d ;
21883  int r ;
21884  int nlogs ;
21885  long tmp___7 ;
21886  int tmp___8 ;
21887  long tmp___9 ;
21888  int tmp___10 ;
21889  long tmp___11 ;
21890  long tmp___12 ;
21891  size_t tmp___13 ;
21892  long tmp___14 ;
21893  unsigned int __cil_tmp23 ;
21894  int __cil_tmp24 ;
21895  int __cil_tmp25 ;
21896  int __cil_tmp26 ;
21897  long __cil_tmp27 ;
21898  struct vhost_dev *__cil_tmp28 ;
21899  struct iovec *__cil_tmp29 ;
21900  struct iovec *__cil_tmp30 ;
21901  unsigned long __cil_tmp31 ;
21902  unsigned long __cil_tmp32 ;
21903  unsigned long __cil_tmp33 ;
21904  unsigned long __cil_tmp34 ;
21905  unsigned int __cil_tmp35 ;
21906  unsigned int __cil_tmp36 ;
21907  long __cil_tmp37 ;
21908  int __cil_tmp38 ;
21909  int __cil_tmp39 ;
21910  long __cil_tmp40 ;
21911  struct eventfd_ctx *__cil_tmp41 ;
21912  int __cil_tmp42 ;
21913  int __cil_tmp43 ;
21914  long __cil_tmp44 ;
21915  unsigned int __cil_tmp45 ;
21916  unsigned int __cil_tmp46 ;
21917  unsigned int __cil_tmp47 ;
21918  unsigned int __cil_tmp48 ;
21919  struct vring_used_elem *__cil_tmp49 ;
21920  struct iovec *__cil_tmp50 ;
21921  struct iovec *__cil_tmp51 ;
21922  struct iovec  const  *__cil_tmp52 ;
21923  unsigned long __cil_tmp53 ;
21924  struct vring_used_elem *__cil_tmp54 ;
21925  struct vring_used_elem *__cil_tmp55 ;
21926  __u32 __cil_tmp56 ;
21927  __u32 __cil_tmp57 ;
21928  __u32 __cil_tmp58 ;
21929  unsigned int __cil_tmp59 ;
21930  unsigned int __cil_tmp60 ;
21931  int __cil_tmp61 ;
21932  struct vring_used_elem *__cil_tmp62 ;
21933  __u32 __cil_tmp63 ;
21934  int __cil_tmp64 ;
21935  struct vring_used_elem *__cil_tmp65 ;
21936  __u32 __cil_tmp66 ;
21937  int __cil_tmp67 ;
21938  int __cil_tmp68 ;
21939  long __cil_tmp69 ;
21940
21941  {
21942#line 246
21943  seg = 0;
21944#line 247
21945  headcount = 0;
21946#line 249
21947  nlogs = 0;
21948  {
21949#line 251
21950  while (1) {
21951    while_continue: /* CIL Label */ ;
21952
21953#line 251
21954    if (datalen > 0) {
21955      {
21956#line 251
21957      __cil_tmp23 = (unsigned int )headcount;
21958#line 251
21959      if (__cil_tmp23 < quota) {
21960
21961      } else {
21962#line 251
21963        goto while_break;
21964      }
21965      }
21966    } else {
21967#line 251
21968      goto while_break;
21969    }
21970    {
21971#line 252
21972    __cil_tmp24 = seg >= 1024;
21973#line 252
21974    __cil_tmp25 = ! __cil_tmp24;
21975#line 252
21976    __cil_tmp26 = ! __cil_tmp25;
21977#line 252
21978    __cil_tmp27 = (long )__cil_tmp26;
21979#line 252
21980    tmp___7 = __builtin_expect(__cil_tmp27, 0L);
21981    }
21982#line 252
21983    if (tmp___7) {
21984#line 253
21985      r = -105;
21986#line 254
21987      goto err;
21988    } else {
21989
21990    }
21991    {
21992#line 256
21993    __cil_tmp28 = vq->dev;
21994#line 256
21995    __cil_tmp29 = & vq->iov[0];
21996#line 256
21997    __cil_tmp30 = __cil_tmp29 + seg;
21998#line 256
21999    __cil_tmp31 = (unsigned long )seg;
22000#line 256
22001    __cil_tmp32 = 16384UL / 16UL;
22002#line 256
22003    __cil_tmp33 = __cil_tmp32 + 0UL;
22004#line 256
22005    __cil_tmp34 = __cil_tmp33 - __cil_tmp31;
22006#line 256
22007    __cil_tmp35 = (unsigned int )__cil_tmp34;
22008#line 256
22009    tmp___8 = vhost_get_vq_desc(__cil_tmp28, vq, __cil_tmp30, __cil_tmp35, & out,
22010                                & in, log, log_num);
22011#line 256
22012    d = (unsigned int )tmp___8;
22013    }
22014    {
22015#line 259
22016    __cil_tmp36 = vq->num;
22017#line 259
22018    if (d == __cil_tmp36) {
22019#line 260
22020      r = 0;
22021#line 261
22022      goto err;
22023    } else {
22024
22025    }
22026    }
22027#line 263
22028    if (out) {
22029#line 263
22030      tmp___10 = 1;
22031    } else
22032#line 263
22033    if (in <= 0U) {
22034#line 263
22035      tmp___10 = 1;
22036    } else {
22037#line 263
22038      tmp___10 = 0;
22039    }
22040    {
22041#line 263
22042    __cil_tmp37 = (long )tmp___10;
22043#line 263
22044    tmp___11 = __builtin_expect(__cil_tmp37, 0L);
22045    }
22046#line 263
22047    if (tmp___11) {
22048      {
22049#line 264
22050      while (1) {
22051        while_continue___0: /* CIL Label */ ;
22052
22053        {
22054#line 264
22055        while (1) {
22056          while_continue___1: /* CIL Label */ ;
22057          {
22058#line 264
22059          __cil_tmp38 = ! descriptor___31.enabled;
22060#line 264
22061          __cil_tmp39 = ! __cil_tmp38;
22062#line 264
22063          __cil_tmp40 = (long )__cil_tmp39;
22064#line 264
22065          tmp___9 = __builtin_expect(__cil_tmp40, 0L);
22066          }
22067#line 264
22068          if (tmp___9) {
22069            {
22070#line 264
22071            __dynamic_pr_debug(& descriptor___31, "unexpected descriptor format for RX: out %d, in %d\n",
22072                               out, in);
22073            }
22074          } else {
22075
22076          }
22077#line 264
22078          goto while_break___1;
22079        }
22080        while_break___4: /* CIL Label */ ;
22081        }
22082
22083        while_break___1: ;
22084#line 264
22085        if (vq->error_ctx) {
22086          {
22087#line 264
22088          __cil_tmp41 = vq->error_ctx;
22089#line 264
22090          eventfd_signal(__cil_tmp41, 1);
22091          }
22092        } else {
22093
22094        }
22095#line 264
22096        goto while_break___0;
22097      }
22098      while_break___3: /* CIL Label */ ;
22099      }
22100
22101      while_break___0: 
22102#line 266
22103      r = -22;
22104#line 267
22105      goto err;
22106    } else {
22107
22108    }
22109    {
22110#line 269
22111    __cil_tmp42 = ! log;
22112#line 269
22113    __cil_tmp43 = ! __cil_tmp42;
22114#line 269
22115    __cil_tmp44 = (long )__cil_tmp43;
22116#line 269
22117    tmp___12 = __builtin_expect(__cil_tmp44, 0L);
22118    }
22119#line 269
22120    if (tmp___12) {
22121#line 270
22122      __cil_tmp45 = *log_num;
22123#line 270
22124      __cil_tmp46 = (unsigned int )nlogs;
22125#line 270
22126      __cil_tmp47 = __cil_tmp46 + __cil_tmp45;
22127#line 270
22128      nlogs = (int )__cil_tmp47;
22129#line 271
22130      __cil_tmp48 = *log_num;
22131#line 271
22132      log = log + __cil_tmp48;
22133    } else {
22134
22135    }
22136    {
22137#line 273
22138    __cil_tmp49 = heads + headcount;
22139#line 273
22140    __cil_tmp49->id = d;
22141#line 274
22142    __cil_tmp50 = & vq->iov[0];
22143#line 274
22144    __cil_tmp51 = __cil_tmp50 + seg;
22145#line 274
22146    __cil_tmp52 = (struct iovec  const  *)__cil_tmp51;
22147#line 274
22148    __cil_tmp53 = (unsigned long )in;
22149#line 274
22150    tmp___13 = iov_length(__cil_tmp52, __cil_tmp53);
22151#line 274
22152    __cil_tmp54 = heads + headcount;
22153#line 274
22154    __cil_tmp54->len = (__u32 )tmp___13;
22155#line 275
22156    __cil_tmp55 = heads + headcount;
22157#line 275
22158    __cil_tmp56 = __cil_tmp55->len;
22159#line 275
22160    __cil_tmp57 = (__u32 )datalen;
22161#line 275
22162    __cil_tmp58 = __cil_tmp57 - __cil_tmp56;
22163#line 275
22164    datalen = (int )__cil_tmp58;
22165#line 276
22166    headcount = headcount + 1;
22167#line 277
22168    __cil_tmp59 = (unsigned int )seg;
22169#line 277
22170    __cil_tmp60 = __cil_tmp59 + in;
22171#line 277
22172    seg = (int )__cil_tmp60;
22173    }
22174  }
22175  while_break___2: /* CIL Label */ ;
22176  }
22177
22178  while_break: 
22179  {
22180#line 279
22181  __cil_tmp61 = headcount - 1;
22182#line 279
22183  __cil_tmp62 = heads + __cil_tmp61;
22184#line 279
22185  __cil_tmp63 = (__u32 )datalen;
22186#line 279
22187  __cil_tmp64 = headcount - 1;
22188#line 279
22189  __cil_tmp65 = heads + __cil_tmp64;
22190#line 279
22191  __cil_tmp66 = __cil_tmp65->len;
22192#line 279
22193  __cil_tmp62->len = __cil_tmp66 + __cil_tmp63;
22194#line 280
22195  *iovcount = (unsigned int )seg;
22196#line 281
22197  __cil_tmp67 = ! log;
22198#line 281
22199  __cil_tmp68 = ! __cil_tmp67;
22200#line 281
22201  __cil_tmp69 = (long )__cil_tmp68;
22202#line 281
22203  tmp___14 = __builtin_expect(__cil_tmp69, 0L);
22204  }
22205#line 281
22206  if (tmp___14) {
22207#line 282
22208    *log_num = (unsigned int )nlogs;
22209  } else {
22210
22211  }
22212#line 283
22213  return (headcount);
22214  err: 
22215  {
22216#line 285
22217  vhost_discard_vq_desc(vq, headcount);
22218  }
22219#line 286
22220  return (r);
22221}
22222}
22223#line 313 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
22224static bool __warned___30  ;
22225#line 363
22226static void handle_rx(struct vhost_net *net ) ;
22227#line 363 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
22228static struct _ddebug descriptor___32  __attribute__((__used__, __section__("__verbose"),
22229__aligned__(8)))  =    {"vhost_net", "handle_rx", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
22230    "Discarded rx packet:  len %d, expected %zd\n", 364U, 0U, (char)0};
22231#line 371 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
22232static struct _ddebug descriptor___33  __attribute__((__used__, __section__("__verbose"),
22233__aligned__(8)))  =    {"vhost_net", "handle_rx", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
22234    "Unable to write vnet_hdr at addr %p\n", 372U, 0U, (char)0};
22235#line 380 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
22236static struct _ddebug descriptor___34  __attribute__((__used__, __section__("__verbose"),
22237__aligned__(8)))  =    {"vhost_net", "handle_rx", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
22238    "Failed num_buffers write", 380U, 0U, (char)0};
22239#line 291 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
22240static void handle_rx(struct vhost_net *net ) 
22241{ struct vhost_virtqueue *vq ;
22242  unsigned int in ;
22243  unsigned int log ;
22244  struct vhost_log *vq_log ;
22245  struct msghdr msg ;
22246  struct virtio_net_hdr_mrg_rxbuf hdr ;
22247  size_t total_len ;
22248  int err ;
22249  int headcount ;
22250  int mergeable ;
22251  size_t vhost_hlen ;
22252  size_t sock_hlen ;
22253  size_t vhost_len ;
22254  size_t sock_len ;
22255  struct socket *sock ;
22256  void *_________p1 ;
22257  int tmp___7 ;
22258  int tmp___8 ;
22259  int tmp___12 ;
22260  int tmp___13 ;
22261  long tmp___14 ;
22262  int tmp___16 ;
22263  long tmp___17 ;
22264  long tmp___18 ;
22265  bool tmp___19 ;
22266  int tmp___20 ;
22267  long tmp___21 ;
22268  long tmp___22 ;
22269  long tmp___23 ;
22270  long tmp___24 ;
22271  long tmp___25 ;
22272  long tmp___26 ;
22273  int tmp___27 ;
22274  long tmp___28 ;
22275  long tmp___29 ;
22276  int tmp___30 ;
22277  long tmp___31 ;
22278  long tmp___32 ;
22279  int tmp___33 ;
22280  struct vhost_virtqueue *__cil_tmp41 ;
22281  void **__cil_tmp42 ;
22282  void * volatile  *__cil_tmp43 ;
22283  void * volatile  __cil_tmp44 ;
22284  struct mutex *__cil_tmp45 ;
22285  struct vhost_dev *__cil_tmp46 ;
22286  struct vhost_dev *__cil_tmp47 ;
22287  long __cil_tmp48 ;
22288  void *__cil_tmp49 ;
22289  struct vhost_dev *__cil_tmp50 ;
22290  struct sock *__cil_tmp51 ;
22291  int __cil_tmp52 ;
22292  int __cil_tmp53 ;
22293  long __cil_tmp54 ;
22294  struct vring_used_elem *__cil_tmp55 ;
22295  int __cil_tmp56 ;
22296  unsigned int __cil_tmp57 ;
22297  int __cil_tmp58 ;
22298  int __cil_tmp59 ;
22299  int __cil_tmp60 ;
22300  long __cil_tmp61 ;
22301  struct vhost_dev *__cil_tmp62 ;
22302  long __cil_tmp63 ;
22303  struct vhost_dev *__cil_tmp64 ;
22304  int __cil_tmp65 ;
22305  int __cil_tmp66 ;
22306  long __cil_tmp67 ;
22307  struct iovec *__cil_tmp68 ;
22308  struct iovec *__cil_tmp69 ;
22309  int __cil_tmp70 ;
22310  struct iovec *__cil_tmp71 ;
22311  struct iovec  const  *__cil_tmp72 ;
22312  struct iovec *__cil_tmp73 ;
22313  int __cil_tmp74 ;
22314  struct proto_ops  const  *__cil_tmp75 ;
22315  int (*__cil_tmp76)(struct kiocb *iocb , struct socket *sock , struct msghdr *m ,
22316                     size_t total_len , int flags ) ;
22317  void *__cil_tmp77 ;
22318  struct kiocb *__cil_tmp78 ;
22319  size_t __cil_tmp79 ;
22320  int __cil_tmp80 ;
22321  int __cil_tmp81 ;
22322  int __cil_tmp82 ;
22323  long __cil_tmp83 ;
22324  int __cil_tmp84 ;
22325  int __cil_tmp85 ;
22326  long __cil_tmp86 ;
22327  int __cil_tmp87 ;
22328  int __cil_tmp88 ;
22329  long __cil_tmp89 ;
22330  struct iovec *__cil_tmp90 ;
22331  struct iovec  const  *__cil_tmp91 ;
22332  unsigned char *__cil_tmp92 ;
22333  int __cil_tmp93 ;
22334  int __cil_tmp94 ;
22335  int __cil_tmp95 ;
22336  long __cil_tmp96 ;
22337  void *__cil_tmp97 ;
22338  struct eventfd_ctx *__cil_tmp98 ;
22339  int __cil_tmp99 ;
22340  int __cil_tmp100 ;
22341  long __cil_tmp101 ;
22342  struct iovec *__cil_tmp102 ;
22343  struct iovec  const  *__cil_tmp103 ;
22344  unsigned char *__cil_tmp104 ;
22345  struct virtio_net_hdr_mrg_rxbuf *__cil_tmp105 ;
22346  __u16 *__cil_tmp106 ;
22347  unsigned int __cil_tmp107 ;
22348  int __cil_tmp108 ;
22349  int __cil_tmp109 ;
22350  int __cil_tmp110 ;
22351  int __cil_tmp111 ;
22352  long __cil_tmp112 ;
22353  struct eventfd_ctx *__cil_tmp113 ;
22354  struct vhost_dev *__cil_tmp114 ;
22355  struct vring_used_elem *__cil_tmp115 ;
22356  unsigned int __cil_tmp116 ;
22357  int __cil_tmp117 ;
22358  int __cil_tmp118 ;
22359  long __cil_tmp119 ;
22360  u64 __cil_tmp120 ;
22361  int __cil_tmp121 ;
22362  int __cil_tmp122 ;
22363  int __cil_tmp123 ;
22364  long __cil_tmp124 ;
22365  struct vhost_poll *__cil_tmp125 ;
22366  struct mutex *__cil_tmp126 ;
22367
22368  {
22369#line 293
22370  __cil_tmp41 = net->dev.vqs;
22371#line 293
22372  vq = __cil_tmp41 + 0;
22373#line 294
22374  in = in;
22375#line 296
22376  msg.msg_name = (void *)0;
22377#line 296
22378  msg.msg_namelen = 0;
22379#line 296
22380  msg.msg_iov = & vq->iov[0];
22381#line 296
22382  msg.msg_iovlen = 0UL;
22383#line 296
22384  msg.msg_control = (void *)0;
22385#line 296
22386  msg.msg_controllen = (__kernel_size_t )0;
22387#line 296
22388  msg.msg_flags = 64U;
22389#line 304
22390  hdr.hdr.flags = (__u8 )0;
22391#line 304
22392  hdr.hdr.gso_type = (__u8 )0;
22393#line 304
22394  hdr.hdr.hdr_len = (unsigned short)0;
22395#line 304
22396  hdr.hdr.gso_size = (unsigned short)0;
22397#line 304
22398  hdr.hdr.csum_start = (unsigned short)0;
22399#line 304
22400  hdr.hdr.csum_offset = (unsigned short)0;
22401#line 304
22402  hdr.num_buffers = (unsigned short)0;
22403#line 308
22404  total_len = (size_t )0;
22405#line 313
22406  __cil_tmp42 = & vq->private_data;
22407#line 313
22408  __cil_tmp43 = (void * volatile  *)__cil_tmp42;
22409#line 313
22410  __cil_tmp44 = *__cil_tmp43;
22411#line 313
22412  _________p1 = (void *)__cil_tmp44;
22413  {
22414#line 313
22415  while (1) {
22416    while_continue: /* CIL Label */ ;
22417    {
22418#line 313
22419    tmp___7 = debug_lockdep_rcu_enabled();
22420    }
22421#line 313
22422    if (tmp___7) {
22423#line 313
22424      if (! __warned___30) {
22425        {
22426#line 313
22427        tmp___8 = rcu_read_lock_held();
22428        }
22429      } else {
22430
22431      }
22432    } else {
22433
22434    }
22435#line 313
22436    goto while_break;
22437  }
22438  while_break___7: /* CIL Label */ ;
22439  }
22440
22441  while_break: ;
22442  {
22443#line 313
22444  while (1) {
22445    while_continue___2: /* CIL Label */ ;
22446
22447#line 313
22448    goto while_break___0;
22449  }
22450  while_break___8: /* CIL Label */ ;
22451  }
22452
22453  while_break___0: 
22454#line 313
22455  sock = (struct socket *)_________p1;
22456#line 315
22457  if (! sock) {
22458#line 316
22459    return;
22460  } else {
22461
22462  }
22463  {
22464#line 318
22465  __cil_tmp45 = & vq->mutex;
22466#line 318
22467  mutex_lock_nested(__cil_tmp45, 0U);
22468#line 319
22469  __cil_tmp46 = & net->dev;
22470#line 319
22471  vhost_disable_notify(__cil_tmp46, vq);
22472#line 320
22473  vhost_hlen = vq->vhost_hlen;
22474#line 321
22475  sock_hlen = vq->sock_hlen;
22476#line 323
22477  __cil_tmp47 = & net->dev;
22478#line 323
22479  tmp___12 = vhost_has_feature(__cil_tmp47, 26);
22480  }
22481#line 323
22482  if (tmp___12) {
22483#line 323
22484    tmp___13 = 1;
22485  } else {
22486#line 323
22487    tmp___13 = 0;
22488  }
22489  {
22490#line 323
22491  __cil_tmp48 = (long )tmp___13;
22492#line 323
22493  tmp___14 = __builtin_expect(__cil_tmp48, 0L);
22494  }
22495#line 323
22496  if (tmp___14) {
22497#line 323
22498    vq_log = vq->log;
22499  } else {
22500#line 323
22501    __cil_tmp49 = (void *)0;
22502#line 323
22503    vq_log = (struct vhost_log *)__cil_tmp49;
22504  }
22505  {
22506#line 325
22507  __cil_tmp50 = & net->dev;
22508#line 325
22509  mergeable = vhost_has_feature(__cil_tmp50, 15);
22510  }
22511  {
22512#line 327
22513  while (1) {
22514    while_continue___3: /* CIL Label */ ;
22515
22516    while_continue___1: 
22517    {
22518#line 327
22519    __cil_tmp51 = sock->sk;
22520#line 327
22521    tmp___33 = peek_head_len(__cil_tmp51);
22522#line 327
22523    sock_len = (size_t )tmp___33;
22524    }
22525#line 327
22526    if (sock_len) {
22527
22528    } else {
22529#line 327
22530      goto while_break___1;
22531    }
22532    {
22533#line 328
22534    sock_len = sock_len + sock_hlen;
22535#line 329
22536    vhost_len = sock_len + vhost_hlen;
22537#line 330
22538    __cil_tmp52 = ! mergeable;
22539#line 330
22540    __cil_tmp53 = ! __cil_tmp52;
22541#line 330
22542    __cil_tmp54 = (long )__cil_tmp53;
22543#line 330
22544    tmp___17 = __builtin_expect(__cil_tmp54, 1L);
22545    }
22546#line 330
22547    if (tmp___17) {
22548#line 330
22549      tmp___16 = 1024;
22550    } else {
22551#line 330
22552      tmp___16 = 1;
22553    }
22554    {
22555#line 330
22556    __cil_tmp55 = vq->heads;
22557#line 330
22558    __cil_tmp56 = (int )vhost_len;
22559#line 330
22560    __cil_tmp57 = (unsigned int )tmp___16;
22561#line 330
22562    headcount = get_rx_bufs(vq, __cil_tmp55, __cil_tmp56, & in, vq_log, & log, __cil_tmp57);
22563#line 334
22564    __cil_tmp58 = headcount < 0;
22565#line 334
22566    __cil_tmp59 = ! __cil_tmp58;
22567#line 334
22568    __cil_tmp60 = ! __cil_tmp59;
22569#line 334
22570    __cil_tmp61 = (long )__cil_tmp60;
22571#line 334
22572    tmp___18 = __builtin_expect(__cil_tmp61, 0L);
22573    }
22574#line 334
22575    if (tmp___18) {
22576#line 335
22577      goto while_break___1;
22578    } else {
22579
22580    }
22581#line 337
22582    if (! headcount) {
22583      {
22584#line 338
22585      __cil_tmp62 = & net->dev;
22586#line 338
22587      tmp___19 = vhost_enable_notify(__cil_tmp62, vq);
22588      }
22589#line 338
22590      if (tmp___19) {
22591#line 338
22592        tmp___20 = 1;
22593      } else {
22594#line 338
22595        tmp___20 = 0;
22596      }
22597      {
22598#line 338
22599      __cil_tmp63 = (long )tmp___20;
22600#line 338
22601      tmp___21 = __builtin_expect(__cil_tmp63, 0L);
22602      }
22603#line 338
22604      if (tmp___21) {
22605        {
22606#line 341
22607        __cil_tmp64 = & net->dev;
22608#line 341
22609        vhost_disable_notify(__cil_tmp64, vq);
22610        }
22611#line 342
22612        goto while_continue___1;
22613      } else {
22614
22615      }
22616#line 346
22617      goto while_break___1;
22618    } else {
22619
22620    }
22621    {
22622#line 349
22623    __cil_tmp65 = ! vhost_hlen;
22624#line 349
22625    __cil_tmp66 = ! __cil_tmp65;
22626#line 349
22627    __cil_tmp67 = (long )__cil_tmp66;
22628#line 349
22629    tmp___22 = __builtin_expect(__cil_tmp67, 0L);
22630    }
22631#line 349
22632    if (tmp___22) {
22633      {
22634#line 351
22635      __cil_tmp68 = & vq->iov[0];
22636#line 351
22637      __cil_tmp69 = & vq->hdr[0];
22638#line 351
22639      __cil_tmp70 = (int )in;
22640#line 351
22641      move_iovec_hdr(__cil_tmp68, __cil_tmp69, vhost_hlen, __cil_tmp70);
22642      }
22643    } else {
22644      {
22645#line 355
22646      __cil_tmp71 = & vq->iov[0];
22647#line 355
22648      __cil_tmp72 = (struct iovec  const  *)__cil_tmp71;
22649#line 355
22650      __cil_tmp73 = & vq->hdr[0];
22651#line 355
22652      __cil_tmp74 = (int )in;
22653#line 355
22654      copy_iovec_hdr(__cil_tmp72, __cil_tmp73, sock_hlen, __cil_tmp74);
22655      }
22656    }
22657    {
22658#line 356
22659    msg.msg_iovlen = (__kernel_size_t )in;
22660#line 357
22661    __cil_tmp75 = sock->ops;
22662#line 357
22663    __cil_tmp76 = __cil_tmp75->recvmsg;
22664#line 357
22665    __cil_tmp77 = (void *)0;
22666#line 357
22667    __cil_tmp78 = (struct kiocb *)__cil_tmp77;
22668#line 357
22669    err = (*__cil_tmp76)(__cil_tmp78, sock, & msg, sock_len, 96);
22670#line 362
22671    __cil_tmp79 = (size_t )err;
22672#line 362
22673    __cil_tmp80 = __cil_tmp79 != sock_len;
22674#line 362
22675    __cil_tmp81 = ! __cil_tmp80;
22676#line 362
22677    __cil_tmp82 = ! __cil_tmp81;
22678#line 362
22679    __cil_tmp83 = (long )__cil_tmp82;
22680#line 362
22681    tmp___24 = __builtin_expect(__cil_tmp83, 0L);
22682    }
22683#line 362
22684    if (tmp___24) {
22685      {
22686#line 363
22687      while (1) {
22688        while_continue___4: /* CIL Label */ ;
22689        {
22690#line 363
22691        __cil_tmp84 = ! descriptor___32.enabled;
22692#line 363
22693        __cil_tmp85 = ! __cil_tmp84;
22694#line 363
22695        __cil_tmp86 = (long )__cil_tmp85;
22696#line 363
22697        tmp___23 = __builtin_expect(__cil_tmp86, 0L);
22698        }
22699#line 363
22700        if (tmp___23) {
22701          {
22702#line 363
22703          __dynamic_pr_debug(& descriptor___32, "Discarded rx packet:  len %d, expected %zd\n",
22704                             err, sock_len);
22705          }
22706        } else {
22707
22708        }
22709#line 363
22710        goto while_break___2;
22711      }
22712      while_break___10: /* CIL Label */ ;
22713      }
22714
22715      while_break___2: 
22716      {
22717#line 365
22718      vhost_discard_vq_desc(vq, headcount);
22719      }
22720#line 366
22721      goto while_continue___1;
22722    } else {
22723
22724    }
22725    {
22726#line 368
22727    __cil_tmp87 = ! vhost_hlen;
22728#line 368
22729    __cil_tmp88 = ! __cil_tmp87;
22730#line 368
22731    __cil_tmp89 = (long )__cil_tmp88;
22732#line 368
22733    tmp___26 = __builtin_expect(__cil_tmp89, 0L);
22734    }
22735#line 368
22736    if (tmp___26) {
22737      {
22738#line 368
22739      __cil_tmp90 = & vq->hdr[0];
22740#line 368
22741      __cil_tmp91 = (struct iovec  const  *)__cil_tmp90;
22742#line 368
22743      __cil_tmp92 = (unsigned char *)(& hdr);
22744#line 368
22745      __cil_tmp93 = (int )vhost_hlen;
22746#line 368
22747      tmp___27 = memcpy_toiovecend(__cil_tmp91, __cil_tmp92, 0, __cil_tmp93);
22748      }
22749#line 368
22750      if (tmp___27) {
22751        {
22752#line 371
22753        while (1) {
22754          while_continue___5: /* CIL Label */ ;
22755
22756          {
22757#line 371
22758          while (1) {
22759            while_continue___6: /* CIL Label */ ;
22760            {
22761#line 371
22762            __cil_tmp94 = ! descriptor___33.enabled;
22763#line 371
22764            __cil_tmp95 = ! __cil_tmp94;
22765#line 371
22766            __cil_tmp96 = (long )__cil_tmp95;
22767#line 371
22768            tmp___25 = __builtin_expect(__cil_tmp96, 0L);
22769            }
22770#line 371
22771            if (tmp___25) {
22772              {
22773#line 371
22774              __cil_tmp97 = vq->iov[0].iov_base;
22775#line 371
22776              __dynamic_pr_debug(& descriptor___33, "Unable to write vnet_hdr at addr %p\n",
22777                                 __cil_tmp97);
22778              }
22779            } else {
22780
22781            }
22782#line 371
22783            goto while_break___4;
22784          }
22785          while_break___12: /* CIL Label */ ;
22786          }
22787
22788          while_break___4: ;
22789#line 371
22790          if (vq->error_ctx) {
22791            {
22792#line 371
22793            __cil_tmp98 = vq->error_ctx;
22794#line 371
22795            eventfd_signal(__cil_tmp98, 1);
22796            }
22797          } else {
22798
22799          }
22800#line 371
22801          goto while_break___3;
22802        }
22803        while_break___11: /* CIL Label */ ;
22804        }
22805
22806        while_break___3: ;
22807#line 373
22808        goto while_break___1;
22809      } else {
22810
22811      }
22812    } else {
22813
22814    }
22815    {
22816#line 376
22817    __cil_tmp99 = ! mergeable;
22818#line 376
22819    __cil_tmp100 = ! __cil_tmp99;
22820#line 376
22821    __cil_tmp101 = (long )__cil_tmp100;
22822#line 376
22823    tmp___29 = __builtin_expect(__cil_tmp101, 1L);
22824    }
22825#line 376
22826    if (tmp___29) {
22827      {
22828#line 376
22829      __cil_tmp102 = & vq->hdr[0];
22830#line 376
22831      __cil_tmp103 = (struct iovec  const  *)__cil_tmp102;
22832#line 376
22833      __cil_tmp104 = (unsigned char *)(& headcount);
22834#line 376
22835      __cil_tmp105 = (struct virtio_net_hdr_mrg_rxbuf *)0;
22836#line 376
22837      __cil_tmp106 = & __cil_tmp105->num_buffers;
22838#line 376
22839      __cil_tmp107 = (unsigned int )__cil_tmp106;
22840#line 376
22841      __cil_tmp108 = (int )__cil_tmp107;
22842#line 376
22843      __cil_tmp109 = (int )2UL;
22844#line 376
22845      tmp___30 = memcpy_toiovecend(__cil_tmp103, __cil_tmp104, __cil_tmp108, __cil_tmp109);
22846      }
22847#line 376
22848      if (tmp___30) {
22849        {
22850#line 380
22851        while (1) {
22852          while_continue___7: /* CIL Label */ ;
22853
22854          {
22855#line 380
22856          while (1) {
22857            while_continue___8: /* CIL Label */ ;
22858            {
22859#line 380
22860            __cil_tmp110 = ! descriptor___34.enabled;
22861#line 380
22862            __cil_tmp111 = ! __cil_tmp110;
22863#line 380
22864            __cil_tmp112 = (long )__cil_tmp111;
22865#line 380
22866            tmp___28 = __builtin_expect(__cil_tmp112, 0L);
22867            }
22868#line 380
22869            if (tmp___28) {
22870              {
22871#line 380
22872              __dynamic_pr_debug(& descriptor___34, "Failed num_buffers write");
22873              }
22874            } else {
22875
22876            }
22877#line 380
22878            goto while_break___6;
22879          }
22880          while_break___14: /* CIL Label */ ;
22881          }
22882
22883          while_break___6: ;
22884#line 380
22885          if (vq->error_ctx) {
22886            {
22887#line 380
22888            __cil_tmp113 = vq->error_ctx;
22889#line 380
22890            eventfd_signal(__cil_tmp113, 1);
22891            }
22892          } else {
22893
22894          }
22895#line 380
22896          goto while_break___5;
22897        }
22898        while_break___13: /* CIL Label */ ;
22899        }
22900
22901        while_break___5: 
22902        {
22903#line 381
22904        vhost_discard_vq_desc(vq, headcount);
22905        }
22906#line 382
22907        goto while_break___1;
22908      } else {
22909
22910      }
22911    } else {
22912
22913    }
22914    {
22915#line 384
22916    __cil_tmp114 = & net->dev;
22917#line 384
22918    __cil_tmp115 = vq->heads;
22919#line 384
22920    __cil_tmp116 = (unsigned int )headcount;
22921#line 384
22922    vhost_add_used_and_signal_n(__cil_tmp114, vq, __cil_tmp115, __cil_tmp116);
22923#line 386
22924    __cil_tmp117 = ! vq_log;
22925#line 386
22926    __cil_tmp118 = ! __cil_tmp117;
22927#line 386
22928    __cil_tmp119 = (long )__cil_tmp118;
22929#line 386
22930    tmp___31 = __builtin_expect(__cil_tmp119, 0L);
22931    }
22932#line 386
22933    if (tmp___31) {
22934      {
22935#line 387
22936      __cil_tmp120 = (u64 )vhost_len;
22937#line 387
22938      vhost_log_write(vq, vq_log, log, __cil_tmp120);
22939      }
22940    } else {
22941
22942    }
22943    {
22944#line 388
22945    total_len = total_len + vhost_len;
22946#line 389
22947    __cil_tmp121 = total_len >= 524288UL;
22948#line 389
22949    __cil_tmp122 = ! __cil_tmp121;
22950#line 389
22951    __cil_tmp123 = ! __cil_tmp122;
22952#line 389
22953    __cil_tmp124 = (long )__cil_tmp123;
22954#line 389
22955    tmp___32 = __builtin_expect(__cil_tmp124, 0L);
22956    }
22957#line 389
22958    if (tmp___32) {
22959      {
22960#line 390
22961      __cil_tmp125 = & vq->poll;
22962#line 390
22963      vhost_poll_queue(__cil_tmp125);
22964      }
22965#line 391
22966      goto while_break___1;
22967    } else {
22968
22969    }
22970  }
22971  while_break___9: /* CIL Label */ ;
22972  }
22973
22974  while_break___1: 
22975  {
22976#line 395
22977  __cil_tmp126 = & vq->mutex;
22978#line 395
22979  mutex_unlock(__cil_tmp126);
22980  }
22981#line 396
22982  return;
22983}
22984}
22985#line 398 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
22986static void handle_tx_kick(struct vhost_work *work ) 
22987{ struct vhost_virtqueue *vq ;
22988  struct vhost_work  const  *__mptr ;
22989  struct vhost_net *net ;
22990  struct vhost_dev  const  *__mptr___0 ;
22991  struct vhost_virtqueue *__cil_tmp6 ;
22992  struct vhost_work *__cil_tmp7 ;
22993  unsigned int __cil_tmp8 ;
22994  char *__cil_tmp9 ;
22995  char *__cil_tmp10 ;
22996  struct vhost_dev *__cil_tmp11 ;
22997  struct vhost_net *__cil_tmp12 ;
22998  struct vhost_dev *__cil_tmp13 ;
22999  unsigned int __cil_tmp14 ;
23000  char *__cil_tmp15 ;
23001  char *__cil_tmp16 ;
23002
23003  {
23004  {
23005#line 400
23006  __mptr = (struct vhost_work  const  *)work;
23007#line 400
23008  __cil_tmp6 = (struct vhost_virtqueue *)0;
23009#line 400
23010  __cil_tmp7 = & __cil_tmp6->poll.work;
23011#line 400
23012  __cil_tmp8 = (unsigned int )__cil_tmp7;
23013#line 400
23014  __cil_tmp9 = (char *)__mptr;
23015#line 400
23016  __cil_tmp10 = __cil_tmp9 - __cil_tmp8;
23017#line 400
23018  vq = (struct vhost_virtqueue *)__cil_tmp10;
23019#line 402
23020  __cil_tmp11 = vq->dev;
23021#line 402
23022  __mptr___0 = (struct vhost_dev  const  *)__cil_tmp11;
23023#line 402
23024  __cil_tmp12 = (struct vhost_net *)0;
23025#line 402
23026  __cil_tmp13 = & __cil_tmp12->dev;
23027#line 402
23028  __cil_tmp14 = (unsigned int )__cil_tmp13;
23029#line 402
23030  __cil_tmp15 = (char *)__mptr___0;
23031#line 402
23032  __cil_tmp16 = __cil_tmp15 - __cil_tmp14;
23033#line 402
23034  net = (struct vhost_net *)__cil_tmp16;
23035#line 404
23036  handle_tx(net);
23037  }
23038#line 405
23039  return;
23040}
23041}
23042#line 407 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23043static void handle_rx_kick(struct vhost_work *work ) 
23044{ struct vhost_virtqueue *vq ;
23045  struct vhost_work  const  *__mptr ;
23046  struct vhost_net *net ;
23047  struct vhost_dev  const  *__mptr___0 ;
23048  struct vhost_virtqueue *__cil_tmp6 ;
23049  struct vhost_work *__cil_tmp7 ;
23050  unsigned int __cil_tmp8 ;
23051  char *__cil_tmp9 ;
23052  char *__cil_tmp10 ;
23053  struct vhost_dev *__cil_tmp11 ;
23054  struct vhost_net *__cil_tmp12 ;
23055  struct vhost_dev *__cil_tmp13 ;
23056  unsigned int __cil_tmp14 ;
23057  char *__cil_tmp15 ;
23058  char *__cil_tmp16 ;
23059
23060  {
23061  {
23062#line 409
23063  __mptr = (struct vhost_work  const  *)work;
23064#line 409
23065  __cil_tmp6 = (struct vhost_virtqueue *)0;
23066#line 409
23067  __cil_tmp7 = & __cil_tmp6->poll.work;
23068#line 409
23069  __cil_tmp8 = (unsigned int )__cil_tmp7;
23070#line 409
23071  __cil_tmp9 = (char *)__mptr;
23072#line 409
23073  __cil_tmp10 = __cil_tmp9 - __cil_tmp8;
23074#line 409
23075  vq = (struct vhost_virtqueue *)__cil_tmp10;
23076#line 411
23077  __cil_tmp11 = vq->dev;
23078#line 411
23079  __mptr___0 = (struct vhost_dev  const  *)__cil_tmp11;
23080#line 411
23081  __cil_tmp12 = (struct vhost_net *)0;
23082#line 411
23083  __cil_tmp13 = & __cil_tmp12->dev;
23084#line 411
23085  __cil_tmp14 = (unsigned int )__cil_tmp13;
23086#line 411
23087  __cil_tmp15 = (char *)__mptr___0;
23088#line 411
23089  __cil_tmp16 = __cil_tmp15 - __cil_tmp14;
23090#line 411
23091  net = (struct vhost_net *)__cil_tmp16;
23092#line 413
23093  handle_rx(net);
23094  }
23095#line 414
23096  return;
23097}
23098}
23099#line 416 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23100static void handle_tx_net(struct vhost_work *work ) 
23101{ struct vhost_net *net ;
23102  struct vhost_work  const  *__mptr ;
23103  struct vhost_net *__cil_tmp4 ;
23104  struct vhost_work *__cil_tmp5 ;
23105  unsigned int __cil_tmp6 ;
23106  char *__cil_tmp7 ;
23107  char *__cil_tmp8 ;
23108
23109  {
23110  {
23111#line 418
23112  __mptr = (struct vhost_work  const  *)work;
23113#line 418
23114  __cil_tmp4 = (struct vhost_net *)0;
23115#line 418
23116  __cil_tmp5 = & __cil_tmp4->poll[1].work;
23117#line 418
23118  __cil_tmp6 = (unsigned int )__cil_tmp5;
23119#line 418
23120  __cil_tmp7 = (char *)__mptr;
23121#line 418
23122  __cil_tmp8 = __cil_tmp7 - __cil_tmp6;
23123#line 418
23124  net = (struct vhost_net *)__cil_tmp8;
23125#line 420
23126  handle_tx(net);
23127  }
23128#line 421
23129  return;
23130}
23131}
23132#line 423 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23133static void handle_rx_net(struct vhost_work *work ) 
23134{ struct vhost_net *net ;
23135  struct vhost_work  const  *__mptr ;
23136  struct vhost_net *__cil_tmp4 ;
23137  struct vhost_work *__cil_tmp5 ;
23138  unsigned int __cil_tmp6 ;
23139  char *__cil_tmp7 ;
23140  char *__cil_tmp8 ;
23141
23142  {
23143  {
23144#line 425
23145  __mptr = (struct vhost_work  const  *)work;
23146#line 425
23147  __cil_tmp4 = (struct vhost_net *)0;
23148#line 425
23149  __cil_tmp5 = & __cil_tmp4->poll[0].work;
23150#line 425
23151  __cil_tmp6 = (unsigned int )__cil_tmp5;
23152#line 425
23153  __cil_tmp7 = (char *)__mptr;
23154#line 425
23155  __cil_tmp8 = __cil_tmp7 - __cil_tmp6;
23156#line 425
23157  net = (struct vhost_net *)__cil_tmp8;
23158#line 427
23159  handle_rx(net);
23160  }
23161#line 428
23162  return;
23163}
23164}
23165#line 430 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23166static int vhost_net_open(struct inode *inode , struct file *f ) 
23167{ struct vhost_net *n ;
23168  void *tmp___7 ;
23169  struct vhost_dev *dev ;
23170  int r ;
23171  long tmp___8 ;
23172  struct vhost_virtqueue *__cil_tmp8 ;
23173  void const   *__cil_tmp9 ;
23174  struct vhost_poll *__cil_tmp10 ;
23175  struct vhost_poll *__cil_tmp11 ;
23176  struct vhost_poll *__cil_tmp12 ;
23177  struct vhost_poll *__cil_tmp13 ;
23178
23179  {
23180  {
23181#line 432
23182  tmp___7 = kmalloc(35000UL, 208U);
23183#line 432
23184  n = (struct vhost_net *)tmp___7;
23185  }
23186#line 436
23187  if (! n) {
23188#line 437
23189    return (-12);
23190  } else {
23191
23192  }
23193  {
23194#line 439
23195  dev = & n->dev;
23196#line 440
23197  n->vqs[1].handle_kick = & handle_tx_kick;
23198#line 441
23199  n->vqs[0].handle_kick = & handle_rx_kick;
23200#line 442
23201  __cil_tmp8 = & n->vqs[0];
23202#line 442
23203  tmp___8 = vhost_dev_init(dev, __cil_tmp8, 2);
23204#line 442
23205  r = (int )tmp___8;
23206  }
23207#line 443
23208  if (r < 0) {
23209    {
23210#line 444
23211    __cil_tmp9 = (void const   *)n;
23212#line 444
23213    kfree(__cil_tmp9);
23214    }
23215#line 445
23216    return (r);
23217  } else {
23218
23219  }
23220  {
23221#line 448
23222  __cil_tmp10 = & n->poll[0];
23223#line 448
23224  __cil_tmp11 = __cil_tmp10 + 1;
23225#line 448
23226  vhost_poll_init(__cil_tmp11, & handle_tx_net, 4UL, dev);
23227#line 449
23228  __cil_tmp12 = & n->poll[0];
23229#line 449
23230  __cil_tmp13 = __cil_tmp12 + 0;
23231#line 449
23232  vhost_poll_init(__cil_tmp13, & handle_rx_net, 1UL, dev);
23233#line 450
23234  n->tx_poll_state = (enum vhost_net_poll_state )0;
23235#line 452
23236  f->private_data = (void *)n;
23237  }
23238#line 454
23239  return (0);
23240}
23241}
23242#line 457 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23243static void vhost_net_disable_vq(struct vhost_net *n , struct vhost_virtqueue *vq ) 
23244{ void *__cil_tmp3 ;
23245  struct vhost_virtqueue *__cil_tmp4 ;
23246  struct vhost_virtqueue *__cil_tmp5 ;
23247  unsigned long __cil_tmp6 ;
23248  unsigned long __cil_tmp7 ;
23249  struct vhost_poll *__cil_tmp8 ;
23250  struct vhost_poll *__cil_tmp9 ;
23251
23252  {
23253  {
23254#line 460
23255  __cil_tmp3 = vq->private_data;
23256#line 460
23257  if (! __cil_tmp3) {
23258#line 461
23259    return;
23260  } else {
23261
23262  }
23263  }
23264  {
23265#line 462
23266  __cil_tmp4 = & n->vqs[0];
23267#line 462
23268  __cil_tmp5 = __cil_tmp4 + 1;
23269#line 462
23270  __cil_tmp6 = (unsigned long )__cil_tmp5;
23271#line 462
23272  __cil_tmp7 = (unsigned long )vq;
23273#line 462
23274  if (__cil_tmp7 == __cil_tmp6) {
23275    {
23276#line 463
23277    tx_poll_stop(n);
23278#line 464
23279    n->tx_poll_state = (enum vhost_net_poll_state )0;
23280    }
23281  } else {
23282    {
23283#line 466
23284    __cil_tmp8 = & n->poll[0];
23285#line 466
23286    __cil_tmp9 = __cil_tmp8 + 0;
23287#line 466
23288    vhost_poll_stop(__cil_tmp9);
23289    }
23290  }
23291  }
23292#line 467
23293  return;
23294}
23295}
23296#line 474 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23297static bool __warned___31  ;
23298#line 469 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23299static void vhost_net_enable_vq(struct vhost_net *n , struct vhost_virtqueue *vq ) 
23300{ struct socket *sock ;
23301  int tmp___7 ;
23302  int tmp___8 ;
23303  struct lockdep_map *__cil_tmp6 ;
23304  int __cil_tmp7 ;
23305  int __cil_tmp8 ;
23306  void *__cil_tmp9 ;
23307  struct vhost_virtqueue *__cil_tmp10 ;
23308  struct vhost_virtqueue *__cil_tmp11 ;
23309  unsigned long __cil_tmp12 ;
23310  unsigned long __cil_tmp13 ;
23311  struct vhost_poll *__cil_tmp14 ;
23312  struct vhost_poll *__cil_tmp15 ;
23313  struct file *__cil_tmp16 ;
23314
23315  {
23316  {
23317#line 474
23318  while (1) {
23319    while_continue: /* CIL Label */ ;
23320    {
23321#line 474
23322    tmp___7 = debug_lockdep_rcu_enabled();
23323    }
23324#line 474
23325    if (tmp___7) {
23326#line 474
23327      if (! __warned___31) {
23328        {
23329#line 474
23330        __cil_tmp6 = & vq->mutex.dep_map;
23331#line 474
23332        tmp___8 = lock_is_held(__cil_tmp6);
23333        }
23334#line 474
23335        if (tmp___8) {
23336
23337        } else {
23338          {
23339#line 474
23340          __warned___31 = (bool )1;
23341#line 474
23342          __cil_tmp7 = (int const   )475;
23343#line 474
23344          __cil_tmp8 = (int )__cil_tmp7;
23345#line 474
23346          lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
23347                                  __cil_tmp8);
23348          }
23349        }
23350      } else {
23351
23352      }
23353    } else {
23354
23355    }
23356#line 474
23357    goto while_break;
23358  }
23359  while_break___0: /* CIL Label */ ;
23360  }
23361
23362  while_break: 
23363#line 474
23364  __cil_tmp9 = vq->private_data;
23365#line 474
23366  sock = (struct socket *)__cil_tmp9;
23367#line 476
23368  if (! sock) {
23369#line 477
23370    return;
23371  } else {
23372
23373  }
23374  {
23375#line 478
23376  __cil_tmp10 = & n->vqs[0];
23377#line 478
23378  __cil_tmp11 = __cil_tmp10 + 1;
23379#line 478
23380  __cil_tmp12 = (unsigned long )__cil_tmp11;
23381#line 478
23382  __cil_tmp13 = (unsigned long )vq;
23383#line 478
23384  if (__cil_tmp13 == __cil_tmp12) {
23385    {
23386#line 479
23387    n->tx_poll_state = (enum vhost_net_poll_state )2;
23388#line 480
23389    tx_poll_start(n, sock);
23390    }
23391  } else {
23392    {
23393#line 482
23394    __cil_tmp14 = & n->poll[0];
23395#line 482
23396    __cil_tmp15 = __cil_tmp14 + 0;
23397#line 482
23398    __cil_tmp16 = sock->file;
23399#line 482
23400    vhost_poll_start(__cil_tmp15, __cil_tmp16);
23401    }
23402  }
23403  }
23404#line 483
23405  return;
23406}
23407}
23408#line 491 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23409static bool __warned___32  ;
23410#line 485 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23411static struct socket *vhost_net_stop_vq(struct vhost_net *n , struct vhost_virtqueue *vq ) 
23412{ struct socket *sock ;
23413  int tmp___7 ;
23414  int tmp___8 ;
23415  struct mutex *__cil_tmp6 ;
23416  struct lockdep_map *__cil_tmp7 ;
23417  int __cil_tmp8 ;
23418  int __cil_tmp9 ;
23419  void *__cil_tmp10 ;
23420  struct mutex *__cil_tmp11 ;
23421
23422  {
23423  {
23424#line 490
23425  __cil_tmp6 = & vq->mutex;
23426#line 490
23427  mutex_lock_nested(__cil_tmp6, 0U);
23428  }
23429  {
23430#line 491
23431  while (1) {
23432    while_continue: /* CIL Label */ ;
23433    {
23434#line 491
23435    tmp___7 = debug_lockdep_rcu_enabled();
23436    }
23437#line 491
23438    if (tmp___7) {
23439#line 491
23440      if (! __warned___32) {
23441        {
23442#line 491
23443        __cil_tmp7 = & vq->mutex.dep_map;
23444#line 491
23445        tmp___8 = lock_is_held(__cil_tmp7);
23446        }
23447#line 491
23448        if (tmp___8) {
23449
23450        } else {
23451          {
23452#line 491
23453          __warned___32 = (bool )1;
23454#line 491
23455          __cil_tmp8 = (int const   )492;
23456#line 491
23457          __cil_tmp9 = (int )__cil_tmp8;
23458#line 491
23459          lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
23460                                  __cil_tmp9);
23461          }
23462        }
23463      } else {
23464
23465      }
23466    } else {
23467
23468    }
23469#line 491
23470    goto while_break;
23471  }
23472  while_break___0: /* CIL Label */ ;
23473  }
23474
23475  while_break: 
23476  {
23477#line 491
23478  __cil_tmp10 = vq->private_data;
23479#line 491
23480  sock = (struct socket *)__cil_tmp10;
23481#line 493
23482  vhost_net_disable_vq(n, vq);
23483#line 494
23484  __asm__  volatile   ("": : : "memory");
23485#line 494
23486  vq->private_data = (void *)0;
23487#line 495
23488  __cil_tmp11 = & vq->mutex;
23489#line 495
23490  mutex_unlock(__cil_tmp11);
23491  }
23492#line 496
23493  return (sock);
23494}
23495}
23496#line 499 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23497static void vhost_net_stop(struct vhost_net *n , struct socket **tx_sock , struct socket **rx_sock ) 
23498{ struct vhost_virtqueue *__cil_tmp4 ;
23499  struct vhost_virtqueue *__cil_tmp5 ;
23500  struct vhost_virtqueue *__cil_tmp6 ;
23501  struct vhost_virtqueue *__cil_tmp7 ;
23502
23503  {
23504  {
23505#line 502
23506  __cil_tmp4 = & n->vqs[0];
23507#line 502
23508  __cil_tmp5 = __cil_tmp4 + 1;
23509#line 502
23510  *tx_sock = vhost_net_stop_vq(n, __cil_tmp5);
23511#line 503
23512  __cil_tmp6 = & n->vqs[0];
23513#line 503
23514  __cil_tmp7 = __cil_tmp6 + 0;
23515#line 503
23516  *rx_sock = vhost_net_stop_vq(n, __cil_tmp7);
23517  }
23518#line 504
23519  return;
23520}
23521}
23522#line 506 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23523static void vhost_net_flush_vq(struct vhost_net *n , int index ) 
23524{ struct vhost_poll *__cil_tmp3 ;
23525  struct vhost_poll *__cil_tmp4 ;
23526  struct vhost_virtqueue *__cil_tmp5 ;
23527  struct vhost_virtqueue *__cil_tmp6 ;
23528  struct vhost_poll *__cil_tmp7 ;
23529
23530  {
23531  {
23532#line 508
23533  __cil_tmp3 = & n->poll[0];
23534#line 508
23535  __cil_tmp4 = __cil_tmp3 + index;
23536#line 508
23537  vhost_poll_flush(__cil_tmp4);
23538#line 509
23539  __cil_tmp5 = n->dev.vqs;
23540#line 509
23541  __cil_tmp6 = __cil_tmp5 + index;
23542#line 509
23543  __cil_tmp7 = & __cil_tmp6->poll;
23544#line 509
23545  vhost_poll_flush(__cil_tmp7);
23546  }
23547#line 510
23548  return;
23549}
23550}
23551#line 512 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23552static void vhost_net_flush(struct vhost_net *n ) 
23553{ 
23554
23555  {
23556  {
23557#line 514
23558  vhost_net_flush_vq(n, 1);
23559#line 515
23560  vhost_net_flush_vq(n, 0);
23561  }
23562#line 516
23563  return;
23564}
23565}
23566#line 518 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23567static int vhost_net_release(struct inode *inode , struct file *f ) 
23568{ struct vhost_net *n ;
23569  struct socket *tx_sock ;
23570  struct socket *rx_sock ;
23571  void *__cil_tmp6 ;
23572  struct vhost_dev *__cil_tmp7 ;
23573  struct file *__cil_tmp8 ;
23574  struct file *__cil_tmp9 ;
23575  void const   *__cil_tmp10 ;
23576
23577  {
23578  {
23579#line 520
23580  __cil_tmp6 = f->private_data;
23581#line 520
23582  n = (struct vhost_net *)__cil_tmp6;
23583#line 524
23584  vhost_net_stop(n, & tx_sock, & rx_sock);
23585#line 525
23586  vhost_net_flush(n);
23587#line 526
23588  __cil_tmp7 = & n->dev;
23589#line 526
23590  vhost_dev_cleanup(__cil_tmp7);
23591  }
23592#line 527
23593  if (tx_sock) {
23594    {
23595#line 528
23596    __cil_tmp8 = tx_sock->file;
23597#line 528
23598    fput(__cil_tmp8);
23599    }
23600  } else {
23601
23602  }
23603#line 529
23604  if (rx_sock) {
23605    {
23606#line 530
23607    __cil_tmp9 = rx_sock->file;
23608#line 530
23609    fput(__cil_tmp9);
23610    }
23611  } else {
23612
23613  }
23614  {
23615#line 533
23616  vhost_net_flush(n);
23617#line 534
23618  __cil_tmp10 = (void const   *)n;
23619#line 534
23620  kfree(__cil_tmp10);
23621  }
23622#line 535
23623  return (0);
23624}
23625}
23626#line 538 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23627static struct socket *get_raw_socket(int fd ) 
23628{ struct __anonstruct_uaddr_348 uaddr ;
23629  int uaddr_len ;
23630  int r ;
23631  struct socket *sock ;
23632  struct socket *tmp___7 ;
23633  void *tmp___8 ;
23634  void *tmp___9 ;
23635  void *tmp ;
23636  void *tmp___10 ;
23637  void *tmp___11 ;
23638  void *tmp___12 ;
23639  struct sock *__cil_tmp13 ;
23640  unsigned int __cil_tmp14 ;
23641  struct proto_ops  const  *__cil_tmp15 ;
23642  int (*__cil_tmp16)(struct socket *sock , struct sockaddr *addr , int *sockaddr_len ,
23643                     int peer ) ;
23644  struct sockaddr_ll *__cil_tmp17 ;
23645  struct sockaddr *__cil_tmp18 ;
23646  int __cil_tmp19 ;
23647  struct file *__cil_tmp20 ;
23648  long __cil_tmp21 ;
23649
23650  {
23651  {
23652#line 544
23653  uaddr_len = (int )52UL;
23654#line 545
23655  tmp___7 = sockfd_lookup(fd, & r);
23656#line 545
23657  sock = tmp___7;
23658  }
23659#line 547
23660  if (! sock) {
23661    {
23662#line 548
23663    tmp___11 = (void *)ERR_PTR(-88L);
23664#line 548
23665    tmp = tmp___11;
23666#line 548
23667    tmp___8 = tmp;
23668    }
23669#line 548
23670    return ((struct socket *)tmp___8);
23671  } else {
23672
23673  }
23674  {
23675#line 551
23676  __cil_tmp13 = sock->sk;
23677#line 551
23678  __cil_tmp14 = __cil_tmp13->sk_type;
23679#line 551
23680  if (__cil_tmp14 != 3U) {
23681#line 552
23682    r = -94;
23683#line 553
23684    goto err;
23685  } else {
23686
23687  }
23688  }
23689  {
23690#line 556
23691  __cil_tmp15 = sock->ops;
23692#line 556
23693  __cil_tmp16 = __cil_tmp15->getname;
23694#line 556
23695  __cil_tmp17 = & uaddr.sa;
23696#line 556
23697  __cil_tmp18 = (struct sockaddr *)__cil_tmp17;
23698#line 556
23699  r = (*__cil_tmp16)(sock, __cil_tmp18, & uaddr_len, 0);
23700  }
23701#line 558
23702  if (r) {
23703#line 559
23704    goto err;
23705  } else {
23706
23707  }
23708  {
23709#line 561
23710  __cil_tmp19 = (int )uaddr.sa.sll_family;
23711#line 561
23712  if (__cil_tmp19 != 17) {
23713#line 562
23714    r = -96;
23715#line 563
23716    goto err;
23717  } else {
23718
23719  }
23720  }
23721#line 565
23722  return (sock);
23723  err: 
23724  {
23725#line 567
23726  __cil_tmp20 = sock->file;
23727#line 567
23728  fput(__cil_tmp20);
23729#line 568
23730  __cil_tmp21 = (long )r;
23731#line 568
23732  tmp___12 = (void *)ERR_PTR(__cil_tmp21);
23733#line 568
23734  tmp___10 = tmp___12;
23735#line 568
23736  tmp___9 = tmp___10;
23737  }
23738#line 568
23739  return ((struct socket *)tmp___9);
23740}
23741}
23742#line 571 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23743static struct socket *get_tap_socket(int fd ) 
23744{ struct file *file ;
23745  struct file *tmp___7 ;
23746  struct socket *sock ;
23747  void *tmp___8 ;
23748  long tmp___9 ;
23749  long tmp___10 ;
23750  void *tmp ;
23751  long tmp___11 ;
23752  long tmp___12 ;
23753  void *tmp___13 ;
23754  long tmp___14 ;
23755  long tmp___15 ;
23756  unsigned int __cil_tmp14 ;
23757  void const   *__cil_tmp15 ;
23758  void const   *__cil_tmp16 ;
23759
23760  {
23761  {
23762#line 573
23763  __cil_tmp14 = (unsigned int )fd;
23764#line 573
23765  tmp___7 = fget(__cil_tmp14);
23766#line 573
23767  file = tmp___7;
23768  }
23769#line 576
23770  if (! file) {
23771    {
23772#line 577
23773    tmp___13 = (void *)ERR_PTR(-9L);
23774#line 577
23775    tmp = tmp___13;
23776#line 577
23777    tmp___8 = tmp;
23778    }
23779#line 577
23780    return ((struct socket *)tmp___8);
23781  } else {
23782
23783  }
23784  {
23785#line 578
23786  sock = tun_get_socket(file);
23787#line 579
23788  __cil_tmp15 = (void const   *)sock;
23789#line 579
23790  tmp___14 = (long )IS_ERR(__cil_tmp15);
23791#line 579
23792  tmp___11 = tmp___14;
23793#line 579
23794  tmp___9 = tmp___11;
23795  }
23796#line 579
23797  if (tmp___9) {
23798
23799  } else {
23800#line 580
23801    return (sock);
23802  }
23803  {
23804#line 581
23805  sock = macvtap_get_socket(file);
23806#line 582
23807  __cil_tmp16 = (void const   *)sock;
23808#line 582
23809  tmp___15 = (long )IS_ERR(__cil_tmp16);
23810#line 582
23811  tmp___12 = tmp___15;
23812#line 582
23813  tmp___10 = tmp___12;
23814  }
23815#line 582
23816  if (tmp___10) {
23817    {
23818#line 583
23819    fput(file);
23820    }
23821  } else {
23822
23823  }
23824#line 584
23825  return (sock);
23826}
23827}
23828#line 587 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23829static struct socket *get_socket(int fd ) 
23830{ struct socket *sock ;
23831  long tmp___7 ;
23832  long tmp___8 ;
23833  void *tmp___9 ;
23834  long tmp ;
23835  long tmp___10 ;
23836  void *tmp___11 ;
23837  long tmp___12 ;
23838  long tmp___13 ;
23839  void *tmp___14 ;
23840  void *__cil_tmp12 ;
23841  void const   *__cil_tmp13 ;
23842  void const   *__cil_tmp14 ;
23843
23844  {
23845#line 592
23846  if (fd == -1) {
23847    {
23848#line 593
23849    __cil_tmp12 = (void *)0;
23850#line 593
23851    return ((struct socket *)__cil_tmp12);
23852    }
23853  } else {
23854
23855  }
23856  {
23857#line 594
23858  sock = get_raw_socket(fd);
23859#line 595
23860  __cil_tmp13 = (void const   *)sock;
23861#line 595
23862  tmp___12 = (long )IS_ERR(__cil_tmp13);
23863#line 595
23864  tmp = tmp___12;
23865#line 595
23866  tmp___7 = tmp;
23867  }
23868#line 595
23869  if (tmp___7) {
23870
23871  } else {
23872#line 596
23873    return (sock);
23874  }
23875  {
23876#line 597
23877  sock = get_tap_socket(fd);
23878#line 598
23879  __cil_tmp14 = (void const   *)sock;
23880#line 598
23881  tmp___13 = (long )IS_ERR(__cil_tmp14);
23882#line 598
23883  tmp___10 = tmp___13;
23884#line 598
23885  tmp___8 = tmp___10;
23886  }
23887#line 598
23888  if (tmp___8) {
23889
23890  } else {
23891#line 599
23892    return (sock);
23893  }
23894  {
23895#line 600
23896  tmp___14 = (void *)ERR_PTR(-88L);
23897#line 600
23898  tmp___11 = tmp___14;
23899#line 600
23900  tmp___9 = tmp___11;
23901  }
23902#line 600
23903  return ((struct socket *)tmp___9);
23904}
23905}
23906#line 633 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23907static bool __warned___33  ;
23908#line 603 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23909static long vhost_net_set_backend(struct vhost_net *n , unsigned int index , int fd ) 
23910{ struct socket *sock ;
23911  struct socket *oldsock ;
23912  struct vhost_virtqueue *vq ;
23913  int r ;
23914  long tmp___7 ;
23915  int tmp___8 ;
23916  long tmp___9 ;
23917  long tmp___10 ;
23918  int tmp___11 ;
23919  int tmp___12 ;
23920  long tmp ;
23921  long tmp___13 ;
23922  long tmp___14 ;
23923  long tmp___15 ;
23924  struct mutex *__cil_tmp18 ;
23925  struct vhost_dev *__cil_tmp19 ;
23926  struct vhost_virtqueue *__cil_tmp20 ;
23927  struct mutex *__cil_tmp21 ;
23928  void const   *__cil_tmp22 ;
23929  void const   *__cil_tmp23 ;
23930  struct lockdep_map *__cil_tmp24 ;
23931  int __cil_tmp25 ;
23932  int __cil_tmp26 ;
23933  void *__cil_tmp27 ;
23934  unsigned long __cil_tmp28 ;
23935  unsigned long __cil_tmp29 ;
23936  struct mutex *__cil_tmp30 ;
23937  int __cil_tmp31 ;
23938  struct file *__cil_tmp32 ;
23939  struct mutex *__cil_tmp33 ;
23940  struct mutex *__cil_tmp34 ;
23941  struct mutex *__cil_tmp35 ;
23942
23943  {
23944  {
23945#line 609
23946  __cil_tmp18 = & n->dev.mutex;
23947#line 609
23948  mutex_lock_nested(__cil_tmp18, 0U);
23949#line 610
23950  __cil_tmp19 = & n->dev;
23951#line 610
23952  tmp___7 = vhost_dev_check_owner(__cil_tmp19);
23953#line 610
23954  r = (int )tmp___7;
23955  }
23956#line 611
23957  if (r) {
23958#line 612
23959    goto err;
23960  } else {
23961
23962  }
23963#line 614
23964  if (index >= 2U) {
23965#line 615
23966    r = -105;
23967#line 616
23968    goto err;
23969  } else {
23970
23971  }
23972  {
23973#line 618
23974  __cil_tmp20 = & n->vqs[0];
23975#line 618
23976  vq = __cil_tmp20 + index;
23977#line 619
23978  __cil_tmp21 = & vq->mutex;
23979#line 619
23980  mutex_lock_nested(__cil_tmp21, 0U);
23981#line 622
23982  tmp___8 = vhost_vq_access_ok(vq);
23983  }
23984#line 622
23985  if (tmp___8) {
23986
23987  } else {
23988#line 623
23989    r = -14;
23990#line 624
23991    goto err_vq;
23992  }
23993  {
23994#line 626
23995  sock = get_socket(fd);
23996#line 627
23997  __cil_tmp22 = (void const   *)sock;
23998#line 627
23999  tmp___14 = (long )IS_ERR(__cil_tmp22);
24000#line 627
24001  tmp = tmp___14;
24002#line 627
24003  tmp___10 = tmp;
24004  }
24005#line 627
24006  if (tmp___10) {
24007    {
24008#line 628
24009    __cil_tmp23 = (void const   *)sock;
24010#line 628
24011    tmp___15 = (long )PTR_ERR(__cil_tmp23);
24012#line 628
24013    tmp___13 = tmp___15;
24014#line 628
24015    tmp___9 = tmp___13;
24016#line 628
24017    r = (int )tmp___9;
24018    }
24019#line 629
24020    goto err_vq;
24021  } else {
24022
24023  }
24024  {
24025#line 633
24026  while (1) {
24027    while_continue: /* CIL Label */ ;
24028    {
24029#line 633
24030    tmp___11 = debug_lockdep_rcu_enabled();
24031    }
24032#line 633
24033    if (tmp___11) {
24034#line 633
24035      if (! __warned___33) {
24036        {
24037#line 633
24038        __cil_tmp24 = & vq->mutex.dep_map;
24039#line 633
24040        tmp___12 = lock_is_held(__cil_tmp24);
24041        }
24042#line 633
24043        if (tmp___12) {
24044
24045        } else {
24046          {
24047#line 633
24048          __warned___33 = (bool )1;
24049#line 633
24050          __cil_tmp25 = (int const   )634;
24051#line 633
24052          __cil_tmp26 = (int )__cil_tmp25;
24053#line 633
24054          lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
24055                                  __cil_tmp26);
24056          }
24057        }
24058      } else {
24059
24060      }
24061    } else {
24062
24063    }
24064#line 633
24065    goto while_break;
24066  }
24067  while_break___0: /* CIL Label */ ;
24068  }
24069
24070  while_break: 
24071#line 633
24072  __cil_tmp27 = vq->private_data;
24073#line 633
24074  oldsock = (struct socket *)__cil_tmp27;
24075  {
24076#line 635
24077  __cil_tmp28 = (unsigned long )oldsock;
24078#line 635
24079  __cil_tmp29 = (unsigned long )sock;
24080#line 635
24081  if (__cil_tmp29 != __cil_tmp28) {
24082    {
24083#line 636
24084    vhost_net_disable_vq(n, vq);
24085#line 637
24086    __asm__  volatile   ("": : : "memory");
24087#line 637
24088    vq->private_data = (void *)sock;
24089#line 638
24090    vhost_net_enable_vq(n, vq);
24091    }
24092  } else {
24093
24094  }
24095  }
24096  {
24097#line 641
24098  __cil_tmp30 = & vq->mutex;
24099#line 641
24100  mutex_unlock(__cil_tmp30);
24101  }
24102#line 643
24103  if (oldsock) {
24104    {
24105#line 644
24106    __cil_tmp31 = (int )index;
24107#line 644
24108    vhost_net_flush_vq(n, __cil_tmp31);
24109#line 645
24110    __cil_tmp32 = oldsock->file;
24111#line 645
24112    fput(__cil_tmp32);
24113    }
24114  } else {
24115
24116  }
24117  {
24118#line 648
24119  __cil_tmp33 = & n->dev.mutex;
24120#line 648
24121  mutex_unlock(__cil_tmp33);
24122  }
24123#line 649
24124  return (0L);
24125  err_vq: 
24126  {
24127#line 652
24128  __cil_tmp34 = & vq->mutex;
24129#line 652
24130  mutex_unlock(__cil_tmp34);
24131  }
24132  err: 
24133  {
24134#line 654
24135  __cil_tmp35 = & n->dev.mutex;
24136#line 654
24137  mutex_unlock(__cil_tmp35);
24138  }
24139#line 655
24140  return ((long )r);
24141}
24142}
24143#line 658 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24144static long vhost_net_reset_owner(struct vhost_net *n ) 
24145{ struct socket *tx_sock ;
24146  struct socket *rx_sock ;
24147  long err ;
24148  void *__cil_tmp5 ;
24149  void *__cil_tmp6 ;
24150  struct mutex *__cil_tmp7 ;
24151  struct vhost_dev *__cil_tmp8 ;
24152  struct vhost_dev *__cil_tmp9 ;
24153  struct mutex *__cil_tmp10 ;
24154  struct file *__cil_tmp11 ;
24155  struct file *__cil_tmp12 ;
24156
24157  {
24158  {
24159#line 660
24160  __cil_tmp5 = (void *)0;
24161#line 660
24162  tx_sock = (struct socket *)__cil_tmp5;
24163#line 661
24164  __cil_tmp6 = (void *)0;
24165#line 661
24166  rx_sock = (struct socket *)__cil_tmp6;
24167#line 664
24168  __cil_tmp7 = & n->dev.mutex;
24169#line 664
24170  mutex_lock_nested(__cil_tmp7, 0U);
24171#line 665
24172  __cil_tmp8 = & n->dev;
24173#line 665
24174  err = vhost_dev_check_owner(__cil_tmp8);
24175  }
24176#line 666
24177  if (err) {
24178#line 667
24179    goto done;
24180  } else {
24181
24182  }
24183  {
24184#line 668
24185  vhost_net_stop(n, & tx_sock, & rx_sock);
24186#line 669
24187  vhost_net_flush(n);
24188#line 670
24189  __cil_tmp9 = & n->dev;
24190#line 670
24191  err = vhost_dev_reset_owner(__cil_tmp9);
24192  }
24193  done: 
24194  {
24195#line 672
24196  __cil_tmp10 = & n->dev.mutex;
24197#line 672
24198  mutex_unlock(__cil_tmp10);
24199  }
24200#line 673
24201  if (tx_sock) {
24202    {
24203#line 674
24204    __cil_tmp11 = tx_sock->file;
24205#line 674
24206    fput(__cil_tmp11);
24207    }
24208  } else {
24209
24210  }
24211#line 675
24212  if (rx_sock) {
24213    {
24214#line 676
24215    __cil_tmp12 = rx_sock->file;
24216#line 676
24217    fput(__cil_tmp12);
24218    }
24219  } else {
24220
24221  }
24222#line 677
24223  return (err);
24224}
24225}
24226#line 680 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24227static int vhost_net_set_features(struct vhost_net *n , u64 features ) 
24228{ size_t vhost_hlen ;
24229  size_t sock_hlen ;
24230  size_t hdr_len ;
24231  int i ;
24232  int tmp___7 ;
24233  int __cil_tmp8 ;
24234  unsigned long long __cil_tmp9 ;
24235  int __cil_tmp10 ;
24236  unsigned long long __cil_tmp11 ;
24237  struct mutex *__cil_tmp12 ;
24238  int __cil_tmp13 ;
24239  unsigned long long __cil_tmp14 ;
24240  struct vhost_dev *__cil_tmp15 ;
24241  struct mutex *__cil_tmp16 ;
24242  struct mutex *__cil_tmp17 ;
24243  struct mutex *__cil_tmp18 ;
24244  struct mutex *__cil_tmp19 ;
24245
24246  {
24247  {
24248#line 685
24249  __cil_tmp8 = 1 << 15;
24250#line 685
24251  __cil_tmp9 = (unsigned long long )__cil_tmp8;
24252#line 685
24253  if (features & __cil_tmp9) {
24254#line 685
24255    hdr_len = 12UL;
24256  } else {
24257#line 685
24258    hdr_len = 10UL;
24259  }
24260  }
24261  {
24262#line 688
24263  __cil_tmp10 = 1 << 27;
24264#line 688
24265  __cil_tmp11 = (unsigned long long )__cil_tmp10;
24266#line 688
24267  if (features & __cil_tmp11) {
24268#line 690
24269    vhost_hlen = hdr_len;
24270#line 691
24271    sock_hlen = (size_t )0;
24272  } else {
24273#line 694
24274    vhost_hlen = (size_t )0;
24275#line 695
24276    sock_hlen = hdr_len;
24277  }
24278  }
24279  {
24280#line 697
24281  __cil_tmp12 = & n->dev.mutex;
24282#line 697
24283  mutex_lock_nested(__cil_tmp12, 0U);
24284  }
24285  {
24286#line 698
24287  __cil_tmp13 = 1 << 26;
24288#line 698
24289  __cil_tmp14 = (unsigned long long )__cil_tmp13;
24290#line 698
24291  if (features & __cil_tmp14) {
24292    {
24293#line 698
24294    __cil_tmp15 = & n->dev;
24295#line 698
24296    tmp___7 = vhost_log_access_ok(__cil_tmp15);
24297    }
24298#line 698
24299    if (tmp___7) {
24300
24301    } else {
24302      {
24303#line 700
24304      __cil_tmp16 = & n->dev.mutex;
24305#line 700
24306      mutex_unlock(__cil_tmp16);
24307      }
24308#line 701
24309      return (-14);
24310    }
24311  } else {
24312
24313  }
24314  }
24315#line 703
24316  n->dev.acked_features = (unsigned int )features;
24317#line 704
24318  __asm__  volatile   ("": : : "memory");
24319#line 705
24320  i = 0;
24321  {
24322#line 705
24323  while (1) {
24324    while_continue: /* CIL Label */ ;
24325
24326#line 705
24327    if (i < 2) {
24328
24329    } else {
24330#line 705
24331      goto while_break;
24332    }
24333    {
24334#line 706
24335    __cil_tmp17 = & n->vqs[i].mutex;
24336#line 706
24337    mutex_lock_nested(__cil_tmp17, 0U);
24338#line 707
24339    n->vqs[i].vhost_hlen = vhost_hlen;
24340#line 708
24341    n->vqs[i].sock_hlen = sock_hlen;
24342#line 709
24343    __cil_tmp18 = & n->vqs[i].mutex;
24344#line 709
24345    mutex_unlock(__cil_tmp18);
24346#line 705
24347    i = i + 1;
24348    }
24349  }
24350  while_break___0: /* CIL Label */ ;
24351  }
24352
24353  while_break: 
24354  {
24355#line 711
24356  vhost_net_flush(n);
24357#line 712
24358  __cil_tmp19 = & n->dev.mutex;
24359#line 712
24360  mutex_unlock(__cil_tmp19);
24361  }
24362#line 713
24363  return (0);
24364}
24365}
24366#line 716 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24367static long vhost_net_ioctl(struct file *f , unsigned int ioctl , unsigned long arg ) 
24368{ struct vhost_net *n ;
24369  void *argp ;
24370  u64 *featurep ;
24371  struct vhost_vring_file backend ;
24372  u64 features ;
24373  int r ;
24374  unsigned long tmp___7 ;
24375  long tmp___8 ;
24376  int tmp___9 ;
24377  unsigned long tmp___10 ;
24378  int tmp___11 ;
24379  long tmp___12 ;
24380  long tmp___13 ;
24381  unsigned long tmp ;
24382  int tmp___14 ;
24383  unsigned long tmp___15 ;
24384  unsigned long tmp___16 ;
24385  int tmp___17 ;
24386  unsigned long tmp___18 ;
24387  void *__cil_tmp23 ;
24388  unsigned long __cil_tmp24 ;
24389  int __cil_tmp25 ;
24390  unsigned int __cil_tmp26 ;
24391  unsigned int __cil_tmp27 ;
24392  unsigned int __cil_tmp28 ;
24393  unsigned int __cil_tmp29 ;
24394  unsigned long __cil_tmp30 ;
24395  unsigned long __cil_tmp31 ;
24396  int __cil_tmp32 ;
24397  unsigned long __cil_tmp33 ;
24398  unsigned long __cil_tmp34 ;
24399  int __cil_tmp35 ;
24400  unsigned int __cil_tmp36 ;
24401  unsigned int __cil_tmp37 ;
24402  unsigned int __cil_tmp38 ;
24403  unsigned long __cil_tmp39 ;
24404  unsigned long __cil_tmp40 ;
24405  int __cil_tmp41 ;
24406  unsigned long __cil_tmp42 ;
24407  unsigned long __cil_tmp43 ;
24408  int __cil_tmp44 ;
24409  unsigned int __cil_tmp45 ;
24410  unsigned int __cil_tmp46 ;
24411  unsigned int __cil_tmp47 ;
24412  unsigned long __cil_tmp48 ;
24413  unsigned long __cil_tmp49 ;
24414  int __cil_tmp50 ;
24415  unsigned long __cil_tmp51 ;
24416  int __cil_tmp52 ;
24417  unsigned int __cil_tmp53 ;
24418  unsigned int __cil_tmp54 ;
24419  int __cil_tmp55 ;
24420  unsigned int __cil_tmp56 ;
24421  void *__cil_tmp57 ;
24422  void const   *__cil_tmp58 ;
24423  void *__cil_tmp59 ;
24424  void const   *__cil_tmp60 ;
24425  unsigned int __cil_tmp61 ;
24426  void *__cil_tmp62 ;
24427  void const   *__cil_tmp63 ;
24428  struct mutex *__cil_tmp64 ;
24429  struct vhost_dev *__cil_tmp65 ;
24430  struct mutex *__cil_tmp66 ;
24431
24432  {
24433#line 719
24434  __cil_tmp23 = f->private_data;
24435#line 719
24436  n = (struct vhost_net *)__cil_tmp23;
24437#line 720
24438  argp = (void *)arg;
24439#line 721
24440  featurep = (u64 *)argp;
24441  {
24442#line 727
24443  __cil_tmp24 = 8UL << 16;
24444#line 727
24445  __cil_tmp25 = 175 << 8;
24446#line 727
24447  __cil_tmp26 = (unsigned int )__cil_tmp25;
24448#line 727
24449  __cil_tmp27 = 1U << 30;
24450#line 727
24451  __cil_tmp28 = __cil_tmp27 | __cil_tmp26;
24452#line 727
24453  __cil_tmp29 = __cil_tmp28 | 48U;
24454#line 727
24455  __cil_tmp30 = (unsigned long )__cil_tmp29;
24456#line 727
24457  __cil_tmp31 = __cil_tmp30 | __cil_tmp24;
24458#line 727
24459  __cil_tmp32 = (int )ioctl;
24460#line 727
24461  __cil_tmp33 = (unsigned long )__cil_tmp32;
24462#line 727
24463  if (__cil_tmp33 == __cil_tmp31) {
24464#line 727
24465    goto case_exp;
24466  } else {
24467    {
24468#line 731
24469    __cil_tmp34 = 8UL << 16;
24470#line 731
24471    __cil_tmp35 = 175 << 8;
24472#line 731
24473    __cil_tmp36 = (unsigned int )__cil_tmp35;
24474#line 731
24475    __cil_tmp37 = 2U << 30;
24476#line 731
24477    __cil_tmp38 = __cil_tmp37 | __cil_tmp36;
24478#line 731
24479    __cil_tmp39 = (unsigned long )__cil_tmp38;
24480#line 731
24481    __cil_tmp40 = __cil_tmp39 | __cil_tmp34;
24482#line 731
24483    __cil_tmp41 = (int )ioctl;
24484#line 731
24485    __cil_tmp42 = (unsigned long )__cil_tmp41;
24486#line 731
24487    if (__cil_tmp42 == __cil_tmp40) {
24488#line 731
24489      goto case_exp___0;
24490    } else {
24491      {
24492#line 736
24493      __cil_tmp43 = 8UL << 16;
24494#line 736
24495      __cil_tmp44 = 175 << 8;
24496#line 736
24497      __cil_tmp45 = (unsigned int )__cil_tmp44;
24498#line 736
24499      __cil_tmp46 = 1U << 30;
24500#line 736
24501      __cil_tmp47 = __cil_tmp46 | __cil_tmp45;
24502#line 736
24503      __cil_tmp48 = (unsigned long )__cil_tmp47;
24504#line 736
24505      __cil_tmp49 = __cil_tmp48 | __cil_tmp43;
24506#line 736
24507      __cil_tmp50 = (int )ioctl;
24508#line 736
24509      __cil_tmp51 = (unsigned long )__cil_tmp50;
24510#line 736
24511      if (__cil_tmp51 == __cil_tmp49) {
24512#line 736
24513        goto case_exp___1;
24514      } else {
24515        {
24516#line 742
24517        __cil_tmp52 = 175 << 8;
24518#line 742
24519        __cil_tmp53 = (unsigned int )__cil_tmp52;
24520#line 742
24521        __cil_tmp54 = __cil_tmp53 | 2U;
24522#line 742
24523        __cil_tmp55 = (int )ioctl;
24524#line 742
24525        __cil_tmp56 = (unsigned int )__cil_tmp55;
24526#line 742
24527        if (__cil_tmp56 == __cil_tmp54) {
24528#line 742
24529          goto case_exp___2;
24530        } else {
24531#line 744
24532          goto switch_default;
24533#line 726
24534          if (0) {
24535            case_exp: 
24536            {
24537#line 728
24538            __cil_tmp57 = (void *)(& backend);
24539#line 728
24540            __cil_tmp58 = (void const   *)argp;
24541#line 728
24542            tmp___16 = (unsigned long )copy_from_user(__cil_tmp57, __cil_tmp58, 8UL);
24543#line 728
24544            tmp = tmp___16;
24545#line 728
24546            tmp___7 = tmp;
24547            }
24548#line 728
24549            if (tmp___7) {
24550#line 729
24551              return (-14L);
24552            } else {
24553
24554            }
24555            {
24556#line 730
24557            tmp___8 = vhost_net_set_backend(n, backend.index, backend.fd);
24558            }
24559#line 730
24560            return (tmp___8);
24561            case_exp___0: 
24562            {
24563#line 732
24564            features = (u64 )1023442944;
24565#line 733
24566            __cil_tmp59 = (void *)featurep;
24567#line 733
24568            __cil_tmp60 = (void const   *)(& features);
24569#line 733
24570            __cil_tmp61 = (unsigned int )8UL;
24571#line 733
24572            tmp___17 = (int )copy_to_user(__cil_tmp59, __cil_tmp60, __cil_tmp61);
24573#line 733
24574            tmp___14 = tmp___17;
24575#line 733
24576            tmp___9 = tmp___14;
24577            }
24578#line 733
24579            if (tmp___9) {
24580#line 734
24581              return (-14L);
24582            } else {
24583
24584            }
24585#line 735
24586            return (0L);
24587            case_exp___1: 
24588            {
24589#line 737
24590            __cil_tmp62 = (void *)(& features);
24591#line 737
24592            __cil_tmp63 = (void const   *)featurep;
24593#line 737
24594            tmp___18 = (unsigned long )copy_from_user(__cil_tmp62, __cil_tmp63, 8UL);
24595#line 737
24596            tmp___15 = tmp___18;
24597#line 737
24598            tmp___10 = tmp___15;
24599            }
24600#line 737
24601            if (tmp___10) {
24602#line 738
24603              return (-14L);
24604            } else {
24605
24606            }
24607#line 739
24608            if (features & 1152921503583404031ULL) {
24609#line 740
24610              return (-95L);
24611            } else {
24612
24613            }
24614            {
24615#line 741
24616            tmp___11 = vhost_net_set_features(n, features);
24617            }
24618#line 741
24619            return ((long )tmp___11);
24620            case_exp___2: 
24621            {
24622#line 743
24623            tmp___12 = vhost_net_reset_owner(n);
24624            }
24625#line 743
24626            return (tmp___12);
24627            switch_default: 
24628            {
24629#line 745
24630            __cil_tmp64 = & n->dev.mutex;
24631#line 745
24632            mutex_lock_nested(__cil_tmp64, 0U);
24633#line 746
24634            __cil_tmp65 = & n->dev;
24635#line 746
24636            tmp___13 = vhost_dev_ioctl(__cil_tmp65, ioctl, arg);
24637#line 746
24638            r = (int )tmp___13;
24639#line 747
24640            vhost_net_flush(n);
24641#line 748
24642            __cil_tmp66 = & n->dev.mutex;
24643#line 748
24644            mutex_unlock(__cil_tmp66);
24645            }
24646#line 749
24647            return ((long )r);
24648          } else {
24649
24650          }
24651        }
24652        }
24653      }
24654      }
24655    }
24656    }
24657  }
24658  }
24659}
24660}
24661#line 754 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24662static long vhost_net_compat_ioctl(struct file *f , unsigned int ioctl , unsigned long arg ) 
24663{ void *tmp___7 ;
24664  long tmp___8 ;
24665  compat_uptr_t __cil_tmp6 ;
24666  unsigned long __cil_tmp7 ;
24667
24668  {
24669  {
24670#line 757
24671  __cil_tmp6 = (compat_uptr_t )arg;
24672#line 757
24673  tmp___7 = compat_ptr(__cil_tmp6);
24674#line 757
24675  __cil_tmp7 = (unsigned long )tmp___7;
24676#line 757
24677  tmp___8 = vhost_net_ioctl(f, ioctl, __cil_tmp7);
24678  }
24679#line 757
24680  return (tmp___8);
24681}
24682}
24683#line 761 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24684static struct file_operations  const  vhost_net_fops  = 
24685#line 761
24686     {& __this_module, & noop_llseek, (ssize_t (*)(struct file * , char * , size_t  ,
24687                                                 loff_t * ))0, (ssize_t (*)(struct file * ,
24688                                                                            char const   * ,
24689                                                                            size_t  ,
24690                                                                            loff_t * ))0,
24691    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
24692    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
24693    (int (*)(struct file * , void * , int (*)(void * , char const   * , int  , loff_t  ,
24694                                              u64  , unsigned int  ) ))0, (unsigned int (*)(struct file * ,
24695                                                                                            struct poll_table_struct * ))0,
24696    & vhost_net_ioctl, & vhost_net_compat_ioctl, (int (*)(struct file * , struct vm_area_struct * ))0,
24697    & vhost_net_open, (int (*)(struct file * , fl_owner_t id ))0, & vhost_net_release,
24698    (int (*)(struct file * , int datasync ))0, (int (*)(struct kiocb * , int datasync ))0,
24699    (int (*)(int  , struct file * , int  ))0, (int (*)(struct file * , int  , struct file_lock * ))0,
24700    (ssize_t (*)(struct file * , struct page * , int  , size_t  , loff_t * , int  ))0,
24701    (unsigned long (*)(struct file * , unsigned long  , unsigned long  , unsigned long  ,
24702                       unsigned long  ))0, (int (*)(int  ))0, (int (*)(struct file * ,
24703                                                                       int  , struct file_lock * ))0,
24704    (ssize_t (*)(struct pipe_inode_info * , struct file * , loff_t * , size_t  , unsigned int  ))0,
24705    (ssize_t (*)(struct file * , loff_t * , struct pipe_inode_info * , size_t  , unsigned int  ))0,
24706    (int (*)(struct file * , long  , struct file_lock ** ))0, (long (*)(struct file *file ,
24707                                                                        int mode ,
24708                                                                        loff_t offset ,
24709                                                                        loff_t len ))0};
24710#line 772 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24711static struct miscdevice vhost_net_misc  = 
24712#line 772
24713     {255, "vhost-net", & vhost_net_fops, {(struct list_head *)0, (struct list_head *)0},
24714    (struct device *)0, (struct device *)0, (char const   *)0, 0U};
24715#line 778 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24716static int vhost_net_init(void) 
24717{ int tmp___7 ;
24718
24719  {
24720  {
24721#line 780
24722  tmp___7 = misc_register(& vhost_net_misc);
24723  }
24724#line 780
24725  return (tmp___7);
24726}
24727}
24728#line 782 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24729int init_module(void) 
24730{ int tmp___7 ;
24731
24732  {
24733  {
24734#line 782
24735  tmp___7 = vhost_net_init();
24736  }
24737#line 782
24738  return (tmp___7);
24739}
24740}
24741#line 784 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24742static void vhost_net_exit(void) 
24743{ 
24744
24745  {
24746  {
24747#line 786
24748  misc_deregister(& vhost_net_misc);
24749  }
24750#line 787
24751  return;
24752}
24753}
24754#line 788 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24755void cleanup_module(void) 
24756{ 
24757
24758  {
24759  {
24760#line 788
24761  vhost_net_exit();
24762  }
24763#line 788
24764  return;
24765}
24766}
24767#line 790 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24768static char const   __mod_version790[14]  __attribute__((__used__, __unused__, __section__(".modinfo"),
24769__aligned__(1)))  = 
24770#line 790
24771  {      (char const   )'v',      (char const   )'e',      (char const   )'r',      (char const   )'s', 
24772        (char const   )'i',      (char const   )'o',      (char const   )'n',      (char const   )'=', 
24773        (char const   )'0',      (char const   )'.',      (char const   )'0',      (char const   )'.', 
24774        (char const   )'1',      (char const   )'\000'};
24775#line 791 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24776static char const   __mod_license791[15]  __attribute__((__used__, __unused__, __section__(".modinfo"),
24777__aligned__(1)))  = 
24778#line 791
24779  {      (char const   )'l',      (char const   )'i',      (char const   )'c',      (char const   )'e', 
24780        (char const   )'n',      (char const   )'s',      (char const   )'e',      (char const   )'=', 
24781        (char const   )'G',      (char const   )'P',      (char const   )'L',      (char const   )' ', 
24782        (char const   )'v',      (char const   )'2',      (char const   )'\000'};
24783#line 792 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24784static char const   __mod_author792[26]  __attribute__((__used__, __unused__, __section__(".modinfo"),
24785__aligned__(1)))  = 
24786#line 792
24787  {      (char const   )'a',      (char const   )'u',      (char const   )'t',      (char const   )'h', 
24788        (char const   )'o',      (char const   )'r',      (char const   )'=',      (char const   )'M', 
24789        (char const   )'i',      (char const   )'c',      (char const   )'h',      (char const   )'a', 
24790        (char const   )'e',      (char const   )'l',      (char const   )' ',      (char const   )'S', 
24791        (char const   )'.',      (char const   )' ',      (char const   )'T',      (char const   )'s', 
24792        (char const   )'i',      (char const   )'r',      (char const   )'k',      (char const   )'i', 
24793        (char const   )'n',      (char const   )'\000'};
24794#line 793 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24795static char const   __mod_description793[51]  __attribute__((__used__, __unused__,
24796__section__(".modinfo"), __aligned__(1)))  = 
24797#line 793
24798  {      (char const   )'d',      (char const   )'e',      (char const   )'s',      (char const   )'c', 
24799        (char const   )'r',      (char const   )'i',      (char const   )'p',      (char const   )'t', 
24800        (char const   )'i',      (char const   )'o',      (char const   )'n',      (char const   )'=', 
24801        (char const   )'H',      (char const   )'o',      (char const   )'s',      (char const   )'t', 
24802        (char const   )' ',      (char const   )'k',      (char const   )'e',      (char const   )'r', 
24803        (char const   )'n',      (char const   )'e',      (char const   )'l',      (char const   )' ', 
24804        (char const   )'a',      (char const   )'c',      (char const   )'c',      (char const   )'e', 
24805        (char const   )'l',      (char const   )'e',      (char const   )'r',      (char const   )'a', 
24806        (char const   )'t',      (char const   )'o',      (char const   )'r',      (char const   )' ', 
24807        (char const   )'f',      (char const   )'o',      (char const   )'r',      (char const   )' ', 
24808        (char const   )'v',      (char const   )'i',      (char const   )'r',      (char const   )'t', 
24809        (char const   )'i',      (char const   )'o',      (char const   )' ',      (char const   )'n', 
24810        (char const   )'e',      (char const   )'t',      (char const   )'\000'};
24811#line 814
24812extern void ldv_check_return_value(int res ) ;
24813#line 817
24814extern void ldv_initialize(void) ;
24815#line 820
24816extern int nondet_int(void) ;
24817#line 823 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24818int LDV_IN_INTERRUPT  ;
24819#line 880 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24820static int res_vhost_net_open_12  ;
24821#line 826 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24822void main(void) 
24823{ struct inode *var_group1 ;
24824  struct file *var_group2 ;
24825  unsigned int var_vhost_net_ioctl_26_p1 ;
24826  unsigned long var_vhost_net_ioctl_26_p2 ;
24827  unsigned int var_vhost_net_compat_ioctl_27_p1 ;
24828  unsigned long var_vhost_net_compat_ioctl_27_p2 ;
24829  int tmp___7 ;
24830  int ldv_s_vhost_net_fops_file_operations ;
24831  int tmp___8 ;
24832  int tmp___9 ;
24833  int __cil_tmp11 ;
24834
24835  {
24836  {
24837#line 894
24838  LDV_IN_INTERRUPT = 1;
24839#line 903
24840  ldv_initialize();
24841#line 915
24842  tmp___7 = vhost_net_init();
24843  }
24844#line 915
24845  if (tmp___7) {
24846#line 916
24847    goto ldv_final;
24848  } else {
24849
24850  }
24851#line 917
24852  ldv_s_vhost_net_fops_file_operations = 0;
24853  {
24854#line 921
24855  while (1) {
24856    while_continue: /* CIL Label */ ;
24857    {
24858#line 921
24859    tmp___9 = nondet_int();
24860    }
24861#line 921
24862    if (tmp___9) {
24863
24864    } else {
24865      {
24866#line 921
24867      __cil_tmp11 = ldv_s_vhost_net_fops_file_operations == 0;
24868#line 921
24869      if (! __cil_tmp11) {
24870
24871      } else {
24872#line 921
24873        goto while_break;
24874      }
24875      }
24876    }
24877    {
24878#line 925
24879    tmp___8 = nondet_int();
24880    }
24881#line 927
24882    if (tmp___8 == 0) {
24883#line 927
24884      goto case_0;
24885    } else
24886#line 954
24887    if (tmp___8 == 1) {
24888#line 954
24889      goto case_1;
24890    } else
24891#line 978
24892    if (tmp___8 == 2) {
24893#line 978
24894      goto case_2;
24895    } else
24896#line 1002
24897    if (tmp___8 == 3) {
24898#line 1002
24899      goto case_3;
24900    } else {
24901#line 1026
24902      goto switch_default;
24903#line 925
24904      if (0) {
24905        case_0: 
24906#line 930
24907        if (ldv_s_vhost_net_fops_file_operations == 0) {
24908          {
24909#line 937
24910          res_vhost_net_open_12 = vhost_net_open(var_group1, var_group2);
24911#line 938
24912          ldv_check_return_value(res_vhost_net_open_12);
24913          }
24914#line 939
24915          if (res_vhost_net_open_12) {
24916#line 940
24917            goto ldv_module_exit;
24918          } else {
24919
24920          }
24921#line 947
24922          ldv_s_vhost_net_fops_file_operations = ldv_s_vhost_net_fops_file_operations + 1;
24923        } else {
24924
24925        }
24926#line 953
24927        goto switch_break;
24928        case_1: 
24929#line 957
24930        if (ldv_s_vhost_net_fops_file_operations == 1) {
24931          {
24932#line 964
24933          vhost_net_release(var_group1, var_group2);
24934#line 971
24935          ldv_s_vhost_net_fops_file_operations = 0;
24936          }
24937        } else {
24938
24939        }
24940#line 977
24941        goto switch_break;
24942        case_2: 
24943        {
24944#line 988
24945        vhost_net_ioctl(var_group2, var_vhost_net_ioctl_26_p1, var_vhost_net_ioctl_26_p2);
24946        }
24947#line 1001
24948        goto switch_break;
24949        case_3: 
24950        {
24951#line 1013
24952        vhost_net_compat_ioctl(var_group2, var_vhost_net_compat_ioctl_27_p1, var_vhost_net_compat_ioctl_27_p2);
24953        }
24954#line 1025
24955        goto switch_break;
24956        switch_default: 
24957#line 1026
24958        goto switch_break;
24959      } else {
24960        switch_break: ;
24961      }
24962    }
24963  }
24964  while_break___0: /* CIL Label */ ;
24965  }
24966
24967  while_break: ;
24968  ldv_module_exit: 
24969  {
24970#line 1044
24971  vhost_net_exit();
24972  }
24973  ldv_final: 
24974  {
24975#line 1047
24976  ldv_check_final_state();
24977  }
24978#line 1050
24979  return;
24980}
24981}