Showing error 752

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: ldv-linux-3.4/32_7_cilled_unsafe_const_ok_linux-32_1-drivers--vhost--vhost_net.ko-ldv_main1_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 24538
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 14 "include/asm-generic/posix_types.h"
   33typedef long __kernel_long_t;
   34#line 15 "include/asm-generic/posix_types.h"
   35typedef unsigned long __kernel_ulong_t;
   36#line 31 "include/asm-generic/posix_types.h"
   37typedef int __kernel_pid_t;
   38#line 52 "include/asm-generic/posix_types.h"
   39typedef unsigned int __kernel_uid32_t;
   40#line 53 "include/asm-generic/posix_types.h"
   41typedef unsigned int __kernel_gid32_t;
   42#line 75 "include/asm-generic/posix_types.h"
   43typedef __kernel_ulong_t __kernel_size_t;
   44#line 76 "include/asm-generic/posix_types.h"
   45typedef __kernel_long_t __kernel_ssize_t;
   46#line 91 "include/asm-generic/posix_types.h"
   47typedef long long __kernel_loff_t;
   48#line 92 "include/asm-generic/posix_types.h"
   49typedef __kernel_long_t __kernel_time_t;
   50#line 93 "include/asm-generic/posix_types.h"
   51typedef __kernel_long_t __kernel_clock_t;
   52#line 94 "include/asm-generic/posix_types.h"
   53typedef int __kernel_timer_t;
   54#line 95 "include/asm-generic/posix_types.h"
   55typedef int __kernel_clockid_t;
   56#line 21 "include/linux/types.h"
   57typedef __u32 __kernel_dev_t;
   58#line 24 "include/linux/types.h"
   59typedef __kernel_dev_t dev_t;
   60#line 27 "include/linux/types.h"
   61typedef unsigned short umode_t;
   62#line 30 "include/linux/types.h"
   63typedef __kernel_pid_t pid_t;
   64#line 35 "include/linux/types.h"
   65typedef __kernel_clockid_t clockid_t;
   66#line 38 "include/linux/types.h"
   67typedef _Bool bool;
   68#line 40 "include/linux/types.h"
   69typedef __kernel_uid32_t uid_t;
   70#line 41 "include/linux/types.h"
   71typedef __kernel_gid32_t gid_t;
   72#line 54 "include/linux/types.h"
   73typedef __kernel_loff_t loff_t;
   74#line 63 "include/linux/types.h"
   75typedef __kernel_size_t size_t;
   76#line 68 "include/linux/types.h"
   77typedef __kernel_ssize_t ssize_t;
   78#line 78 "include/linux/types.h"
   79typedef __kernel_time_t time_t;
   80#line 111 "include/linux/types.h"
   81typedef __s32 int32_t;
   82#line 117 "include/linux/types.h"
   83typedef __u32 uint32_t;
   84#line 142 "include/linux/types.h"
   85typedef unsigned long sector_t;
   86#line 143 "include/linux/types.h"
   87typedef unsigned long blkcnt_t;
   88#line 202 "include/linux/types.h"
   89typedef unsigned int gfp_t;
   90#line 203 "include/linux/types.h"
   91typedef unsigned int fmode_t;
   92#line 206 "include/linux/types.h"
   93typedef u64 phys_addr_t;
   94#line 219 "include/linux/types.h"
   95struct __anonstruct_atomic_t_7 {
   96   int counter ;
   97};
   98#line 219 "include/linux/types.h"
   99typedef struct __anonstruct_atomic_t_7 atomic_t;
  100#line 224 "include/linux/types.h"
  101struct __anonstruct_atomic64_t_8 {
  102   long counter ;
  103};
  104#line 224 "include/linux/types.h"
  105typedef struct __anonstruct_atomic64_t_8 atomic64_t;
  106#line 229 "include/linux/types.h"
  107struct list_head {
  108   struct list_head *next ;
  109   struct list_head *prev ;
  110};
  111#line 233
  112struct hlist_node;
  113#line 233 "include/linux/types.h"
  114struct hlist_head {
  115   struct hlist_node *first ;
  116};
  117#line 237 "include/linux/types.h"
  118struct hlist_node {
  119   struct hlist_node *next ;
  120   struct hlist_node **pprev ;
  121};
  122#line 253 "include/linux/types.h"
  123struct rcu_head {
  124   struct rcu_head *next ;
  125   void (*func)(struct rcu_head *head ) ;
  126};
  127#line 12 "include/linux/file.h"
  128struct file;
  129#line 16
  130struct file_operations;
  131#line 17
  132struct vfsmount;
  133#line 18
  134struct dentry;
  135#line 19
  136struct path;
  137#line 12 "include/linux/thread_info.h"
  138struct timespec;
  139#line 13
  140struct compat_timespec;
  141#line 18 "include/linux/thread_info.h"
  142struct __anonstruct_futex_10 {
  143   u32 *uaddr ;
  144   u32 val ;
  145   u32 flags ;
  146   u32 bitset ;
  147   u64 time ;
  148   u32 *uaddr2 ;
  149};
  150#line 18 "include/linux/thread_info.h"
  151struct __anonstruct_nanosleep_11 {
  152   clockid_t clockid ;
  153   struct timespec *rmtp ;
  154   struct compat_timespec *compat_rmtp ;
  155   u64 expires ;
  156};
  157#line 18
  158struct pollfd;
  159#line 18 "include/linux/thread_info.h"
  160struct __anonstruct_poll_12 {
  161   struct pollfd *ufds ;
  162   int nfds ;
  163   int has_timeout ;
  164   unsigned long tv_sec ;
  165   unsigned long tv_nsec ;
  166};
  167#line 18 "include/linux/thread_info.h"
  168union __anonunion____missing_field_name_9 {
  169   struct __anonstruct_futex_10 futex ;
  170   struct __anonstruct_nanosleep_11 nanosleep ;
  171   struct __anonstruct_poll_12 poll ;
  172};
  173#line 18 "include/linux/thread_info.h"
  174struct restart_block {
  175   long (*fn)(struct restart_block * ) ;
  176   union __anonunion____missing_field_name_9 __annonCompField4 ;
  177};
  178#line 56 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
  179struct module;
  180#line 18 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page.h"
  181struct page;
  182#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/thread_info.h"
  183struct task_struct;
  184#line 21
  185struct exec_domain;
  186#line 8 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  187struct mm_struct;
  188#line 99 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/ptrace.h"
  189struct pt_regs {
  190   unsigned long r15 ;
  191   unsigned long r14 ;
  192   unsigned long r13 ;
  193   unsigned long r12 ;
  194   unsigned long bp ;
  195   unsigned long bx ;
  196   unsigned long r11 ;
  197   unsigned long r10 ;
  198   unsigned long r9 ;
  199   unsigned long r8 ;
  200   unsigned long ax ;
  201   unsigned long cx ;
  202   unsigned long dx ;
  203   unsigned long si ;
  204   unsigned long di ;
  205   unsigned long orig_ax ;
  206   unsigned long ip ;
  207   unsigned long cs ;
  208   unsigned long flags ;
  209   unsigned long sp ;
  210   unsigned long ss ;
  211};
  212#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/desc_defs.h"
  213struct __anonstruct____missing_field_name_14 {
  214   unsigned int a ;
  215   unsigned int b ;
  216};
  217#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/desc_defs.h"
  218struct __anonstruct____missing_field_name_15 {
  219   u16 limit0 ;
  220   u16 base0 ;
  221   unsigned int base1 : 8 ;
  222   unsigned int type : 4 ;
  223   unsigned int s : 1 ;
  224   unsigned int dpl : 2 ;
  225   unsigned int p : 1 ;
  226   unsigned int limit : 4 ;
  227   unsigned int avl : 1 ;
  228   unsigned int l : 1 ;
  229   unsigned int d : 1 ;
  230   unsigned int g : 1 ;
  231   unsigned int base2 : 8 ;
  232};
  233#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/desc_defs.h"
  234union __anonunion____missing_field_name_13 {
  235   struct __anonstruct____missing_field_name_14 __annonCompField5 ;
  236   struct __anonstruct____missing_field_name_15 __annonCompField6 ;
  237};
  238#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/desc_defs.h"
  239struct desc_struct {
  240   union __anonunion____missing_field_name_13 __annonCompField7 ;
  241} __attribute__((__packed__)) ;
  242#line 13 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
  243typedef unsigned long pgdval_t;
  244#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
  245typedef unsigned long pgprotval_t;
  246#line 192 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
  247struct pgprot {
  248   pgprotval_t pgprot ;
  249};
  250#line 192 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
  251typedef struct pgprot pgprot_t;
  252#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
  253struct __anonstruct_pgd_t_19 {
  254   pgdval_t pgd ;
  255};
  256#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
  257typedef struct __anonstruct_pgd_t_19 pgd_t;
  258#line 282 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
  259typedef struct page *pgtable_t;
  260#line 313
  261struct seq_file;
  262#line 47 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
  263struct thread_struct;
  264#line 53
  265struct cpumask;
  266#line 329
  267struct arch_spinlock;
  268#line 141 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/vm86.h"
  269struct kernel_vm86_regs {
  270   struct pt_regs pt ;
  271   unsigned short es ;
  272   unsigned short __esh ;
  273   unsigned short ds ;
  274   unsigned short __dsh ;
  275   unsigned short fs ;
  276   unsigned short __fsh ;
  277   unsigned short gs ;
  278   unsigned short __gsh ;
  279};
  280#line 11 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/math_emu.h"
  281union __anonunion____missing_field_name_23 {
  282   struct pt_regs *regs ;
  283   struct kernel_vm86_regs *vm86 ;
  284};
  285#line 11 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/math_emu.h"
  286struct math_emu_info {
  287   long ___orig_eip ;
  288   union __anonunion____missing_field_name_23 __annonCompField8 ;
  289};
  290#line 9 "include/linux/dynamic_debug.h"
  291struct _ddebug {
  292   char    *modname ;
  293   char    *function ;
  294   char    *filename ;
  295   char    *format ;
  296   unsigned int lineno : 18 ;
  297   unsigned int flags : 8 ;
  298} __attribute__((__aligned__(8))) ;
  299#line 135 "include/linux/kernel.h"
  300struct completion;
  301#line 349
  302struct pid;
  303#line 10 "include/asm-generic/bug.h"
  304struct bug_entry {
  305   int bug_addr_disp ;
  306   int file_disp ;
  307   unsigned short line ;
  308   unsigned short flags ;
  309};
  310#line 14 "include/linux/cpumask.h"
  311struct cpumask {
  312   unsigned long bits[((4096UL + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
  313};
  314#line 14 "include/linux/cpumask.h"
  315typedef struct cpumask cpumask_t;
  316#line 637 "include/linux/cpumask.h"
  317typedef struct cpumask *cpumask_var_t;
  318#line 92 "include/linux/personality.h"
  319struct map_segment;
  320#line 92 "include/linux/personality.h"
  321struct exec_domain {
  322   char    *name ;
  323   void (*handler)(int  , struct pt_regs * ) ;
  324   unsigned char pers_low ;
  325   unsigned char pers_high ;
  326   unsigned long *signal_map ;
  327   unsigned long *signal_invmap ;
  328   struct map_segment *err_map ;
  329   struct map_segment *socktype_map ;
  330   struct map_segment *sockopt_map ;
  331   struct map_segment *af_map ;
  332   struct module *module ;
  333   struct exec_domain *next ;
  334};
  335#line 153 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  336struct seq_operations;
  337#line 290 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  338struct i387_fsave_struct {
  339   u32 cwd ;
  340   u32 swd ;
  341   u32 twd ;
  342   u32 fip ;
  343   u32 fcs ;
  344   u32 foo ;
  345   u32 fos ;
  346   u32 st_space[20] ;
  347   u32 status ;
  348};
  349#line 306 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  350struct __anonstruct____missing_field_name_31 {
  351   u64 rip ;
  352   u64 rdp ;
  353};
  354#line 306 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  355struct __anonstruct____missing_field_name_32 {
  356   u32 fip ;
  357   u32 fcs ;
  358   u32 foo ;
  359   u32 fos ;
  360};
  361#line 306 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  362union __anonunion____missing_field_name_30 {
  363   struct __anonstruct____missing_field_name_31 __annonCompField12 ;
  364   struct __anonstruct____missing_field_name_32 __annonCompField13 ;
  365};
  366#line 306 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  367union __anonunion____missing_field_name_33 {
  368   u32 padding1[12] ;
  369   u32 sw_reserved[12] ;
  370};
  371#line 306 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  372struct i387_fxsave_struct {
  373   u16 cwd ;
  374   u16 swd ;
  375   u16 twd ;
  376   u16 fop ;
  377   union __anonunion____missing_field_name_30 __annonCompField14 ;
  378   u32 mxcsr ;
  379   u32 mxcsr_mask ;
  380   u32 st_space[32] ;
  381   u32 xmm_space[64] ;
  382   u32 padding[12] ;
  383   union __anonunion____missing_field_name_33 __annonCompField15 ;
  384} __attribute__((__aligned__(16))) ;
  385#line 341 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  386struct i387_soft_struct {
  387   u32 cwd ;
  388   u32 swd ;
  389   u32 twd ;
  390   u32 fip ;
  391   u32 fcs ;
  392   u32 foo ;
  393   u32 fos ;
  394   u32 st_space[20] ;
  395   u8 ftop ;
  396   u8 changed ;
  397   u8 lookahead ;
  398   u8 no_update ;
  399   u8 rm ;
  400   u8 alimit ;
  401   struct math_emu_info *info ;
  402   u32 entry_eip ;
  403};
  404#line 361 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  405struct ymmh_struct {
  406   u32 ymmh_space[64] ;
  407};
  408#line 366 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  409struct xsave_hdr_struct {
  410   u64 xstate_bv ;
  411   u64 reserved1[2] ;
  412   u64 reserved2[5] ;
  413} __attribute__((__packed__)) ;
  414#line 372 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  415struct xsave_struct {
  416   struct i387_fxsave_struct i387 ;
  417   struct xsave_hdr_struct xsave_hdr ;
  418   struct ymmh_struct ymmh ;
  419} __attribute__((__packed__, __aligned__(64))) ;
  420#line 379 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  421union thread_xstate {
  422   struct i387_fsave_struct fsave ;
  423   struct i387_fxsave_struct fxsave ;
  424   struct i387_soft_struct soft ;
  425   struct xsave_struct xsave ;
  426};
  427#line 386 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  428struct fpu {
  429   unsigned int last_cpu ;
  430   unsigned int has_fpu ;
  431   union thread_xstate *state ;
  432};
  433#line 433
  434struct kmem_cache;
  435#line 435
  436struct perf_event;
  437#line 437 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  438struct thread_struct {
  439   struct desc_struct tls_array[3] ;
  440   unsigned long sp0 ;
  441   unsigned long sp ;
  442   unsigned long usersp ;
  443   unsigned short es ;
  444   unsigned short ds ;
  445   unsigned short fsindex ;
  446   unsigned short gsindex ;
  447   unsigned long fs ;
  448   unsigned long gs ;
  449   struct perf_event *ptrace_bps[4] ;
  450   unsigned long debugreg6 ;
  451   unsigned long ptrace_dr7 ;
  452   unsigned long cr2 ;
  453   unsigned long trap_nr ;
  454   unsigned long error_code ;
  455   struct fpu fpu ;
  456   unsigned long *io_bitmap_ptr ;
  457   unsigned long iopl ;
  458   unsigned int io_bitmap_max ;
  459};
  460#line 569 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  461struct __anonstruct_mm_segment_t_35 {
  462   unsigned long seg ;
  463};
  464#line 569 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  465typedef struct __anonstruct_mm_segment_t_35 mm_segment_t;
  466#line 23 "include/asm-generic/atomic-long.h"
  467typedef atomic64_t atomic_long_t;
  468#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/thread_info.h"
  469struct thread_info {
  470   struct task_struct *task ;
  471   struct exec_domain *exec_domain ;
  472   __u32 flags ;
  473   __u32 status ;
  474   __u32 cpu ;
  475   int preempt_count ;
  476   mm_segment_t addr_limit ;
  477   struct restart_block restart_block ;
  478   void *sysenter_return ;
  479   unsigned int sig_on_uaccess_error : 1 ;
  480   unsigned int uaccess_err : 1 ;
  481};
  482#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  483typedef u16 __ticket_t;
  484#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  485typedef u32 __ticketpair_t;
  486#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  487struct __raw_tickets {
  488   __ticket_t head ;
  489   __ticket_t tail ;
  490};
  491#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  492union __anonunion____missing_field_name_36 {
  493   __ticketpair_t head_tail ;
  494   struct __raw_tickets tickets ;
  495};
  496#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  497struct arch_spinlock {
  498   union __anonunion____missing_field_name_36 __annonCompField17 ;
  499};
  500#line 20 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  501typedef struct arch_spinlock arch_spinlock_t;
  502#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
  503struct __anonstruct____missing_field_name_38 {
  504   u32 read ;
  505   s32 write ;
  506};
  507#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
  508union __anonunion_arch_rwlock_t_37 {
  509   s64 lock ;
  510   struct __anonstruct____missing_field_name_38 __annonCompField18 ;
  511};
  512#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
  513typedef union __anonunion_arch_rwlock_t_37 arch_rwlock_t;
  514#line 391 "include/linux/lockdep.h"
  515struct lock_class_key {
  516
  517};
  518#line 20 "include/linux/spinlock_types.h"
  519struct raw_spinlock {
  520   arch_spinlock_t raw_lock ;
  521   unsigned int magic ;
  522   unsigned int owner_cpu ;
  523   void *owner ;
  524};
  525#line 20 "include/linux/spinlock_types.h"
  526typedef struct raw_spinlock raw_spinlock_t;
  527#line 64 "include/linux/spinlock_types.h"
  528union __anonunion____missing_field_name_39 {
  529   struct raw_spinlock rlock ;
  530};
  531#line 64 "include/linux/spinlock_types.h"
  532struct spinlock {
  533   union __anonunion____missing_field_name_39 __annonCompField19 ;
  534};
  535#line 64 "include/linux/spinlock_types.h"
  536typedef struct spinlock spinlock_t;
  537#line 11 "include/linux/rwlock_types.h"
  538struct __anonstruct_rwlock_t_40 {
  539   arch_rwlock_t raw_lock ;
  540   unsigned int magic ;
  541   unsigned int owner_cpu ;
  542   void *owner ;
  543};
  544#line 11 "include/linux/rwlock_types.h"
  545typedef struct __anonstruct_rwlock_t_40 rwlock_t;
  546#line 27 "include/linux/wait.h"
  547struct __wait_queue;
  548#line 27 "include/linux/wait.h"
  549typedef struct __wait_queue wait_queue_t;
  550#line 31 "include/linux/wait.h"
  551struct __wait_queue {
  552   unsigned int flags ;
  553   void *private ;
  554   int (*func)(wait_queue_t *wait , unsigned int mode , int flags , void *key ) ;
  555   struct list_head task_list ;
  556};
  557#line 49 "include/linux/wait.h"
  558struct __wait_queue_head {
  559   spinlock_t lock ;
  560   struct list_head task_list ;
  561};
  562#line 53 "include/linux/wait.h"
  563typedef struct __wait_queue_head wait_queue_head_t;
  564#line 32 "include/linux/eventfd.h"
  565struct eventfd_ctx;
  566#line 119 "include/linux/seqlock.h"
  567struct seqcount {
  568   unsigned int sequence ;
  569};
  570#line 119 "include/linux/seqlock.h"
  571typedef struct seqcount seqcount_t;
  572#line 98 "include/linux/nodemask.h"
  573struct __anonstruct_nodemask_t_42 {
  574   unsigned long bits[(((unsigned long )(1 << 10) + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
  575};
  576#line 98 "include/linux/nodemask.h"
  577typedef struct __anonstruct_nodemask_t_42 nodemask_t;
  578#line 48 "include/linux/mutex.h"
  579struct mutex {
  580   atomic_t count ;
  581   spinlock_t wait_lock ;
  582   struct list_head wait_list ;
  583   struct task_struct *owner ;
  584   char    *name ;
  585   void *magic ;
  586};
  587#line 69 "include/linux/mutex.h"
  588struct mutex_waiter {
  589   struct list_head list ;
  590   struct task_struct *task ;
  591   void *magic ;
  592};
  593#line 19 "include/linux/rwsem.h"
  594struct rw_semaphore;
  595#line 25 "include/linux/rwsem.h"
  596struct rw_semaphore {
  597   long count ;
  598   raw_spinlock_t wait_lock ;
  599   struct list_head wait_list ;
  600};
  601#line 25 "include/linux/completion.h"
  602struct completion {
  603   unsigned int done ;
  604   wait_queue_head_t wait ;
  605};
  606#line 14 "include/linux/time.h"
  607struct timespec {
  608   __kernel_time_t tv_sec ;
  609   long tv_nsec ;
  610};
  611#line 46 "include/linux/ktime.h"
  612union ktime {
  613   s64 tv64 ;
  614};
  615#line 59 "include/linux/ktime.h"
  616typedef union ktime ktime_t;
  617#line 10 "include/linux/timer.h"
  618struct tvec_base;
  619#line 12 "include/linux/timer.h"
  620struct timer_list {
  621   struct list_head entry ;
  622   unsigned long expires ;
  623   struct tvec_base *base ;
  624   void (*function)(unsigned long  ) ;
  625   unsigned long data ;
  626   int slack ;
  627   int start_pid ;
  628   void *start_site ;
  629   char start_comm[16] ;
  630};
  631#line 289
  632struct hrtimer;
  633#line 290
  634enum hrtimer_restart;
  635#line 17 "include/linux/workqueue.h"
  636struct work_struct;
  637#line 79 "include/linux/workqueue.h"
  638struct work_struct {
  639   atomic_long_t data ;
  640   struct list_head entry ;
  641   void (*func)(struct work_struct *work ) ;
  642};
  643#line 92 "include/linux/workqueue.h"
  644struct delayed_work {
  645   struct work_struct work ;
  646   struct timer_list timer ;
  647};
  648#line 11 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
  649struct __anonstruct_mm_context_t_112 {
  650   void *ldt ;
  651   int size ;
  652   unsigned short ia32_compat ;
  653   struct mutex lock ;
  654   void *vdso ;
  655};
  656#line 11 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
  657typedef struct __anonstruct_mm_context_t_112 mm_context_t;
  658#line 8 "include/linux/vmalloc.h"
  659struct vm_area_struct;
  660#line 100 "include/linux/rbtree.h"
  661struct rb_node {
  662   unsigned long rb_parent_color ;
  663   struct rb_node *rb_right ;
  664   struct rb_node *rb_left ;
  665} __attribute__((__aligned__(sizeof(long )))) ;
  666#line 110 "include/linux/rbtree.h"
  667struct rb_root {
  668   struct rb_node *rb_node ;
  669};
  670#line 14 "include/linux/prio_tree.h"
  671struct prio_tree_node;
  672#line 14 "include/linux/prio_tree.h"
  673struct raw_prio_tree_node {
  674   struct prio_tree_node *left ;
  675   struct prio_tree_node *right ;
  676   struct prio_tree_node *parent ;
  677};
  678#line 20 "include/linux/prio_tree.h"
  679struct prio_tree_node {
  680   struct prio_tree_node *left ;
  681   struct prio_tree_node *right ;
  682   struct prio_tree_node *parent ;
  683   unsigned long start ;
  684   unsigned long last ;
  685};
  686#line 28 "include/linux/prio_tree.h"
  687struct prio_tree_root {
  688   struct prio_tree_node *prio_tree_node ;
  689   unsigned short index_bits ;
  690   unsigned short raw ;
  691};
  692#line 23 "include/linux/mm_types.h"
  693struct address_space;
  694#line 40 "include/linux/mm_types.h"
  695union __anonunion____missing_field_name_140 {
  696   unsigned long index ;
  697   void *freelist ;
  698};
  699#line 40 "include/linux/mm_types.h"
  700struct __anonstruct____missing_field_name_144 {
  701   unsigned int inuse : 16 ;
  702   unsigned int objects : 15 ;
  703   unsigned int frozen : 1 ;
  704};
  705#line 40 "include/linux/mm_types.h"
  706union __anonunion____missing_field_name_143 {
  707   atomic_t _mapcount ;
  708   struct __anonstruct____missing_field_name_144 __annonCompField31 ;
  709};
  710#line 40 "include/linux/mm_types.h"
  711struct __anonstruct____missing_field_name_142 {
  712   union __anonunion____missing_field_name_143 __annonCompField32 ;
  713   atomic_t _count ;
  714};
  715#line 40 "include/linux/mm_types.h"
  716union __anonunion____missing_field_name_141 {
  717   unsigned long counters ;
  718   struct __anonstruct____missing_field_name_142 __annonCompField33 ;
  719};
  720#line 40 "include/linux/mm_types.h"
  721struct __anonstruct____missing_field_name_139 {
  722   union __anonunion____missing_field_name_140 __annonCompField30 ;
  723   union __anonunion____missing_field_name_141 __annonCompField34 ;
  724};
  725#line 40 "include/linux/mm_types.h"
  726struct __anonstruct____missing_field_name_146 {
  727   struct page *next ;
  728   int pages ;
  729   int pobjects ;
  730};
  731#line 40 "include/linux/mm_types.h"
  732union __anonunion____missing_field_name_145 {
  733   struct list_head lru ;
  734   struct __anonstruct____missing_field_name_146 __annonCompField36 ;
  735};
  736#line 40 "include/linux/mm_types.h"
  737union __anonunion____missing_field_name_147 {
  738   unsigned long private ;
  739   struct kmem_cache *slab ;
  740   struct page *first_page ;
  741};
  742#line 40 "include/linux/mm_types.h"
  743struct page {
  744   unsigned long flags ;
  745   struct address_space *mapping ;
  746   struct __anonstruct____missing_field_name_139 __annonCompField35 ;
  747   union __anonunion____missing_field_name_145 __annonCompField37 ;
  748   union __anonunion____missing_field_name_147 __annonCompField38 ;
  749   unsigned long debug_flags ;
  750} __attribute__((__aligned__((2) *  (sizeof(unsigned long )) ))) ;
  751#line 200 "include/linux/mm_types.h"
  752struct __anonstruct_vm_set_149 {
  753   struct list_head list ;
  754   void *parent ;
  755   struct vm_area_struct *head ;
  756};
  757#line 200 "include/linux/mm_types.h"
  758union __anonunion_shared_148 {
  759   struct __anonstruct_vm_set_149 vm_set ;
  760   struct raw_prio_tree_node prio_tree_node ;
  761};
  762#line 200
  763struct anon_vma;
  764#line 200
  765struct vm_operations_struct;
  766#line 200
  767struct mempolicy;
  768#line 200 "include/linux/mm_types.h"
  769struct vm_area_struct {
  770   struct mm_struct *vm_mm ;
  771   unsigned long vm_start ;
  772   unsigned long vm_end ;
  773   struct vm_area_struct *vm_next ;
  774   struct vm_area_struct *vm_prev ;
  775   pgprot_t vm_page_prot ;
  776   unsigned long vm_flags ;
  777   struct rb_node vm_rb ;
  778   union __anonunion_shared_148 shared ;
  779   struct list_head anon_vma_chain ;
  780   struct anon_vma *anon_vma ;
  781   struct vm_operations_struct    *vm_ops ;
  782   unsigned long vm_pgoff ;
  783   struct file *vm_file ;
  784   void *vm_private_data ;
  785   struct mempolicy *vm_policy ;
  786};
  787#line 257 "include/linux/mm_types.h"
  788struct core_thread {
  789   struct task_struct *task ;
  790   struct core_thread *next ;
  791};
  792#line 262 "include/linux/mm_types.h"
  793struct core_state {
  794   atomic_t nr_threads ;
  795   struct core_thread dumper ;
  796   struct completion startup ;
  797};
  798#line 284 "include/linux/mm_types.h"
  799struct mm_rss_stat {
  800   atomic_long_t count[3] ;
  801};
  802#line 288
  803struct linux_binfmt;
  804#line 288
  805struct mmu_notifier_mm;
  806#line 288 "include/linux/mm_types.h"
  807struct mm_struct {
  808   struct vm_area_struct *mmap ;
  809   struct rb_root mm_rb ;
  810   struct vm_area_struct *mmap_cache ;
  811   unsigned long (*get_unmapped_area)(struct file *filp , unsigned long addr , unsigned long len ,
  812                                      unsigned long pgoff , unsigned long flags ) ;
  813   void (*unmap_area)(struct mm_struct *mm , unsigned long addr ) ;
  814   unsigned long mmap_base ;
  815   unsigned long task_size ;
  816   unsigned long cached_hole_size ;
  817   unsigned long free_area_cache ;
  818   pgd_t *pgd ;
  819   atomic_t mm_users ;
  820   atomic_t mm_count ;
  821   int map_count ;
  822   spinlock_t page_table_lock ;
  823   struct rw_semaphore mmap_sem ;
  824   struct list_head mmlist ;
  825   unsigned long hiwater_rss ;
  826   unsigned long hiwater_vm ;
  827   unsigned long total_vm ;
  828   unsigned long locked_vm ;
  829   unsigned long pinned_vm ;
  830   unsigned long shared_vm ;
  831   unsigned long exec_vm ;
  832   unsigned long stack_vm ;
  833   unsigned long reserved_vm ;
  834   unsigned long def_flags ;
  835   unsigned long nr_ptes ;
  836   unsigned long start_code ;
  837   unsigned long end_code ;
  838   unsigned long start_data ;
  839   unsigned long end_data ;
  840   unsigned long start_brk ;
  841   unsigned long brk ;
  842   unsigned long start_stack ;
  843   unsigned long arg_start ;
  844   unsigned long arg_end ;
  845   unsigned long env_start ;
  846   unsigned long env_end ;
  847   unsigned long saved_auxv[44] ;
  848   struct mm_rss_stat rss_stat ;
  849   struct linux_binfmt *binfmt ;
  850   cpumask_var_t cpu_vm_mask_var ;
  851   mm_context_t context ;
  852   unsigned int faultstamp ;
  853   unsigned int token_priority ;
  854   unsigned int last_interval ;
  855   unsigned long flags ;
  856   struct core_state *core_state ;
  857   spinlock_t ioctx_lock ;
  858   struct hlist_head ioctx_list ;
  859   struct task_struct *owner ;
  860   struct file *exe_file ;
  861   unsigned long num_exe_file_vmas ;
  862   struct mmu_notifier_mm *mmu_notifier_mm ;
  863   pgtable_t pmd_huge_pte ;
  864   struct cpumask cpumask_allocation ;
  865};
  866#line 8 "include/linux/shrinker.h"
  867struct shrink_control {
  868   gfp_t gfp_mask ;
  869   unsigned long nr_to_scan ;
  870};
  871#line 31 "include/linux/shrinker.h"
  872struct shrinker {
  873   int (*shrink)(struct shrinker * , struct shrink_control *sc ) ;
  874   int seeks ;
  875   long batch ;
  876   struct list_head list ;
  877   atomic_long_t nr_in_batch ;
  878};
  879#line 24 "include/linux/mm.h"
  880struct file_ra_state;
  881#line 25
  882struct user_struct;
  883#line 26
  884struct writeback_control;
  885#line 188 "include/linux/mm.h"
  886struct vm_fault {
  887   unsigned int flags ;
  888   unsigned long pgoff ;
  889   void *virtual_address ;
  890   struct page *page ;
  891};
  892#line 205 "include/linux/mm.h"
  893struct vm_operations_struct {
  894   void (*open)(struct vm_area_struct *area ) ;
  895   void (*close)(struct vm_area_struct *area ) ;
  896   int (*fault)(struct vm_area_struct *vma , struct vm_fault *vmf ) ;
  897   int (*page_mkwrite)(struct vm_area_struct *vma , struct vm_fault *vmf ) ;
  898   int (*access)(struct vm_area_struct *vma , unsigned long addr , void *buf , int len ,
  899                 int write ) ;
  900   int (*set_policy)(struct vm_area_struct *vma , struct mempolicy *new ) ;
  901   struct mempolicy *(*get_policy)(struct vm_area_struct *vma , unsigned long addr ) ;
  902   int (*migrate)(struct vm_area_struct *vma , nodemask_t    *from , nodemask_t    *to ,
  903                  unsigned long flags ) ;
  904};
  905#line 247
  906struct inode;
  907#line 20 "include/linux/kobject_ns.h"
  908struct sock;
  909#line 21
  910struct kobject;
  911#line 27
  912enum kobj_ns_type {
  913    KOBJ_NS_TYPE_NONE = 0,
  914    KOBJ_NS_TYPE_NET = 1,
  915    KOBJ_NS_TYPES = 2
  916} ;
  917#line 40 "include/linux/kobject_ns.h"
  918struct kobj_ns_type_operations {
  919   enum kobj_ns_type type ;
  920   void *(*grab_current_ns)(void) ;
  921   void    *(*netlink_ns)(struct sock *sk ) ;
  922   void    *(*initial_ns)(void) ;
  923   void (*drop_ns)(void * ) ;
  924};
  925#line 24 "include/linux/sysfs.h"
  926enum kobj_ns_type;
  927#line 26 "include/linux/sysfs.h"
  928struct attribute {
  929   char    *name ;
  930   umode_t mode ;
  931};
  932#line 112 "include/linux/sysfs.h"
  933struct sysfs_ops {
  934   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
  935   ssize_t (*store)(struct kobject * , struct attribute * , char    * , size_t  ) ;
  936   void    *(*namespace)(struct kobject * , struct attribute    * ) ;
  937};
  938#line 118
  939struct sysfs_dirent;
  940#line 22 "include/linux/kref.h"
  941struct kref {
  942   atomic_t refcount ;
  943};
  944#line 60 "include/linux/kobject.h"
  945struct kset;
  946#line 60
  947struct kobj_type;
  948#line 60 "include/linux/kobject.h"
  949struct kobject {
  950   char    *name ;
  951   struct list_head entry ;
  952   struct kobject *parent ;
  953   struct kset *kset ;
  954   struct kobj_type *ktype ;
  955   struct sysfs_dirent *sd ;
  956   struct kref kref ;
  957   unsigned int state_initialized : 1 ;
  958   unsigned int state_in_sysfs : 1 ;
  959   unsigned int state_add_uevent_sent : 1 ;
  960   unsigned int state_remove_uevent_sent : 1 ;
  961   unsigned int uevent_suppress : 1 ;
  962};
  963#line 108 "include/linux/kobject.h"
  964struct kobj_type {
  965   void (*release)(struct kobject *kobj ) ;
  966   struct sysfs_ops    *sysfs_ops ;
  967   struct attribute **default_attrs ;
  968   struct kobj_ns_type_operations    *(*child_ns_type)(struct kobject *kobj ) ;
  969   void    *(*namespace)(struct kobject *kobj ) ;
  970};
  971#line 116 "include/linux/kobject.h"
  972struct kobj_uevent_env {
  973   char *envp[32] ;
  974   int envp_idx ;
  975   char buf[2048] ;
  976   int buflen ;
  977};
  978#line 123 "include/linux/kobject.h"
  979struct kset_uevent_ops {
  980   int (*   filter)(struct kset *kset , struct kobject *kobj ) ;
  981   char    *(*   name)(struct kset *kset , struct kobject *kobj ) ;
  982   int (*   uevent)(struct kset *kset , struct kobject *kobj , struct kobj_uevent_env *env ) ;
  983};
  984#line 159 "include/linux/kobject.h"
  985struct kset {
  986   struct list_head list ;
  987   spinlock_t list_lock ;
  988   struct kobject kobj ;
  989   struct kset_uevent_ops    *uevent_ops ;
  990};
  991#line 62 "include/linux/virtio_ring.h"
  992struct vring_desc {
  993   __u64 addr ;
  994   __u32 len ;
  995   __u16 flags ;
  996   __u16 next ;
  997};
  998#line 73 "include/linux/virtio_ring.h"
  999struct vring_avail {
 1000   __u16 flags ;
 1001   __u16 idx ;
 1002   __u16 ring[] ;
 1003};
 1004#line 80 "include/linux/virtio_ring.h"
 1005struct vring_used_elem {
 1006   __u32 id ;
 1007   __u32 len ;
 1008};
 1009#line 87 "include/linux/virtio_ring.h"
 1010struct vring_used {
 1011   __u16 flags ;
 1012   __u16 idx ;
 1013   struct vring_used_elem ring[] ;
 1014};
 1015#line 19 "include/linux/vhost.h"
 1016struct vhost_vring_state {
 1017   unsigned int index ;
 1018   unsigned int num ;
 1019};
 1020#line 24 "include/linux/vhost.h"
 1021struct vhost_vring_file {
 1022   unsigned int index ;
 1023   int fd ;
 1024};
 1025#line 30 "include/linux/vhost.h"
 1026struct vhost_vring_addr {
 1027   unsigned int index ;
 1028   unsigned int flags ;
 1029   __u64 desc_user_addr ;
 1030   __u64 used_user_addr ;
 1031   __u64 avail_user_addr ;
 1032   __u64 log_guest_addr ;
 1033};
 1034#line 50 "include/linux/vhost.h"
 1035struct vhost_memory_region {
 1036   __u64 guest_phys_addr ;
 1037   __u64 memory_size ;
 1038   __u64 userspace_addr ;
 1039   __u64 flags_padding ;
 1040};
 1041#line 60 "include/linux/vhost.h"
 1042struct vhost_memory {
 1043   __u32 nregions ;
 1044   __u32 padding ;
 1045   struct vhost_memory_region regions[0] ;
 1046};
 1047#line 16 "include/linux/uio.h"
 1048struct iovec {
 1049   void *iov_base ;
 1050   __kernel_size_t iov_len ;
 1051};
 1052#line 30 "include/linux/socket.h"
 1053struct cred;
 1054#line 65 "include/linux/net.h"
 1055struct poll_table_struct;
 1056#line 66
 1057struct pipe_inode_info;
 1058#line 121
 1059struct fasync_struct;
 1060#line 156
 1061struct kiocb;
 1062#line 46 "include/linux/slub_def.h"
 1063struct kmem_cache_cpu {
 1064   void **freelist ;
 1065   unsigned long tid ;
 1066   struct page *page ;
 1067   struct page *partial ;
 1068   int node ;
 1069   unsigned int stat[26] ;
 1070};
 1071#line 57 "include/linux/slub_def.h"
 1072struct kmem_cache_node {
 1073   spinlock_t list_lock ;
 1074   unsigned long nr_partial ;
 1075   struct list_head partial ;
 1076   atomic_long_t nr_slabs ;
 1077   atomic_long_t total_objects ;
 1078   struct list_head full ;
 1079};
 1080#line 73 "include/linux/slub_def.h"
 1081struct kmem_cache_order_objects {
 1082   unsigned long x ;
 1083};
 1084#line 80 "include/linux/slub_def.h"
 1085struct kmem_cache {
 1086   struct kmem_cache_cpu *cpu_slab ;
 1087   unsigned long flags ;
 1088   unsigned long min_partial ;
 1089   int size ;
 1090   int objsize ;
 1091   int offset ;
 1092   int cpu_partial ;
 1093   struct kmem_cache_order_objects oo ;
 1094   struct kmem_cache_order_objects max ;
 1095   struct kmem_cache_order_objects min ;
 1096   gfp_t allocflags ;
 1097   int refcount ;
 1098   void (*ctor)(void * ) ;
 1099   int inuse ;
 1100   int align ;
 1101   int reserved ;
 1102   char    *name ;
 1103   struct list_head list ;
 1104   struct kobject kobj ;
 1105   int remote_node_defrag_ratio ;
 1106   struct kmem_cache_node *node[1 << 10] ;
 1107};
 1108#line 431 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess.h"
 1109struct __large_struct {
 1110   unsigned long buf[100] ;
 1111};
 1112#line 8 "include/linux/timerqueue.h"
 1113struct timerqueue_node {
 1114   struct rb_node node ;
 1115   ktime_t expires ;
 1116};
 1117#line 13 "include/linux/timerqueue.h"
 1118struct timerqueue_head {
 1119   struct rb_root head ;
 1120   struct timerqueue_node *next ;
 1121};
 1122#line 27 "include/linux/hrtimer.h"
 1123struct hrtimer_clock_base;
 1124#line 28
 1125struct hrtimer_cpu_base;
 1126#line 44
 1127enum hrtimer_restart {
 1128    HRTIMER_NORESTART = 0,
 1129    HRTIMER_RESTART = 1
 1130} ;
 1131#line 108 "include/linux/hrtimer.h"
 1132struct hrtimer {
 1133   struct timerqueue_node node ;
 1134   ktime_t _softexpires ;
 1135   enum hrtimer_restart (*function)(struct hrtimer * ) ;
 1136   struct hrtimer_clock_base *base ;
 1137   unsigned long state ;
 1138   int start_pid ;
 1139   void *start_site ;
 1140   char start_comm[16] ;
 1141};
 1142#line 145 "include/linux/hrtimer.h"
 1143struct hrtimer_clock_base {
 1144   struct hrtimer_cpu_base *cpu_base ;
 1145   int index ;
 1146   clockid_t clockid ;
 1147   struct timerqueue_head active ;
 1148   ktime_t resolution ;
 1149   ktime_t (*get_time)(void) ;
 1150   ktime_t softirq_time ;
 1151   ktime_t offset ;
 1152};
 1153#line 178 "include/linux/hrtimer.h"
 1154struct hrtimer_cpu_base {
 1155   raw_spinlock_t lock ;
 1156   unsigned long active_bases ;
 1157   ktime_t expires_next ;
 1158   int hres_active ;
 1159   int hang_detected ;
 1160   unsigned long nr_events ;
 1161   unsigned long nr_retries ;
 1162   unsigned long nr_hangs ;
 1163   ktime_t max_hang_time ;
 1164   struct hrtimer_clock_base clock_base[3] ;
 1165};
 1166#line 244 "include/linux/skbuff.h"
 1167struct ubuf_info {
 1168   void (*callback)(struct ubuf_info * ) ;
 1169   void *ctx ;
 1170   unsigned long desc ;
 1171};
 1172#line 64 "include/linux/virtio_net.h"
 1173struct virtio_net_hdr {
 1174   __u8 flags ;
 1175   __u8 gso_type ;
 1176   __u16 hdr_len ;
 1177   __u16 gso_size ;
 1178   __u16 csum_start ;
 1179   __u16 csum_offset ;
 1180};
 1181#line 82 "include/linux/virtio_net.h"
 1182struct virtio_net_hdr_mrg_rxbuf {
 1183   struct virtio_net_hdr hdr ;
 1184   __u16 num_buffers ;
 1185};
 1186#line 33 "include/asm-generic/poll.h"
 1187struct pollfd {
 1188   int fd ;
 1189   short events ;
 1190   short revents ;
 1191};
 1192#line 16 "include/linux/blk_types.h"
 1193struct block_device;
 1194#line 33 "include/linux/list_bl.h"
 1195struct hlist_bl_node;
 1196#line 33 "include/linux/list_bl.h"
 1197struct hlist_bl_head {
 1198   struct hlist_bl_node *first ;
 1199};
 1200#line 37 "include/linux/list_bl.h"
 1201struct hlist_bl_node {
 1202   struct hlist_bl_node *next ;
 1203   struct hlist_bl_node **pprev ;
 1204};
 1205#line 13 "include/linux/dcache.h"
 1206struct nameidata;
 1207#line 35 "include/linux/dcache.h"
 1208struct qstr {
 1209   unsigned int hash ;
 1210   unsigned int len ;
 1211   unsigned char    *name ;
 1212};
 1213#line 88
 1214struct dentry_operations;
 1215#line 88
 1216struct super_block;
 1217#line 88 "include/linux/dcache.h"
 1218union __anonunion_d_u_163 {
 1219   struct list_head d_child ;
 1220   struct rcu_head d_rcu ;
 1221};
 1222#line 88 "include/linux/dcache.h"
 1223struct dentry {
 1224   unsigned int d_flags ;
 1225   seqcount_t d_seq ;
 1226   struct hlist_bl_node d_hash ;
 1227   struct dentry *d_parent ;
 1228   struct qstr d_name ;
 1229   struct inode *d_inode ;
 1230   unsigned char d_iname[32] ;
 1231   unsigned int d_count ;
 1232   spinlock_t d_lock ;
 1233   struct dentry_operations    *d_op ;
 1234   struct super_block *d_sb ;
 1235   unsigned long d_time ;
 1236   void *d_fsdata ;
 1237   struct list_head d_lru ;
 1238   union __anonunion_d_u_163 d_u ;
 1239   struct list_head d_subdirs ;
 1240   struct list_head d_alias ;
 1241};
 1242#line 131 "include/linux/dcache.h"
 1243struct dentry_operations {
 1244   int (*d_revalidate)(struct dentry * , struct nameidata * ) ;
 1245   int (*d_hash)(struct dentry    * , struct inode    * , struct qstr * ) ;
 1246   int (*d_compare)(struct dentry    * , struct inode    * , struct dentry  const  * ,
 1247                    struct inode    * , unsigned int  , char    * , struct qstr  const  * ) ;
 1248   int (*d_delete)(struct dentry    * ) ;
 1249   void (*d_release)(struct dentry * ) ;
 1250   void (*d_prune)(struct dentry * ) ;
 1251   void (*d_iput)(struct dentry * , struct inode * ) ;
 1252   char *(*d_dname)(struct dentry * , char * , int  ) ;
 1253   struct vfsmount *(*d_automount)(struct path * ) ;
 1254   int (*d_manage)(struct dentry * , bool  ) ;
 1255} __attribute__((__aligned__((1) <<  (6) ))) ;
 1256#line 7 "include/linux/path.h"
 1257struct path {
 1258   struct vfsmount *mnt ;
 1259   struct dentry *dentry ;
 1260};
 1261#line 62 "include/linux/stat.h"
 1262struct kstat {
 1263   u64 ino ;
 1264   dev_t dev ;
 1265   umode_t mode ;
 1266   unsigned int nlink ;
 1267   uid_t uid ;
 1268   gid_t gid ;
 1269   dev_t rdev ;
 1270   loff_t size ;
 1271   struct timespec atime ;
 1272   struct timespec mtime ;
 1273   struct timespec ctime ;
 1274   unsigned long blksize ;
 1275   unsigned long long blocks ;
 1276};
 1277#line 64 "include/linux/radix-tree.h"
 1278struct radix_tree_node;
 1279#line 64 "include/linux/radix-tree.h"
 1280struct radix_tree_root {
 1281   unsigned int height ;
 1282   gfp_t gfp_mask ;
 1283   struct radix_tree_node *rnode ;
 1284};
 1285#line 6 "include/linux/pid.h"
 1286enum pid_type {
 1287    PIDTYPE_PID = 0,
 1288    PIDTYPE_PGID = 1,
 1289    PIDTYPE_SID = 2,
 1290    PIDTYPE_MAX = 3
 1291} ;
 1292#line 50
 1293struct pid_namespace;
 1294#line 50 "include/linux/pid.h"
 1295struct upid {
 1296   int nr ;
 1297   struct pid_namespace *ns ;
 1298   struct hlist_node pid_chain ;
 1299};
 1300#line 57 "include/linux/pid.h"
 1301struct pid {
 1302   atomic_t count ;
 1303   unsigned int level ;
 1304   struct hlist_head tasks[3] ;
 1305   struct rcu_head rcu ;
 1306   struct upid numbers[1] ;
 1307};
 1308#line 69 "include/linux/pid.h"
 1309struct pid_link {
 1310   struct hlist_node node ;
 1311   struct pid *pid ;
 1312};
 1313#line 94 "include/linux/capability.h"
 1314struct kernel_cap_struct {
 1315   __u32 cap[2] ;
 1316};
 1317#line 94 "include/linux/capability.h"
 1318typedef struct kernel_cap_struct kernel_cap_t;
 1319#line 378
 1320struct user_namespace;
 1321#line 16 "include/linux/fiemap.h"
 1322struct fiemap_extent {
 1323   __u64 fe_logical ;
 1324   __u64 fe_physical ;
 1325   __u64 fe_length ;
 1326   __u64 fe_reserved64[2] ;
 1327   __u32 fe_flags ;
 1328   __u32 fe_reserved[3] ;
 1329};
 1330#line 10 "include/linux/migrate_mode.h"
 1331enum migrate_mode {
 1332    MIGRATE_ASYNC = 0,
 1333    MIGRATE_SYNC_LIGHT = 1,
 1334    MIGRATE_SYNC = 2
 1335} ;
 1336#line 408 "include/linux/fs.h"
 1337struct export_operations;
 1338#line 416
 1339struct kstatfs;
 1340#line 469 "include/linux/fs.h"
 1341struct iattr {
 1342   unsigned int ia_valid ;
 1343   umode_t ia_mode ;
 1344   uid_t ia_uid ;
 1345   gid_t ia_gid ;
 1346   loff_t ia_size ;
 1347   struct timespec ia_atime ;
 1348   struct timespec ia_mtime ;
 1349   struct timespec ia_ctime ;
 1350   struct file *ia_file ;
 1351};
 1352#line 129 "include/linux/quota.h"
 1353struct if_dqinfo {
 1354   __u64 dqi_bgrace ;
 1355   __u64 dqi_igrace ;
 1356   __u32 dqi_flags ;
 1357   __u32 dqi_valid ;
 1358};
 1359#line 50 "include/linux/dqblk_xfs.h"
 1360struct fs_disk_quota {
 1361   __s8 d_version ;
 1362   __s8 d_flags ;
 1363   __u16 d_fieldmask ;
 1364   __u32 d_id ;
 1365   __u64 d_blk_hardlimit ;
 1366   __u64 d_blk_softlimit ;
 1367   __u64 d_ino_hardlimit ;
 1368   __u64 d_ino_softlimit ;
 1369   __u64 d_bcount ;
 1370   __u64 d_icount ;
 1371   __s32 d_itimer ;
 1372   __s32 d_btimer ;
 1373   __u16 d_iwarns ;
 1374   __u16 d_bwarns ;
 1375   __s32 d_padding2 ;
 1376   __u64 d_rtb_hardlimit ;
 1377   __u64 d_rtb_softlimit ;
 1378   __u64 d_rtbcount ;
 1379   __s32 d_rtbtimer ;
 1380   __u16 d_rtbwarns ;
 1381   __s16 d_padding3 ;
 1382   char d_padding4[8] ;
 1383};
 1384#line 146 "include/linux/dqblk_xfs.h"
 1385struct fs_qfilestat {
 1386   __u64 qfs_ino ;
 1387   __u64 qfs_nblks ;
 1388   __u32 qfs_nextents ;
 1389};
 1390#line 146 "include/linux/dqblk_xfs.h"
 1391typedef struct fs_qfilestat fs_qfilestat_t;
 1392#line 152 "include/linux/dqblk_xfs.h"
 1393struct fs_quota_stat {
 1394   __s8 qs_version ;
 1395   __u16 qs_flags ;
 1396   __s8 qs_pad ;
 1397   fs_qfilestat_t qs_uquota ;
 1398   fs_qfilestat_t qs_gquota ;
 1399   __u32 qs_incoredqs ;
 1400   __s32 qs_btimelimit ;
 1401   __s32 qs_itimelimit ;
 1402   __s32 qs_rtbtimelimit ;
 1403   __u16 qs_bwarnlimit ;
 1404   __u16 qs_iwarnlimit ;
 1405};
 1406#line 17 "include/linux/dqblk_qtree.h"
 1407struct dquot;
 1408#line 185 "include/linux/quota.h"
 1409typedef __kernel_uid32_t qid_t;
 1410#line 186 "include/linux/quota.h"
 1411typedef long long qsize_t;
 1412#line 200 "include/linux/quota.h"
 1413struct mem_dqblk {
 1414   qsize_t dqb_bhardlimit ;
 1415   qsize_t dqb_bsoftlimit ;
 1416   qsize_t dqb_curspace ;
 1417   qsize_t dqb_rsvspace ;
 1418   qsize_t dqb_ihardlimit ;
 1419   qsize_t dqb_isoftlimit ;
 1420   qsize_t dqb_curinodes ;
 1421   time_t dqb_btime ;
 1422   time_t dqb_itime ;
 1423};
 1424#line 215
 1425struct quota_format_type;
 1426#line 217 "include/linux/quota.h"
 1427struct mem_dqinfo {
 1428   struct quota_format_type *dqi_format ;
 1429   int dqi_fmt_id ;
 1430   struct list_head dqi_dirty_list ;
 1431   unsigned long dqi_flags ;
 1432   unsigned int dqi_bgrace ;
 1433   unsigned int dqi_igrace ;
 1434   qsize_t dqi_maxblimit ;
 1435   qsize_t dqi_maxilimit ;
 1436   void *dqi_priv ;
 1437};
 1438#line 288 "include/linux/quota.h"
 1439struct dquot {
 1440   struct hlist_node dq_hash ;
 1441   struct list_head dq_inuse ;
 1442   struct list_head dq_free ;
 1443   struct list_head dq_dirty ;
 1444   struct mutex dq_lock ;
 1445   atomic_t dq_count ;
 1446   wait_queue_head_t dq_wait_unused ;
 1447   struct super_block *dq_sb ;
 1448   unsigned int dq_id ;
 1449   loff_t dq_off ;
 1450   unsigned long dq_flags ;
 1451   short dq_type ;
 1452   struct mem_dqblk dq_dqb ;
 1453};
 1454#line 305 "include/linux/quota.h"
 1455struct quota_format_ops {
 1456   int (*check_quota_file)(struct super_block *sb , int type ) ;
 1457   int (*read_file_info)(struct super_block *sb , int type ) ;
 1458   int (*write_file_info)(struct super_block *sb , int type ) ;
 1459   int (*free_file_info)(struct super_block *sb , int type ) ;
 1460   int (*read_dqblk)(struct dquot *dquot ) ;
 1461   int (*commit_dqblk)(struct dquot *dquot ) ;
 1462   int (*release_dqblk)(struct dquot *dquot ) ;
 1463};
 1464#line 316 "include/linux/quota.h"
 1465struct dquot_operations {
 1466   int (*write_dquot)(struct dquot * ) ;
 1467   struct dquot *(*alloc_dquot)(struct super_block * , int  ) ;
 1468   void (*destroy_dquot)(struct dquot * ) ;
 1469   int (*acquire_dquot)(struct dquot * ) ;
 1470   int (*release_dquot)(struct dquot * ) ;
 1471   int (*mark_dirty)(struct dquot * ) ;
 1472   int (*write_info)(struct super_block * , int  ) ;
 1473   qsize_t *(*get_reserved_space)(struct inode * ) ;
 1474};
 1475#line 332 "include/linux/quota.h"
 1476struct quotactl_ops {
 1477   int (*quota_on)(struct super_block * , int  , int  , struct path * ) ;
 1478   int (*quota_on_meta)(struct super_block * , int  , int  ) ;
 1479   int (*quota_off)(struct super_block * , int  ) ;
 1480   int (*quota_sync)(struct super_block * , int  , int  ) ;
 1481   int (*get_info)(struct super_block * , int  , struct if_dqinfo * ) ;
 1482   int (*set_info)(struct super_block * , int  , struct if_dqinfo * ) ;
 1483   int (*get_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
 1484   int (*set_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
 1485   int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ;
 1486   int (*set_xstate)(struct super_block * , unsigned int  , int  ) ;
 1487};
 1488#line 345 "include/linux/quota.h"
 1489struct quota_format_type {
 1490   int qf_fmt_id ;
 1491   struct quota_format_ops    *qf_ops ;
 1492   struct module *qf_owner ;
 1493   struct quota_format_type *qf_next ;
 1494};
 1495#line 399 "include/linux/quota.h"
 1496struct quota_info {
 1497   unsigned int flags ;
 1498   struct mutex dqio_mutex ;
 1499   struct mutex dqonoff_mutex ;
 1500   struct rw_semaphore dqptr_sem ;
 1501   struct inode *files[2] ;
 1502   struct mem_dqinfo info[2] ;
 1503   struct quota_format_ops    *ops[2] ;
 1504};
 1505#line 577 "include/linux/fs.h"
 1506union __anonunion_arg_171 {
 1507   char *buf ;
 1508   void *data ;
 1509};
 1510#line 577 "include/linux/fs.h"
 1511struct __anonstruct_read_descriptor_t_170 {
 1512   size_t written ;
 1513   size_t count ;
 1514   union __anonunion_arg_171 arg ;
 1515   int error ;
 1516};
 1517#line 577 "include/linux/fs.h"
 1518typedef struct __anonstruct_read_descriptor_t_170 read_descriptor_t;
 1519#line 590 "include/linux/fs.h"
 1520struct address_space_operations {
 1521   int (*writepage)(struct page *page , struct writeback_control *wbc ) ;
 1522   int (*readpage)(struct file * , struct page * ) ;
 1523   int (*writepages)(struct address_space * , struct writeback_control * ) ;
 1524   int (*set_page_dirty)(struct page *page ) ;
 1525   int (*readpages)(struct file *filp , struct address_space *mapping , struct list_head *pages ,
 1526                    unsigned int nr_pages ) ;
 1527   int (*write_begin)(struct file * , struct address_space *mapping , loff_t pos ,
 1528                      unsigned int len , unsigned int flags , struct page **pagep ,
 1529                      void **fsdata ) ;
 1530   int (*write_end)(struct file * , struct address_space *mapping , loff_t pos , unsigned int len ,
 1531                    unsigned int copied , struct page *page , void *fsdata ) ;
 1532   sector_t (*bmap)(struct address_space * , sector_t  ) ;
 1533   void (*invalidatepage)(struct page * , unsigned long  ) ;
 1534   int (*releasepage)(struct page * , gfp_t  ) ;
 1535   void (*freepage)(struct page * ) ;
 1536   ssize_t (*direct_IO)(int  , struct kiocb * , struct iovec    *iov , loff_t offset ,
 1537                        unsigned long nr_segs ) ;
 1538   int (*get_xip_mem)(struct address_space * , unsigned long  , int  , void ** , unsigned long * ) ;
 1539   int (*migratepage)(struct address_space * , struct page * , struct page * , enum migrate_mode  ) ;
 1540   int (*launder_page)(struct page * ) ;
 1541   int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long  ) ;
 1542   int (*error_remove_page)(struct address_space * , struct page * ) ;
 1543};
 1544#line 645
 1545struct backing_dev_info;
 1546#line 646 "include/linux/fs.h"
 1547struct address_space {
 1548   struct inode *host ;
 1549   struct radix_tree_root page_tree ;
 1550   spinlock_t tree_lock ;
 1551   unsigned int i_mmap_writable ;
 1552   struct prio_tree_root i_mmap ;
 1553   struct list_head i_mmap_nonlinear ;
 1554   struct mutex i_mmap_mutex ;
 1555   unsigned long nrpages ;
 1556   unsigned long writeback_index ;
 1557   struct address_space_operations    *a_ops ;
 1558   unsigned long flags ;
 1559   struct backing_dev_info *backing_dev_info ;
 1560   spinlock_t private_lock ;
 1561   struct list_head private_list ;
 1562   struct address_space *assoc_mapping ;
 1563} __attribute__((__aligned__(sizeof(long )))) ;
 1564#line 669
 1565struct request_queue;
 1566#line 671
 1567struct hd_struct;
 1568#line 671
 1569struct gendisk;
 1570#line 671 "include/linux/fs.h"
 1571struct block_device {
 1572   dev_t bd_dev ;
 1573   int bd_openers ;
 1574   struct inode *bd_inode ;
 1575   struct super_block *bd_super ;
 1576   struct mutex bd_mutex ;
 1577   struct list_head bd_inodes ;
 1578   void *bd_claiming ;
 1579   void *bd_holder ;
 1580   int bd_holders ;
 1581   bool bd_write_holder ;
 1582   struct list_head bd_holder_disks ;
 1583   struct block_device *bd_contains ;
 1584   unsigned int bd_block_size ;
 1585   struct hd_struct *bd_part ;
 1586   unsigned int bd_part_count ;
 1587   int bd_invalidated ;
 1588   struct gendisk *bd_disk ;
 1589   struct request_queue *bd_queue ;
 1590   struct list_head bd_list ;
 1591   unsigned long bd_private ;
 1592   int bd_fsfreeze_count ;
 1593   struct mutex bd_fsfreeze_mutex ;
 1594};
 1595#line 749
 1596struct posix_acl;
 1597#line 761
 1598struct inode_operations;
 1599#line 761 "include/linux/fs.h"
 1600union __anonunion____missing_field_name_172 {
 1601   unsigned int    i_nlink ;
 1602   unsigned int __i_nlink ;
 1603};
 1604#line 761 "include/linux/fs.h"
 1605union __anonunion____missing_field_name_173 {
 1606   struct list_head i_dentry ;
 1607   struct rcu_head i_rcu ;
 1608};
 1609#line 761
 1610struct file_lock;
 1611#line 761
 1612struct cdev;
 1613#line 761 "include/linux/fs.h"
 1614union __anonunion____missing_field_name_174 {
 1615   struct pipe_inode_info *i_pipe ;
 1616   struct block_device *i_bdev ;
 1617   struct cdev *i_cdev ;
 1618};
 1619#line 761 "include/linux/fs.h"
 1620struct inode {
 1621   umode_t i_mode ;
 1622   unsigned short i_opflags ;
 1623   uid_t i_uid ;
 1624   gid_t i_gid ;
 1625   unsigned int i_flags ;
 1626   struct posix_acl *i_acl ;
 1627   struct posix_acl *i_default_acl ;
 1628   struct inode_operations    *i_op ;
 1629   struct super_block *i_sb ;
 1630   struct address_space *i_mapping ;
 1631   void *i_security ;
 1632   unsigned long i_ino ;
 1633   union __anonunion____missing_field_name_172 __annonCompField42 ;
 1634   dev_t i_rdev ;
 1635   struct timespec i_atime ;
 1636   struct timespec i_mtime ;
 1637   struct timespec i_ctime ;
 1638   spinlock_t i_lock ;
 1639   unsigned short i_bytes ;
 1640   blkcnt_t i_blocks ;
 1641   loff_t i_size ;
 1642   unsigned long i_state ;
 1643   struct mutex i_mutex ;
 1644   unsigned long dirtied_when ;
 1645   struct hlist_node i_hash ;
 1646   struct list_head i_wb_list ;
 1647   struct list_head i_lru ;
 1648   struct list_head i_sb_list ;
 1649   union __anonunion____missing_field_name_173 __annonCompField43 ;
 1650   atomic_t i_count ;
 1651   unsigned int i_blkbits ;
 1652   u64 i_version ;
 1653   atomic_t i_dio_count ;
 1654   atomic_t i_writecount ;
 1655   struct file_operations    *i_fop ;
 1656   struct file_lock *i_flock ;
 1657   struct address_space i_data ;
 1658   struct dquot *i_dquot[2] ;
 1659   struct list_head i_devices ;
 1660   union __anonunion____missing_field_name_174 __annonCompField44 ;
 1661   __u32 i_generation ;
 1662   __u32 i_fsnotify_mask ;
 1663   struct hlist_head i_fsnotify_marks ;
 1664   atomic_t i_readcount ;
 1665   void *i_private ;
 1666};
 1667#line 942 "include/linux/fs.h"
 1668struct fown_struct {
 1669   rwlock_t lock ;
 1670   struct pid *pid ;
 1671   enum pid_type pid_type ;
 1672   uid_t uid ;
 1673   uid_t euid ;
 1674   int signum ;
 1675};
 1676#line 953 "include/linux/fs.h"
 1677struct file_ra_state {
 1678   unsigned long start ;
 1679   unsigned int size ;
 1680   unsigned int async_size ;
 1681   unsigned int ra_pages ;
 1682   unsigned int mmap_miss ;
 1683   loff_t prev_pos ;
 1684};
 1685#line 976 "include/linux/fs.h"
 1686union __anonunion_f_u_175 {
 1687   struct list_head fu_list ;
 1688   struct rcu_head fu_rcuhead ;
 1689};
 1690#line 976 "include/linux/fs.h"
 1691struct file {
 1692   union __anonunion_f_u_175 f_u ;
 1693   struct path f_path ;
 1694   struct file_operations    *f_op ;
 1695   spinlock_t f_lock ;
 1696   int f_sb_list_cpu ;
 1697   atomic_long_t f_count ;
 1698   unsigned int f_flags ;
 1699   fmode_t f_mode ;
 1700   loff_t f_pos ;
 1701   struct fown_struct f_owner ;
 1702   struct cred    *f_cred ;
 1703   struct file_ra_state f_ra ;
 1704   u64 f_version ;
 1705   void *f_security ;
 1706   void *private_data ;
 1707   struct list_head f_ep_links ;
 1708   struct list_head f_tfile_llink ;
 1709   struct address_space *f_mapping ;
 1710   unsigned long f_mnt_write_state ;
 1711};
 1712#line 1111
 1713struct files_struct;
 1714#line 1111 "include/linux/fs.h"
 1715typedef struct files_struct *fl_owner_t;
 1716#line 1113 "include/linux/fs.h"
 1717struct file_lock_operations {
 1718   void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ;
 1719   void (*fl_release_private)(struct file_lock * ) ;
 1720};
 1721#line 1118 "include/linux/fs.h"
 1722struct lock_manager_operations {
 1723   int (*lm_compare_owner)(struct file_lock * , struct file_lock * ) ;
 1724   void (*lm_notify)(struct file_lock * ) ;
 1725   int (*lm_grant)(struct file_lock * , struct file_lock * , int  ) ;
 1726   void (*lm_release_private)(struct file_lock * ) ;
 1727   void (*lm_break)(struct file_lock * ) ;
 1728   int (*lm_change)(struct file_lock ** , int  ) ;
 1729};
 1730#line 4 "include/linux/nfs_fs_i.h"
 1731struct nlm_lockowner;
 1732#line 9 "include/linux/nfs_fs_i.h"
 1733struct nfs_lock_info {
 1734   u32 state ;
 1735   struct nlm_lockowner *owner ;
 1736   struct list_head list ;
 1737};
 1738#line 15
 1739struct nfs4_lock_state;
 1740#line 16 "include/linux/nfs_fs_i.h"
 1741struct nfs4_lock_info {
 1742   struct nfs4_lock_state *owner ;
 1743};
 1744#line 1138 "include/linux/fs.h"
 1745struct __anonstruct_afs_177 {
 1746   struct list_head link ;
 1747   int state ;
 1748};
 1749#line 1138 "include/linux/fs.h"
 1750union __anonunion_fl_u_176 {
 1751   struct nfs_lock_info nfs_fl ;
 1752   struct nfs4_lock_info nfs4_fl ;
 1753   struct __anonstruct_afs_177 afs ;
 1754};
 1755#line 1138 "include/linux/fs.h"
 1756struct file_lock {
 1757   struct file_lock *fl_next ;
 1758   struct list_head fl_link ;
 1759   struct list_head fl_block ;
 1760   fl_owner_t fl_owner ;
 1761   unsigned int fl_flags ;
 1762   unsigned char fl_type ;
 1763   unsigned int fl_pid ;
 1764   struct pid *fl_nspid ;
 1765   wait_queue_head_t fl_wait ;
 1766   struct file *fl_file ;
 1767   loff_t fl_start ;
 1768   loff_t fl_end ;
 1769   struct fasync_struct *fl_fasync ;
 1770   unsigned long fl_break_time ;
 1771   unsigned long fl_downgrade_time ;
 1772   struct file_lock_operations    *fl_ops ;
 1773   struct lock_manager_operations    *fl_lmops ;
 1774   union __anonunion_fl_u_176 fl_u ;
 1775};
 1776#line 1378 "include/linux/fs.h"
 1777struct fasync_struct {
 1778   spinlock_t fa_lock ;
 1779   int magic ;
 1780   int fa_fd ;
 1781   struct fasync_struct *fa_next ;
 1782   struct file *fa_file ;
 1783   struct rcu_head fa_rcu ;
 1784};
 1785#line 1418
 1786struct file_system_type;
 1787#line 1418
 1788struct super_operations;
 1789#line 1418
 1790struct xattr_handler;
 1791#line 1418
 1792struct mtd_info;
 1793#line 1418 "include/linux/fs.h"
 1794struct super_block {
 1795   struct list_head s_list ;
 1796   dev_t s_dev ;
 1797   unsigned char s_dirt ;
 1798   unsigned char s_blocksize_bits ;
 1799   unsigned long s_blocksize ;
 1800   loff_t s_maxbytes ;
 1801   struct file_system_type *s_type ;
 1802   struct super_operations    *s_op ;
 1803   struct dquot_operations    *dq_op ;
 1804   struct quotactl_ops    *s_qcop ;
 1805   struct export_operations    *s_export_op ;
 1806   unsigned long s_flags ;
 1807   unsigned long s_magic ;
 1808   struct dentry *s_root ;
 1809   struct rw_semaphore s_umount ;
 1810   struct mutex s_lock ;
 1811   int s_count ;
 1812   atomic_t s_active ;
 1813   void *s_security ;
 1814   struct xattr_handler    **s_xattr ;
 1815   struct list_head s_inodes ;
 1816   struct hlist_bl_head s_anon ;
 1817   struct list_head *s_files ;
 1818   struct list_head s_mounts ;
 1819   struct list_head s_dentry_lru ;
 1820   int s_nr_dentry_unused ;
 1821   spinlock_t s_inode_lru_lock  __attribute__((__aligned__((1) <<  (6) ))) ;
 1822   struct list_head s_inode_lru ;
 1823   int s_nr_inodes_unused ;
 1824   struct block_device *s_bdev ;
 1825   struct backing_dev_info *s_bdi ;
 1826   struct mtd_info *s_mtd ;
 1827   struct hlist_node s_instances ;
 1828   struct quota_info s_dquot ;
 1829   int s_frozen ;
 1830   wait_queue_head_t s_wait_unfrozen ;
 1831   char s_id[32] ;
 1832   u8 s_uuid[16] ;
 1833   void *s_fs_info ;
 1834   unsigned int s_max_links ;
 1835   fmode_t s_mode ;
 1836   u32 s_time_gran ;
 1837   struct mutex s_vfs_rename_mutex ;
 1838   char *s_subtype ;
 1839   char *s_options ;
 1840   struct dentry_operations    *s_d_op ;
 1841   int cleancache_poolid ;
 1842   struct shrinker s_shrink ;
 1843   atomic_long_t s_remove_count ;
 1844   int s_readonly_remount ;
 1845};
 1846#line 1567 "include/linux/fs.h"
 1847struct fiemap_extent_info {
 1848   unsigned int fi_flags ;
 1849   unsigned int fi_extents_mapped ;
 1850   unsigned int fi_extents_max ;
 1851   struct fiemap_extent *fi_extents_start ;
 1852};
 1853#line 1609 "include/linux/fs.h"
 1854struct file_operations {
 1855   struct module *owner ;
 1856   loff_t (*llseek)(struct file * , loff_t  , int  ) ;
 1857   ssize_t (*read)(struct file * , char * , size_t  , loff_t * ) ;
 1858   ssize_t (*write)(struct file * , char    * , size_t  , loff_t * ) ;
 1859   ssize_t (*aio_read)(struct kiocb * , struct iovec    * , unsigned long  ,
 1860                       loff_t  ) ;
 1861   ssize_t (*aio_write)(struct kiocb * , struct iovec    * , unsigned long  ,
 1862                        loff_t  ) ;
 1863   int (*readdir)(struct file * , void * , int (*)(void * , char    * , int  ,
 1864                                                   loff_t  , u64  , unsigned int  ) ) ;
 1865   unsigned int (*poll)(struct file * , struct poll_table_struct * ) ;
 1866   long (*unlocked_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
 1867   long (*compat_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
 1868   int (*mmap)(struct file * , struct vm_area_struct * ) ;
 1869   int (*open)(struct inode * , struct file * ) ;
 1870   int (*flush)(struct file * , fl_owner_t id ) ;
 1871   int (*release)(struct inode * , struct file * ) ;
 1872   int (*fsync)(struct file * , loff_t  , loff_t  , int datasync ) ;
 1873   int (*aio_fsync)(struct kiocb * , int datasync ) ;
 1874   int (*fasync)(int  , struct file * , int  ) ;
 1875   int (*lock)(struct file * , int  , struct file_lock * ) ;
 1876   ssize_t (*sendpage)(struct file * , struct page * , int  , size_t  , loff_t * ,
 1877                       int  ) ;
 1878   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
 1879                                      unsigned long  , unsigned long  ) ;
 1880   int (*check_flags)(int  ) ;
 1881   int (*flock)(struct file * , int  , struct file_lock * ) ;
 1882   ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t  ,
 1883                           unsigned int  ) ;
 1884   ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t  ,
 1885                          unsigned int  ) ;
 1886   int (*setlease)(struct file * , long  , struct file_lock ** ) ;
 1887   long (*fallocate)(struct file *file , int mode , loff_t offset , loff_t len ) ;
 1888};
 1889#line 1639 "include/linux/fs.h"
 1890struct inode_operations {
 1891   struct dentry *(*lookup)(struct inode * , struct dentry * , struct nameidata * ) ;
 1892   void *(*follow_link)(struct dentry * , struct nameidata * ) ;
 1893   int (*permission)(struct inode * , int  ) ;
 1894   struct posix_acl *(*get_acl)(struct inode * , int  ) ;
 1895   int (*readlink)(struct dentry * , char * , int  ) ;
 1896   void (*put_link)(struct dentry * , struct nameidata * , void * ) ;
 1897   int (*create)(struct inode * , struct dentry * , umode_t  , struct nameidata * ) ;
 1898   int (*link)(struct dentry * , struct inode * , struct dentry * ) ;
 1899   int (*unlink)(struct inode * , struct dentry * ) ;
 1900   int (*symlink)(struct inode * , struct dentry * , char    * ) ;
 1901   int (*mkdir)(struct inode * , struct dentry * , umode_t  ) ;
 1902   int (*rmdir)(struct inode * , struct dentry * ) ;
 1903   int (*mknod)(struct inode * , struct dentry * , umode_t  , dev_t  ) ;
 1904   int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ;
 1905   void (*truncate)(struct inode * ) ;
 1906   int (*setattr)(struct dentry * , struct iattr * ) ;
 1907   int (*getattr)(struct vfsmount *mnt , struct dentry * , struct kstat * ) ;
 1908   int (*setxattr)(struct dentry * , char    * , void    * , size_t  , int  ) ;
 1909   ssize_t (*getxattr)(struct dentry * , char    * , void * , size_t  ) ;
 1910   ssize_t (*listxattr)(struct dentry * , char * , size_t  ) ;
 1911   int (*removexattr)(struct dentry * , char    * ) ;
 1912   void (*truncate_range)(struct inode * , loff_t  , loff_t  ) ;
 1913   int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64 start , u64 len ) ;
 1914} __attribute__((__aligned__((1) <<  (6) ))) ;
 1915#line 1684 "include/linux/fs.h"
 1916struct super_operations {
 1917   struct inode *(*alloc_inode)(struct super_block *sb ) ;
 1918   void (*destroy_inode)(struct inode * ) ;
 1919   void (*dirty_inode)(struct inode * , int flags ) ;
 1920   int (*write_inode)(struct inode * , struct writeback_control *wbc ) ;
 1921   int (*drop_inode)(struct inode * ) ;
 1922   void (*evict_inode)(struct inode * ) ;
 1923   void (*put_super)(struct super_block * ) ;
 1924   void (*write_super)(struct super_block * ) ;
 1925   int (*sync_fs)(struct super_block *sb , int wait ) ;
 1926   int (*freeze_fs)(struct super_block * ) ;
 1927   int (*unfreeze_fs)(struct super_block * ) ;
 1928   int (*statfs)(struct dentry * , struct kstatfs * ) ;
 1929   int (*remount_fs)(struct super_block * , int * , char * ) ;
 1930   void (*umount_begin)(struct super_block * ) ;
 1931   int (*show_options)(struct seq_file * , struct dentry * ) ;
 1932   int (*show_devname)(struct seq_file * , struct dentry * ) ;
 1933   int (*show_path)(struct seq_file * , struct dentry * ) ;
 1934   int (*show_stats)(struct seq_file * , struct dentry * ) ;
 1935   ssize_t (*quota_read)(struct super_block * , int  , char * , size_t  , loff_t  ) ;
 1936   ssize_t (*quota_write)(struct super_block * , int  , char    * , size_t  ,
 1937                          loff_t  ) ;
 1938   int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t  ) ;
 1939   int (*nr_cached_objects)(struct super_block * ) ;
 1940   void (*free_cached_objects)(struct super_block * , int  ) ;
 1941};
 1942#line 1835 "include/linux/fs.h"
 1943struct file_system_type {
 1944   char    *name ;
 1945   int fs_flags ;
 1946   struct dentry *(*mount)(struct file_system_type * , int  , char    * , void * ) ;
 1947   void (*kill_sb)(struct super_block * ) ;
 1948   struct module *owner ;
 1949   struct file_system_type *next ;
 1950   struct hlist_head fs_supers ;
 1951   struct lock_class_key s_lock_key ;
 1952   struct lock_class_key s_umount_key ;
 1953   struct lock_class_key s_vfs_rename_key ;
 1954   struct lock_class_key i_lock_key ;
 1955   struct lock_class_key i_mutex_key ;
 1956   struct lock_class_key i_mutex_dir_key ;
 1957};
 1958#line 939 "include/linux/sysctl.h"
 1959struct nsproxy;
 1960#line 39 "include/linux/poll.h"
 1961struct poll_table_struct {
 1962   void (*_qproc)(struct file * , wait_queue_head_t * , struct poll_table_struct * ) ;
 1963   unsigned long _key ;
 1964};
 1965#line 39 "include/linux/poll.h"
 1966typedef struct poll_table_struct poll_table;
 1967#line 7 "include/asm-generic/cputime.h"
 1968typedef unsigned long cputime_t;
 1969#line 101 "include/linux/sem.h"
 1970struct sem_undo_list;
 1971#line 101 "include/linux/sem.h"
 1972struct sysv_sem {
 1973   struct sem_undo_list *undo_list ;
 1974};
 1975#line 10 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
 1976struct siginfo;
 1977#line 30 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
 1978struct __anonstruct_sigset_t_242 {
 1979   unsigned long sig[1] ;
 1980};
 1981#line 30 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
 1982typedef struct __anonstruct_sigset_t_242 sigset_t;
 1983#line 17 "include/asm-generic/signal-defs.h"
 1984typedef void __signalfn_t(int  );
 1985#line 18 "include/asm-generic/signal-defs.h"
 1986typedef __signalfn_t *__sighandler_t;
 1987#line 20 "include/asm-generic/signal-defs.h"
 1988typedef void __restorefn_t(void);
 1989#line 21 "include/asm-generic/signal-defs.h"
 1990typedef __restorefn_t *__sigrestore_t;
 1991#line 167 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
 1992struct sigaction {
 1993   __sighandler_t sa_handler ;
 1994   unsigned long sa_flags ;
 1995   __sigrestore_t sa_restorer ;
 1996   sigset_t sa_mask ;
 1997};
 1998#line 174 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/signal.h"
 1999struct k_sigaction {
 2000   struct sigaction sa ;
 2001};
 2002#line 7 "include/asm-generic/siginfo.h"
 2003union sigval {
 2004   int sival_int ;
 2005   void *sival_ptr ;
 2006};
 2007#line 7 "include/asm-generic/siginfo.h"
 2008typedef union sigval sigval_t;
 2009#line 48 "include/asm-generic/siginfo.h"
 2010struct __anonstruct__kill_244 {
 2011   __kernel_pid_t _pid ;
 2012   __kernel_uid32_t _uid ;
 2013};
 2014#line 48 "include/asm-generic/siginfo.h"
 2015struct __anonstruct__timer_245 {
 2016   __kernel_timer_t _tid ;
 2017   int _overrun ;
 2018   char _pad[sizeof(__kernel_uid32_t ) - sizeof(int )] ;
 2019   sigval_t _sigval ;
 2020   int _sys_private ;
 2021};
 2022#line 48 "include/asm-generic/siginfo.h"
 2023struct __anonstruct__rt_246 {
 2024   __kernel_pid_t _pid ;
 2025   __kernel_uid32_t _uid ;
 2026   sigval_t _sigval ;
 2027};
 2028#line 48 "include/asm-generic/siginfo.h"
 2029struct __anonstruct__sigchld_247 {
 2030   __kernel_pid_t _pid ;
 2031   __kernel_uid32_t _uid ;
 2032   int _status ;
 2033   __kernel_clock_t _utime ;
 2034   __kernel_clock_t _stime ;
 2035};
 2036#line 48 "include/asm-generic/siginfo.h"
 2037struct __anonstruct__sigfault_248 {
 2038   void *_addr ;
 2039   short _addr_lsb ;
 2040};
 2041#line 48 "include/asm-generic/siginfo.h"
 2042struct __anonstruct__sigpoll_249 {
 2043   long _band ;
 2044   int _fd ;
 2045};
 2046#line 48 "include/asm-generic/siginfo.h"
 2047union __anonunion__sifields_243 {
 2048   int _pad[(128UL - 4UL * sizeof(int )) / sizeof(int )] ;
 2049   struct __anonstruct__kill_244 _kill ;
 2050   struct __anonstruct__timer_245 _timer ;
 2051   struct __anonstruct__rt_246 _rt ;
 2052   struct __anonstruct__sigchld_247 _sigchld ;
 2053   struct __anonstruct__sigfault_248 _sigfault ;
 2054   struct __anonstruct__sigpoll_249 _sigpoll ;
 2055};
 2056#line 48 "include/asm-generic/siginfo.h"
 2057struct siginfo {
 2058   int si_signo ;
 2059   int si_errno ;
 2060   int si_code ;
 2061   union __anonunion__sifields_243 _sifields ;
 2062};
 2063#line 48 "include/asm-generic/siginfo.h"
 2064typedef struct siginfo siginfo_t;
 2065#line 28 "include/linux/signal.h"
 2066struct sigpending {
 2067   struct list_head list ;
 2068   sigset_t signal ;
 2069};
 2070#line 10 "include/linux/seccomp.h"
 2071struct __anonstruct_seccomp_t_252 {
 2072   int mode ;
 2073};
 2074#line 10 "include/linux/seccomp.h"
 2075typedef struct __anonstruct_seccomp_t_252 seccomp_t;
 2076#line 81 "include/linux/plist.h"
 2077struct plist_head {
 2078   struct list_head node_list ;
 2079};
 2080#line 85 "include/linux/plist.h"
 2081struct plist_node {
 2082   int prio ;
 2083   struct list_head prio_list ;
 2084   struct list_head node_list ;
 2085};
 2086#line 40 "include/linux/rtmutex.h"
 2087struct rt_mutex_waiter;
 2088#line 42 "include/linux/resource.h"
 2089struct rlimit {
 2090   unsigned long rlim_cur ;
 2091   unsigned long rlim_max ;
 2092};
 2093#line 11 "include/linux/task_io_accounting.h"
 2094struct task_io_accounting {
 2095   u64 rchar ;
 2096   u64 wchar ;
 2097   u64 syscr ;
 2098   u64 syscw ;
 2099   u64 read_bytes ;
 2100   u64 write_bytes ;
 2101   u64 cancelled_write_bytes ;
 2102};
 2103#line 20 "include/linux/latencytop.h"
 2104struct latency_record {
 2105   unsigned long backtrace[12] ;
 2106   unsigned int count ;
 2107   unsigned long time ;
 2108   unsigned long max ;
 2109};
 2110#line 29 "include/linux/key.h"
 2111typedef int32_t key_serial_t;
 2112#line 32 "include/linux/key.h"
 2113typedef uint32_t key_perm_t;
 2114#line 34
 2115struct key;
 2116#line 76
 2117struct signal_struct;
 2118#line 79
 2119struct key_type;
 2120#line 81
 2121struct keyring_list;
 2122#line 124
 2123struct key_user;
 2124#line 124 "include/linux/key.h"
 2125union __anonunion____missing_field_name_253 {
 2126   time_t expiry ;
 2127   time_t revoked_at ;
 2128};
 2129#line 124 "include/linux/key.h"
 2130union __anonunion_type_data_254 {
 2131   struct list_head link ;
 2132   unsigned long x[2] ;
 2133   void *p[2] ;
 2134   int reject_error ;
 2135};
 2136#line 124 "include/linux/key.h"
 2137union __anonunion_payload_255 {
 2138   unsigned long value ;
 2139   void *rcudata ;
 2140   void *data ;
 2141   struct keyring_list *subscriptions ;
 2142};
 2143#line 124 "include/linux/key.h"
 2144struct key {
 2145   atomic_t usage ;
 2146   key_serial_t serial ;
 2147   struct rb_node serial_node ;
 2148   struct key_type *type ;
 2149   struct rw_semaphore sem ;
 2150   struct key_user *user ;
 2151   void *security ;
 2152   union __anonunion____missing_field_name_253 __annonCompField47 ;
 2153   uid_t uid ;
 2154   gid_t gid ;
 2155   key_perm_t perm ;
 2156   unsigned short quotalen ;
 2157   unsigned short datalen ;
 2158   unsigned long flags ;
 2159   char *description ;
 2160   union __anonunion_type_data_254 type_data ;
 2161   union __anonunion_payload_255 payload ;
 2162};
 2163#line 18 "include/linux/selinux.h"
 2164struct audit_context;
 2165#line 31 "include/linux/cred.h"
 2166struct group_info {
 2167   atomic_t usage ;
 2168   int ngroups ;
 2169   int nblocks ;
 2170   gid_t small_block[32] ;
 2171   gid_t *blocks[0] ;
 2172};
 2173#line 83 "include/linux/cred.h"
 2174struct thread_group_cred {
 2175   atomic_t usage ;
 2176   pid_t tgid ;
 2177   spinlock_t lock ;
 2178   struct key *session_keyring ;
 2179   struct key *process_keyring ;
 2180   struct rcu_head rcu ;
 2181};
 2182#line 116 "include/linux/cred.h"
 2183struct cred {
 2184   atomic_t usage ;
 2185   atomic_t subscribers ;
 2186   void *put_addr ;
 2187   unsigned int magic ;
 2188   uid_t uid ;
 2189   gid_t gid ;
 2190   uid_t suid ;
 2191   gid_t sgid ;
 2192   uid_t euid ;
 2193   gid_t egid ;
 2194   uid_t fsuid ;
 2195   gid_t fsgid ;
 2196   unsigned int securebits ;
 2197   kernel_cap_t cap_inheritable ;
 2198   kernel_cap_t cap_permitted ;
 2199   kernel_cap_t cap_effective ;
 2200   kernel_cap_t cap_bset ;
 2201   unsigned char jit_keyring ;
 2202   struct key *thread_keyring ;
 2203   struct key *request_key_auth ;
 2204   struct thread_group_cred *tgcred ;
 2205   void *security ;
 2206   struct user_struct *user ;
 2207   struct user_namespace *user_ns ;
 2208   struct group_info *group_info ;
 2209   struct rcu_head rcu ;
 2210};
 2211#line 61 "include/linux/llist.h"
 2212struct llist_node;
 2213#line 65 "include/linux/llist.h"
 2214struct llist_node {
 2215   struct llist_node *next ;
 2216};
 2217#line 97 "include/linux/sched.h"
 2218struct futex_pi_state;
 2219#line 98
 2220struct robust_list_head;
 2221#line 99
 2222struct bio_list;
 2223#line 100
 2224struct fs_struct;
 2225#line 101
 2226struct perf_event_context;
 2227#line 102
 2228struct blk_plug;
 2229#line 151
 2230struct cfs_rq;
 2231#line 58 "include/linux/aio_abi.h"
 2232struct io_event {
 2233   __u64 data ;
 2234   __u64 obj ;
 2235   __s64 res ;
 2236   __s64 res2 ;
 2237};
 2238#line 15 "include/linux/aio.h"
 2239struct kioctx;
 2240#line 87 "include/linux/aio.h"
 2241union __anonunion_ki_obj_257 {
 2242   void *user ;
 2243   struct task_struct *tsk ;
 2244};
 2245#line 87 "include/linux/aio.h"
 2246struct kiocb {
 2247   struct list_head ki_run_list ;
 2248   unsigned long ki_flags ;
 2249   int ki_users ;
 2250   unsigned int ki_key ;
 2251   struct file *ki_filp ;
 2252   struct kioctx *ki_ctx ;
 2253   int (*ki_cancel)(struct kiocb * , struct io_event * ) ;
 2254   ssize_t (*ki_retry)(struct kiocb * ) ;
 2255   void (*ki_dtor)(struct kiocb * ) ;
 2256   union __anonunion_ki_obj_257 ki_obj ;
 2257   __u64 ki_user_data ;
 2258   loff_t ki_pos ;
 2259   void *private ;
 2260   unsigned short ki_opcode ;
 2261   size_t ki_nbytes ;
 2262   char *ki_buf ;
 2263   size_t ki_left ;
 2264   struct iovec ki_inline_vec ;
 2265   struct iovec *ki_iovec ;
 2266   unsigned long ki_nr_segs ;
 2267   unsigned long ki_cur_seg ;
 2268   struct list_head ki_list ;
 2269   struct list_head ki_batch ;
 2270   struct eventfd_ctx *ki_eventfd ;
 2271};
 2272#line 166 "include/linux/aio.h"
 2273struct aio_ring_info {
 2274   unsigned long mmap_base ;
 2275   unsigned long mmap_size ;
 2276   struct page **ring_pages ;
 2277   spinlock_t ring_lock ;
 2278   long nr_pages ;
 2279   unsigned int nr ;
 2280   unsigned int tail ;
 2281   struct page *internal_pages[8] ;
 2282};
 2283#line 179 "include/linux/aio.h"
 2284struct kioctx {
 2285   atomic_t users ;
 2286   int dead ;
 2287   struct mm_struct *mm ;
 2288   unsigned long user_id ;
 2289   struct hlist_node list ;
 2290   wait_queue_head_t wait ;
 2291   spinlock_t ctx_lock ;
 2292   int reqs_active ;
 2293   struct list_head active_reqs ;
 2294   struct list_head run_list ;
 2295   unsigned int max_reqs ;
 2296   struct aio_ring_info ring_info ;
 2297   struct delayed_work wq ;
 2298   struct rcu_head rcu_head ;
 2299};
 2300#line 443 "include/linux/sched.h"
 2301struct sighand_struct {
 2302   atomic_t count ;
 2303   struct k_sigaction action[64] ;
 2304   spinlock_t siglock ;
 2305   wait_queue_head_t signalfd_wqh ;
 2306};
 2307#line 450 "include/linux/sched.h"
 2308struct pacct_struct {
 2309   int ac_flag ;
 2310   long ac_exitcode ;
 2311   unsigned long ac_mem ;
 2312   cputime_t ac_utime ;
 2313   cputime_t ac_stime ;
 2314   unsigned long ac_minflt ;
 2315   unsigned long ac_majflt ;
 2316};
 2317#line 458 "include/linux/sched.h"
 2318struct cpu_itimer {
 2319   cputime_t expires ;
 2320   cputime_t incr ;
 2321   u32 error ;
 2322   u32 incr_error ;
 2323};
 2324#line 476 "include/linux/sched.h"
 2325struct task_cputime {
 2326   cputime_t utime ;
 2327   cputime_t stime ;
 2328   unsigned long long sum_exec_runtime ;
 2329};
 2330#line 512 "include/linux/sched.h"
 2331struct thread_group_cputimer {
 2332   struct task_cputime cputime ;
 2333   int running ;
 2334   raw_spinlock_t lock ;
 2335};
 2336#line 519
 2337struct autogroup;
 2338#line 528
 2339struct tty_struct;
 2340#line 528
 2341struct taskstats;
 2342#line 528
 2343struct tty_audit_buf;
 2344#line 528 "include/linux/sched.h"
 2345struct signal_struct {
 2346   atomic_t sigcnt ;
 2347   atomic_t live ;
 2348   int nr_threads ;
 2349   wait_queue_head_t wait_chldexit ;
 2350   struct task_struct *curr_target ;
 2351   struct sigpending shared_pending ;
 2352   int group_exit_code ;
 2353   int notify_count ;
 2354   struct task_struct *group_exit_task ;
 2355   int group_stop_count ;
 2356   unsigned int flags ;
 2357   unsigned int is_child_subreaper : 1 ;
 2358   unsigned int has_child_subreaper : 1 ;
 2359   struct list_head posix_timers ;
 2360   struct hrtimer real_timer ;
 2361   struct pid *leader_pid ;
 2362   ktime_t it_real_incr ;
 2363   struct cpu_itimer it[2] ;
 2364   struct thread_group_cputimer cputimer ;
 2365   struct task_cputime cputime_expires ;
 2366   struct list_head cpu_timers[3] ;
 2367   struct pid *tty_old_pgrp ;
 2368   int leader ;
 2369   struct tty_struct *tty ;
 2370   struct autogroup *autogroup ;
 2371   cputime_t utime ;
 2372   cputime_t stime ;
 2373   cputime_t cutime ;
 2374   cputime_t cstime ;
 2375   cputime_t gtime ;
 2376   cputime_t cgtime ;
 2377   cputime_t prev_utime ;
 2378   cputime_t prev_stime ;
 2379   unsigned long nvcsw ;
 2380   unsigned long nivcsw ;
 2381   unsigned long cnvcsw ;
 2382   unsigned long cnivcsw ;
 2383   unsigned long min_flt ;
 2384   unsigned long maj_flt ;
 2385   unsigned long cmin_flt ;
 2386   unsigned long cmaj_flt ;
 2387   unsigned long inblock ;
 2388   unsigned long oublock ;
 2389   unsigned long cinblock ;
 2390   unsigned long coublock ;
 2391   unsigned long maxrss ;
 2392   unsigned long cmaxrss ;
 2393   struct task_io_accounting ioac ;
 2394   unsigned long long sum_sched_runtime ;
 2395   struct rlimit rlim[16] ;
 2396   struct pacct_struct pacct ;
 2397   struct taskstats *stats ;
 2398   unsigned int audit_tty ;
 2399   struct tty_audit_buf *tty_audit_buf ;
 2400   struct rw_semaphore group_rwsem ;
 2401   int oom_adj ;
 2402   int oom_score_adj ;
 2403   int oom_score_adj_min ;
 2404   struct mutex cred_guard_mutex ;
 2405};
 2406#line 703 "include/linux/sched.h"
 2407struct user_struct {
 2408   atomic_t __count ;
 2409   atomic_t processes ;
 2410   atomic_t files ;
 2411   atomic_t sigpending ;
 2412   atomic_t inotify_watches ;
 2413   atomic_t inotify_devs ;
 2414   atomic_t fanotify_listeners ;
 2415   atomic_long_t epoll_watches ;
 2416   unsigned long mq_bytes ;
 2417   unsigned long locked_shm ;
 2418   struct key *uid_keyring ;
 2419   struct key *session_keyring ;
 2420   struct hlist_node uidhash_node ;
 2421   uid_t uid ;
 2422   struct user_namespace *user_ns ;
 2423   atomic_long_t locked_vm ;
 2424};
 2425#line 748
 2426struct reclaim_state;
 2427#line 751 "include/linux/sched.h"
 2428struct sched_info {
 2429   unsigned long pcount ;
 2430   unsigned long long run_delay ;
 2431   unsigned long long last_arrival ;
 2432   unsigned long long last_queued ;
 2433};
 2434#line 763 "include/linux/sched.h"
 2435struct task_delay_info {
 2436   spinlock_t lock ;
 2437   unsigned int flags ;
 2438   struct timespec blkio_start ;
 2439   struct timespec blkio_end ;
 2440   u64 blkio_delay ;
 2441   u64 swapin_delay ;
 2442   u32 blkio_count ;
 2443   u32 swapin_count ;
 2444   struct timespec freepages_start ;
 2445   struct timespec freepages_end ;
 2446   u64 freepages_delay ;
 2447   u32 freepages_count ;
 2448};
 2449#line 1088
 2450struct io_context;
 2451#line 1102
 2452struct rq;
 2453#line 1122 "include/linux/sched.h"
 2454struct sched_class {
 2455   struct sched_class    *next ;
 2456   void (*enqueue_task)(struct rq *rq , struct task_struct *p , int flags ) ;
 2457   void (*dequeue_task)(struct rq *rq , struct task_struct *p , int flags ) ;
 2458   void (*yield_task)(struct rq *rq ) ;
 2459   bool (*yield_to_task)(struct rq *rq , struct task_struct *p , bool preempt ) ;
 2460   void (*check_preempt_curr)(struct rq *rq , struct task_struct *p , int flags ) ;
 2461   struct task_struct *(*pick_next_task)(struct rq *rq ) ;
 2462   void (*put_prev_task)(struct rq *rq , struct task_struct *p ) ;
 2463   int (*select_task_rq)(struct task_struct *p , int sd_flag , int flags ) ;
 2464   void (*pre_schedule)(struct rq *this_rq , struct task_struct *task ) ;
 2465   void (*post_schedule)(struct rq *this_rq ) ;
 2466   void (*task_waking)(struct task_struct *task ) ;
 2467   void (*task_woken)(struct rq *this_rq , struct task_struct *task ) ;
 2468   void (*set_cpus_allowed)(struct task_struct *p , struct cpumask    *newmask ) ;
 2469   void (*rq_online)(struct rq *rq ) ;
 2470   void (*rq_offline)(struct rq *rq ) ;
 2471   void (*set_curr_task)(struct rq *rq ) ;
 2472   void (*task_tick)(struct rq *rq , struct task_struct *p , int queued ) ;
 2473   void (*task_fork)(struct task_struct *p ) ;
 2474   void (*switched_from)(struct rq *this_rq , struct task_struct *task ) ;
 2475   void (*switched_to)(struct rq *this_rq , struct task_struct *task ) ;
 2476   void (*prio_changed)(struct rq *this_rq , struct task_struct *task , int oldprio ) ;
 2477   unsigned int (*get_rr_interval)(struct rq *rq , struct task_struct *task ) ;
 2478   void (*task_move_group)(struct task_struct *p , int on_rq ) ;
 2479};
 2480#line 1167 "include/linux/sched.h"
 2481struct load_weight {
 2482   unsigned long weight ;
 2483   unsigned long inv_weight ;
 2484};
 2485#line 1172 "include/linux/sched.h"
 2486struct sched_statistics {
 2487   u64 wait_start ;
 2488   u64 wait_max ;
 2489   u64 wait_count ;
 2490   u64 wait_sum ;
 2491   u64 iowait_count ;
 2492   u64 iowait_sum ;
 2493   u64 sleep_start ;
 2494   u64 sleep_max ;
 2495   s64 sum_sleep_runtime ;
 2496   u64 block_start ;
 2497   u64 block_max ;
 2498   u64 exec_max ;
 2499   u64 slice_max ;
 2500   u64 nr_migrations_cold ;
 2501   u64 nr_failed_migrations_affine ;
 2502   u64 nr_failed_migrations_running ;
 2503   u64 nr_failed_migrations_hot ;
 2504   u64 nr_forced_migrations ;
 2505   u64 nr_wakeups ;
 2506   u64 nr_wakeups_sync ;
 2507   u64 nr_wakeups_migrate ;
 2508   u64 nr_wakeups_local ;
 2509   u64 nr_wakeups_remote ;
 2510   u64 nr_wakeups_affine ;
 2511   u64 nr_wakeups_affine_attempts ;
 2512   u64 nr_wakeups_passive ;
 2513   u64 nr_wakeups_idle ;
 2514};
 2515#line 1207 "include/linux/sched.h"
 2516struct sched_entity {
 2517   struct load_weight load ;
 2518   struct rb_node run_node ;
 2519   struct list_head group_node ;
 2520   unsigned int on_rq ;
 2521   u64 exec_start ;
 2522   u64 sum_exec_runtime ;
 2523   u64 vruntime ;
 2524   u64 prev_sum_exec_runtime ;
 2525   u64 nr_migrations ;
 2526   struct sched_statistics statistics ;
 2527   struct sched_entity *parent ;
 2528   struct cfs_rq *cfs_rq ;
 2529   struct cfs_rq *my_q ;
 2530};
 2531#line 1233
 2532struct rt_rq;
 2533#line 1233 "include/linux/sched.h"
 2534struct sched_rt_entity {
 2535   struct list_head run_list ;
 2536   unsigned long timeout ;
 2537   unsigned int time_slice ;
 2538   int nr_cpus_allowed ;
 2539   struct sched_rt_entity *back ;
 2540   struct sched_rt_entity *parent ;
 2541   struct rt_rq *rt_rq ;
 2542   struct rt_rq *my_q ;
 2543};
 2544#line 1264
 2545struct css_set;
 2546#line 1264
 2547struct compat_robust_list_head;
 2548#line 1264
 2549struct mem_cgroup;
 2550#line 1264 "include/linux/sched.h"
 2551struct memcg_batch_info {
 2552   int do_batch ;
 2553   struct mem_cgroup *memcg ;
 2554   unsigned long nr_pages ;
 2555   unsigned long memsw_nr_pages ;
 2556};
 2557#line 1264 "include/linux/sched.h"
 2558struct task_struct {
 2559   long volatile   state ;
 2560   void *stack ;
 2561   atomic_t usage ;
 2562   unsigned int flags ;
 2563   unsigned int ptrace ;
 2564   struct llist_node wake_entry ;
 2565   int on_cpu ;
 2566   int on_rq ;
 2567   int prio ;
 2568   int static_prio ;
 2569   int normal_prio ;
 2570   unsigned int rt_priority ;
 2571   struct sched_class    *sched_class ;
 2572   struct sched_entity se ;
 2573   struct sched_rt_entity rt ;
 2574   struct hlist_head preempt_notifiers ;
 2575   unsigned char fpu_counter ;
 2576   unsigned int policy ;
 2577   cpumask_t cpus_allowed ;
 2578   struct sched_info sched_info ;
 2579   struct list_head tasks ;
 2580   struct plist_node pushable_tasks ;
 2581   struct mm_struct *mm ;
 2582   struct mm_struct *active_mm ;
 2583   unsigned int brk_randomized : 1 ;
 2584   int exit_state ;
 2585   int exit_code ;
 2586   int exit_signal ;
 2587   int pdeath_signal ;
 2588   unsigned int jobctl ;
 2589   unsigned int personality ;
 2590   unsigned int did_exec : 1 ;
 2591   unsigned int in_execve : 1 ;
 2592   unsigned int in_iowait : 1 ;
 2593   unsigned int sched_reset_on_fork : 1 ;
 2594   unsigned int sched_contributes_to_load : 1 ;
 2595   unsigned int irq_thread : 1 ;
 2596   pid_t pid ;
 2597   pid_t tgid ;
 2598   unsigned long stack_canary ;
 2599   struct task_struct *real_parent ;
 2600   struct task_struct *parent ;
 2601   struct list_head children ;
 2602   struct list_head sibling ;
 2603   struct task_struct *group_leader ;
 2604   struct list_head ptraced ;
 2605   struct list_head ptrace_entry ;
 2606   struct pid_link pids[3] ;
 2607   struct list_head thread_group ;
 2608   struct completion *vfork_done ;
 2609   int *set_child_tid ;
 2610   int *clear_child_tid ;
 2611   cputime_t utime ;
 2612   cputime_t stime ;
 2613   cputime_t utimescaled ;
 2614   cputime_t stimescaled ;
 2615   cputime_t gtime ;
 2616   cputime_t prev_utime ;
 2617   cputime_t prev_stime ;
 2618   unsigned long nvcsw ;
 2619   unsigned long nivcsw ;
 2620   struct timespec start_time ;
 2621   struct timespec real_start_time ;
 2622   unsigned long min_flt ;
 2623   unsigned long maj_flt ;
 2624   struct task_cputime cputime_expires ;
 2625   struct list_head cpu_timers[3] ;
 2626   struct cred    *real_cred ;
 2627   struct cred    *cred ;
 2628   struct cred *replacement_session_keyring ;
 2629   char comm[16] ;
 2630   int link_count ;
 2631   int total_link_count ;
 2632   struct sysv_sem sysvsem ;
 2633   unsigned long last_switch_count ;
 2634   struct thread_struct thread ;
 2635   struct fs_struct *fs ;
 2636   struct files_struct *files ;
 2637   struct nsproxy *nsproxy ;
 2638   struct signal_struct *signal ;
 2639   struct sighand_struct *sighand ;
 2640   sigset_t blocked ;
 2641   sigset_t real_blocked ;
 2642   sigset_t saved_sigmask ;
 2643   struct sigpending pending ;
 2644   unsigned long sas_ss_sp ;
 2645   size_t sas_ss_size ;
 2646   int (*notifier)(void *priv ) ;
 2647   void *notifier_data ;
 2648   sigset_t *notifier_mask ;
 2649   struct audit_context *audit_context ;
 2650   uid_t loginuid ;
 2651   unsigned int sessionid ;
 2652   seccomp_t seccomp ;
 2653   u32 parent_exec_id ;
 2654   u32 self_exec_id ;
 2655   spinlock_t alloc_lock ;
 2656   raw_spinlock_t pi_lock ;
 2657   struct plist_head pi_waiters ;
 2658   struct rt_mutex_waiter *pi_blocked_on ;
 2659   struct mutex_waiter *blocked_on ;
 2660   unsigned int irq_events ;
 2661   unsigned long hardirq_enable_ip ;
 2662   unsigned long hardirq_disable_ip ;
 2663   unsigned int hardirq_enable_event ;
 2664   unsigned int hardirq_disable_event ;
 2665   int hardirqs_enabled ;
 2666   int hardirq_context ;
 2667   unsigned long softirq_disable_ip ;
 2668   unsigned long softirq_enable_ip ;
 2669   unsigned int softirq_disable_event ;
 2670   unsigned int softirq_enable_event ;
 2671   int softirqs_enabled ;
 2672   int softirq_context ;
 2673   void *journal_info ;
 2674   struct bio_list *bio_list ;
 2675   struct blk_plug *plug ;
 2676   struct reclaim_state *reclaim_state ;
 2677   struct backing_dev_info *backing_dev_info ;
 2678   struct io_context *io_context ;
 2679   unsigned long ptrace_message ;
 2680   siginfo_t *last_siginfo ;
 2681   struct task_io_accounting ioac ;
 2682   u64 acct_rss_mem1 ;
 2683   u64 acct_vm_mem1 ;
 2684   cputime_t acct_timexpd ;
 2685   nodemask_t mems_allowed ;
 2686   seqcount_t mems_allowed_seq ;
 2687   int cpuset_mem_spread_rotor ;
 2688   int cpuset_slab_spread_rotor ;
 2689   struct css_set *cgroups ;
 2690   struct list_head cg_list ;
 2691   struct robust_list_head *robust_list ;
 2692   struct compat_robust_list_head *compat_robust_list ;
 2693   struct list_head pi_state_list ;
 2694   struct futex_pi_state *pi_state_cache ;
 2695   struct perf_event_context *perf_event_ctxp[2] ;
 2696   struct mutex perf_event_mutex ;
 2697   struct list_head perf_event_list ;
 2698   struct mempolicy *mempolicy ;
 2699   short il_next ;
 2700   short pref_node_fork ;
 2701   struct rcu_head rcu ;
 2702   struct pipe_inode_info *splice_pipe ;
 2703   struct task_delay_info *delays ;
 2704   int make_it_fail ;
 2705   int nr_dirtied ;
 2706   int nr_dirtied_pause ;
 2707   unsigned long dirty_paused_when ;
 2708   int latency_record_count ;
 2709   struct latency_record latency_record[32] ;
 2710   unsigned long timer_slack_ns ;
 2711   unsigned long default_timer_slack_ns ;
 2712   struct list_head *scm_work_list ;
 2713   unsigned long trace ;
 2714   unsigned long trace_recursion ;
 2715   struct memcg_batch_info memcg_batch ;
 2716   atomic_t ptrace_bp_refcnt ;
 2717};
 2718#line 40 "include/linux/taskstats.h"
 2719struct taskstats {
 2720   __u16 version ;
 2721   __u32 ac_exitcode ;
 2722   __u8 ac_flag ;
 2723   __u8 ac_nice ;
 2724   __u64 cpu_count  __attribute__((__aligned__(8))) ;
 2725   __u64 cpu_delay_total ;
 2726   __u64 blkio_count ;
 2727   __u64 blkio_delay_total ;
 2728   __u64 swapin_count ;
 2729   __u64 swapin_delay_total ;
 2730   __u64 cpu_run_real_total ;
 2731   __u64 cpu_run_virtual_total ;
 2732   char ac_comm[32] ;
 2733   __u8 ac_sched  __attribute__((__aligned__(8))) ;
 2734   __u8 ac_pad[3] ;
 2735   __u32 ac_uid  __attribute__((__aligned__(8))) ;
 2736   __u32 ac_gid ;
 2737   __u32 ac_pid ;
 2738   __u32 ac_ppid ;
 2739   __u32 ac_btime ;
 2740   __u64 ac_etime  __attribute__((__aligned__(8))) ;
 2741   __u64 ac_utime ;
 2742   __u64 ac_stime ;
 2743   __u64 ac_minflt ;
 2744   __u64 ac_majflt ;
 2745   __u64 coremem ;
 2746   __u64 virtmem ;
 2747   __u64 hiwater_rss ;
 2748   __u64 hiwater_vm ;
 2749   __u64 read_char ;
 2750   __u64 write_char ;
 2751   __u64 read_syscalls ;
 2752   __u64 write_syscalls ;
 2753   __u64 read_bytes ;
 2754   __u64 write_bytes ;
 2755   __u64 cancelled_write_bytes ;
 2756   __u64 nvcsw ;
 2757   __u64 nivcsw ;
 2758   __u64 ac_utimescaled ;
 2759   __u64 ac_stimescaled ;
 2760   __u64 cpu_scaled_run_real_total ;
 2761   __u64 freepages_count ;
 2762   __u64 freepages_delay_total ;
 2763};
 2764#line 22 "include/linux/cgroup.h"
 2765struct cgroupfs_root;
 2766#line 25
 2767struct cgroup;
 2768#line 26
 2769struct css_id;
 2770#line 60 "include/linux/cgroup.h"
 2771struct cgroup_subsys_state {
 2772   struct cgroup *cgroup ;
 2773   atomic_t refcnt ;
 2774   unsigned long flags ;
 2775   struct css_id *id ;
 2776};
 2777#line 163 "include/linux/cgroup.h"
 2778struct cgroup {
 2779   unsigned long flags ;
 2780   atomic_t count ;
 2781   struct list_head sibling ;
 2782   struct list_head children ;
 2783   struct cgroup *parent ;
 2784   struct dentry *dentry ;
 2785   struct cgroup_subsys_state *subsys[8UL * sizeof(unsigned long )] ;
 2786   struct cgroupfs_root *root ;
 2787   struct cgroup *top_cgroup ;
 2788   struct list_head css_sets ;
 2789   struct list_head release_list ;
 2790   struct list_head pidlists ;
 2791   struct mutex pidlist_mutex ;
 2792   struct rcu_head rcu_head ;
 2793   struct list_head event_list ;
 2794   spinlock_t event_list_lock ;
 2795};
 2796#line 224 "include/linux/cgroup.h"
 2797struct css_set {
 2798   atomic_t refcount ;
 2799   struct hlist_node hlist ;
 2800   struct list_head tasks ;
 2801   struct list_head cg_links ;
 2802   struct cgroup_subsys_state *subsys[8UL * sizeof(unsigned long )] ;
 2803   struct rcu_head rcu_head ;
 2804};
 2805#line 18 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/compat.h"
 2806typedef s32 compat_time_t;
 2807#line 39 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/compat.h"
 2808typedef s32 compat_long_t;
 2809#line 45 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/compat.h"
 2810struct compat_timespec {
 2811   compat_time_t tv_sec ;
 2812   s32 tv_nsec ;
 2813};
 2814#line 212 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/compat.h"
 2815typedef u32 compat_uptr_t;
 2816#line 226 "include/linux/compat.h"
 2817struct compat_robust_list {
 2818   compat_uptr_t next ;
 2819};
 2820#line 230 "include/linux/compat.h"
 2821struct compat_robust_list_head {
 2822   struct compat_robust_list list ;
 2823   compat_long_t futex_offset ;
 2824   compat_uptr_t list_op_pending ;
 2825};
 2826#line 17 "include/linux/seq_file.h"
 2827struct seq_file {
 2828   char *buf ;
 2829   size_t size ;
 2830   size_t from ;
 2831   size_t count ;
 2832   loff_t index ;
 2833   loff_t read_pos ;
 2834   u64 version ;
 2835   struct mutex lock ;
 2836   struct seq_operations    *op ;
 2837   int poll_event ;
 2838   void *private ;
 2839};
 2840#line 31 "include/linux/seq_file.h"
 2841struct seq_operations {
 2842   void *(*start)(struct seq_file *m , loff_t *pos ) ;
 2843   void (*stop)(struct seq_file *m , void *v ) ;
 2844   void *(*next)(struct seq_file *m , void *v , loff_t *pos ) ;
 2845   int (*show)(struct seq_file *m , void *v ) ;
 2846};
 2847#line 23 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/vhost/vhost.h"
 2848struct vhost_work;
 2849#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/vhost/vhost.h"
 2850struct vhost_work {
 2851   struct list_head node ;
 2852   void (*fn)(struct vhost_work *work ) ;
 2853   wait_queue_head_t done ;
 2854   int flushing ;
 2855   unsigned int queue_seq ;
 2856   unsigned int done_seq ;
 2857};
 2858#line 37
 2859struct vhost_dev;
 2860#line 37 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/vhost/vhost.h"
 2861struct vhost_poll {
 2862   poll_table table ;
 2863   wait_queue_head_t *wqh ;
 2864   wait_queue_t wait ;
 2865   struct vhost_work work ;
 2866   unsigned long mask ;
 2867   struct vhost_dev *dev ;
 2868};
 2869#line 53 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/vhost/vhost.h"
 2870struct vhost_log {
 2871   u64 addr ;
 2872   u64 len ;
 2873};
 2874#line 58
 2875struct vhost_virtqueue;
 2876#line 60 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/vhost/vhost.h"
 2877struct vhost_ubuf_ref {
 2878   struct kref kref ;
 2879   wait_queue_head_t wait ;
 2880   struct vhost_virtqueue *vq ;
 2881};
 2882#line 71 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/vhost/vhost.h"
 2883struct vhost_virtqueue {
 2884   struct vhost_dev *dev ;
 2885   struct mutex mutex ;
 2886   unsigned int num ;
 2887   struct vring_desc *desc ;
 2888   struct vring_avail *avail ;
 2889   struct vring_used *used ;
 2890   struct file *kick ;
 2891   struct file *call ;
 2892   struct file *error ;
 2893   struct eventfd_ctx *call_ctx ;
 2894   struct eventfd_ctx *error_ctx ;
 2895   struct eventfd_ctx *log_ctx ;
 2896   struct vhost_poll poll ;
 2897   void (*handle_kick)(struct vhost_work *work ) ;
 2898   u16 last_avail_idx ;
 2899   u16 avail_idx ;
 2900   u16 last_used_idx ;
 2901   u16 used_flags ;
 2902   u16 signalled_used ;
 2903   bool signalled_used_valid ;
 2904   bool log_used ;
 2905   u64 log_addr ;
 2906   struct iovec iov[1024] ;
 2907   struct iovec hdr[sizeof(struct virtio_net_hdr_mrg_rxbuf )] ;
 2908   struct iovec *indirect ;
 2909   size_t vhost_hlen ;
 2910   size_t sock_hlen ;
 2911   struct vring_used_elem *heads ;
 2912   void *private_data ;
 2913   void *log_base ;
 2914   struct vhost_log *log ;
 2915   int upend_idx ;
 2916   int done_idx ;
 2917   struct ubuf_info *ubuf_info ;
 2918   struct vhost_ubuf_ref *ubufs ;
 2919};
 2920#line 146 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/vhost/vhost.h"
 2921struct vhost_dev {
 2922   struct vhost_memory *memory ;
 2923   struct mm_struct *mm ;
 2924   struct mutex mutex ;
 2925   unsigned int acked_features ;
 2926   struct vhost_virtqueue *vqs ;
 2927   int nvqs ;
 2928   struct file *log_file ;
 2929   struct eventfd_ctx *log_ctx ;
 2930   spinlock_t work_lock ;
 2931   struct list_head work_list ;
 2932   struct task_struct *worker ;
 2933};
 2934#line 330 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 2935struct vhost_attach_cgroups_struct {
 2936   struct vhost_work work ;
 2937   struct task_struct *owner ;
 2938   int ret ;
 2939};
 2940#line 42 "include/asm-generic/int-ll64.h"
 2941typedef signed char s8;
 2942#line 45 "include/asm-generic/int-ll64.h"
 2943typedef short s16;
 2944#line 27 "include/asm-generic/posix_types.h"
 2945typedef __kernel_ulong_t __kernel_nlink_t;
 2946#line 90 "include/asm-generic/posix_types.h"
 2947typedef __kernel_long_t __kernel_off_t;
 2948#line 28 "include/linux/types.h"
 2949typedef __kernel_nlink_t nlink_t;
 2950#line 29 "include/linux/types.h"
 2951typedef __kernel_off_t off_t;
 2952#line 115 "include/linux/types.h"
 2953typedef __u8 uint8_t;
 2954#line 120 "include/linux/types.h"
 2955typedef __u64 uint64_t;
 2956#line 155 "include/linux/types.h"
 2957typedef u64 dma_addr_t;
 2958#line 179 "include/linux/types.h"
 2959typedef __u16 __be16;
 2960#line 181 "include/linux/types.h"
 2961typedef __u32 __be32;
 2962#line 186 "include/linux/types.h"
 2963typedef __u32 __wsum;
 2964#line 146 "include/linux/init.h"
 2965typedef void (*ctor_fn_t)(void);
 2966#line 47 "include/linux/dynamic_debug.h"
 2967struct device;
 2968#line 53
 2969struct net_device;
 2970#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
 2971struct static_key;
 2972#line 33 "include/linux/seqlock.h"
 2973struct __anonstruct_seqlock_t_41 {
 2974   unsigned int sequence ;
 2975   spinlock_t lock ;
 2976};
 2977#line 33 "include/linux/seqlock.h"
 2978typedef struct __anonstruct_seqlock_t_41 seqlock_t;
 2979#line 188 "include/linux/rcupdate.h"
 2980struct notifier_block;
 2981#line 11 "include/linux/socket.h"
 2982typedef unsigned short __kernel_sa_family_t;
 2983#line 13
 2984struct sockaddr;
 2985#line 40 "include/linux/socket.h"
 2986typedef __kernel_sa_family_t sa_family_t;
 2987#line 46 "include/linux/socket.h"
 2988struct sockaddr {
 2989   sa_family_t sa_family ;
 2990   char sa_data[14] ;
 2991};
 2992#line 64 "include/linux/socket.h"
 2993struct msghdr {
 2994   void *msg_name ;
 2995   int msg_namelen ;
 2996   struct iovec *msg_iov ;
 2997   __kernel_size_t msg_iovlen ;
 2998   void *msg_control ;
 2999   __kernel_size_t msg_controllen ;
 3000   unsigned int msg_flags ;
 3001};
 3002#line 37 "include/linux/hdlc/ioctl.h"
 3003struct __anonstruct_sync_serial_settings_42 {
 3004   unsigned int clock_rate ;
 3005   unsigned int clock_type ;
 3006   unsigned short loopback ;
 3007};
 3008#line 37 "include/linux/hdlc/ioctl.h"
 3009typedef struct __anonstruct_sync_serial_settings_42 sync_serial_settings;
 3010#line 43 "include/linux/hdlc/ioctl.h"
 3011struct __anonstruct_te1_settings_43 {
 3012   unsigned int clock_rate ;
 3013   unsigned int clock_type ;
 3014   unsigned short loopback ;
 3015   unsigned int slot_map ;
 3016};
 3017#line 43 "include/linux/hdlc/ioctl.h"
 3018typedef struct __anonstruct_te1_settings_43 te1_settings;
 3019#line 50 "include/linux/hdlc/ioctl.h"
 3020struct __anonstruct_raw_hdlc_proto_44 {
 3021   unsigned short encoding ;
 3022   unsigned short parity ;
 3023};
 3024#line 50 "include/linux/hdlc/ioctl.h"
 3025typedef struct __anonstruct_raw_hdlc_proto_44 raw_hdlc_proto;
 3026#line 55 "include/linux/hdlc/ioctl.h"
 3027struct __anonstruct_fr_proto_45 {
 3028   unsigned int t391 ;
 3029   unsigned int t392 ;
 3030   unsigned int n391 ;
 3031   unsigned int n392 ;
 3032   unsigned int n393 ;
 3033   unsigned short lmi ;
 3034   unsigned short dce ;
 3035};
 3036#line 55 "include/linux/hdlc/ioctl.h"
 3037typedef struct __anonstruct_fr_proto_45 fr_proto;
 3038#line 65 "include/linux/hdlc/ioctl.h"
 3039struct __anonstruct_fr_proto_pvc_46 {
 3040   unsigned int dlci ;
 3041};
 3042#line 65 "include/linux/hdlc/ioctl.h"
 3043typedef struct __anonstruct_fr_proto_pvc_46 fr_proto_pvc;
 3044#line 69 "include/linux/hdlc/ioctl.h"
 3045struct __anonstruct_fr_proto_pvc_info_47 {
 3046   unsigned int dlci ;
 3047   char master[16] ;
 3048};
 3049#line 69 "include/linux/hdlc/ioctl.h"
 3050typedef struct __anonstruct_fr_proto_pvc_info_47 fr_proto_pvc_info;
 3051#line 74 "include/linux/hdlc/ioctl.h"
 3052struct __anonstruct_cisco_proto_48 {
 3053   unsigned int interval ;
 3054   unsigned int timeout ;
 3055};
 3056#line 74 "include/linux/hdlc/ioctl.h"
 3057typedef struct __anonstruct_cisco_proto_48 cisco_proto;
 3058#line 140 "include/linux/if.h"
 3059struct ifmap {
 3060   unsigned long mem_start ;
 3061   unsigned long mem_end ;
 3062   unsigned short base_addr ;
 3063   unsigned char irq ;
 3064   unsigned char dma ;
 3065   unsigned char port ;
 3066};
 3067#line 150 "include/linux/if.h"
 3068union __anonunion_ifs_ifsu_51 {
 3069   raw_hdlc_proto *raw_hdlc ;
 3070   cisco_proto *cisco ;
 3071   fr_proto *fr ;
 3072   fr_proto_pvc *fr_pvc ;
 3073   fr_proto_pvc_info *fr_pvc_info ;
 3074   sync_serial_settings *sync ;
 3075   te1_settings *te1 ;
 3076};
 3077#line 150 "include/linux/if.h"
 3078struct if_settings {
 3079   unsigned int type ;
 3080   unsigned int size ;
 3081   union __anonunion_ifs_ifsu_51 ifs_ifsu ;
 3082};
 3083#line 174 "include/linux/if.h"
 3084union __anonunion_ifr_ifrn_52 {
 3085   char ifrn_name[16] ;
 3086};
 3087#line 174 "include/linux/if.h"
 3088union __anonunion_ifr_ifru_53 {
 3089   struct sockaddr ifru_addr ;
 3090   struct sockaddr ifru_dstaddr ;
 3091   struct sockaddr ifru_broadaddr ;
 3092   struct sockaddr ifru_netmask ;
 3093   struct sockaddr ifru_hwaddr ;
 3094   short ifru_flags ;
 3095   int ifru_ivalue ;
 3096   int ifru_mtu ;
 3097   struct ifmap ifru_map ;
 3098   char ifru_slave[16] ;
 3099   char ifru_newname[16] ;
 3100   void *ifru_data ;
 3101   struct if_settings ifru_settings ;
 3102};
 3103#line 174 "include/linux/if.h"
 3104struct ifreq {
 3105   union __anonunion_ifr_ifrn_52 ifr_ifrn ;
 3106   union __anonunion_ifr_ifru_53 ifr_ifru ;
 3107};
 3108#line 290 "include/linux/timer.h"
 3109enum hrtimer_restart;
 3110#line 50 "include/linux/pm.h"
 3111struct pm_message {
 3112   int event ;
 3113};
 3114#line 50 "include/linux/pm.h"
 3115typedef struct pm_message pm_message_t;
 3116#line 264 "include/linux/pm.h"
 3117struct dev_pm_ops {
 3118   int (*prepare)(struct device *dev ) ;
 3119   void (*complete)(struct device *dev ) ;
 3120   int (*suspend)(struct device *dev ) ;
 3121   int (*resume)(struct device *dev ) ;
 3122   int (*freeze)(struct device *dev ) ;
 3123   int (*thaw)(struct device *dev ) ;
 3124   int (*poweroff)(struct device *dev ) ;
 3125   int (*restore)(struct device *dev ) ;
 3126   int (*suspend_late)(struct device *dev ) ;
 3127   int (*resume_early)(struct device *dev ) ;
 3128   int (*freeze_late)(struct device *dev ) ;
 3129   int (*thaw_early)(struct device *dev ) ;
 3130   int (*poweroff_late)(struct device *dev ) ;
 3131   int (*restore_early)(struct device *dev ) ;
 3132   int (*suspend_noirq)(struct device *dev ) ;
 3133   int (*resume_noirq)(struct device *dev ) ;
 3134   int (*freeze_noirq)(struct device *dev ) ;
 3135   int (*thaw_noirq)(struct device *dev ) ;
 3136   int (*poweroff_noirq)(struct device *dev ) ;
 3137   int (*restore_noirq)(struct device *dev ) ;
 3138   int (*runtime_suspend)(struct device *dev ) ;
 3139   int (*runtime_resume)(struct device *dev ) ;
 3140   int (*runtime_idle)(struct device *dev ) ;
 3141};
 3142#line 458
 3143enum rpm_status {
 3144    RPM_ACTIVE = 0,
 3145    RPM_RESUMING = 1,
 3146    RPM_SUSPENDED = 2,
 3147    RPM_SUSPENDING = 3
 3148} ;
 3149#line 480
 3150enum rpm_request {
 3151    RPM_REQ_NONE = 0,
 3152    RPM_REQ_IDLE = 1,
 3153    RPM_REQ_SUSPEND = 2,
 3154    RPM_REQ_AUTOSUSPEND = 3,
 3155    RPM_REQ_RESUME = 4
 3156} ;
 3157#line 488
 3158struct wakeup_source;
 3159#line 495 "include/linux/pm.h"
 3160struct pm_subsys_data {
 3161   spinlock_t lock ;
 3162   unsigned int refcount ;
 3163};
 3164#line 506
 3165struct dev_pm_qos_request;
 3166#line 506
 3167struct pm_qos_raints;
 3168#line 506 "include/linux/pm.h"
 3169struct dev_pm_info {
 3170   pm_message_t power_state ;
 3171   unsigned int can_wakeup : 1 ;
 3172   unsigned int async_suspend : 1 ;
 3173   bool is_prepared : 1 ;
 3174   bool is_suspended : 1 ;
 3175   bool ignore_children : 1 ;
 3176   spinlock_t lock ;
 3177   struct list_head entry ;
 3178   struct completion completion ;
 3179   struct wakeup_source *wakeup ;
 3180   bool wakeup_path : 1 ;
 3181   struct timer_list suspend_timer ;
 3182   unsigned long timer_expires ;
 3183   struct work_struct work ;
 3184   wait_queue_head_t wait_queue ;
 3185   atomic_t usage_count ;
 3186   atomic_t child_count ;
 3187   unsigned int disable_depth : 3 ;
 3188   unsigned int idle_notification : 1 ;
 3189   unsigned int request_pending : 1 ;
 3190   unsigned int deferred_resume : 1 ;
 3191   unsigned int run_wake : 1 ;
 3192   unsigned int runtime_auto : 1 ;
 3193   unsigned int no_callbacks : 1 ;
 3194   unsigned int irq_safe : 1 ;
 3195   unsigned int use_autosuspend : 1 ;
 3196   unsigned int timer_autosuspends : 1 ;
 3197   enum rpm_request request ;
 3198   enum rpm_status runtime_status ;
 3199   int runtime_error ;
 3200   int autosuspend_delay ;
 3201   unsigned long last_busy ;
 3202   unsigned long active_jiffies ;
 3203   unsigned long suspended_jiffies ;
 3204   unsigned long accounting_timestamp ;
 3205   ktime_t suspend_time ;
 3206   s64 max_time_suspended_ns ;
 3207   struct dev_pm_qos_request *pq_req ;
 3208   struct pm_subsys_data *subsys_data ;
 3209   struct pm_qos_raints *raints ;
 3210};
 3211#line 564 "include/linux/pm.h"
 3212struct dev_pm_domain {
 3213   struct dev_pm_ops ops ;
 3214};
 3215#line 18 "include/linux/percpu_counter.h"
 3216struct percpu_counter {
 3217   raw_spinlock_t lock ;
 3218   s64 count ;
 3219   struct list_head list ;
 3220   s32 *counters ;
 3221};
 3222#line 2648 "include/linux/fs.h"
 3223struct ctl_table;
 3224#line 50 "include/linux/notifier.h"
 3225struct notifier_block {
 3226   int (*notifier_call)(struct notifier_block * , unsigned long  , void * ) ;
 3227   struct notifier_block *next ;
 3228   int priority ;
 3229};
 3230#line 61 "include/linux/notifier.h"
 3231struct blocking_notifier_head {
 3232   struct rw_semaphore rwsem ;
 3233   struct notifier_block *head ;
 3234};
 3235#line 940 "include/linux/sysctl.h"
 3236struct ctl_table_root;
 3237#line 941
 3238struct ctl_table_header;
 3239#line 942
 3240struct ctl_dir;
 3241#line 946 "include/linux/sysctl.h"
 3242typedef int proc_handler(struct ctl_table *ctl , int write , void *buffer , size_t *lenp ,
 3243                         loff_t *ppos );
 3244#line 996 "include/linux/sysctl.h"
 3245struct ctl_table_poll {
 3246   atomic_t event ;
 3247   wait_queue_head_t wait ;
 3248};
 3249#line 1014 "include/linux/sysctl.h"
 3250struct ctl_table {
 3251   char    *procname ;
 3252   void *data ;
 3253   int maxlen ;
 3254   umode_t mode ;
 3255   struct ctl_table *child ;
 3256   proc_handler *proc_handler ;
 3257   struct ctl_table_poll *poll ;
 3258   void *extra1 ;
 3259   void *extra2 ;
 3260};
 3261#line 1027 "include/linux/sysctl.h"
 3262struct ctl_node {
 3263   struct rb_node node ;
 3264   struct ctl_table_header *header ;
 3265};
 3266#line 1034 "include/linux/sysctl.h"
 3267struct __anonstruct____missing_field_name_248 {
 3268   struct ctl_table *ctl_table ;
 3269   int used ;
 3270   int count ;
 3271   int nreg ;
 3272};
 3273#line 1034 "include/linux/sysctl.h"
 3274union __anonunion____missing_field_name_247 {
 3275   struct __anonstruct____missing_field_name_248 __annonCompField42 ;
 3276   struct rcu_head rcu ;
 3277};
 3278#line 1034
 3279struct ctl_table_set;
 3280#line 1034 "include/linux/sysctl.h"
 3281struct ctl_table_header {
 3282   union __anonunion____missing_field_name_247 __annonCompField43 ;
 3283   struct completion *unregistering ;
 3284   struct ctl_table *ctl_table_arg ;
 3285   struct ctl_table_root *root ;
 3286   struct ctl_table_set *set ;
 3287   struct ctl_dir *parent ;
 3288   struct ctl_node *node ;
 3289};
 3290#line 1053 "include/linux/sysctl.h"
 3291struct ctl_dir {
 3292   struct ctl_table_header header ;
 3293   struct rb_root root ;
 3294};
 3295#line 1059 "include/linux/sysctl.h"
 3296struct ctl_table_set {
 3297   int (*is_seen)(struct ctl_table_set * ) ;
 3298   struct ctl_dir dir ;
 3299};
 3300#line 1064 "include/linux/sysctl.h"
 3301struct ctl_table_root {
 3302   struct ctl_table_set default_set ;
 3303   struct ctl_table_set *(*lookup)(struct ctl_table_root *root , struct nsproxy *namespaces ) ;
 3304   int (*permissions)(struct ctl_table_root *root , struct nsproxy *namespaces , struct ctl_table *table ) ;
 3305};
 3306#line 6 "include/asm-generic/scatterlist.h"
 3307struct scatterlist {
 3308   unsigned long sg_magic ;
 3309   unsigned long page_link ;
 3310   unsigned int offset ;
 3311   unsigned int length ;
 3312   dma_addr_t dma_address ;
 3313   unsigned int dma_length ;
 3314};
 3315#line 24 "include/linux/sysfs.h"
 3316enum kobj_ns_type;
 3317#line 56 "include/linux/sysfs.h"
 3318struct attribute_group {
 3319   char    *name ;
 3320   umode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
 3321   struct attribute **attrs ;
 3322};
 3323#line 88 "include/linux/sysfs.h"
 3324struct bin_attribute {
 3325   struct attribute attr ;
 3326   size_t size ;
 3327   void *private ;
 3328   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 3329                   loff_t  , size_t  ) ;
 3330   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 3331                    loff_t  , size_t  ) ;
 3332   int (*mmap)(struct file * , struct kobject * , struct bin_attribute *attr , struct vm_area_struct *vma ) ;
 3333};
 3334#line 19 "include/linux/klist.h"
 3335struct klist_node;
 3336#line 39 "include/linux/klist.h"
 3337struct klist_node {
 3338   void *n_klist ;
 3339   struct list_head n_node ;
 3340   struct kref n_ref ;
 3341};
 3342#line 4 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 3343struct dma_map_ops;
 3344#line 4 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
 3345struct dev_archdata {
 3346   void *acpi_handle ;
 3347   struct dma_map_ops *dma_ops ;
 3348   void *iommu ;
 3349};
 3350#line 29 "include/linux/device.h"
 3351struct device_private;
 3352#line 30
 3353struct device_driver;
 3354#line 31
 3355struct driver_private;
 3356#line 33
 3357struct class;
 3358#line 34
 3359struct subsys_private;
 3360#line 35
 3361struct bus_type;
 3362#line 36
 3363struct device_node;
 3364#line 37
 3365struct iommu_ops;
 3366#line 39 "include/linux/device.h"
 3367struct bus_attribute {
 3368   struct attribute attr ;
 3369   ssize_t (*show)(struct bus_type *bus , char *buf ) ;
 3370   ssize_t (*store)(struct bus_type *bus , char    *buf , size_t count ) ;
 3371};
 3372#line 89
 3373struct device_attribute;
 3374#line 89
 3375struct driver_attribute;
 3376#line 89 "include/linux/device.h"
 3377struct bus_type {
 3378   char    *name ;
 3379   char    *dev_name ;
 3380   struct device *dev_root ;
 3381   struct bus_attribute *bus_attrs ;
 3382   struct device_attribute *dev_attrs ;
 3383   struct driver_attribute *drv_attrs ;
 3384   int (*match)(struct device *dev , struct device_driver *drv ) ;
 3385   int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 3386   int (*probe)(struct device *dev ) ;
 3387   int (*remove)(struct device *dev ) ;
 3388   void (*shutdown)(struct device *dev ) ;
 3389   int (*suspend)(struct device *dev , pm_message_t state ) ;
 3390   int (*resume)(struct device *dev ) ;
 3391   struct dev_pm_ops    *pm ;
 3392   struct iommu_ops *iommu_ops ;
 3393   struct subsys_private *p ;
 3394};
 3395#line 127
 3396struct device_type;
 3397#line 214
 3398struct of_device_id;
 3399#line 214 "include/linux/device.h"
 3400struct device_driver {
 3401   char    *name ;
 3402   struct bus_type *bus ;
 3403   struct module *owner ;
 3404   char    *mod_name ;
 3405   bool suppress_bind_attrs ;
 3406   struct of_device_id    *of_match_table ;
 3407   int (*probe)(struct device *dev ) ;
 3408   int (*remove)(struct device *dev ) ;
 3409   void (*shutdown)(struct device *dev ) ;
 3410   int (*suspend)(struct device *dev , pm_message_t state ) ;
 3411   int (*resume)(struct device *dev ) ;
 3412   struct attribute_group    **groups ;
 3413   struct dev_pm_ops    *pm ;
 3414   struct driver_private *p ;
 3415};
 3416#line 249 "include/linux/device.h"
 3417struct driver_attribute {
 3418   struct attribute attr ;
 3419   ssize_t (*show)(struct device_driver *driver , char *buf ) ;
 3420   ssize_t (*store)(struct device_driver *driver , char    *buf , size_t count ) ;
 3421};
 3422#line 330
 3423struct class_attribute;
 3424#line 330 "include/linux/device.h"
 3425struct class {
 3426   char    *name ;
 3427   struct module *owner ;
 3428   struct class_attribute *class_attrs ;
 3429   struct device_attribute *dev_attrs ;
 3430   struct bin_attribute *dev_bin_attrs ;
 3431   struct kobject *dev_kobj ;
 3432   int (*dev_uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 3433   char *(*devnode)(struct device *dev , umode_t *mode ) ;
 3434   void (*class_release)(struct class *class ) ;
 3435   void (*dev_release)(struct device *dev ) ;
 3436   int (*suspend)(struct device *dev , pm_message_t state ) ;
 3437   int (*resume)(struct device *dev ) ;
 3438   struct kobj_ns_type_operations    *ns_type ;
 3439   void    *(*namespace)(struct device *dev ) ;
 3440   struct dev_pm_ops    *pm ;
 3441   struct subsys_private *p ;
 3442};
 3443#line 397 "include/linux/device.h"
 3444struct class_attribute {
 3445   struct attribute attr ;
 3446   ssize_t (*show)(struct class *class , struct class_attribute *attr , char *buf ) ;
 3447   ssize_t (*store)(struct class *class , struct class_attribute *attr , char    *buf ,
 3448                    size_t count ) ;
 3449   void    *(*namespace)(struct class *class , struct class_attribute    *attr ) ;
 3450};
 3451#line 465 "include/linux/device.h"
 3452struct device_type {
 3453   char    *name ;
 3454   struct attribute_group    **groups ;
 3455   int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
 3456   char *(*devnode)(struct device *dev , umode_t *mode ) ;
 3457   void (*release)(struct device *dev ) ;
 3458   struct dev_pm_ops    *pm ;
 3459};
 3460#line 476 "include/linux/device.h"
 3461struct device_attribute {
 3462   struct attribute attr ;
 3463   ssize_t (*show)(struct device *dev , struct device_attribute *attr , char *buf ) ;
 3464   ssize_t (*store)(struct device *dev , struct device_attribute *attr , char    *buf ,
 3465                    size_t count ) ;
 3466};
 3467#line 559 "include/linux/device.h"
 3468struct device_dma_parameters {
 3469   unsigned int max_segment_size ;
 3470   unsigned long segment_boundary_mask ;
 3471};
 3472#line 627
 3473struct dma_coherent_mem;
 3474#line 627 "include/linux/device.h"
 3475struct device {
 3476   struct device *parent ;
 3477   struct device_private *p ;
 3478   struct kobject kobj ;
 3479   char    *init_name ;
 3480   struct device_type    *type ;
 3481   struct mutex mutex ;
 3482   struct bus_type *bus ;
 3483   struct device_driver *driver ;
 3484   void *platform_data ;
 3485   struct dev_pm_info power ;
 3486   struct dev_pm_domain *pm_domain ;
 3487   int numa_node ;
 3488   u64 *dma_mask ;
 3489   u64 coherent_dma_mask ;
 3490   struct device_dma_parameters *dma_parms ;
 3491   struct list_head dma_pools ;
 3492   struct dma_coherent_mem *dma_mem ;
 3493   struct dev_archdata archdata ;
 3494   struct device_node *of_node ;
 3495   dev_t devt ;
 3496   u32 id ;
 3497   spinlock_t devres_lock ;
 3498   struct list_head devres_head ;
 3499   struct klist_node knode_class ;
 3500   struct class *class ;
 3501   struct attribute_group    **groups ;
 3502   void (*release)(struct device *dev ) ;
 3503};
 3504#line 43 "include/linux/pm_wakeup.h"
 3505struct wakeup_source {
 3506   char    *name ;
 3507   struct list_head entry ;
 3508   spinlock_t lock ;
 3509   struct timer_list timer ;
 3510   unsigned long timer_expires ;
 3511   ktime_t total_time ;
 3512   ktime_t max_time ;
 3513   ktime_t last_time ;
 3514   unsigned long event_count ;
 3515   unsigned long active_count ;
 3516   unsigned long relax_count ;
 3517   unsigned long hit_count ;
 3518   unsigned int active : 1 ;
 3519};
 3520#line 219 "include/linux/mod_devicetable.h"
 3521struct of_device_id {
 3522   char name[32] ;
 3523   char type[32] ;
 3524   char compatible[128] ;
 3525   void *data ;
 3526};
 3527#line 127 "include/linux/if_ether.h"
 3528struct ethhdr {
 3529   unsigned char h_dest[6] ;
 3530   unsigned char h_source[6] ;
 3531   __be16 h_proto ;
 3532} __attribute__((__packed__)) ;
 3533#line 47 "include/linux/net.h"
 3534enum __anonenum_socket_state_260 {
 3535    SS_FREE = 0,
 3536    SS_UNCONNECTED = 1,
 3537    SS_CONNECTING = 2,
 3538    SS_CONNECTED = 3,
 3539    SS_DISCONNECTING = 4
 3540} ;
 3541#line 47 "include/linux/net.h"
 3542typedef enum __anonenum_socket_state_260 socket_state;
 3543#line 68
 3544struct net;
 3545#line 121 "include/linux/net.h"
 3546struct socket_wq {
 3547   wait_queue_head_t wait ;
 3548   struct fasync_struct *fasync_list ;
 3549   struct rcu_head rcu ;
 3550} __attribute__((__aligned__((1) <<  (6) ))) ;
 3551#line 138
 3552struct proto_ops;
 3553#line 138 "include/linux/net.h"
 3554struct socket {
 3555   socket_state state ;
 3556   short type ;
 3557   unsigned long flags ;
 3558   struct socket_wq *wq ;
 3559   struct file *file ;
 3560   struct sock *sk ;
 3561   struct proto_ops    *ops ;
 3562};
 3563#line 161 "include/linux/net.h"
 3564struct proto_ops {
 3565   int family ;
 3566   struct module *owner ;
 3567   int (*release)(struct socket *sock ) ;
 3568   int (*bind)(struct socket *sock , struct sockaddr *myaddr , int sockaddr_len ) ;
 3569   int (*connect)(struct socket *sock , struct sockaddr *vaddr , int sockaddr_len ,
 3570                  int flags ) ;
 3571   int (*socketpair)(struct socket *sock1 , struct socket *sock2 ) ;
 3572   int (*accept)(struct socket *sock , struct socket *newsock , int flags ) ;
 3573   int (*getname)(struct socket *sock , struct sockaddr *addr , int *sockaddr_len ,
 3574                  int peer ) ;
 3575   unsigned int (*poll)(struct file *file , struct socket *sock , struct poll_table_struct *wait ) ;
 3576   int (*ioctl)(struct socket *sock , unsigned int cmd , unsigned long arg ) ;
 3577   int (*compat_ioctl)(struct socket *sock , unsigned int cmd , unsigned long arg ) ;
 3578   int (*listen)(struct socket *sock , int len ) ;
 3579   int (*shutdown)(struct socket *sock , int flags ) ;
 3580   int (*setsockopt)(struct socket *sock , int level , int optname , char *optval ,
 3581                     unsigned int optlen ) ;
 3582   int (*getsockopt)(struct socket *sock , int level , int optname , char *optval ,
 3583                     int *optlen ) ;
 3584   int (*compat_setsockopt)(struct socket *sock , int level , int optname , char *optval ,
 3585                            unsigned int optlen ) ;
 3586   int (*compat_getsockopt)(struct socket *sock , int level , int optname , char *optval ,
 3587                            int *optlen ) ;
 3588   int (*sendmsg)(struct kiocb *iocb , struct socket *sock , struct msghdr *m , size_t total_len ) ;
 3589   int (*recvmsg)(struct kiocb *iocb , struct socket *sock , struct msghdr *m , size_t total_len ,
 3590                  int flags ) ;
 3591   int (*mmap)(struct file *file , struct socket *sock , struct vm_area_struct *vma ) ;
 3592   ssize_t (*sendpage)(struct socket *sock , struct page *page , int offset , size_t size ,
 3593                       int flags ) ;
 3594   ssize_t (*splice_read)(struct socket *sock , loff_t *ppos , struct pipe_inode_info *pipe ,
 3595                          size_t len , unsigned int flags ) ;
 3596   void (*set_peek_off)(struct sock *sk , int val ) ;
 3597};
 3598#line 94 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess.h"
 3599struct exception_table_entry {
 3600   unsigned long insn ;
 3601   unsigned long fixup ;
 3602};
 3603#line 109 "include/net/checksum.h"
 3604struct sk_buff;
 3605#line 37 "include/linux/dmaengine.h"
 3606typedef s32 dma_cookie_t;
 3607#line 27 "include/linux/dma-attrs.h"
 3608struct dma_attrs {
 3609   unsigned long flags[((4UL + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
 3610};
 3611#line 7 "include/linux/dma-direction.h"
 3612enum dma_data_direction {
 3613    DMA_BIDIRECTIONAL = 0,
 3614    DMA_TO_DEVICE = 1,
 3615    DMA_FROM_DEVICE = 2,
 3616    DMA_NONE = 3
 3617} ;
 3618#line 11 "include/linux/dma-mapping.h"
 3619struct dma_map_ops {
 3620   void *(*alloc)(struct device *dev , size_t size , dma_addr_t *dma_handle , gfp_t gfp ,
 3621                  struct dma_attrs *attrs ) ;
 3622   void (*free)(struct device *dev , size_t size , void *vaddr , dma_addr_t dma_handle ,
 3623                struct dma_attrs *attrs ) ;
 3624   int (*mmap)(struct device * , struct vm_area_struct * , void * , dma_addr_t  ,
 3625               size_t  , struct dma_attrs *attrs ) ;
 3626   dma_addr_t (*map_page)(struct device *dev , struct page *page , unsigned long offset ,
 3627                          size_t size , enum dma_data_direction dir , struct dma_attrs *attrs ) ;
 3628   void (*unmap_page)(struct device *dev , dma_addr_t dma_handle , size_t size , enum dma_data_direction dir ,
 3629                      struct dma_attrs *attrs ) ;
 3630   int (*map_sg)(struct device *dev , struct scatterlist *sg , int nents , enum dma_data_direction dir ,
 3631                 struct dma_attrs *attrs ) ;
 3632   void (*unmap_sg)(struct device *dev , struct scatterlist *sg , int nents , enum dma_data_direction dir ,
 3633                    struct dma_attrs *attrs ) ;
 3634   void (*sync_single_for_cpu)(struct device *dev , dma_addr_t dma_handle , size_t size ,
 3635                               enum dma_data_direction dir ) ;
 3636   void (*sync_single_for_device)(struct device *dev , dma_addr_t dma_handle , size_t size ,
 3637                                  enum dma_data_direction dir ) ;
 3638   void (*sync_sg_for_cpu)(struct device *dev , struct scatterlist *sg , int nents ,
 3639                           enum dma_data_direction dir ) ;
 3640   void (*sync_sg_for_device)(struct device *dev , struct scatterlist *sg , int nents ,
 3641                              enum dma_data_direction dir ) ;
 3642   int (*mapping_error)(struct device *dev , dma_addr_t dma_addr ) ;
 3643   int (*dma_supported)(struct device *dev , u64 mask ) ;
 3644   int (*set_dma_mask)(struct device *dev , u64 mask ) ;
 3645   int is_phys ;
 3646};
 3647#line 15 "include/linux/netdev_features.h"
 3648typedef u64 netdev_features_t;
 3649#line 113 "include/linux/skbuff.h"
 3650struct nf_conntrack {
 3651   atomic_t use ;
 3652};
 3653#line 119 "include/linux/skbuff.h"
 3654struct nf_bridge_info {
 3655   atomic_t use ;
 3656   struct net_device *physindev ;
 3657   struct net_device *physoutdev ;
 3658   unsigned int mask ;
 3659   unsigned long data[32UL / sizeof(unsigned long )] ;
 3660};
 3661#line 128 "include/linux/skbuff.h"
 3662struct sk_buff_head {
 3663   struct sk_buff *next ;
 3664   struct sk_buff *prev ;
 3665   __u32 qlen ;
 3666   spinlock_t lock ;
 3667};
 3668#line 318 "include/linux/skbuff.h"
 3669typedef unsigned int sk_buff_data_t;
 3670#line 391
 3671struct sec_path;
 3672#line 391 "include/linux/skbuff.h"
 3673struct __anonstruct____missing_field_name_269 {
 3674   __u16 csum_start ;
 3675   __u16 csum_offset ;
 3676};
 3677#line 391 "include/linux/skbuff.h"
 3678union __anonunion____missing_field_name_268 {
 3679   __wsum csum ;
 3680   struct __anonstruct____missing_field_name_269 __annonCompField46 ;
 3681};
 3682#line 391 "include/linux/skbuff.h"
 3683union __anonunion____missing_field_name_270 {
 3684   __u32 mark ;
 3685   __u32 dropcount ;
 3686   __u32 avail_size ;
 3687};
 3688#line 391 "include/linux/skbuff.h"
 3689struct sk_buff {
 3690   struct sk_buff *next ;
 3691   struct sk_buff *prev ;
 3692   ktime_t tstamp ;
 3693   struct sock *sk ;
 3694   struct net_device *dev ;
 3695   char cb[48]  __attribute__((__aligned__(8))) ;
 3696   unsigned long _skb_refdst ;
 3697   struct sec_path *sp ;
 3698   unsigned int len ;
 3699   unsigned int data_len ;
 3700   __u16 mac_len ;
 3701   __u16 hdr_len ;
 3702   union __anonunion____missing_field_name_268 __annonCompField47 ;
 3703   __u32 priority ;
 3704   __u8 local_df : 1 ;
 3705   __u8 cloned : 1 ;
 3706   __u8 ip_summed : 2 ;
 3707   __u8 nohdr : 1 ;
 3708   __u8 nfctinfo : 3 ;
 3709   __u8 pkt_type : 3 ;
 3710   __u8 fclone : 2 ;
 3711   __u8 ipvs_property : 1 ;
 3712   __u8 peeked : 1 ;
 3713   __u8 nf_trace : 1 ;
 3714   __be16 protocol ;
 3715   void (*destructor)(struct sk_buff *skb ) ;
 3716   struct nf_conntrack *nfct ;
 3717   struct sk_buff *nfct_reasm ;
 3718   struct nf_bridge_info *nf_bridge ;
 3719   int skb_iif ;
 3720   __u32 rxhash ;
 3721   __u16 vlan_tci ;
 3722   __u16 tc_index ;
 3723   __u16 tc_verd ;
 3724   __u16 queue_mapping ;
 3725   __u8 ndisc_nodetype : 2 ;
 3726   __u8 ooo_okay : 1 ;
 3727   __u8 l4_rxhash : 1 ;
 3728   __u8 wifi_acked_valid : 1 ;
 3729   __u8 wifi_acked : 1 ;
 3730   __u8 no_fcs : 1 ;
 3731   dma_cookie_t dma_cookie ;
 3732   __u32 secmark ;
 3733   union __anonunion____missing_field_name_270 __annonCompField48 ;
 3734   sk_buff_data_t transport_header ;
 3735   sk_buff_data_t network_header ;
 3736   sk_buff_data_t mac_header ;
 3737   sk_buff_data_t tail ;
 3738   sk_buff_data_t end ;
 3739   unsigned char *head ;
 3740   unsigned char *data ;
 3741   unsigned int truesize ;
 3742   atomic_t users ;
 3743};
 3744#line 520
 3745struct dst_entry;
 3746#line 555
 3747struct rtable;
 3748#line 50 "include/linux/miscdevice.h"
 3749struct miscdevice {
 3750   int minor ;
 3751   char    *name ;
 3752   struct file_operations    *fops ;
 3753   struct list_head list ;
 3754   struct device *parent ;
 3755   struct device *this_device ;
 3756   char    *nodename ;
 3757   umode_t mode ;
 3758};
 3759#line 18 "include/linux/elf.h"
 3760typedef __u64 Elf64_Addr;
 3761#line 19 "include/linux/elf.h"
 3762typedef __u16 Elf64_Half;
 3763#line 23 "include/linux/elf.h"
 3764typedef __u32 Elf64_Word;
 3765#line 24 "include/linux/elf.h"
 3766typedef __u64 Elf64_Xword;
 3767#line 194 "include/linux/elf.h"
 3768struct elf64_sym {
 3769   Elf64_Word st_name ;
 3770   unsigned char st_info ;
 3771   unsigned char st_other ;
 3772   Elf64_Half st_shndx ;
 3773   Elf64_Addr st_value ;
 3774   Elf64_Xword st_size ;
 3775};
 3776#line 194 "include/linux/elf.h"
 3777typedef struct elf64_sym Elf64_Sym;
 3778#line 39 "include/linux/moduleparam.h"
 3779struct kernel_param;
 3780#line 41 "include/linux/moduleparam.h"
 3781struct kernel_param_ops {
 3782   int (*set)(char    *val , struct kernel_param    *kp ) ;
 3783   int (*get)(char *buffer , struct kernel_param    *kp ) ;
 3784   void (*free)(void *arg ) ;
 3785};
 3786#line 50
 3787struct kparam_string;
 3788#line 50
 3789struct kparam_array;
 3790#line 50 "include/linux/moduleparam.h"
 3791union __anonunion____missing_field_name_275 {
 3792   void *arg ;
 3793   struct kparam_string    *str ;
 3794   struct kparam_array    *arr ;
 3795};
 3796#line 50 "include/linux/moduleparam.h"
 3797struct kernel_param {
 3798   char    *name ;
 3799   struct kernel_param_ops    *ops ;
 3800   u16 perm ;
 3801   s16 level ;
 3802   union __anonunion____missing_field_name_275 __annonCompField49 ;
 3803};
 3804#line 63 "include/linux/moduleparam.h"
 3805struct kparam_string {
 3806   unsigned int maxlen ;
 3807   char *string ;
 3808};
 3809#line 69 "include/linux/moduleparam.h"
 3810struct kparam_array {
 3811   unsigned int max ;
 3812   unsigned int elemsize ;
 3813   unsigned int *num ;
 3814   struct kernel_param_ops    *ops ;
 3815   void *elem ;
 3816};
 3817#line 143 "include/linux/jump_label.h"
 3818struct static_key {
 3819   atomic_t enabled ;
 3820};
 3821#line 23 "include/linux/tracepoint.h"
 3822struct tracepoint;
 3823#line 25 "include/linux/tracepoint.h"
 3824struct tracepoint_func {
 3825   void *func ;
 3826   void *data ;
 3827};
 3828#line 30 "include/linux/tracepoint.h"
 3829struct tracepoint {
 3830   char    *name ;
 3831   struct static_key key ;
 3832   void (*regfunc)(void) ;
 3833   void (*unregfunc)(void) ;
 3834   struct tracepoint_func *funcs ;
 3835};
 3836#line 19 "include/linux/export.h"
 3837struct kernel_symbol {
 3838   unsigned long value ;
 3839   char    *name ;
 3840};
 3841#line 8 "include/asm-generic/module.h"
 3842struct mod_arch_specific {
 3843
 3844};
 3845#line 37 "include/linux/module.h"
 3846struct module_param_attrs;
 3847#line 37 "include/linux/module.h"
 3848struct module_kobject {
 3849   struct kobject kobj ;
 3850   struct module *mod ;
 3851   struct kobject *drivers_dir ;
 3852   struct module_param_attrs *mp ;
 3853};
 3854#line 44 "include/linux/module.h"
 3855struct module_attribute {
 3856   struct attribute attr ;
 3857   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
 3858   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char    * ,
 3859                    size_t count ) ;
 3860   void (*setup)(struct module * , char    * ) ;
 3861   int (*test)(struct module * ) ;
 3862   void (*free)(struct module * ) ;
 3863};
 3864#line 199
 3865enum module_state {
 3866    MODULE_STATE_LIVE = 0,
 3867    MODULE_STATE_COMING = 1,
 3868    MODULE_STATE_GOING = 2
 3869} ;
 3870#line 215 "include/linux/module.h"
 3871struct module_ref {
 3872   unsigned long incs ;
 3873   unsigned long decs ;
 3874} __attribute__((__aligned__((2) *  (sizeof(unsigned long )) ))) ;
 3875#line 220
 3876struct module_sect_attrs;
 3877#line 220
 3878struct module_notes_attrs;
 3879#line 220
 3880struct ftrace_event_call;
 3881#line 220 "include/linux/module.h"
 3882struct module {
 3883   enum module_state state ;
 3884   struct list_head list ;
 3885   char name[64UL - sizeof(unsigned long )] ;
 3886   struct module_kobject mkobj ;
 3887   struct module_attribute *modinfo_attrs ;
 3888   char    *version ;
 3889   char    *srcversion ;
 3890   struct kobject *holders_dir ;
 3891   struct kernel_symbol    *syms ;
 3892   unsigned long    *crcs ;
 3893   unsigned int num_syms ;
 3894   struct kernel_param *kp ;
 3895   unsigned int num_kp ;
 3896   unsigned int num_gpl_syms ;
 3897   struct kernel_symbol    *gpl_syms ;
 3898   unsigned long    *gpl_crcs ;
 3899   struct kernel_symbol    *unused_syms ;
 3900   unsigned long    *unused_crcs ;
 3901   unsigned int num_unused_syms ;
 3902   unsigned int num_unused_gpl_syms ;
 3903   struct kernel_symbol    *unused_gpl_syms ;
 3904   unsigned long    *unused_gpl_crcs ;
 3905   struct kernel_symbol    *gpl_future_syms ;
 3906   unsigned long    *gpl_future_crcs ;
 3907   unsigned int num_gpl_future_syms ;
 3908   unsigned int num_exentries ;
 3909   struct exception_table_entry *extable ;
 3910   int (*init)(void) ;
 3911   void *module_init ;
 3912   void *module_core ;
 3913   unsigned int init_size ;
 3914   unsigned int core_size ;
 3915   unsigned int init_text_size ;
 3916   unsigned int core_text_size ;
 3917   unsigned int init_ro_size ;
 3918   unsigned int core_ro_size ;
 3919   struct mod_arch_specific arch ;
 3920   unsigned int taints ;
 3921   unsigned int num_bugs ;
 3922   struct list_head bug_list ;
 3923   struct bug_entry *bug_table ;
 3924   Elf64_Sym *symtab ;
 3925   Elf64_Sym *core_symtab ;
 3926   unsigned int num_symtab ;
 3927   unsigned int core_num_syms ;
 3928   char *strtab ;
 3929   char *core_strtab ;
 3930   struct module_sect_attrs *sect_attrs ;
 3931   struct module_notes_attrs *notes_attrs ;
 3932   char *args ;
 3933   void *percpu ;
 3934   unsigned int percpu_size ;
 3935   unsigned int num_tracepoints ;
 3936   struct tracepoint *   *tracepoints_ptrs ;
 3937   unsigned int num_trace_bprintk_fmt ;
 3938   char    **trace_bprintk_fmt_start ;
 3939   struct ftrace_event_call **trace_events ;
 3940   unsigned int num_trace_events ;
 3941   struct list_head source_list ;
 3942   struct list_head target_list ;
 3943   struct task_struct *waiter ;
 3944   void (*exit)(void) ;
 3945   struct module_ref *refptr ;
 3946   ctor_fn_t *ctors ;
 3947   unsigned int num_ctors ;
 3948};
 3949#line 12 "include/linux/if_packet.h"
 3950struct sockaddr_ll {
 3951   unsigned short sll_family ;
 3952   __be16 sll_protocol ;
 3953   int sll_ifindex ;
 3954   unsigned short sll_hatype ;
 3955   unsigned char sll_pkttype ;
 3956   unsigned char sll_halen ;
 3957   unsigned char sll_addr[8] ;
 3958};
 3959#line 129 "include/linux/netlink.h"
 3960struct nlattr {
 3961   __u16 nla_len ;
 3962   __u16 nla_type ;
 3963};
 3964#line 41 "include/linux/if_link.h"
 3965struct rtnl_link_stats64 {
 3966   __u64 rx_packets ;
 3967   __u64 tx_packets ;
 3968   __u64 rx_bytes ;
 3969   __u64 tx_bytes ;
 3970   __u64 rx_errors ;
 3971   __u64 tx_errors ;
 3972   __u64 rx_dropped ;
 3973   __u64 tx_dropped ;
 3974   __u64 multicast ;
 3975   __u64 collisions ;
 3976   __u64 rx_length_errors ;
 3977   __u64 rx_over_errors ;
 3978   __u64 rx_crc_errors ;
 3979   __u64 rx_frame_errors ;
 3980   __u64 rx_fifo_errors ;
 3981   __u64 rx_missed_errors ;
 3982   __u64 tx_aborted_errors ;
 3983   __u64 tx_carrier_errors ;
 3984   __u64 tx_fifo_errors ;
 3985   __u64 tx_heartbeat_errors ;
 3986   __u64 tx_window_errors ;
 3987   __u64 rx_compressed ;
 3988   __u64 tx_compressed ;
 3989};
 3990#line 312 "include/linux/if_link.h"
 3991struct ifla_vf_info {
 3992   __u32 vf ;
 3993   __u8 mac[32] ;
 3994   __u32 vlan ;
 3995   __u32 qos ;
 3996   __u32 tx_rate ;
 3997   __u32 spoofchk ;
 3998};
 3999#line 30 "include/linux/pm_qos.h"
 4000struct pm_qos_request {
 4001   struct plist_node node ;
 4002   int pm_qos_class ;
 4003   struct delayed_work work ;
 4004};
 4005#line 36 "include/linux/pm_qos.h"
 4006struct dev_pm_qos_request {
 4007   struct plist_node node ;
 4008   struct device *dev ;
 4009};
 4010#line 41
 4011enum pm_qos_type {
 4012    PM_QOS_UNITIALIZED = 0,
 4013    PM_QOS_MAX = 1,
 4014    PM_QOS_MIN = 2
 4015} ;
 4016#line 52 "include/linux/pm_qos.h"
 4017struct pm_qos_raints {
 4018   struct plist_head list ;
 4019   s32 target_value ;
 4020   s32 default_value ;
 4021   enum pm_qos_type type ;
 4022   struct blocking_notifier_head *notifiers ;
 4023};
 4024#line 40 "include/linux/dynamic_queue_limits.h"
 4025struct dql {
 4026   unsigned int num_queued ;
 4027   unsigned int adj_limit ;
 4028   unsigned int last_obj_cnt ;
 4029   unsigned int limit  __attribute__((__aligned__((1) <<  (6) ))) ;
 4030   unsigned int num_completed ;
 4031   unsigned int prev_ovlimit ;
 4032   unsigned int prev_num_queued ;
 4033   unsigned int prev_last_obj_cnt ;
 4034   unsigned int lowest_slack ;
 4035   unsigned long slack_start_time ;
 4036   unsigned int max_limit ;
 4037   unsigned int min_limit ;
 4038   unsigned int slack_hold_time ;
 4039};
 4040#line 23 "include/linux/ethtool.h"
 4041struct ethtool_cmd {
 4042   __u32 cmd ;
 4043   __u32 supported ;
 4044   __u32 advertising ;
 4045   __u16 speed ;
 4046   __u8 duplex ;
 4047   __u8 port ;
 4048   __u8 phy_address ;
 4049   __u8 transceiver ;
 4050   __u8 autoneg ;
 4051   __u8 mdio_support ;
 4052   __u32 maxtxpkt ;
 4053   __u32 maxrxpkt ;
 4054   __u16 speed_hi ;
 4055   __u8 eth_tp_mdix ;
 4056   __u8 reserved2 ;
 4057   __u32 lp_advertising ;
 4058   __u32 reserved[2] ;
 4059};
 4060#line 84 "include/linux/ethtool.h"
 4061struct ethtool_drvinfo {
 4062   __u32 cmd ;
 4063   char driver[32] ;
 4064   char version[32] ;
 4065   char fw_version[32] ;
 4066   char bus_info[32] ;
 4067   char reserved1[32] ;
 4068   char reserved2[12] ;
 4069   __u32 n_priv_flags ;
 4070   __u32 n_stats ;
 4071   __u32 testinfo_len ;
 4072   __u32 eedump_len ;
 4073   __u32 regdump_len ;
 4074};
 4075#line 109 "include/linux/ethtool.h"
 4076struct ethtool_wolinfo {
 4077   __u32 cmd ;
 4078   __u32 supported ;
 4079   __u32 wolopts ;
 4080   __u8 sopass[6] ;
 4081};
 4082#line 123 "include/linux/ethtool.h"
 4083struct ethtool_regs {
 4084   __u32 cmd ;
 4085   __u32 version ;
 4086   __u32 len ;
 4087   __u8 data[0] ;
 4088};
 4089#line 131 "include/linux/ethtool.h"
 4090struct ethtool_eeprom {
 4091   __u32 cmd ;
 4092   __u32 magic ;
 4093   __u32 offset ;
 4094   __u32 len ;
 4095   __u8 data[0] ;
 4096};
 4097#line 211 "include/linux/ethtool.h"
 4098struct ethtool_coalesce {
 4099   __u32 cmd ;
 4100   __u32 rx_coalesce_usecs ;
 4101   __u32 rx_max_coalesced_frames ;
 4102   __u32 rx_coalesce_usecs_irq ;
 4103   __u32 rx_max_coalesced_frames_irq ;
 4104   __u32 tx_coalesce_usecs ;
 4105   __u32 tx_max_coalesced_frames ;
 4106   __u32 tx_coalesce_usecs_irq ;
 4107   __u32 tx_max_coalesced_frames_irq ;
 4108   __u32 stats_block_coalesce_usecs ;
 4109   __u32 use_adaptive_rx_coalesce ;
 4110   __u32 use_adaptive_tx_coalesce ;
 4111   __u32 pkt_rate_low ;
 4112   __u32 rx_coalesce_usecs_low ;
 4113   __u32 rx_max_coalesced_frames_low ;
 4114   __u32 tx_coalesce_usecs_low ;
 4115   __u32 tx_max_coalesced_frames_low ;
 4116   __u32 pkt_rate_high ;
 4117   __u32 rx_coalesce_usecs_high ;
 4118   __u32 rx_max_coalesced_frames_high ;
 4119   __u32 tx_coalesce_usecs_high ;
 4120   __u32 tx_max_coalesced_frames_high ;
 4121   __u32 rate_sample_interval ;
 4122};
 4123#line 238 "include/linux/ethtool.h"
 4124struct ethtool_ringparam {
 4125   __u32 cmd ;
 4126   __u32 rx_max_pending ;
 4127   __u32 rx_mini_max_pending ;
 4128   __u32 rx_jumbo_max_pending ;
 4129   __u32 tx_max_pending ;
 4130   __u32 rx_pending ;
 4131   __u32 rx_mini_pending ;
 4132   __u32 rx_jumbo_pending ;
 4133   __u32 tx_pending ;
 4134};
 4135#line 275 "include/linux/ethtool.h"
 4136struct ethtool_channels {
 4137   __u32 cmd ;
 4138   __u32 max_rx ;
 4139   __u32 max_tx ;
 4140   __u32 max_other ;
 4141   __u32 max_combined ;
 4142   __u32 rx_count ;
 4143   __u32 tx_count ;
 4144   __u32 other_count ;
 4145   __u32 combined_count ;
 4146};
 4147#line 288 "include/linux/ethtool.h"
 4148struct ethtool_pauseparam {
 4149   __u32 cmd ;
 4150   __u32 autoneg ;
 4151   __u32 rx_pause ;
 4152   __u32 tx_pause ;
 4153};
 4154#line 352 "include/linux/ethtool.h"
 4155struct ethtool_test {
 4156   __u32 cmd ;
 4157   __u32 flags ;
 4158   __u32 reserved ;
 4159   __u32 len ;
 4160   __u64 data[0] ;
 4161};
 4162#line 361 "include/linux/ethtool.h"
 4163struct ethtool_stats {
 4164   __u32 cmd ;
 4165   __u32 n_stats ;
 4166   __u64 data[0] ;
 4167};
 4168#line 406 "include/linux/ethtool.h"
 4169struct ethtool_tcpip4_spec {
 4170   __be32 ip4src ;
 4171   __be32 ip4dst ;
 4172   __be16 psrc ;
 4173   __be16 pdst ;
 4174   __u8 tos ;
 4175};
 4176#line 423 "include/linux/ethtool.h"
 4177struct ethtool_ah_espip4_spec {
 4178   __be32 ip4src ;
 4179   __be32 ip4dst ;
 4180   __be32 spi ;
 4181   __u8 tos ;
 4182};
 4183#line 441 "include/linux/ethtool.h"
 4184struct ethtool_usrip4_spec {
 4185   __be32 ip4src ;
 4186   __be32 ip4dst ;
 4187   __be32 l4_4_bytes ;
 4188   __u8 tos ;
 4189   __u8 ip_ver ;
 4190   __u8 proto ;
 4191};
 4192#line 450 "include/linux/ethtool.h"
 4193union ethtool_flow_union {
 4194   struct ethtool_tcpip4_spec tcp_ip4_spec ;
 4195   struct ethtool_tcpip4_spec udp_ip4_spec ;
 4196   struct ethtool_tcpip4_spec sctp_ip4_spec ;
 4197   struct ethtool_ah_espip4_spec ah_ip4_spec ;
 4198   struct ethtool_ah_espip4_spec esp_ip4_spec ;
 4199   struct ethtool_usrip4_spec usr_ip4_spec ;
 4200   struct ethhdr ether_spec ;
 4201   __u8 hdata[60] ;
 4202};
 4203#line 461 "include/linux/ethtool.h"
 4204struct ethtool_flow_ext {
 4205   __be16 vlan_etype ;
 4206   __be16 vlan_tci ;
 4207   __be32 data[2] ;
 4208};
 4209#line 482 "include/linux/ethtool.h"
 4210struct ethtool_rx_flow_spec {
 4211   __u32 flow_type ;
 4212   union ethtool_flow_union h_u ;
 4213   struct ethtool_flow_ext h_ext ;
 4214   union ethtool_flow_union m_u ;
 4215   struct ethtool_flow_ext m_ext ;
 4216   __u64 ring_cookie ;
 4217   __u32 location ;
 4218};
 4219#line 544 "include/linux/ethtool.h"
 4220struct ethtool_rxnfc {
 4221   __u32 cmd ;
 4222   __u32 flow_type ;
 4223   __u64 data ;
 4224   struct ethtool_rx_flow_spec fs ;
 4225   __u32 rule_cnt ;
 4226   __u32 rule_locs[0] ;
 4227};
 4228#line 652 "include/linux/ethtool.h"
 4229struct ethtool_flash {
 4230   __u32 cmd ;
 4231   __u32 region ;
 4232   char data[128] ;
 4233};
 4234#line 670 "include/linux/ethtool.h"
 4235struct ethtool_dump {
 4236   __u32 cmd ;
 4237   __u32 version ;
 4238   __u32 flag ;
 4239   __u32 len ;
 4240   __u8 data[0] ;
 4241};
 4242#line 780
 4243enum ethtool_phys_id_state {
 4244    ETHTOOL_ID_INACTIVE = 0,
 4245    ETHTOOL_ID_ACTIVE = 1,
 4246    ETHTOOL_ID_ON = 2,
 4247    ETHTOOL_ID_OFF = 3
 4248} ;
 4249#line 906 "include/linux/ethtool.h"
 4250struct ethtool_ops {
 4251   int (*get_settings)(struct net_device * , struct ethtool_cmd * ) ;
 4252   int (*set_settings)(struct net_device * , struct ethtool_cmd * ) ;
 4253   void (*get_drvinfo)(struct net_device * , struct ethtool_drvinfo * ) ;
 4254   int (*get_regs_len)(struct net_device * ) ;
 4255   void (*get_regs)(struct net_device * , struct ethtool_regs * , void * ) ;
 4256   void (*get_wol)(struct net_device * , struct ethtool_wolinfo * ) ;
 4257   int (*set_wol)(struct net_device * , struct ethtool_wolinfo * ) ;
 4258   u32 (*get_msglevel)(struct net_device * ) ;
 4259   void (*set_msglevel)(struct net_device * , u32  ) ;
 4260   int (*nway_reset)(struct net_device * ) ;
 4261   u32 (*get_link)(struct net_device * ) ;
 4262   int (*get_eeprom_len)(struct net_device * ) ;
 4263   int (*get_eeprom)(struct net_device * , struct ethtool_eeprom * , u8 * ) ;
 4264   int (*set_eeprom)(struct net_device * , struct ethtool_eeprom * , u8 * ) ;
 4265   int (*get_coalesce)(struct net_device * , struct ethtool_coalesce * ) ;
 4266   int (*set_coalesce)(struct net_device * , struct ethtool_coalesce * ) ;
 4267   void (*get_ringparam)(struct net_device * , struct ethtool_ringparam * ) ;
 4268   int (*set_ringparam)(struct net_device * , struct ethtool_ringparam * ) ;
 4269   void (*get_pauseparam)(struct net_device * , struct ethtool_pauseparam * ) ;
 4270   int (*set_pauseparam)(struct net_device * , struct ethtool_pauseparam * ) ;
 4271   void (*self_test)(struct net_device * , struct ethtool_test * , u64 * ) ;
 4272   void (*get_strings)(struct net_device * , u32 stringset , u8 * ) ;
 4273   int (*set_phys_id)(struct net_device * , enum ethtool_phys_id_state  ) ;
 4274   void (*get_ethtool_stats)(struct net_device * , struct ethtool_stats * , u64 * ) ;
 4275   int (*begin)(struct net_device * ) ;
 4276   void (*complete)(struct net_device * ) ;
 4277   u32 (*get_priv_flags)(struct net_device * ) ;
 4278   int (*set_priv_flags)(struct net_device * , u32  ) ;
 4279   int (*get_sset_count)(struct net_device * , int  ) ;
 4280   int (*get_rxnfc)(struct net_device * , struct ethtool_rxnfc * , u32 *rule_locs ) ;
 4281   int (*set_rxnfc)(struct net_device * , struct ethtool_rxnfc * ) ;
 4282   int (*flash_device)(struct net_device * , struct ethtool_flash * ) ;
 4283   int (*reset)(struct net_device * , u32 * ) ;
 4284   u32 (*get_rxfh_indir_size)(struct net_device * ) ;
 4285   int (*get_rxfh_indir)(struct net_device * , u32 * ) ;
 4286   int (*set_rxfh_indir)(struct net_device * , u32    * ) ;
 4287   void (*get_channels)(struct net_device * , struct ethtool_channels * ) ;
 4288   int (*set_channels)(struct net_device * , struct ethtool_channels * ) ;
 4289   int (*get_dump_flag)(struct net_device * , struct ethtool_dump * ) ;
 4290   int (*get_dump_data)(struct net_device * , struct ethtool_dump * , void * ) ;
 4291   int (*set_dump)(struct net_device * , struct ethtool_dump * ) ;
 4292};
 4293#line 5 "include/net/netns/core.h"
 4294struct prot_inuse;
 4295#line 7 "include/net/netns/core.h"
 4296struct netns_core {
 4297   struct ctl_table_header *sysctl_hdr ;
 4298   int sysctl_somaxconn ;
 4299   struct prot_inuse *inuse ;
 4300};
 4301#line 64 "include/linux/u64_stats_sync.h"
 4302struct u64_stats_sync {
 4303
 4304};
 4305#line 56 "include/net/snmp.h"
 4306struct ipstats_mib {
 4307   u64 mibs[31] ;
 4308   struct u64_stats_sync syncp ;
 4309};
 4310#line 64 "include/net/snmp.h"
 4311struct icmp_mib {
 4312   unsigned long mibs[27] ;
 4313};
 4314#line 69 "include/net/snmp.h"
 4315struct icmpmsg_mib {
 4316   atomic_long_t mibs[512] ;
 4317};
 4318#line 76 "include/net/snmp.h"
 4319struct icmpv6_mib {
 4320   unsigned long mibs[5] ;
 4321};
 4322#line 86 "include/net/snmp.h"
 4323struct icmpv6msg_mib {
 4324   atomic_long_t mibs[512] ;
 4325};
 4326#line 97 "include/net/snmp.h"
 4327struct tcp_mib {
 4328   unsigned long mibs[15] ;
 4329};
 4330#line 103 "include/net/snmp.h"
 4331struct udp_mib {
 4332   unsigned long mibs[7] ;
 4333};
 4334#line 109 "include/net/snmp.h"
 4335struct linux_mib {
 4336   unsigned long mibs[83] ;
 4337};
 4338#line 115 "include/net/snmp.h"
 4339struct linux_xfrm_mib {
 4340   unsigned long mibs[27] ;
 4341};
 4342#line 6 "include/net/netns/mib.h"
 4343struct proc_dir_entry;
 4344#line 6 "include/net/netns/mib.h"
 4345struct netns_mib {
 4346   struct tcp_mib *tcp_statistics[1] ;
 4347   struct ipstats_mib *ip_statistics[1] ;
 4348   struct linux_mib *net_statistics[1] ;
 4349   struct udp_mib *udp_statistics[1] ;
 4350   struct udp_mib *udplite_statistics[1] ;
 4351   struct icmp_mib *icmp_statistics[1] ;
 4352   struct icmpmsg_mib *icmpmsg_statistics ;
 4353   struct proc_dir_entry *proc_net_devsnmp6 ;
 4354   struct udp_mib *udp_stats_in6[1] ;
 4355   struct udp_mib *udplite_stats_in6[1] ;
 4356   struct ipstats_mib *ipv6_statistics[1] ;
 4357   struct icmpv6_mib *icmpv6_statistics[1] ;
 4358   struct icmpv6msg_mib *icmpv6msg_statistics ;
 4359   struct linux_xfrm_mib *xfrm_statistics[1] ;
 4360};
 4361#line 8 "include/net/netns/unix.h"
 4362struct netns_unix {
 4363   int sysctl_max_dgram_qlen ;
 4364   struct ctl_table_header *ctl ;
 4365};
 4366#line 10 "include/net/netns/packet.h"
 4367struct netns_packet {
 4368   spinlock_t sklist_lock ;
 4369   struct hlist_head sklist ;
 4370};
 4371#line 4 "include/net/inet_frag.h"
 4372struct netns_frags {
 4373   int nqueues ;
 4374   atomic_t mem ;
 4375   struct list_head lru_list ;
 4376   int timeout ;
 4377   int high_thresh ;
 4378   int low_thresh ;
 4379};
 4380#line 11 "include/net/netns/ipv4.h"
 4381struct ipv4_devconf;
 4382#line 12
 4383struct fib_rules_ops;
 4384#line 16
 4385struct xt_table;
 4386#line 16 "include/net/netns/ipv4.h"
 4387struct netns_ipv4 {
 4388   struct ctl_table_header *forw_hdr ;
 4389   struct ctl_table_header *frags_hdr ;
 4390   struct ctl_table_header *ipv4_hdr ;
 4391   struct ctl_table_header *route_hdr ;
 4392   struct ipv4_devconf *devconf_all ;
 4393   struct ipv4_devconf *devconf_dflt ;
 4394   struct fib_rules_ops *rules_ops ;
 4395   struct hlist_head *fib_table_hash ;
 4396   struct sock *fibnl ;
 4397   struct sock **icmp_sk ;
 4398   struct sock *tcp_sock ;
 4399   struct netns_frags frags ;
 4400   struct xt_table *iptable_filter ;
 4401   struct xt_table *iptable_mangle ;
 4402   struct xt_table *iptable_raw ;
 4403   struct xt_table *arptable_filter ;
 4404   struct xt_table *iptable_security ;
 4405   struct xt_table *nat_table ;
 4406   struct hlist_head *nat_bysource ;
 4407   unsigned int nat_htable_size ;
 4408   int sysctl_icmp_echo_ignore_all ;
 4409   int sysctl_icmp_echo_ignore_broadcasts ;
 4410   int sysctl_icmp_ignore_bogus_error_responses ;
 4411   int sysctl_icmp_ratelimit ;
 4412   int sysctl_icmp_ratemask ;
 4413   int sysctl_icmp_errors_use_inbound_ifaddr ;
 4414   int sysctl_rt_cache_rebuild_count ;
 4415   int current_rt_cache_rebuild_count ;
 4416   unsigned int sysctl_ping_group_range[2] ;
 4417   long sysctl_tcp_mem[3] ;
 4418   atomic_t rt_genid ;
 4419   atomic_t dev_addr_genid ;
 4420   struct list_head mr_tables ;
 4421   struct fib_rules_ops *mr_rules_ops ;
 4422};
 4423#line 12 "include/net/dst_ops.h"
 4424struct neighbour;
 4425#line 12 "include/net/dst_ops.h"
 4426struct dst_ops {
 4427   unsigned short family ;
 4428   __be16 protocol ;
 4429   unsigned int gc_thresh ;
 4430   int (*gc)(struct dst_ops *ops ) ;
 4431   struct dst_entry *(*check)(struct dst_entry * , __u32 cookie ) ;
 4432   unsigned int (*default_advmss)(struct dst_entry    * ) ;
 4433   unsigned int (*mtu)(struct dst_entry    * ) ;
 4434   u32 *(*cow_metrics)(struct dst_entry * , unsigned long  ) ;
 4435   void (*destroy)(struct dst_entry * ) ;
 4436   void (*ifdown)(struct dst_entry * , struct net_device *dev , int how ) ;
 4437   struct dst_entry *(*negative_advice)(struct dst_entry * ) ;
 4438   void (*link_failure)(struct sk_buff * ) ;
 4439   void (*update_pmtu)(struct dst_entry *dst , u32 mtu ) ;
 4440   int (*local_out)(struct sk_buff *skb ) ;
 4441   struct neighbour *(*neigh_lookup)(struct dst_entry    *dst , void    *daddr ) ;
 4442   struct kmem_cache *kmem_cachep ;
 4443   struct percpu_counter pcpuc_entries  __attribute__((__aligned__((1) <<  (6) ))) ;
 4444};
 4445#line 13 "include/net/netns/ipv6.h"
 4446struct netns_sysctl_ipv6 {
 4447   struct ctl_table_header *table ;
 4448   struct ctl_table_header *frags_hdr ;
 4449   int bindv6only ;
 4450   int flush_delay ;
 4451   int ip6_rt_max_size ;
 4452   int ip6_rt_gc_min_interval ;
 4453   int ip6_rt_gc_timeout ;
 4454   int ip6_rt_gc_interval ;
 4455   int ip6_rt_gc_elasticity ;
 4456   int ip6_rt_mtu_expires ;
 4457   int ip6_rt_min_advmss ;
 4458   int icmpv6_time ;
 4459};
 4460#line 30
 4461struct ipv6_devconf;
 4462#line 30
 4463struct rt6_info;
 4464#line 30
 4465struct rt6_statistics;
 4466#line 30
 4467struct fib6_table;
 4468#line 30 "include/net/netns/ipv6.h"
 4469struct netns_ipv6 {
 4470   struct netns_sysctl_ipv6 sysctl ;
 4471   struct ipv6_devconf *devconf_all ;
 4472   struct ipv6_devconf *devconf_dflt ;
 4473   struct netns_frags frags ;
 4474   struct xt_table *ip6table_filter ;
 4475   struct xt_table *ip6table_mangle ;
 4476   struct xt_table *ip6table_raw ;
 4477   struct xt_table *ip6table_security ;
 4478   struct rt6_info *ip6_null_entry ;
 4479   struct rt6_statistics *rt6_stats ;
 4480   struct timer_list ip6_fib_timer ;
 4481   struct hlist_head *fib_table_hash ;
 4482   struct fib6_table *fib6_main_tbl ;
 4483   struct dst_ops ip6_dst_ops ;
 4484   unsigned int ip6_rt_gc_expire ;
 4485   unsigned long ip6_rt_last_gc ;
 4486   struct rt6_info *ip6_prohibit_entry ;
 4487   struct rt6_info *ip6_blk_hole_entry ;
 4488   struct fib6_table *fib6_local_tbl ;
 4489   struct fib_rules_ops *fib6_rules_ops ;
 4490   struct sock **icmp_sk ;
 4491   struct sock *ndisc_sk ;
 4492   struct sock *tcp_sk ;
 4493   struct sock *igmp_sk ;
 4494   struct list_head mr6_tables ;
 4495   struct fib_rules_ops *mr6_rules_ops ;
 4496};
 4497#line 6 "include/net/netns/dccp.h"
 4498struct netns_dccp {
 4499   struct sock *v4_ctl_sk ;
 4500   struct sock *v6_ctl_sk ;
 4501};
 4502#line 46 "include/linux/proc_fs.h"
 4503typedef int read_proc_t(char *page , char **start , off_t off , int count , int *eof ,
 4504                        void *data );
 4505#line 48 "include/linux/proc_fs.h"
 4506typedef int write_proc_t(struct file *file , char    *buffer , unsigned long count ,
 4507                         void *data );
 4508#line 51 "include/linux/proc_fs.h"
 4509struct proc_dir_entry {
 4510   unsigned int low_ino ;
 4511   umode_t mode ;
 4512   nlink_t nlink ;
 4513   uid_t uid ;
 4514   gid_t gid ;
 4515   loff_t size ;
 4516   struct inode_operations    *proc_iops ;
 4517   struct file_operations    *proc_fops ;
 4518   struct proc_dir_entry *next ;
 4519   struct proc_dir_entry *parent ;
 4520   struct proc_dir_entry *subdir ;
 4521   void *data ;
 4522   read_proc_t *read_proc ;
 4523   write_proc_t *write_proc ;
 4524   atomic_t count ;
 4525   int pde_users ;
 4526   struct completion *pde_unload_completion ;
 4527   struct list_head pde_openers ;
 4528   spinlock_t pde_unload_lock ;
 4529   u8 namelen ;
 4530   char name[] ;
 4531};
 4532#line 7 "include/net/netns/x_tables.h"
 4533struct ebt_table;
 4534#line 9 "include/net/netns/x_tables.h"
 4535struct netns_xt {
 4536   struct list_head tables[13] ;
 4537   struct ebt_table *broute_table ;
 4538   struct ebt_table *frame_filter ;
 4539   struct ebt_table *frame_nat ;
 4540};
 4541#line 17 "include/linux/list_nulls.h"
 4542struct hlist_nulls_node;
 4543#line 17 "include/linux/list_nulls.h"
 4544struct hlist_nulls_head {
 4545   struct hlist_nulls_node *first ;
 4546};
 4547#line 21 "include/linux/list_nulls.h"
 4548struct hlist_nulls_node {
 4549   struct hlist_nulls_node *next ;
 4550   struct hlist_nulls_node **pprev ;
 4551};
 4552#line 11 "include/net/netns/conntrack.h"
 4553struct ip_conntrack_stat;
 4554#line 11
 4555struct nf_ct_event_notifier;
 4556#line 11
 4557struct nf_exp_event_notifier;
 4558#line 11 "include/net/netns/conntrack.h"
 4559struct netns_ct {
 4560   atomic_t count ;
 4561   unsigned int expect_count ;
 4562   unsigned int htable_size ;
 4563   struct kmem_cache *nf_conntrack_cachep ;
 4564   struct hlist_nulls_head *hash ;
 4565   struct hlist_head *expect_hash ;
 4566   struct hlist_nulls_head unconfirmed ;
 4567   struct hlist_nulls_head dying ;
 4568   struct ip_conntrack_stat *stat ;
 4569   struct nf_ct_event_notifier *nf_conntrack_event_cb ;
 4570   struct nf_exp_event_notifier *nf_expect_event_cb ;
 4571   int sysctl_events ;
 4572   unsigned int sysctl_events_retry_timeout ;
 4573   int sysctl_acct ;
 4574   int sysctl_tstamp ;
 4575   int sysctl_checksum ;
 4576   unsigned int sysctl_log_invalid ;
 4577   struct ctl_table_header *sysctl_header ;
 4578   struct ctl_table_header *acct_sysctl_header ;
 4579   struct ctl_table_header *tstamp_sysctl_header ;
 4580   struct ctl_table_header *event_sysctl_header ;
 4581   char *slabname ;
 4582};
 4583#line 12 "include/net/netns/xfrm.h"
 4584struct xfrm_policy_hash {
 4585   struct hlist_head *table ;
 4586   unsigned int hmask ;
 4587};
 4588#line 17 "include/net/netns/xfrm.h"
 4589struct netns_xfrm {
 4590   struct list_head state_all ;
 4591   struct hlist_head *state_bydst ;
 4592   struct hlist_head *state_bysrc ;
 4593   struct hlist_head *state_byspi ;
 4594   unsigned int state_hmask ;
 4595   unsigned int state_num ;
 4596   struct work_struct state_hash_work ;
 4597   struct hlist_head state_gc_list ;
 4598   struct work_struct state_gc_work ;
 4599   wait_queue_head_t km_waitq ;
 4600   struct list_head policy_all ;
 4601   struct hlist_head *policy_byidx ;
 4602   unsigned int policy_idx_hmask ;
 4603   struct hlist_head policy_inexact[6] ;
 4604   struct xfrm_policy_hash policy_bydst[6] ;
 4605   unsigned int policy_count[6] ;
 4606   struct work_struct policy_hash_work ;
 4607   struct sock *nlsk ;
 4608   struct sock *nlsk_stash ;
 4609   u32 sysctl_aevent_etime ;
 4610   u32 sysctl_aevent_rseqth ;
 4611   int sysctl_larval_drop ;
 4612   u32 sysctl_acq_expires ;
 4613   struct ctl_table_header *sysctl_hdr ;
 4614   struct dst_ops xfrm4_dst_ops ;
 4615   struct dst_ops xfrm6_dst_ops ;
 4616};
 4617#line 29 "include/net/net_namespace.h"
 4618struct net_generic;
 4619#line 31
 4620struct netns_ipvs;
 4621#line 37 "include/net/net_namespace.h"
 4622struct net {
 4623   atomic_t passive ;
 4624   atomic_t count ;
 4625   spinlock_t rules_mod_lock ;
 4626   struct list_head list ;
 4627   struct list_head cleanup_list ;
 4628   struct list_head exit_list ;
 4629   struct proc_dir_entry *proc_net ;
 4630   struct proc_dir_entry *proc_net_stat ;
 4631   struct ctl_table_set sysctls ;
 4632   struct sock *rtnl ;
 4633   struct sock *genl_sock ;
 4634   struct list_head dev_base_head ;
 4635   struct hlist_head *dev_name_head ;
 4636   struct hlist_head *dev_index_head ;
 4637   unsigned int dev_base_seq ;
 4638   struct list_head rules_ops ;
 4639   struct net_device *loopback_dev ;
 4640   struct netns_core core ;
 4641   struct netns_mib mib ;
 4642   struct netns_packet packet ;
 4643   struct netns_unix unx ;
 4644   struct netns_ipv4 ipv4 ;
 4645   struct netns_ipv6 ipv6 ;
 4646   struct netns_dccp dccp ;
 4647   struct netns_xt xt ;
 4648   struct netns_ct ct ;
 4649   struct sock *nfnl ;
 4650   struct sock *nfnl_stash ;
 4651   struct sk_buff_head wext_nlevents ;
 4652   struct net_generic *gen ;
 4653   struct netns_xfrm xfrm ;
 4654   struct netns_ipvs *ipvs ;
 4655};
 4656#line 22 "include/net/dsa.h"
 4657struct dsa_chip_data {
 4658   struct device *mii_bus ;
 4659   int sw_addr ;
 4660   char *port_names[12] ;
 4661   s8 *rtable ;
 4662};
 4663#line 47 "include/net/dsa.h"
 4664struct dsa_platform_data {
 4665   struct device *netdev ;
 4666   int nr_chips ;
 4667   struct dsa_chip_data *chip ;
 4668};
 4669#line 62
 4670struct dsa_switch;
 4671#line 62 "include/net/dsa.h"
 4672struct dsa_switch_tree {
 4673   struct dsa_platform_data *pd ;
 4674   struct net_device *master_netdev ;
 4675   __be16 tag_protocol ;
 4676   s8 cpu_switch ;
 4677   s8 cpu_port ;
 4678   int link_poll_needed ;
 4679   struct work_struct link_poll_work ;
 4680   struct timer_list link_poll_timer ;
 4681   struct dsa_switch *ds[4] ;
 4682};
 4683#line 95
 4684struct dsa_switch_driver;
 4685#line 95
 4686struct mii_bus;
 4687#line 95 "include/net/dsa.h"
 4688struct dsa_switch {
 4689   struct dsa_switch_tree *dst ;
 4690   int index ;
 4691   struct dsa_chip_data *pd ;
 4692   struct dsa_switch_driver *drv ;
 4693   struct mii_bus *master_mii_bus ;
 4694   u32 dsa_port_mask ;
 4695   u32 phys_port_mask ;
 4696   struct mii_bus *slave_mii_bus ;
 4697   struct net_device *ports[12] ;
 4698};
 4699#line 147 "include/net/dsa.h"
 4700struct dsa_switch_driver {
 4701   struct list_head list ;
 4702   __be16 tag_protocol ;
 4703   int priv_size ;
 4704   char *(*probe)(struct mii_bus *bus , int sw_addr ) ;
 4705   int (*setup)(struct dsa_switch *ds ) ;
 4706   int (*set_addr)(struct dsa_switch *ds , u8 *addr ) ;
 4707   int (*phy_read)(struct dsa_switch *ds , int port , int regnum ) ;
 4708   int (*phy_write)(struct dsa_switch *ds , int port , int regnum , u16 val ) ;
 4709   void (*poll_link)(struct dsa_switch *ds ) ;
 4710   void (*get_strings)(struct dsa_switch *ds , int port , uint8_t *data ) ;
 4711   void (*get_ethtool_stats)(struct dsa_switch *ds , int port , uint64_t *data ) ;
 4712   int (*get_sset_count)(struct dsa_switch *ds ) ;
 4713};
 4714#line 57 "include/linux/dcbnl.h"
 4715struct ieee_ets {
 4716   __u8 willing ;
 4717   __u8 ets_cap ;
 4718   __u8 cbs ;
 4719   __u8 tc_tx_bw[8] ;
 4720   __u8 tc_rx_bw[8] ;
 4721   __u8 tc_tsa[8] ;
 4722   __u8 prio_tc[8] ;
 4723   __u8 tc_reco_bw[8] ;
 4724   __u8 tc_reco_tsa[8] ;
 4725   __u8 reco_prio_tc[8] ;
 4726};
 4727#line 81 "include/linux/dcbnl.h"
 4728struct ieee_pfc {
 4729   __u8 pfc_cap ;
 4730   __u8 pfc_en ;
 4731   __u8 mbc ;
 4732   __u16 delay ;
 4733   __u64 requests[8] ;
 4734   __u64 indications[8] ;
 4735};
 4736#line 104 "include/linux/dcbnl.h"
 4737struct cee_pg {
 4738   __u8 willing ;
 4739   __u8 error ;
 4740   __u8 pg_en ;
 4741   __u8 tcs_supported ;
 4742   __u8 pg_bw[8] ;
 4743   __u8 prio_pg[8] ;
 4744};
 4745#line 121 "include/linux/dcbnl.h"
 4746struct cee_pfc {
 4747   __u8 willing ;
 4748   __u8 error ;
 4749   __u8 pfc_en ;
 4750   __u8 tcs_supported ;
 4751};
 4752#line 151 "include/linux/dcbnl.h"
 4753struct dcb_app {
 4754   __u8 selector ;
 4755   __u8 priority ;
 4756   __u16 protocol ;
 4757};
 4758#line 166 "include/linux/dcbnl.h"
 4759struct dcb_peer_app_info {
 4760   __u8 willing ;
 4761   __u8 error ;
 4762};
 4763#line 47 "include/net/dcbnl.h"
 4764struct dcbnl_rtnl_ops {
 4765   int (*ieee_getets)(struct net_device * , struct ieee_ets * ) ;
 4766   int (*ieee_setets)(struct net_device * , struct ieee_ets * ) ;
 4767   int (*ieee_getpfc)(struct net_device * , struct ieee_pfc * ) ;
 4768   int (*ieee_setpfc)(struct net_device * , struct ieee_pfc * ) ;
 4769   int (*ieee_getapp)(struct net_device * , struct dcb_app * ) ;
 4770   int (*ieee_setapp)(struct net_device * , struct dcb_app * ) ;
 4771   int (*ieee_delapp)(struct net_device * , struct dcb_app * ) ;
 4772   int (*ieee_peer_getets)(struct net_device * , struct ieee_ets * ) ;
 4773   int (*ieee_peer_getpfc)(struct net_device * , struct ieee_pfc * ) ;
 4774   u8 (*getstate)(struct net_device * ) ;
 4775   u8 (*setstate)(struct net_device * , u8  ) ;
 4776   void (*getpermhwaddr)(struct net_device * , u8 * ) ;
 4777   void (*setpgtccfgtx)(struct net_device * , int  , u8  , u8  , u8  , u8  ) ;
 4778   void (*setpgbwgcfgtx)(struct net_device * , int  , u8  ) ;
 4779   void (*setpgtccfgrx)(struct net_device * , int  , u8  , u8  , u8  , u8  ) ;
 4780   void (*setpgbwgcfgrx)(struct net_device * , int  , u8  ) ;
 4781   void (*getpgtccfgtx)(struct net_device * , int  , u8 * , u8 * , u8 * , u8 * ) ;
 4782   void (*getpgbwgcfgtx)(struct net_device * , int  , u8 * ) ;
 4783   void (*getpgtccfgrx)(struct net_device * , int  , u8 * , u8 * , u8 * , u8 * ) ;
 4784   void (*getpgbwgcfgrx)(struct net_device * , int  , u8 * ) ;
 4785   void (*setpfccfg)(struct net_device * , int  , u8  ) ;
 4786   void (*getpfccfg)(struct net_device * , int  , u8 * ) ;
 4787   u8 (*setall)(struct net_device * ) ;
 4788   u8 (*getcap)(struct net_device * , int  , u8 * ) ;
 4789   int (*getnumtcs)(struct net_device * , int  , u8 * ) ;
 4790   int (*setnumtcs)(struct net_device * , int  , u8  ) ;
 4791   u8 (*getpfcstate)(struct net_device * ) ;
 4792   void (*setpfcstate)(struct net_device * , u8  ) ;
 4793   void (*getbcncfg)(struct net_device * , int  , u32 * ) ;
 4794   void (*setbcncfg)(struct net_device * , int  , u32  ) ;
 4795   void (*getbcnrp)(struct net_device * , int  , u8 * ) ;
 4796   void (*setbcnrp)(struct net_device * , int  , u8  ) ;
 4797   u8 (*setapp)(struct net_device * , u8  , u16  , u8  ) ;
 4798   u8 (*getapp)(struct net_device * , u8  , u16  ) ;
 4799   u8 (*getfeatcfg)(struct net_device * , int  , u8 * ) ;
 4800   u8 (*setfeatcfg)(struct net_device * , int  , u8  ) ;
 4801   u8 (*getdcbx)(struct net_device * ) ;
 4802   u8 (*setdcbx)(struct net_device * , u8  ) ;
 4803   int (*peer_getappinfo)(struct net_device * , struct dcb_peer_app_info * , u16 * ) ;
 4804   int (*peer_getapptable)(struct net_device * , struct dcb_app * ) ;
 4805   int (*cee_peer_getpg)(struct net_device * , struct cee_pg * ) ;
 4806   int (*cee_peer_getpfc)(struct net_device * , struct cee_pfc * ) ;
 4807};
 4808#line 51 "include/linux/idr.h"
 4809struct idr_layer {
 4810   unsigned long bitmap ;
 4811   struct idr_layer *ary[1 << 6] ;
 4812   int count ;
 4813   int layer ;
 4814   struct rcu_head rcu_head ;
 4815};
 4816#line 59 "include/linux/idr.h"
 4817struct idr {
 4818   struct idr_layer *top ;
 4819   struct idr_layer *id_free ;
 4820   int layers ;
 4821   int id_free_cnt ;
 4822   spinlock_t lock ;
 4823};
 4824#line 23 "include/linux/cgroup.h"
 4825struct cgroup_subsys;
 4826#line 431
 4827struct cgroup_taskset;
 4828#line 454 "include/linux/cgroup.h"
 4829struct cgroup_subsys {
 4830   struct cgroup_subsys_state *(*create)(struct cgroup *cgrp ) ;
 4831   int (*pre_destroy)(struct cgroup *cgrp ) ;
 4832   void (*destroy)(struct cgroup *cgrp ) ;
 4833   int (*can_attach)(struct cgroup *cgrp , struct cgroup_taskset *tset ) ;
 4834   void (*cancel_attach)(struct cgroup *cgrp , struct cgroup_taskset *tset ) ;
 4835   void (*attach)(struct cgroup *cgrp , struct cgroup_taskset *tset ) ;
 4836   void (*fork)(struct task_struct *task ) ;
 4837   void (*exit)(struct cgroup *cgrp , struct cgroup *old_cgrp , struct task_struct *task ) ;
 4838   int (*populate)(struct cgroup_subsys *ss , struct cgroup *cgrp ) ;
 4839   void (*post_clone)(struct cgroup *cgrp ) ;
 4840   void (*bind)(struct cgroup *root ) ;
 4841   int subsys_id ;
 4842   int active ;
 4843   int disabled ;
 4844   int early_init ;
 4845   bool use_id ;
 4846   char    *name ;
 4847   struct mutex hierarchy_mutex ;
 4848   struct lock_class_key subsys_key ;
 4849   struct cgroupfs_root *root ;
 4850   struct list_head sibling ;
 4851   struct idr idr ;
 4852   spinlock_t id_lock ;
 4853   struct module *module ;
 4854};
 4855#line 21 "include/net/netprio_cgroup.h"
 4856struct netprio_map {
 4857   struct rcu_head rcu ;
 4858   u32 priomap_len ;
 4859   u32 priomap[] ;
 4860};
 4861#line 58 "include/linux/netdevice.h"
 4862struct netpoll_info;
 4863#line 60
 4864struct phy_device;
 4865#line 62
 4866struct wireless_dev;
 4867#line 109
 4868enum netdev_tx {
 4869    __NETDEV_TX_MIN = (-0x7FFFFFFF-1),
 4870    NETDEV_TX_OK = 0,
 4871    NETDEV_TX_BUSY = 16,
 4872    NETDEV_TX_LOCKED = 32
 4873} ;
 4874#line 115 "include/linux/netdevice.h"
 4875typedef enum netdev_tx netdev_tx_t;
 4876#line 172 "include/linux/netdevice.h"
 4877struct net_device_stats {
 4878   unsigned long rx_packets ;
 4879   unsigned long tx_packets ;
 4880   unsigned long rx_bytes ;
 4881   unsigned long tx_bytes ;
 4882   unsigned long rx_errors ;
 4883   unsigned long tx_errors ;
 4884   unsigned long rx_dropped ;
 4885   unsigned long tx_dropped ;
 4886   unsigned long multicast ;
 4887   unsigned long collisions ;
 4888   unsigned long rx_length_errors ;
 4889   unsigned long rx_over_errors ;
 4890   unsigned long rx_crc_errors ;
 4891   unsigned long rx_frame_errors ;
 4892   unsigned long rx_fifo_errors ;
 4893   unsigned long rx_missed_errors ;
 4894   unsigned long tx_aborted_errors ;
 4895   unsigned long tx_carrier_errors ;
 4896   unsigned long tx_fifo_errors ;
 4897   unsigned long tx_heartbeat_errors ;
 4898   unsigned long tx_window_errors ;
 4899   unsigned long rx_compressed ;
 4900   unsigned long tx_compressed ;
 4901};
 4902#line 223
 4903struct neigh_parms;
 4904#line 241 "include/linux/netdevice.h"
 4905struct netdev_hw_addr_list {
 4906   struct list_head list ;
 4907   int count ;
 4908};
 4909#line 261 "include/linux/netdevice.h"
 4910struct hh_cache {
 4911   u16 hh_len ;
 4912   u16 __pad ;
 4913   seqlock_t hh_lock ;
 4914   unsigned long hh_data[128UL / sizeof(long )] ;
 4915};
 4916#line 288 "include/linux/netdevice.h"
 4917struct header_ops {
 4918   int (*create)(struct sk_buff *skb , struct net_device *dev , unsigned short type ,
 4919                 void    *daddr , void    *saddr , unsigned int len ) ;
 4920   int (*parse)(struct sk_buff    *skb , unsigned char *haddr ) ;
 4921   int (*rebuild)(struct sk_buff *skb ) ;
 4922   int (*cache)(struct neighbour    *neigh , struct hh_cache *hh , __be16 type ) ;
 4923   void (*cache_update)(struct hh_cache *hh , struct net_device    *dev , unsigned char    *haddr ) ;
 4924};
 4925#line 410
 4926enum rx_handler_result {
 4927    RX_HANDLER_CONSUMED = 0,
 4928    RX_HANDLER_ANOTHER = 1,
 4929    RX_HANDLER_EXACT = 2,
 4930    RX_HANDLER_PASS = 3
 4931} ;
 4932#line 416 "include/linux/netdevice.h"
 4933typedef enum rx_handler_result rx_handler_result_t;
 4934#line 417 "include/linux/netdevice.h"
 4935typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **pskb );
 4936#line 539
 4937struct Qdisc;
 4938#line 539 "include/linux/netdevice.h"
 4939struct netdev_queue {
 4940   struct net_device *dev ;
 4941   struct Qdisc *qdisc ;
 4942   struct Qdisc *qdisc_sleeping ;
 4943   struct kobject kobj ;
 4944   int numa_node ;
 4945   spinlock_t _xmit_lock  __attribute__((__aligned__((1) <<  (6) ))) ;
 4946   int xmit_lock_owner ;
 4947   unsigned long trans_start ;
 4948   unsigned long trans_timeout ;
 4949   unsigned long state ;
 4950   struct dql dql ;
 4951} __attribute__((__aligned__((1) <<  (6) ))) ;
 4952#line 596 "include/linux/netdevice.h"
 4953struct rps_map {
 4954   unsigned int len ;
 4955   struct rcu_head rcu ;
 4956   u16 cpus[0] ;
 4957};
 4958#line 608 "include/linux/netdevice.h"
 4959struct rps_dev_flow {
 4960   u16 cpu ;
 4961   u16 filter ;
 4962   unsigned int last_qtail ;
 4963};
 4964#line 618 "include/linux/netdevice.h"
 4965struct rps_dev_flow_table {
 4966   unsigned int mask ;
 4967   struct rcu_head rcu ;
 4968   struct work_struct free_work ;
 4969   struct rps_dev_flow flows[0] ;
 4970};
 4971#line 669 "include/linux/netdevice.h"
 4972struct netdev_rx_queue {
 4973   struct rps_map *rps_map ;
 4974   struct rps_dev_flow_table *rps_flow_table ;
 4975   struct kobject kobj ;
 4976   struct net_device *dev ;
 4977} __attribute__((__aligned__((1) <<  (6) ))) ;
 4978#line 682 "include/linux/netdevice.h"
 4979struct xps_map {
 4980   unsigned int len ;
 4981   unsigned int alloc_len ;
 4982   struct rcu_head rcu ;
 4983   u16 queues[0] ;
 4984};
 4985#line 695 "include/linux/netdevice.h"
 4986struct xps_dev_maps {
 4987   struct rcu_head rcu ;
 4988   struct xps_map *cpu_map[0] ;
 4989};
 4990#line 706 "include/linux/netdevice.h"
 4991struct netdev_tc_txq {
 4992   u16 count ;
 4993   u16 offset ;
 4994};
 4995#line 716 "include/linux/netdevice.h"
 4996struct netdev_fcoe_hbainfo {
 4997   char manufacturer[64] ;
 4998   char serial_number[64] ;
 4999   char hardware_version[64] ;
 5000   char driver_version[64] ;
 5001   char optionrom_version[64] ;
 5002   char firmware_version[64] ;
 5003   char model[256] ;
 5004   char model_description[256] ;
 5005};
 5006#line 909 "include/linux/netdevice.h"
 5007struct net_device_ops {
 5008   int (*ndo_init)(struct net_device *dev ) ;
 5009   void (*ndo_uninit)(struct net_device *dev ) ;
 5010   int (*ndo_open)(struct net_device *dev ) ;
 5011   int (*ndo_stop)(struct net_device *dev ) ;
 5012   netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb , struct net_device *dev ) ;
 5013   u16 (*ndo_select_queue)(struct net_device *dev , struct sk_buff *skb ) ;
 5014   void (*ndo_change_rx_flags)(struct net_device *dev , int flags ) ;
 5015   void (*ndo_set_rx_mode)(struct net_device *dev ) ;
 5016   int (*ndo_set_mac_address)(struct net_device *dev , void *addr ) ;
 5017   int (*ndo_validate_addr)(struct net_device *dev ) ;
 5018   int (*ndo_do_ioctl)(struct net_device *dev , struct ifreq *ifr , int cmd ) ;
 5019   int (*ndo_set_config)(struct net_device *dev , struct ifmap *map ) ;
 5020   int (*ndo_change_mtu)(struct net_device *dev , int new_mtu ) ;
 5021   int (*ndo_neigh_setup)(struct net_device *dev , struct neigh_parms * ) ;
 5022   void (*ndo_tx_timeout)(struct net_device *dev ) ;
 5023   struct rtnl_link_stats64 *(*ndo_get_stats64)(struct net_device *dev , struct rtnl_link_stats64 *storage ) ;
 5024   struct net_device_stats *(*ndo_get_stats)(struct net_device *dev ) ;
 5025   int (*ndo_vlan_rx_add_vid)(struct net_device *dev , unsigned short vid ) ;
 5026   int (*ndo_vlan_rx_kill_vid)(struct net_device *dev , unsigned short vid ) ;
 5027   void (*ndo_poll_controller)(struct net_device *dev ) ;
 5028   int (*ndo_netpoll_setup)(struct net_device *dev , struct netpoll_info *info ) ;
 5029   void (*ndo_netpoll_cleanup)(struct net_device *dev ) ;
 5030   int (*ndo_set_vf_mac)(struct net_device *dev , int queue , u8 *mac ) ;
 5031   int (*ndo_set_vf_vlan)(struct net_device *dev , int queue , u16 vlan , u8 qos ) ;
 5032   int (*ndo_set_vf_tx_rate)(struct net_device *dev , int vf , int rate ) ;
 5033   int (*ndo_set_vf_spoofchk)(struct net_device *dev , int vf , bool setting ) ;
 5034   int (*ndo_get_vf_config)(struct net_device *dev , int vf , struct ifla_vf_info *ivf ) ;
 5035   int (*ndo_set_vf_port)(struct net_device *dev , int vf , struct nlattr **port ) ;
 5036   int (*ndo_get_vf_port)(struct net_device *dev , int vf , struct sk_buff *skb ) ;
 5037   int (*ndo_setup_tc)(struct net_device *dev , u8 tc ) ;
 5038   int (*ndo_fcoe_enable)(struct net_device *dev ) ;
 5039   int (*ndo_fcoe_disable)(struct net_device *dev ) ;
 5040   int (*ndo_fcoe_ddp_setup)(struct net_device *dev , u16 xid , struct scatterlist *sgl ,
 5041                             unsigned int sgc ) ;
 5042   int (*ndo_fcoe_ddp_done)(struct net_device *dev , u16 xid ) ;
 5043   int (*ndo_fcoe_ddp_target)(struct net_device *dev , u16 xid , struct scatterlist *sgl ,
 5044                              unsigned int sgc ) ;
 5045   int (*ndo_fcoe_get_hbainfo)(struct net_device *dev , struct netdev_fcoe_hbainfo *hbainfo ) ;
 5046   int (*ndo_fcoe_get_wwn)(struct net_device *dev , u64 *wwn , int type ) ;
 5047   int (*ndo_rx_flow_steer)(struct net_device *dev , struct sk_buff    *skb ,
 5048                            u16 rxq_index , u32 flow_id ) ;
 5049   int (*ndo_add_slave)(struct net_device *dev , struct net_device *slave_dev ) ;
 5050   int (*ndo_del_slave)(struct net_device *dev , struct net_device *slave_dev ) ;
 5051   netdev_features_t (*ndo_fix_features)(struct net_device *dev , netdev_features_t features ) ;
 5052   int (*ndo_set_features)(struct net_device *dev , netdev_features_t features ) ;
 5053   int (*ndo_neigh_ruct)(struct neighbour *n ) ;
 5054   void (*ndo_neigh_destroy)(struct neighbour *n ) ;
 5055};
 5056#line 1017
 5057struct iw_handler_def;
 5058#line 1017
 5059struct iw_public_data;
 5060#line 1017
 5061struct vlan_info;
 5062#line 1017
 5063struct in_device;
 5064#line 1017
 5065struct dn_dev;
 5066#line 1017
 5067struct inet6_dev;
 5068#line 1017
 5069struct cpu_rmap;
 5070#line 1017
 5071enum __anonenum_reg_state_331 {
 5072    NETREG_UNINITIALIZED = 0,
 5073    NETREG_REGISTERED = 1,
 5074    NETREG_UNREGISTERING = 2,
 5075    NETREG_UNREGISTERED = 3,
 5076    NETREG_RELEASED = 4,
 5077    NETREG_DUMMY = 5
 5078} ;
 5079#line 1017
 5080enum __anonenum_rtnl_link_state_332 {
 5081    RTNL_LINK_INITIALIZED = 0,
 5082    RTNL_LINK_INITIALIZING = 1
 5083} ;
 5084#line 1017
 5085struct pcpu_lstats;
 5086#line 1017
 5087struct pcpu_tstats;
 5088#line 1017
 5089struct pcpu_dstats;
 5090#line 1017 "include/linux/netdevice.h"
 5091union __anonunion____missing_field_name_333 {
 5092   void *ml_priv ;
 5093   struct pcpu_lstats *lstats ;
 5094   struct pcpu_tstats *tstats ;
 5095   struct pcpu_dstats *dstats ;
 5096};
 5097#line 1017
 5098struct garp_port;
 5099#line 1017
 5100struct rtnl_link_ops;
 5101#line 1017 "include/linux/netdevice.h"
 5102struct net_device {
 5103   char name[16] ;
 5104   struct pm_qos_request pm_qos_req ;
 5105   struct hlist_node name_hlist ;
 5106   char *ifalias ;
 5107   unsigned long mem_end ;
 5108   unsigned long mem_start ;
 5109   unsigned long base_addr ;
 5110   unsigned int irq ;
 5111   unsigned long state ;
 5112   struct list_head dev_list ;
 5113   struct list_head napi_list ;
 5114   struct list_head unreg_list ;
 5115   netdev_features_t features ;
 5116   netdev_features_t hw_features ;
 5117   netdev_features_t wanted_features ;
 5118   netdev_features_t vlan_features ;
 5119   int ifindex ;
 5120   int iflink ;
 5121   struct net_device_stats stats ;
 5122   atomic_long_t rx_dropped ;
 5123   struct iw_handler_def    *wireless_handlers ;
 5124   struct iw_public_data *wireless_data ;
 5125   struct net_device_ops    *netdev_ops ;
 5126   struct ethtool_ops    *ethtool_ops ;
 5127   struct header_ops    *header_ops ;
 5128   unsigned int flags ;
 5129   unsigned int priv_flags ;
 5130   unsigned short gflags ;
 5131   unsigned short padded ;
 5132   unsigned char operstate ;
 5133   unsigned char link_mode ;
 5134   unsigned char if_port ;
 5135   unsigned char dma ;
 5136   unsigned int mtu ;
 5137   unsigned short type ;
 5138   unsigned short hard_header_len ;
 5139   unsigned short needed_headroom ;
 5140   unsigned short needed_tailroom ;
 5141   unsigned char perm_addr[32] ;
 5142   unsigned char addr_assign_type ;
 5143   unsigned char addr_len ;
 5144   unsigned char neigh_priv_len ;
 5145   unsigned short dev_id ;
 5146   spinlock_t addr_list_lock ;
 5147   struct netdev_hw_addr_list uc ;
 5148   struct netdev_hw_addr_list mc ;
 5149   bool uc_promisc ;
 5150   unsigned int promiscuity ;
 5151   unsigned int allmulti ;
 5152   struct vlan_info *vlan_info ;
 5153   struct dsa_switch_tree *dsa_ptr ;
 5154   void *atalk_ptr ;
 5155   struct in_device *ip_ptr ;
 5156   struct dn_dev *dn_ptr ;
 5157   struct inet6_dev *ip6_ptr ;
 5158   void *ec_ptr ;
 5159   void *ax25_ptr ;
 5160   struct wireless_dev *ieee80211_ptr ;
 5161   unsigned long last_rx ;
 5162   struct net_device *master ;
 5163   unsigned char *dev_addr ;
 5164   struct netdev_hw_addr_list dev_addrs ;
 5165   unsigned char broadcast[32] ;
 5166   struct kset *queues_kset ;
 5167   struct netdev_rx_queue *_rx ;
 5168   unsigned int num_rx_queues ;
 5169   unsigned int real_num_rx_queues ;
 5170   struct cpu_rmap *rx_cpu_rmap ;
 5171   rx_handler_func_t *rx_handler ;
 5172   void *rx_handler_data ;
 5173   struct netdev_queue *ingress_queue ;
 5174   struct netdev_queue *_tx  __attribute__((__aligned__((1) <<  (6) ))) ;
 5175   unsigned int num_tx_queues ;
 5176   unsigned int real_num_tx_queues ;
 5177   struct Qdisc *qdisc ;
 5178   unsigned long tx_queue_len ;
 5179   spinlock_t tx_global_lock ;
 5180   struct xps_dev_maps *xps_maps ;
 5181   unsigned long trans_start ;
 5182   int watchdog_timeo ;
 5183   struct timer_list watchdog_timer ;
 5184   int *pcpu_refcnt ;
 5185   struct list_head todo_list ;
 5186   struct hlist_node index_hlist ;
 5187   struct list_head link_watch_list ;
 5188   enum __anonenum_reg_state_331 reg_state : 8 ;
 5189   bool dismantle ;
 5190   enum __anonenum_rtnl_link_state_332 rtnl_link_state : 16 ;
 5191   void (*destructor)(struct net_device *dev ) ;
 5192   struct netpoll_info *npinfo ;
 5193   struct net *nd_net ;
 5194   union __anonunion____missing_field_name_333 __annonCompField52 ;
 5195   struct garp_port *garp_port ;
 5196   struct device dev ;
 5197   struct attribute_group    *sysfs_groups[4] ;
 5198   struct rtnl_link_ops    *rtnl_link_ops ;
 5199   unsigned int gso_max_size ;
 5200   struct dcbnl_rtnl_ops    *dcbnl_ops ;
 5201   u8 num_tc ;
 5202   struct netdev_tc_txq tc_to_txq[16] ;
 5203   u8 prio_tc_map[16] ;
 5204   unsigned int fcoe_ddp_xid ;
 5205   struct netprio_map *priomap ;
 5206   struct phy_device *phydev ;
 5207   int group ;
 5208};
 5209#line 26 "include/linux/filter.h"
 5210struct sock_filter {
 5211   __u16 code ;
 5212   __u8 jt ;
 5213   __u8 jf ;
 5214   __u32 k ;
 5215};
 5216#line 138 "include/linux/filter.h"
 5217struct sk_filter {
 5218   atomic_t refcnt ;
 5219   unsigned int len ;
 5220   unsigned int (*bpf_func)(struct sk_buff    *skb , struct sock_filter    *filter ) ;
 5221   struct rcu_head rcu ;
 5222   struct sock_filter insns[0] ;
 5223};
 5224#line 212 "include/net/netlink.h"
 5225struct nla_policy {
 5226   u16 type ;
 5227   u16 len ;
 5228};
 5229#line 108 "include/linux/security.h"
 5230struct xfrm_policy;
 5231#line 109
 5232struct xfrm_state;
 5233#line 24 "include/linux/res_counter.h"
 5234struct res_counter {
 5235   unsigned long long usage ;
 5236   unsigned long long max_usage ;
 5237   unsigned long long limit ;
 5238   unsigned long long soft_limit ;
 5239   unsigned long long failcnt ;
 5240   spinlock_t lock ;
 5241   struct res_counter *parent ;
 5242};
 5243#line 48 "include/net/rtnetlink.h"
 5244struct rtnl_link_ops {
 5245   struct list_head list ;
 5246   char    *kind ;
 5247   size_t priv_size ;
 5248   void (*setup)(struct net_device *dev ) ;
 5249   int maxtype ;
 5250   struct nla_policy    *policy ;
 5251   int (*validate)(struct nlattr **tb , struct nlattr **data ) ;
 5252   int (*newlink)(struct net *src_net , struct net_device *dev , struct nlattr **tb ,
 5253                  struct nlattr **data ) ;
 5254   int (*changelink)(struct net_device *dev , struct nlattr **tb , struct nlattr **data ) ;
 5255   void (*dellink)(struct net_device *dev , struct list_head *head ) ;
 5256   size_t (*get_size)(struct net_device    *dev ) ;
 5257   int (*fill_info)(struct sk_buff *skb , struct net_device    *dev ) ;
 5258   size_t (*get_xstats_size)(struct net_device    *dev ) ;
 5259   int (*fill_xstats)(struct sk_buff *skb , struct net_device    *dev ) ;
 5260   int (*get_tx_queues)(struct net *net , struct nlattr **tb , unsigned int *tx_queues ,
 5261                        unsigned int *real_tx_queues ) ;
 5262};
 5263#line 40 "include/net/neighbour.h"
 5264struct neigh_table;
 5265#line 40 "include/net/neighbour.h"
 5266struct neigh_parms {
 5267   struct net *net ;
 5268   struct net_device *dev ;
 5269   struct neigh_parms *next ;
 5270   int (*neigh_setup)(struct neighbour * ) ;
 5271   void (*neigh_cleanup)(struct neighbour * ) ;
 5272   struct neigh_table *tbl ;
 5273   void *sysctl_table ;
 5274   int dead ;
 5275   atomic_t refcnt ;
 5276   struct rcu_head rcu_head ;
 5277   int base_reachable_time ;
 5278   int retrans_time ;
 5279   int gc_staletime ;
 5280   int reachable_time ;
 5281   int delay_probe_time ;
 5282   int queue_len_bytes ;
 5283   int ucast_probes ;
 5284   int app_probes ;
 5285   int mcast_probes ;
 5286   int anycast_delay ;
 5287   int proxy_delay ;
 5288   int proxy_qlen ;
 5289   int locktime ;
 5290};
 5291#line 72 "include/net/neighbour.h"
 5292struct neigh_statistics {
 5293   unsigned long allocs ;
 5294   unsigned long destroys ;
 5295   unsigned long hash_grows ;
 5296   unsigned long res_failed ;
 5297   unsigned long lookups ;
 5298   unsigned long hits ;
 5299   unsigned long rcv_probes_mcast ;
 5300   unsigned long rcv_probes_ucast ;
 5301   unsigned long periodic_gc_runs ;
 5302   unsigned long forced_gc_runs ;
 5303   unsigned long unres_discards ;
 5304};
 5305#line 93
 5306struct neigh_ops;
 5307#line 93 "include/net/neighbour.h"
 5308struct neighbour {
 5309   struct neighbour *next ;
 5310   struct neigh_table *tbl ;
 5311   struct neigh_parms *parms ;
 5312   unsigned long confirmed ;
 5313   unsigned long updated ;
 5314   rwlock_t lock ;
 5315   atomic_t refcnt ;
 5316   struct sk_buff_head arp_queue ;
 5317   unsigned int arp_queue_len_bytes ;
 5318   struct timer_list timer ;
 5319   unsigned long used ;
 5320   atomic_t probes ;
 5321   __u8 flags ;
 5322   __u8 nud_state ;
 5323   __u8 type ;
 5324   __u8 dead ;
 5325   seqlock_t ha_lock ;
 5326   unsigned char ha[(32 + ((int )sizeof(unsigned long ) - 1)) & ~ ((int )sizeof(unsigned long ) - 1)] ;
 5327   struct hh_cache hh ;
 5328   int (*output)(struct neighbour * , struct sk_buff * ) ;
 5329   struct neigh_ops    *ops ;
 5330   struct rcu_head rcu ;
 5331   struct net_device *dev ;
 5332   u8 primary_key[0] ;
 5333};
 5334#line 120 "include/net/neighbour.h"
 5335struct neigh_ops {
 5336   int family ;
 5337   void (*solicit)(struct neighbour * , struct sk_buff * ) ;
 5338   void (*error_report)(struct neighbour * , struct sk_buff * ) ;
 5339   int (*output)(struct neighbour * , struct sk_buff * ) ;
 5340   int (*connected_output)(struct neighbour * , struct sk_buff * ) ;
 5341};
 5342#line 128 "include/net/neighbour.h"
 5343struct pneigh_entry {
 5344   struct pneigh_entry *next ;
 5345   struct net *net ;
 5346   struct net_device *dev ;
 5347   u8 flags ;
 5348   u8 key[0] ;
 5349};
 5350#line 144 "include/net/neighbour.h"
 5351struct neigh_hash_table {
 5352   struct neighbour **hash_buckets ;
 5353   unsigned int hash_shift ;
 5354   __u32 hash_rnd[4] ;
 5355   struct rcu_head rcu ;
 5356};
 5357#line 152 "include/net/neighbour.h"
 5358struct neigh_table {
 5359   struct neigh_table *next ;
 5360   int family ;
 5361   int entry_size ;
 5362   int key_len ;
 5363   __u32 (*hash)(void    *pkey , struct net_device    *dev , __u32 *hash_rnd ) ;
 5364   int (*ructor)(struct neighbour * ) ;
 5365   int (*pructor)(struct pneigh_entry * ) ;
 5366   void (*pdestructor)(struct pneigh_entry * ) ;
 5367   void (*proxy_redo)(struct sk_buff *skb ) ;
 5368   char *id ;
 5369   struct neigh_parms parms ;
 5370   int gc_interval ;
 5371   int gc_thresh1 ;
 5372   int gc_thresh2 ;
 5373   int gc_thresh3 ;
 5374   unsigned long last_flush ;
 5375   struct delayed_work gc_work ;
 5376   struct timer_list proxy_timer ;
 5377   struct sk_buff_head proxy_queue ;
 5378   atomic_t entries ;
 5379   rwlock_t lock ;
 5380   unsigned long last_rand ;
 5381   struct neigh_statistics *stats ;
 5382   struct neigh_hash_table *nht ;
 5383   struct pneigh_entry **phash_buckets ;
 5384};
 5385#line 33 "include/net/dst.h"
 5386union __anonunion____missing_field_name_354 {
 5387   unsigned long expires ;
 5388   struct dst_entry *from ;
 5389};
 5390#line 33
 5391struct dn_route;
 5392#line 33 "include/net/dst.h"
 5393union __anonunion____missing_field_name_355 {
 5394   struct dst_entry *next ;
 5395   struct rtable *rt_next ;
 5396   struct rt6_info *rt6_next ;
 5397   struct dn_route *dn_next ;
 5398};
 5399#line 33 "include/net/dst.h"
 5400struct dst_entry {
 5401   struct rcu_head rcu_head ;
 5402   struct dst_entry *child ;
 5403   struct net_device *dev ;
 5404   struct dst_ops *ops ;
 5405   unsigned long _metrics ;
 5406   union __anonunion____missing_field_name_354 __annonCompField53 ;
 5407   struct dst_entry *path ;
 5408   struct neighbour *_neighbour ;
 5409   struct xfrm_state *xfrm ;
 5410   int (*input)(struct sk_buff * ) ;
 5411   int (*output)(struct sk_buff * ) ;
 5412   int flags ;
 5413   short error ;
 5414   short obsolete ;
 5415   unsigned short header_len ;
 5416   unsigned short trailer_len ;
 5417   __u32 tclassid ;
 5418   long __pad_to_align_refcnt[2] ;
 5419   atomic_t __refcnt ;
 5420   int __use ;
 5421   unsigned long lastuse ;
 5422   union __anonunion____missing_field_name_355 __annonCompField54 ;
 5423};
 5424#line 109 "include/net/sock.h"
 5425struct __anonstruct_socket_lock_t_357 {
 5426   spinlock_t slock ;
 5427   int owned ;
 5428   wait_queue_head_t wq ;
 5429};
 5430#line 109 "include/net/sock.h"
 5431typedef struct __anonstruct_socket_lock_t_357 socket_lock_t;
 5432#line 125
 5433struct proto;
 5434#line 150 "include/net/sock.h"
 5435union __anonunion____missing_field_name_358 {
 5436   unsigned int skc_hash ;
 5437   __u16 skc_u16hashes[2] ;
 5438};
 5439#line 150 "include/net/sock.h"
 5440union __anonunion____missing_field_name_359 {
 5441   struct hlist_node skc_bind_node ;
 5442   struct hlist_nulls_node skc_portaddr_node ;
 5443};
 5444#line 150 "include/net/sock.h"
 5445union __anonunion____missing_field_name_360 {
 5446   struct hlist_node skc_node ;
 5447   struct hlist_nulls_node skc_nulls_node ;
 5448};
 5449#line 150 "include/net/sock.h"
 5450struct sock_common {
 5451   __be32 skc_daddr ;
 5452   __be32 skc_rcv_saddr ;
 5453   union __anonunion____missing_field_name_358 __annonCompField55 ;
 5454   unsigned short skc_family ;
 5455   unsigned char volatile   skc_state ;
 5456   unsigned char skc_reuse ;
 5457   int skc_bound_dev_if ;
 5458   union __anonunion____missing_field_name_359 __annonCompField56 ;
 5459   struct proto *skc_prot ;
 5460   struct net *skc_net ;
 5461   int skc_dontcopy_begin[0] ;
 5462   union __anonunion____missing_field_name_360 __annonCompField57 ;
 5463   int skc_tx_queue_mapping ;
 5464   atomic_t skc_refcnt ;
 5465   int skc_dontcopy_end[0] ;
 5466};
 5467#line 191
 5468struct cg_proto;
 5469#line 263 "include/net/sock.h"
 5470struct __anonstruct_sk_backlog_361 {
 5471   atomic_t rmem_alloc ;
 5472   int len ;
 5473   struct sk_buff *head ;
 5474   struct sk_buff *tail ;
 5475};
 5476#line 263 "include/net/sock.h"
 5477struct sock {
 5478   struct sock_common __sk_common ;
 5479   socket_lock_t sk_lock ;
 5480   struct sk_buff_head sk_receive_queue ;
 5481   struct __anonstruct_sk_backlog_361 sk_backlog ;
 5482   int sk_forward_alloc ;
 5483   __u32 sk_rxhash ;
 5484   atomic_t sk_drops ;
 5485   int sk_rcvbuf ;
 5486   struct sk_filter *sk_filter ;
 5487   struct socket_wq *sk_wq ;
 5488   struct sk_buff_head sk_async_wait_queue ;
 5489   struct xfrm_policy *sk_policy[2] ;
 5490   unsigned long sk_flags ;
 5491   struct dst_entry *sk_dst_cache ;
 5492   spinlock_t sk_dst_lock ;
 5493   atomic_t sk_wmem_alloc ;
 5494   atomic_t sk_omem_alloc ;
 5495   int sk_sndbuf ;
 5496   struct sk_buff_head sk_write_queue ;
 5497   unsigned int sk_shutdown : 2 ;
 5498   unsigned int sk_no_check : 2 ;
 5499   unsigned int sk_userlocks : 4 ;
 5500   unsigned int sk_protocol : 8 ;
 5501   unsigned int sk_type : 16 ;
 5502   int sk_wmem_queued ;
 5503   gfp_t sk_allocation ;
 5504   netdev_features_t sk_route_caps ;
 5505   netdev_features_t sk_route_nocaps ;
 5506   int sk_gso_type ;
 5507   unsigned int sk_gso_max_size ;
 5508   int sk_rcvlowat ;
 5509   unsigned long sk_lingertime ;
 5510   struct sk_buff_head sk_error_queue ;
 5511   struct proto *sk_prot_creator ;
 5512   rwlock_t sk_callback_lock ;
 5513   int sk_err ;
 5514   int sk_err_soft ;
 5515   unsigned short sk_ack_backlog ;
 5516   unsigned short sk_max_ack_backlog ;
 5517   __u32 sk_priority ;
 5518   __u32 sk_cgrp_prioidx ;
 5519   struct pid *sk_peer_pid ;
 5520   struct cred    *sk_peer_cred ;
 5521   long sk_rcvtimeo ;
 5522   long sk_sndtimeo ;
 5523   void *sk_protinfo ;
 5524   struct timer_list sk_timer ;
 5525   ktime_t sk_stamp ;
 5526   struct socket *sk_socket ;
 5527   void *sk_user_data ;
 5528   struct page *sk_sndmsg_page ;
 5529   struct sk_buff *sk_send_head ;
 5530   __u32 sk_sndmsg_off ;
 5531   __s32 sk_peek_off ;
 5532   int sk_write_pending ;
 5533   void *sk_security ;
 5534   __u32 sk_mark ;
 5535   u32 sk_classid ;
 5536   struct cg_proto *sk_cgrp ;
 5537   void (*sk_state_change)(struct sock *sk ) ;
 5538   void (*sk_data_ready)(struct sock *sk , int bytes ) ;
 5539   void (*sk_write_space)(struct sock *sk ) ;
 5540   void (*sk_error_report)(struct sock *sk ) ;
 5541   int (*sk_backlog_rcv)(struct sock *sk , struct sk_buff *skb ) ;
 5542   void (*sk_destruct)(struct sock *sk ) ;
 5543};
 5544#line 594
 5545enum sock_flags {
 5546    SOCK_DEAD = 0,
 5547    SOCK_DONE = 1,
 5548    SOCK_URGINLINE = 2,
 5549    SOCK_KEEPOPEN = 3,
 5550    SOCK_LINGER = 4,
 5551    SOCK_DESTROY = 5,
 5552    SOCK_BROADCAST = 6,
 5553    SOCK_TIMESTAMP = 7,
 5554    SOCK_ZAPPED = 8,
 5555    SOCK_USE_WRITE_QUEUE = 9,
 5556    SOCK_DBG = 10,
 5557    SOCK_RCVTSTAMP = 11,
 5558    SOCK_RCVTSTAMPNS = 12,
 5559    SOCK_LOCALROUTE = 13,
 5560    SOCK_QUEUE_SHRUNK = 14,
 5561    SOCK_TIMESTAMPING_TX_HARDWARE = 15,
 5562    SOCK_TIMESTAMPING_TX_SOFTWARE = 16,
 5563    SOCK_TIMESTAMPING_RX_HARDWARE = 17,
 5564    SOCK_TIMESTAMPING_RX_SOFTWARE = 18,
 5565    SOCK_TIMESTAMPING_SOFTWARE = 19,
 5566    SOCK_TIMESTAMPING_RAW_HARDWARE = 20,
 5567    SOCK_TIMESTAMPING_SYS_HARDWARE = 21,
 5568    SOCK_FASYNC = 22,
 5569    SOCK_RXQ_OVFL = 23,
 5570    SOCK_ZEROCOPY = 24,
 5571    SOCK_WIFI_STATUS = 25,
 5572    SOCK_NOFCS = 26
 5573} ;
 5574#line 788
 5575struct request_sock_ops;
 5576#line 789
 5577struct timewait_sock_ops;
 5578#line 790
 5579struct inet_hashinfo;
 5580#line 791
 5581struct raw_hashinfo;
 5582#line 798
 5583struct udp_table;
 5584#line 798 "include/net/sock.h"
 5585union __anonunion_h_362 {
 5586   struct inet_hashinfo *hashinfo ;
 5587   struct udp_table *udp_table ;
 5588   struct raw_hashinfo *raw_hash ;
 5589};
 5590#line 798 "include/net/sock.h"
 5591struct proto {
 5592   void (*close)(struct sock *sk , long timeout ) ;
 5593   int (*connect)(struct sock *sk , struct sockaddr *uaddr , int addr_len ) ;
 5594   int (*disconnect)(struct sock *sk , int flags ) ;
 5595   struct sock *(*accept)(struct sock *sk , int flags , int *err ) ;
 5596   int (*ioctl)(struct sock *sk , int cmd , unsigned long arg ) ;
 5597   int (*init)(struct sock *sk ) ;
 5598   void (*destroy)(struct sock *sk ) ;
 5599   void (*shutdown)(struct sock *sk , int how ) ;
 5600   int (*setsockopt)(struct sock *sk , int level , int optname , char *optval , unsigned int optlen ) ;
 5601   int (*getsockopt)(struct sock *sk , int level , int optname , char *optval , int *option ) ;
 5602   int (*compat_setsockopt)(struct sock *sk , int level , int optname , char *optval ,
 5603                            unsigned int optlen ) ;
 5604   int (*compat_getsockopt)(struct sock *sk , int level , int optname , char *optval ,
 5605                            int *option ) ;
 5606   int (*compat_ioctl)(struct sock *sk , unsigned int cmd , unsigned long arg ) ;
 5607   int (*sendmsg)(struct kiocb *iocb , struct sock *sk , struct msghdr *msg , size_t len ) ;
 5608   int (*recvmsg)(struct kiocb *iocb , struct sock *sk , struct msghdr *msg , size_t len ,
 5609                  int noblock , int flags , int *addr_len ) ;
 5610   int (*sendpage)(struct sock *sk , struct page *page , int offset , size_t size ,
 5611                   int flags ) ;
 5612   int (*bind)(struct sock *sk , struct sockaddr *uaddr , int addr_len ) ;
 5613   int (*backlog_rcv)(struct sock *sk , struct sk_buff *skb ) ;
 5614   void (*hash)(struct sock *sk ) ;
 5615   void (*unhash)(struct sock *sk ) ;
 5616   void (*rehash)(struct sock *sk ) ;
 5617   int (*get_port)(struct sock *sk , unsigned short snum ) ;
 5618   void (*clear_sk)(struct sock *sk , int size ) ;
 5619   unsigned int inuse_idx ;
 5620   void (*enter_memory_pressure)(struct sock *sk ) ;
 5621   atomic_long_t *memory_allocated ;
 5622   struct percpu_counter *sockets_allocated ;
 5623   int *memory_pressure ;
 5624   long *sysctl_mem ;
 5625   int *sysctl_wmem ;
 5626   int *sysctl_rmem ;
 5627   int max_header ;
 5628   bool no_autobind ;
 5629   struct kmem_cache *slab ;
 5630   unsigned int obj_size ;
 5631   int slab_flags ;
 5632   struct percpu_counter *orphan_count ;
 5633   struct request_sock_ops *rsk_prot ;
 5634   struct timewait_sock_ops *twsk_prot ;
 5635   union __anonunion_h_362 h ;
 5636   struct module *owner ;
 5637   char name[32] ;
 5638   struct list_head node ;
 5639   int (*init_cgroup)(struct cgroup *cgrp , struct cgroup_subsys *ss ) ;
 5640   void (*destroy_cgroup)(struct cgroup *cgrp ) ;
 5641   struct cg_proto *(*proto_cgroup)(struct mem_cgroup *memcg ) ;
 5642};
 5643#line 911 "include/net/sock.h"
 5644struct cg_proto {
 5645   void (*enter_memory_pressure)(struct sock *sk ) ;
 5646   struct res_counter *memory_allocated ;
 5647   struct percpu_counter *sockets_allocated ;
 5648   int *memory_pressure ;
 5649   long *sysctl_mem ;
 5650   struct mem_cgroup *memcg ;
 5651};
 5652#line 52 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
 5653enum vhost_net_poll_state {
 5654    VHOST_NET_POLL_DISABLED = 0,
 5655    VHOST_NET_POLL_STARTED = 1,
 5656    VHOST_NET_POLL_STOPPED = 2
 5657} ;
 5658#line 58 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
 5659struct vhost_net {
 5660   struct vhost_dev dev ;
 5661   struct vhost_virtqueue vqs[2] ;
 5662   struct vhost_poll poll[2] ;
 5663   enum vhost_net_poll_state tx_poll_state ;
 5664};
 5665#line 178 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
 5666struct __anonstruct_367 {
 5667   int  : 0 ;
 5668};
 5669#line 327 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
 5670struct __anonstruct_368 {
 5671   int  : 0 ;
 5672};
 5673#line 611 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
 5674struct __anonstruct_uaddr_369 {
 5675   struct sockaddr_ll sa ;
 5676   char buf[32] ;
 5677};
 5678#line 1 "<compiler builtins>"
 5679
 5680#line 1
 5681
 5682#line 1
 5683long __builtin_expect(long val , long res ) ;
 5684#line 14 "include/linux/file.h"
 5685extern void fput(struct file * ) ;
 5686#line 24 "include/linux/list.h"
 5687__inline static void INIT_LIST_HEAD(struct list_head *list )  __attribute__((__no_instrument_function__)) ;
 5688#line 24 "include/linux/list.h"
 5689__inline static void INIT_LIST_HEAD(struct list_head *list ) 
 5690{ unsigned long __cil_tmp2 ;
 5691  unsigned long __cil_tmp3 ;
 5692
 5693  {
 5694#line 26
 5695  *((struct list_head **)list) = list;
 5696#line 27
 5697  __cil_tmp2 = (unsigned long )list;
 5698#line 27
 5699  __cil_tmp3 = __cil_tmp2 + 8;
 5700#line 27
 5701  *((struct list_head **)__cil_tmp3) = list;
 5702#line 28
 5703  return;
 5704}
 5705}
 5706#line 47
 5707extern void __list_add(struct list_head *new , struct list_head *prev , struct list_head *next ) ;
 5708#line 74
 5709__inline static void list_add_tail(struct list_head *new , struct list_head *head )  __attribute__((__no_instrument_function__)) ;
 5710#line 74 "include/linux/list.h"
 5711__inline static void list_add_tail(struct list_head *new , struct list_head *head ) 
 5712{ unsigned long __cil_tmp3 ;
 5713  unsigned long __cil_tmp4 ;
 5714  struct list_head *__cil_tmp5 ;
 5715
 5716  {
 5717  {
 5718#line 76
 5719  __cil_tmp3 = (unsigned long )head;
 5720#line 76
 5721  __cil_tmp4 = __cil_tmp3 + 8;
 5722#line 76
 5723  __cil_tmp5 = *((struct list_head **)__cil_tmp4);
 5724#line 76
 5725  __list_add(new, __cil_tmp5, head);
 5726  }
 5727#line 77
 5728  return;
 5729}
 5730}
 5731#line 111
 5732extern void __list_del_entry(struct list_head *entry ) ;
 5733#line 142
 5734__inline static void list_del_init(struct list_head *entry )  __attribute__((__no_instrument_function__)) ;
 5735#line 142 "include/linux/list.h"
 5736__inline static void list_del_init(struct list_head *entry ) 
 5737{ 
 5738
 5739  {
 5740  {
 5741#line 144
 5742  __list_del_entry(entry);
 5743#line 145
 5744  INIT_LIST_HEAD(entry);
 5745  }
 5746#line 146
 5747  return;
 5748}
 5749}
 5750#line 186
 5751__inline static int list_empty(struct list_head    *head )  __attribute__((__no_instrument_function__)) ;
 5752#line 186 "include/linux/list.h"
 5753__inline static int list_empty(struct list_head    *head ) 
 5754{ unsigned long __cil_tmp2 ;
 5755  struct list_head *   __cil_tmp3 ;
 5756  unsigned long __cil_tmp4 ;
 5757
 5758  {
 5759  {
 5760#line 188
 5761  __cil_tmp2 = (unsigned long )head;
 5762#line 188
 5763  __cil_tmp3 = *((struct list_head *   *)head);
 5764#line 188
 5765  __cil_tmp4 = (unsigned long )__cil_tmp3;
 5766#line 188
 5767  return (__cil_tmp4 == __cil_tmp2);
 5768  }
 5769}
 5770}
 5771#line 59 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/bitops.h"
 5772__inline static void ( __attribute__((__always_inline__)) set_bit)(unsigned int nr ,
 5773                                                                   unsigned long volatile   *addr )  __attribute__((__no_instrument_function__)) ;
 5774#line 59 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/bitops.h"
 5775__inline static void ( __attribute__((__always_inline__)) set_bit)(unsigned int nr ,
 5776                                                                   unsigned long volatile   *addr ) 
 5777{ long volatile   *__cil_tmp3 ;
 5778
 5779  {
 5780#line 68
 5781  __cil_tmp3 = (long volatile   *)addr;
 5782#line 68
 5783  __asm__  volatile   (".section .smp_locks,\"a\"\n"
 5784                       ".balign 4\n"
 5785                       ".long 671f - .\n"
 5786                       ".previous\n"
 5787                       "671:"
 5788                       "\n\tlock; "
 5789                       "bts %1,%0": "+m" (*__cil_tmp3): "Ir" (nr): "memory");
 5790#line 71
 5791  return;
 5792}
 5793}
 5794#line 315
 5795__inline static int variable_test_bit(int nr , unsigned long  volatile   *addr )  __attribute__((__no_instrument_function__)) ;
 5796#line 315 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/bitops.h"
 5797__inline static int variable_test_bit(int nr , unsigned long  volatile   *addr ) 
 5798{ int oldbit ;
 5799  unsigned long *__cil_tmp4 ;
 5800
 5801  {
 5802#line 319
 5803  __cil_tmp4 = (unsigned long *)addr;
 5804#line 319
 5805  __asm__  volatile   ("bt %2,%1\n\t"
 5806                       "sbb %0,%0": "=r" (oldbit): "m" (*__cil_tmp4), "Ir" (nr));
 5807#line 324
 5808  return (oldbit);
 5809}
 5810}
 5811#line 44 "include/linux/dynamic_debug.h"
 5812extern int ( /* format attribute */  __dynamic_pr_debug)(struct _ddebug *descriptor ,
 5813                                                         char    *fmt  , ...) ;
 5814#line 147 "include/linux/kernel.h"
 5815extern void __might_sleep(char    *file , int line , int preempt_offset ) ;
 5816#line 194
 5817__inline static void might_fault(void)  __attribute__((__no_instrument_function__)) ;
 5818#line 194 "include/linux/kernel.h"
 5819__inline static void might_fault(void) 
 5820{ 
 5821
 5822  {
 5823  {
 5824#line 196
 5825  while (1) {
 5826    while_continue: /* CIL Label */ ;
 5827    {
 5828#line 196
 5829    __might_sleep("include/linux/kernel.h", 196, 0);
 5830    }
 5831    {
 5832#line 196
 5833    while (1) {
 5834      while_continue___0: /* CIL Label */ ;
 5835#line 196
 5836      goto while_break___0;
 5837    }
 5838    while_break___0: /* CIL Label */ ;
 5839    }
 5840#line 196
 5841    goto while_break;
 5842  }
 5843  while_break: /* CIL Label */ ;
 5844  }
 5845#line 197
 5846  return;
 5847}
 5848}
 5849#line 88 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/percpu.h"
 5850extern void __bad_percpu_size(void) ;
 5851#line 10 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/current.h"
 5852extern struct task_struct *current_task  __attribute__((__section__(".data..percpu"))) ;
 5853#line 12
 5854__inline static struct task_struct *( __attribute__((__always_inline__)) get_current)(void)  __attribute__((__no_instrument_function__)) ;
 5855#line 12 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/current.h"
 5856__inline static struct task_struct *( __attribute__((__always_inline__)) get_current)(void) 
 5857{ struct task_struct *pfo_ret__ ;
 5858
 5859  {
 5860#line 14
 5861  if ((int )8UL == 1) {
 5862#line 14
 5863    goto case_1;
 5864  } else
 5865#line 14
 5866  if ((int )8UL == 2) {
 5867#line 14
 5868    goto case_2;
 5869  } else
 5870#line 14
 5871  if ((int )8UL == 4) {
 5872#line 14
 5873    goto case_4;
 5874  } else
 5875#line 14
 5876  if ((int )8UL == 8) {
 5877#line 14
 5878    goto case_8;
 5879  } else {
 5880    {
 5881#line 14
 5882    goto switch_default;
 5883#line 14
 5884    if (0) {
 5885      case_1: /* CIL Label */ 
 5886#line 14
 5887      __asm__  ("mov"
 5888                "b "
 5889                "%%"
 5890                "gs"
 5891                ":"
 5892                "%P"
 5893                "1"
 5894                ",%0": "=q" (pfo_ret__): "p" (& current_task));
 5895#line 14
 5896      goto switch_break;
 5897      case_2: /* CIL Label */ 
 5898#line 14
 5899      __asm__  ("mov"
 5900                "w "
 5901                "%%"
 5902                "gs"
 5903                ":"
 5904                "%P"
 5905                "1"
 5906                ",%0": "=r" (pfo_ret__): "p" (& current_task));
 5907#line 14
 5908      goto switch_break;
 5909      case_4: /* CIL Label */ 
 5910#line 14
 5911      __asm__  ("mov"
 5912                "l "
 5913                "%%"
 5914                "gs"
 5915                ":"
 5916                "%P"
 5917                "1"
 5918                ",%0": "=r" (pfo_ret__): "p" (& current_task));
 5919#line 14
 5920      goto switch_break;
 5921      case_8: /* CIL Label */ 
 5922#line 14
 5923      __asm__  ("mov"
 5924                "q "
 5925                "%%"
 5926                "gs"
 5927                ":"
 5928                "%P"
 5929                "1"
 5930                ",%0": "=r" (pfo_ret__): "p" (& current_task));
 5931#line 14
 5932      goto switch_break;
 5933      switch_default: /* CIL Label */ 
 5934      {
 5935#line 14
 5936      __bad_percpu_size();
 5937      }
 5938    } else {
 5939      switch_break: /* CIL Label */ ;
 5940    }
 5941    }
 5942  }
 5943#line 14
 5944  return (pfo_ret__);
 5945}
 5946}
 5947#line 64 "include/asm-generic/bug.h"
 5948extern void ( /* format attribute */  warn_slowpath_fmt)(char    *file , int    line ,
 5949                                                         char    *fmt  , ...) ;
 5950#line 70
 5951extern void warn_slowpath_null(char    *file , int    line ) ;
 5952#line 22 "include/linux/err.h"
 5953__inline static void * __attribute__((__warn_unused_result__)) ERR_PTR(long error )  __attribute__((__no_instrument_function__)) ;
 5954#line 22 "include/linux/err.h"
 5955__inline static void * __attribute__((__warn_unused_result__)) ERR_PTR(long error ) 
 5956{ 
 5957
 5958  {
 5959#line 24
 5960  return ((void *)error);
 5961}
 5962}
 5963#line 27
 5964__inline static long __attribute__((__warn_unused_result__))  PTR_ERR(void    *ptr )  __attribute__((__no_instrument_function__)) ;
 5965#line 27 "include/linux/err.h"
 5966__inline static long __attribute__((__warn_unused_result__))  PTR_ERR(void    *ptr ) 
 5967{ 
 5968
 5969  {
 5970#line 29
 5971  return ((long )ptr);
 5972}
 5973}
 5974#line 32
 5975__inline static long __attribute__((__warn_unused_result__))  IS_ERR(void    *ptr )  __attribute__((__no_instrument_function__)) ;
 5976#line 32 "include/linux/err.h"
 5977__inline static long __attribute__((__warn_unused_result__))  IS_ERR(void    *ptr ) 
 5978{ long tmp ;
 5979  unsigned long __cil_tmp3 ;
 5980  int __cil_tmp4 ;
 5981  int __cil_tmp5 ;
 5982  int __cil_tmp6 ;
 5983  long __cil_tmp7 ;
 5984
 5985  {
 5986  {
 5987#line 34
 5988  __cil_tmp3 = (unsigned long )ptr;
 5989#line 34
 5990  __cil_tmp4 = __cil_tmp3 >= 0xfffffffffffff001UL;
 5991#line 34
 5992  __cil_tmp5 = ! __cil_tmp4;
 5993#line 34
 5994  __cil_tmp6 = ! __cil_tmp5;
 5995#line 34
 5996  __cil_tmp7 = (long )__cil_tmp6;
 5997#line 34
 5998  tmp = __builtin_expect(__cil_tmp7, 0L);
 5999  }
 6000#line 34
 6001  return (tmp);
 6002}
 6003}
 6004#line 11 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/cmpxchg.h"
 6005extern void __xchg_wrong_size(void) ;
 6006#line 23 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/atomic.h"
 6007__inline static int atomic_read(atomic_t    *v )  __attribute__((__no_instrument_function__)) ;
 6008#line 23 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/atomic.h"
 6009__inline static int atomic_read(atomic_t    *v ) 
 6010{ int    *__cil_tmp2 ;
 6011  int volatile   *__cil_tmp3 ;
 6012  int volatile   __cil_tmp4 ;
 6013
 6014  {
 6015  {
 6016#line 25
 6017  __cil_tmp2 = (int    *)v;
 6018#line 25
 6019  __cil_tmp3 = (int volatile   *)__cil_tmp2;
 6020#line 25
 6021  __cil_tmp4 = *__cil_tmp3;
 6022#line 25
 6023  return ((int )__cil_tmp4);
 6024  }
 6025}
 6026}
 6027#line 35
 6028__inline static void atomic_set(atomic_t *v , int i )  __attribute__((__no_instrument_function__)) ;
 6029#line 35 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/atomic.h"
 6030__inline static void atomic_set(atomic_t *v , int i ) 
 6031{ 
 6032
 6033  {
 6034#line 37
 6035  *((int *)v) = i;
 6036#line 38
 6037  return;
 6038}
 6039}
 6040#line 77
 6041__inline static int atomic_sub_and_test(int i , atomic_t *v )  __attribute__((__no_instrument_function__)) ;
 6042#line 77 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/atomic.h"
 6043__inline static int atomic_sub_and_test(int i , atomic_t *v ) 
 6044{ unsigned char c ;
 6045
 6046  {
 6047#line 81
 6048  __asm__  volatile   (".section .smp_locks,\"a\"\n"
 6049                       ".balign 4\n"
 6050                       ".long 671f - .\n"
 6051                       ".previous\n"
 6052                       "671:"
 6053                       "\n\tlock; "
 6054                       "subl %2,%0; sete %1": "+m" (*((int *)v)), "=qm" (c): "ir" (i): "memory");
 6055#line 84
 6056  return ((int )c);
 6057}
 6058}
 6059#line 220 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/thread_info.h"
 6060extern unsigned long kernel_stack  __attribute__((__section__(".data..percpu"))) ;
 6061#line 222
 6062__inline static struct thread_info *current_thread_info(void)  __attribute__((__no_instrument_function__)) ;
 6063#line 222 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/thread_info.h"
 6064__inline static struct thread_info *current_thread_info(void) 
 6065{ struct thread_info *ti ;
 6066  unsigned long pfo_ret__ ;
 6067  unsigned long __cil_tmp3 ;
 6068  unsigned long __cil_tmp4 ;
 6069  unsigned long __cil_tmp5 ;
 6070  unsigned long __cil_tmp6 ;
 6071  void *__cil_tmp7 ;
 6072
 6073  {
 6074#line 225
 6075  if ((int )8UL == 1) {
 6076#line 225
 6077    goto case_1;
 6078  } else
 6079#line 225
 6080  if ((int )8UL == 2) {
 6081#line 225
 6082    goto case_2;
 6083  } else
 6084#line 225
 6085  if ((int )8UL == 4) {
 6086#line 225
 6087    goto case_4;
 6088  } else
 6089#line 225
 6090  if ((int )8UL == 8) {
 6091#line 225
 6092    goto case_8;
 6093  } else {
 6094    {
 6095#line 225
 6096    goto switch_default;
 6097#line 225
 6098    if (0) {
 6099      case_1: /* CIL Label */ 
 6100#line 225
 6101      __asm__  ("mov"
 6102                "b "
 6103                "%%"
 6104                "gs"
 6105                ":"
 6106                "%P"
 6107                "1"
 6108                ",%0": "=q" (pfo_ret__): "p" (& kernel_stack));
 6109#line 225
 6110      goto switch_break;
 6111      case_2: /* CIL Label */ 
 6112#line 225
 6113      __asm__  ("mov"
 6114                "w "
 6115                "%%"
 6116                "gs"
 6117                ":"
 6118                "%P"
 6119                "1"
 6120                ",%0": "=r" (pfo_ret__): "p" (& kernel_stack));
 6121#line 225
 6122      goto switch_break;
 6123      case_4: /* CIL Label */ 
 6124#line 225
 6125      __asm__  ("mov"
 6126                "l "
 6127                "%%"
 6128                "gs"
 6129                ":"
 6130                "%P"
 6131                "1"
 6132                ",%0": "=r" (pfo_ret__): "p" (& kernel_stack));
 6133#line 225
 6134      goto switch_break;
 6135      case_8: /* CIL Label */ 
 6136#line 225
 6137      __asm__  ("mov"
 6138                "q "
 6139                "%%"
 6140                "gs"
 6141                ":"
 6142                "%P"
 6143                "1"
 6144                ",%0": "=r" (pfo_ret__): "p" (& kernel_stack));
 6145#line 225
 6146      goto switch_break;
 6147      switch_default: /* CIL Label */ 
 6148      {
 6149#line 225
 6150      __bad_percpu_size();
 6151      }
 6152    } else {
 6153      switch_break: /* CIL Label */ ;
 6154    }
 6155    }
 6156  }
 6157#line 225
 6158  __cil_tmp3 = 1UL << 12;
 6159#line 225
 6160  __cil_tmp4 = __cil_tmp3 << 1;
 6161#line 225
 6162  __cil_tmp5 = pfo_ret__ + 40UL;
 6163#line 225
 6164  __cil_tmp6 = __cil_tmp5 - __cil_tmp4;
 6165#line 225
 6166  __cil_tmp7 = (void *)__cil_tmp6;
 6167#line 225
 6168  ti = (struct thread_info *)__cil_tmp7;
 6169#line 227
 6170  return (ti);
 6171}
 6172}
 6173#line 82 "include/linux/thread_info.h"
 6174__inline static int test_ti_thread_flag(struct thread_info *ti , int flag )  __attribute__((__no_instrument_function__)) ;
 6175#line 82 "include/linux/thread_info.h"
 6176__inline static int test_ti_thread_flag(struct thread_info *ti , int flag ) 
 6177{ int tmp___0 ;
 6178  unsigned long __cil_tmp5 ;
 6179  unsigned long __cil_tmp6 ;
 6180  __u32 *__cil_tmp7 ;
 6181  unsigned long *__cil_tmp8 ;
 6182  unsigned long  volatile   *__cil_tmp9 ;
 6183
 6184  {
 6185  {
 6186#line 84
 6187  __cil_tmp5 = (unsigned long )ti;
 6188#line 84
 6189  __cil_tmp6 = __cil_tmp5 + 16;
 6190#line 84
 6191  __cil_tmp7 = (__u32 *)__cil_tmp6;
 6192#line 84
 6193  __cil_tmp8 = (unsigned long *)__cil_tmp7;
 6194#line 84
 6195  __cil_tmp9 = (unsigned long  volatile   *)__cil_tmp8;
 6196#line 84
 6197  tmp___0 = variable_test_bit(flag, __cil_tmp9);
 6198  }
 6199#line 84
 6200  return (tmp___0);
 6201}
 6202}
 6203#line 93 "include/linux/spinlock.h"
 6204extern void __raw_spin_lock_init(raw_spinlock_t *lock , char    *name , struct lock_class_key *key ) ;
 6205#line 29 "include/linux/spinlock_api_smp.h"
 6206extern void _raw_spin_lock_irq(raw_spinlock_t *lock )  __attribute__((__section__(".spinlock.text"))) ;
 6207#line 32
 6208extern unsigned long _raw_spin_lock_irqsave(raw_spinlock_t *lock )  __attribute__((__section__(".spinlock.text"))) ;
 6209#line 41
 6210extern void _raw_spin_unlock_irq(raw_spinlock_t *lock )  __attribute__((__section__(".spinlock.text"))) ;
 6211#line 42
 6212extern void _raw_spin_unlock_irqrestore(raw_spinlock_t *lock , unsigned long flags )  __attribute__((__section__(".spinlock.text"))) ;
 6213#line 272 "include/linux/spinlock.h"
 6214__inline static raw_spinlock_t *spinlock_check(spinlock_t *lock )  __attribute__((__no_instrument_function__)) ;
 6215#line 272 "include/linux/spinlock.h"
 6216__inline static raw_spinlock_t *spinlock_check(spinlock_t *lock ) 
 6217{ 
 6218
 6219  {
 6220#line 274
 6221  return ((struct raw_spinlock *)lock);
 6222}
 6223}
 6224#line 308
 6225__inline static void spin_lock_irq(spinlock_t *lock )  __attribute__((__no_instrument_function__)) ;
 6226#line 308 "include/linux/spinlock.h"
 6227__inline static void spin_lock_irq(spinlock_t *lock ) 
 6228{ struct raw_spinlock *__cil_tmp2 ;
 6229
 6230  {
 6231  {
 6232#line 310
 6233  __cil_tmp2 = (struct raw_spinlock *)lock;
 6234#line 310
 6235  _raw_spin_lock_irq(__cil_tmp2);
 6236  }
 6237#line 311
 6238  return;
 6239}
 6240}
 6241#line 333
 6242__inline static void spin_unlock_irq(spinlock_t *lock )  __attribute__((__no_instrument_function__)) ;
 6243#line 333 "include/linux/spinlock.h"
 6244__inline static void spin_unlock_irq(spinlock_t *lock ) 
 6245{ struct raw_spinlock *__cil_tmp2 ;
 6246
 6247  {
 6248  {
 6249#line 335
 6250  __cil_tmp2 = (struct raw_spinlock *)lock;
 6251#line 335
 6252  _raw_spin_unlock_irq(__cil_tmp2);
 6253  }
 6254#line 336
 6255  return;
 6256}
 6257}
 6258#line 338
 6259__inline static void spin_unlock_irqrestore(spinlock_t *lock , unsigned long flags )  __attribute__((__no_instrument_function__)) ;
 6260#line 338 "include/linux/spinlock.h"
 6261__inline static void spin_unlock_irqrestore(spinlock_t *lock , unsigned long flags ) 
 6262{ struct raw_spinlock *__cil_tmp5 ;
 6263
 6264  {
 6265  {
 6266#line 340
 6267  while (1) {
 6268    while_continue: /* CIL Label */ ;
 6269    {
 6270#line 340
 6271    __cil_tmp5 = (struct raw_spinlock *)lock;
 6272#line 340
 6273    _raw_spin_unlock_irqrestore(__cil_tmp5, flags);
 6274    }
 6275#line 340
 6276    goto while_break;
 6277  }
 6278  while_break: /* CIL Label */ ;
 6279  }
 6280#line 341
 6281  return;
 6282}
 6283}
 6284#line 79 "include/linux/wait.h"
 6285extern void __init_waitqueue_head(wait_queue_head_t *q , char    *name , struct lock_class_key * ) ;
 6286#line 104
 6287__inline static void init_waitqueue_func_entry(wait_queue_t *q , int (*func)(wait_queue_t *wait ,
 6288                                                                             unsigned int mode ,
 6289                                                                             int flags ,
 6290                                                                             void *key ) )  __attribute__((__no_instrument_function__)) ;
 6291#line 104 "include/linux/wait.h"
 6292__inline static void init_waitqueue_func_entry(wait_queue_t *q , int (*func)(wait_queue_t *wait ,
 6293                                                                             unsigned int mode ,
 6294                                                                             int flags ,
 6295                                                                             void *key ) ) 
 6296{ unsigned long __cil_tmp3 ;
 6297  unsigned long __cil_tmp4 ;
 6298  unsigned long __cil_tmp5 ;
 6299  unsigned long __cil_tmp6 ;
 6300
 6301  {
 6302#line 107
 6303  *((unsigned int *)q) = 0U;
 6304#line 108
 6305  __cil_tmp3 = (unsigned long )q;
 6306#line 108
 6307  __cil_tmp4 = __cil_tmp3 + 8;
 6308#line 108
 6309  *((void **)__cil_tmp4) = (void *)0;
 6310#line 109
 6311  __cil_tmp5 = (unsigned long )q;
 6312#line 109
 6313  __cil_tmp6 = __cil_tmp5 + 16;
 6314#line 109
 6315  *((int (**)(wait_queue_t *wait , unsigned int mode , int flags , void *key ))__cil_tmp6) = func;
 6316#line 110
 6317  return;
 6318}
 6319}
 6320#line 117
 6321extern void add_wait_queue(wait_queue_head_t *q , wait_queue_t *wait ) ;
 6322#line 119
 6323extern void remove_wait_queue(wait_queue_head_t *q , wait_queue_t *wait ) ;
 6324#line 155
 6325extern void __wake_up(wait_queue_head_t *q , unsigned int mode , int nr , void *key ) ;
 6326#line 584
 6327extern void prepare_to_wait(wait_queue_head_t *q , wait_queue_t *wait , int state ) ;
 6328#line 586
 6329extern void finish_wait(wait_queue_head_t *q , wait_queue_t *wait ) ;
 6330#line 589
 6331extern int autoremove_wake_function(wait_queue_t *wait , unsigned int mode , int sync ,
 6332                                    void *key ) ;
 6333#line 33 "include/linux/eventfd.h"
 6334extern void eventfd_ctx_put(struct eventfd_ctx *ctx ) ;
 6335#line 34
 6336extern struct file *eventfd_fget(int fd ) ;
 6337#line 36
 6338extern struct eventfd_ctx *eventfd_ctx_fileget(struct file *file ) ;
 6339#line 37
 6340extern int eventfd_signal(struct eventfd_ctx *ctx , int n ) ;
 6341#line 115 "include/linux/mutex.h"
 6342extern void __mutex_init(struct mutex *lock , char    *name , struct lock_class_key *key ) ;
 6343#line 152
 6344void mutex_lock(struct mutex *lock ) ;
 6345#line 153
 6346int __attribute__((__warn_unused_result__))  mutex_lock_interruptible(struct mutex *lock ) ;
 6347#line 154
 6348int __attribute__((__warn_unused_result__))  mutex_lock_killable(struct mutex *lock ) ;
 6349#line 168
 6350int mutex_trylock(struct mutex *lock ) ;
 6351#line 169
 6352void mutex_unlock(struct mutex *lock ) ;
 6353#line 170
 6354int atomic_dec_and_mutex_lock(atomic_t *cnt , struct mutex *lock ) ;
 6355#line 144 "include/linux/rcupdate.h"
 6356extern void synchronize_sched(void) ;
 6357#line 162
 6358__inline static void __rcu_read_lock(void)  __attribute__((__no_instrument_function__)) ;
 6359#line 162 "include/linux/rcupdate.h"
 6360__inline static void __rcu_read_lock(void) 
 6361{ struct thread_info *tmp ;
 6362  unsigned long __cil_tmp2 ;
 6363  unsigned long __cil_tmp3 ;
 6364  unsigned long __cil_tmp4 ;
 6365  unsigned long __cil_tmp5 ;
 6366  int __cil_tmp6 ;
 6367
 6368  {
 6369  {
 6370#line 164
 6371  while (1) {
 6372    while_continue: /* CIL Label */ ;
 6373    {
 6374#line 164
 6375    while (1) {
 6376      while_continue___0: /* CIL Label */ ;
 6377      {
 6378#line 164
 6379      tmp = current_thread_info();
 6380#line 164
 6381      __cil_tmp2 = (unsigned long )tmp;
 6382#line 164
 6383      __cil_tmp3 = __cil_tmp2 + 28;
 6384#line 164
 6385      __cil_tmp4 = (unsigned long )tmp;
 6386#line 164
 6387      __cil_tmp5 = __cil_tmp4 + 28;
 6388#line 164
 6389      __cil_tmp6 = *((int *)__cil_tmp5);
 6390#line 164
 6391      *((int *)__cil_tmp3) = __cil_tmp6 + 1;
 6392      }
 6393#line 164
 6394      goto while_break___0;
 6395    }
 6396    while_break___0: /* CIL Label */ ;
 6397    }
 6398#line 164
 6399    __asm__  volatile   ("": : : "memory");
 6400#line 164
 6401    goto while_break;
 6402  }
 6403  while_break: /* CIL Label */ ;
 6404  }
 6405#line 165
 6406  return;
 6407}
 6408}
 6409#line 167
 6410__inline static void __rcu_read_unlock(void)  __attribute__((__no_instrument_function__)) ;
 6411#line 167 "include/linux/rcupdate.h"
 6412__inline static void __rcu_read_unlock(void) 
 6413{ struct thread_info *tmp ;
 6414  unsigned long __cil_tmp2 ;
 6415  unsigned long __cil_tmp3 ;
 6416  unsigned long __cil_tmp4 ;
 6417  unsigned long __cil_tmp5 ;
 6418  int __cil_tmp6 ;
 6419
 6420  {
 6421  {
 6422#line 169
 6423  while (1) {
 6424    while_continue: /* CIL Label */ ;
 6425    {
 6426#line 169
 6427    while (1) {
 6428      while_continue___0: /* CIL Label */ ;
 6429#line 169
 6430      __asm__  volatile   ("": : : "memory");
 6431      {
 6432#line 169
 6433      while (1) {
 6434        while_continue___1: /* CIL Label */ ;
 6435        {
 6436#line 169
 6437        tmp = current_thread_info();
 6438#line 169
 6439        __cil_tmp2 = (unsigned long )tmp;
 6440#line 169
 6441        __cil_tmp3 = __cil_tmp2 + 28;
 6442#line 169
 6443        __cil_tmp4 = (unsigned long )tmp;
 6444#line 169
 6445        __cil_tmp5 = __cil_tmp4 + 28;
 6446#line 169
 6447        __cil_tmp6 = *((int *)__cil_tmp5);
 6448#line 169
 6449        *((int *)__cil_tmp3) = __cil_tmp6 - 1;
 6450        }
 6451#line 169
 6452        goto while_break___1;
 6453      }
 6454      while_break___1: /* CIL Label */ ;
 6455      }
 6456#line 169
 6457      goto while_break___0;
 6458    }
 6459    while_break___0: /* CIL Label */ ;
 6460    }
 6461#line 169
 6462    __asm__  volatile   ("": : : "memory");
 6463    {
 6464#line 169
 6465    while (1) {
 6466      while_continue___2: /* CIL Label */ ;
 6467#line 169
 6468      goto while_break___2;
 6469    }
 6470    while_break___2: /* CIL Label */ ;
 6471    }
 6472#line 169
 6473    goto while_break;
 6474  }
 6475  while_break: /* CIL Label */ ;
 6476  }
 6477#line 170
 6478  return;
 6479}
 6480}
 6481#line 172
 6482__inline static void synchronize_rcu(void)  __attribute__((__no_instrument_function__)) ;
 6483#line 172 "include/linux/rcupdate.h"
 6484__inline static void synchronize_rcu(void) 
 6485{ 
 6486
 6487  {
 6488  {
 6489#line 174
 6490  synchronize_sched();
 6491  }
 6492#line 175
 6493  return;
 6494}
 6495}
 6496#line 723
 6497__inline static void rcu_read_lock(void)  __attribute__((__no_instrument_function__)) ;
 6498#line 723 "include/linux/rcupdate.h"
 6499__inline static void rcu_read_lock(void) 
 6500{ 
 6501
 6502  {
 6503  {
 6504#line 725
 6505  __rcu_read_lock();
 6506  }
 6507  {
 6508#line 727
 6509  while (1) {
 6510    while_continue: /* CIL Label */ ;
 6511#line 727
 6512    goto while_break;
 6513  }
 6514  while_break: /* CIL Label */ ;
 6515  }
 6516  {
 6517#line 728
 6518  while (1) {
 6519    while_continue___0: /* CIL Label */ ;
 6520#line 728
 6521    goto while_break___0;
 6522  }
 6523  while_break___0: /* CIL Label */ ;
 6524  }
 6525#line 730
 6526  return;
 6527}
 6528}
 6529#line 747
 6530__inline static void rcu_read_unlock(void)  __attribute__((__no_instrument_function__)) ;
 6531#line 747 "include/linux/rcupdate.h"
 6532__inline static void rcu_read_unlock(void) 
 6533{ 
 6534
 6535  {
 6536  {
 6537#line 749
 6538  while (1) {
 6539    while_continue: /* CIL Label */ ;
 6540#line 749
 6541    goto while_break;
 6542  }
 6543  while_break: /* CIL Label */ ;
 6544  }
 6545  {
 6546#line 751
 6547  while (1) {
 6548    while_continue___0: /* CIL Label */ ;
 6549#line 751
 6550    goto while_break___0;
 6551  }
 6552  while_break___0: /* CIL Label */ ;
 6553  }
 6554  {
 6555#line 753
 6556  __rcu_read_unlock();
 6557  }
 6558#line 754
 6559  return;
 6560}
 6561}
 6562#line 450 "include/linux/mm.h"
 6563extern void put_page(struct page *page ) ;
 6564#line 737
 6565__inline static void *( __attribute__((__always_inline__)) lowmem_page_address)(struct page    *page )  __attribute__((__no_instrument_function__)) ;
 6566#line 737 "include/linux/mm.h"
 6567__inline static void *( __attribute__((__always_inline__)) lowmem_page_address)(struct page    *page ) 
 6568{ struct page *__cil_tmp2 ;
 6569  struct page    *__cil_tmp3 ;
 6570  int __cil_tmp4 ;
 6571  unsigned long __cil_tmp5 ;
 6572  phys_addr_t __cil_tmp6 ;
 6573  phys_addr_t __cil_tmp7 ;
 6574  unsigned long __cil_tmp8 ;
 6575  unsigned long __cil_tmp9 ;
 6576
 6577  {
 6578  {
 6579#line 739
 6580  __cil_tmp2 = (struct page *)0xffffea0000000000UL;
 6581#line 739
 6582  __cil_tmp3 = (struct page    *)__cil_tmp2;
 6583#line 739
 6584  __cil_tmp4 = page - __cil_tmp3;
 6585#line 739
 6586  __cil_tmp5 = (unsigned long )__cil_tmp4;
 6587#line 739
 6588  __cil_tmp6 = (phys_addr_t )__cil_tmp5;
 6589#line 739
 6590  __cil_tmp7 = __cil_tmp6 << 12;
 6591#line 739
 6592  __cil_tmp8 = (unsigned long )__cil_tmp7;
 6593#line 739
 6594  __cil_tmp9 = __cil_tmp8 + 0xffff880000000000UL;
 6595#line 739
 6596  return ((void *)__cil_tmp9);
 6597  }
 6598}
 6599}
 6600#line 999
 6601extern int get_user_pages_fast(unsigned long start , int nr_pages , int write , struct page **pages ) ;
 6602#line 1013
 6603extern int set_page_dirty_lock(struct page *page ) ;
 6604#line 30 "include/linux/kref.h"
 6605__inline static void kref_init(struct kref *kref )  __attribute__((__no_instrument_function__)) ;
 6606#line 30 "include/linux/kref.h"
 6607__inline static void kref_init(struct kref *kref ) 
 6608{ atomic_t *__cil_tmp2 ;
 6609
 6610  {
 6611  {
 6612#line 32
 6613  __cil_tmp2 = (atomic_t *)kref;
 6614#line 32
 6615  atomic_set(__cil_tmp2, 1);
 6616  }
 6617#line 33
 6618  return;
 6619}
 6620}
 6621#line 63
 6622__inline static int kref_sub(struct kref *kref , unsigned int count , void (*release)(struct kref *kref ) )  __attribute__((__no_instrument_function__)) ;
 6623#line 63 "include/linux/kref.h"
 6624__inline static int kref_sub(struct kref *kref , unsigned int count , void (*release)(struct kref *kref ) ) 
 6625{ int __ret_warn_on ;
 6626  long tmp ;
 6627  int tmp___0 ;
 6628  void *__cil_tmp7 ;
 6629  unsigned long __cil_tmp8 ;
 6630  unsigned long __cil_tmp9 ;
 6631  int __cil_tmp10 ;
 6632  int __cil_tmp11 ;
 6633  int __cil_tmp12 ;
 6634  int __cil_tmp13 ;
 6635  long __cil_tmp14 ;
 6636  int    __cil_tmp15 ;
 6637  int __cil_tmp16 ;
 6638  int __cil_tmp17 ;
 6639  long __cil_tmp18 ;
 6640  int __cil_tmp19 ;
 6641  atomic_t *__cil_tmp20 ;
 6642
 6643  {
 6644  {
 6645#line 66
 6646  __cil_tmp7 = (void *)0;
 6647#line 66
 6648  __cil_tmp8 = (unsigned long )__cil_tmp7;
 6649#line 66
 6650  __cil_tmp9 = (unsigned long )release;
 6651#line 66
 6652  __cil_tmp10 = __cil_tmp9 == __cil_tmp8;
 6653#line 66
 6654  __cil_tmp11 = ! __cil_tmp10;
 6655#line 66
 6656  __ret_warn_on = ! __cil_tmp11;
 6657#line 66
 6658  __cil_tmp12 = ! __ret_warn_on;
 6659#line 66
 6660  __cil_tmp13 = ! __cil_tmp12;
 6661#line 66
 6662  __cil_tmp14 = (long )__cil_tmp13;
 6663#line 66
 6664  tmp = __builtin_expect(__cil_tmp14, 0L);
 6665  }
 6666#line 66
 6667  if (tmp) {
 6668    {
 6669#line 66
 6670    __cil_tmp15 = (int    )66;
 6671#line 66
 6672    warn_slowpath_null("include/linux/kref.h", __cil_tmp15);
 6673    }
 6674  } else {
 6675
 6676  }
 6677  {
 6678#line 66
 6679  __cil_tmp16 = ! __ret_warn_on;
 6680#line 66
 6681  __cil_tmp17 = ! __cil_tmp16;
 6682#line 66
 6683  __cil_tmp18 = (long )__cil_tmp17;
 6684#line 66
 6685  __builtin_expect(__cil_tmp18, 0L);
 6686#line 68
 6687  __cil_tmp19 = (int )count;
 6688#line 68
 6689  __cil_tmp20 = (atomic_t *)kref;
 6690#line 68
 6691  tmp___0 = atomic_sub_and_test(__cil_tmp19, __cil_tmp20);
 6692  }
 6693#line 68
 6694  if (tmp___0) {
 6695    {
 6696#line 69
 6697    (*release)(kref);
 6698    }
 6699#line 70
 6700    return (1);
 6701  } else {
 6702
 6703  }
 6704#line 72
 6705  return (0);
 6706}
 6707}
 6708#line 92
 6709__inline static int kref_put(struct kref *kref , void (*release)(struct kref *kref ) )  __attribute__((__no_instrument_function__)) ;
 6710#line 92 "include/linux/kref.h"
 6711__inline static int kref_put(struct kref *kref , void (*release)(struct kref *kref ) ) 
 6712{ int tmp ;
 6713
 6714  {
 6715  {
 6716#line 94
 6717  tmp = kref_sub(kref, 1U, release);
 6718  }
 6719#line 94
 6720  return (tmp);
 6721}
 6722}
 6723#line 153 "include/linux/virtio_ring.h"
 6724__inline static int vring_need_event(__u16 event_idx , __u16 new_idx , __u16 old )  __attribute__((__no_instrument_function__)) ;
 6725#line 153 "include/linux/virtio_ring.h"
 6726__inline static int vring_need_event(__u16 event_idx , __u16 new_idx , __u16 old ) 
 6727{ int __cil_tmp4 ;
 6728  int __cil_tmp5 ;
 6729  int __cil_tmp6 ;
 6730  __u16 __cil_tmp7 ;
 6731  int __cil_tmp8 ;
 6732  int __cil_tmp9 ;
 6733  int __cil_tmp10 ;
 6734  int __cil_tmp11 ;
 6735  int __cil_tmp12 ;
 6736  __u16 __cil_tmp13 ;
 6737  int __cil_tmp14 ;
 6738
 6739  {
 6740  {
 6741#line 160
 6742  __cil_tmp4 = (int )old;
 6743#line 160
 6744  __cil_tmp5 = (int )new_idx;
 6745#line 160
 6746  __cil_tmp6 = __cil_tmp5 - __cil_tmp4;
 6747#line 160
 6748  __cil_tmp7 = (__u16 )__cil_tmp6;
 6749#line 160
 6750  __cil_tmp8 = (int )__cil_tmp7;
 6751#line 160
 6752  __cil_tmp9 = (int )event_idx;
 6753#line 160
 6754  __cil_tmp10 = (int )new_idx;
 6755#line 160
 6756  __cil_tmp11 = __cil_tmp10 - __cil_tmp9;
 6757#line 160
 6758  __cil_tmp12 = __cil_tmp11 - 1;
 6759#line 160
 6760  __cil_tmp13 = (__u16 )__cil_tmp12;
 6761#line 160
 6762  __cil_tmp14 = (int )__cil_tmp13;
 6763#line 160
 6764  return (__cil_tmp14 < __cil_tmp8);
 6765  }
 6766}
 6767}
 6768#line 321 "include/linux/socket.h"
 6769extern int memcpy_fromiovec(unsigned char *kdata , struct iovec *iov , int len ) ;
 6770#line 161 "include/linux/slab.h"
 6771extern void kfree(void    * ) ;
 6772#line 221 "include/linux/slub_def.h"
 6773extern void *__kmalloc(size_t size , gfp_t flags ) ;
 6774#line 268
 6775__inline static void *( __attribute__((__always_inline__)) kmalloc)(size_t size ,
 6776                                                                    gfp_t flags )  __attribute__((__no_instrument_function__)) ;
 6777#line 268 "include/linux/slub_def.h"
 6778__inline static void *( __attribute__((__always_inline__)) kmalloc)(size_t size ,
 6779                                                                    gfp_t flags ) 
 6780{ void *tmp___2 ;
 6781
 6782  {
 6783  {
 6784#line 283
 6785  tmp___2 = __kmalloc(size, flags);
 6786  }
 6787#line 283
 6788  return (tmp___2);
 6789}
 6790}
 6791#line 119 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess.h"
 6792extern int __get_user_bad(void) ;
 6793#line 220
 6794extern void __put_user_bad(void) ;
 6795#line 19 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess_64.h"
 6796extern unsigned long __attribute__((__warn_unused_result__))  copy_user_generic_string(void *to ,
 6797                                                                                       void    *from ,
 6798                                                                                       unsigned int len ) ;
 6799#line 21
 6800extern unsigned long __attribute__((__warn_unused_result__))  copy_user_generic_unrolled(void *to ,
 6801                                                                                         void    *from ,
 6802                                                                                         unsigned int len ) ;
 6803#line 24
 6804__inline static unsigned long __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) copy_user_generic)(void *to ,
 6805                                                                                                                               void    *from ,
 6806                                                                                                                               unsigned int len )  __attribute__((__no_instrument_function__)) ;
 6807#line 24 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess_64.h"
 6808__inline static unsigned long __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) copy_user_generic)(void *to ,
 6809                                                                                                                               void    *from ,
 6810                                                                                                                               unsigned int len ) 
 6811{ unsigned int ret ;
 6812
 6813  {
 6814#line 29
 6815  __asm__  volatile   ("661:\n\t"
 6816                       "call %P[old]"
 6817                       "\n662:\n"
 6818                       ".section .altinstructions,\"a\"\n"
 6819                       "\t .long 661b - .\n"
 6820                       "\t .long 663f - .\n"
 6821                       "\t .word "
 6822                       "(3*32+16)"
 6823                       "\n"
 6824                       "\t .byte 662b-661b\n"
 6825                       "\t .byte 664f-663f\n"
 6826                       ".previous\n"
 6827                       ".section .discard,\"aw\",@progbits\n"
 6828                       "\t .byte 0xff + (664f-663f) - (662b-661b)\n"
 6829                       ".previous\n"
 6830                       ".section .altinstr_replacement, \"ax\"\n"
 6831                       "663:\n\t"
 6832                       "call %P[new]"
 6833                       "\n664:\n"
 6834                       ".previous": "=a" (ret), "=D" (to), "=S" (from), "=d" (len): [old] "i" (& copy_user_generic_unrolled),
 6835                       [new] "i" (& copy_user_generic_string), "1" (to), "2" (from),
 6836                       "3" (len): "memory", "rcx", "r8", "r9", "r10", "r11");
 6837#line 36
 6838  return ((unsigned long )ret);
 6839}
 6840}
 6841#line 39
 6842extern unsigned long __attribute__((__warn_unused_result__))  _copy_to_user(void *to ,
 6843                                                                            void    *from ,
 6844                                                                            unsigned int len ) ;
 6845#line 41
 6846extern unsigned long __attribute__((__warn_unused_result__))  _copy_from_user(void *to ,
 6847                                                                              void    *from ,
 6848                                                                              unsigned int len ) ;
 6849#line 46
 6850__inline static unsigned long __attribute__((__warn_unused_result__))  copy_from_user(void *to ,
 6851                                                                                      void    *from ,
 6852                                                                                      unsigned long n )  __attribute__((__no_instrument_function__)) ;
 6853#line 46 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess_64.h"
 6854__inline static unsigned long __attribute__((__warn_unused_result__))  copy_from_user(void *to ,
 6855                                                                                      void    *from ,
 6856                                                                                      unsigned long n ) 
 6857{ int sz ;
 6858  unsigned long tmp ;
 6859  int __ret_warn_on ;
 6860  long tmp___0 ;
 6861  int tmp___1 ;
 6862  long tmp___2 ;
 6863  unsigned long __cil_tmp10 ;
 6864  long __cil_tmp11 ;
 6865  unsigned int __cil_tmp12 ;
 6866  int __cil_tmp13 ;
 6867  int __cil_tmp14 ;
 6868  long __cil_tmp15 ;
 6869  int    __cil_tmp16 ;
 6870  int __cil_tmp17 ;
 6871  int __cil_tmp18 ;
 6872  long __cil_tmp19 ;
 6873
 6874  {
 6875  {
 6876#line 50
 6877  tmp = __builtin_object_size(to, 0);
 6878#line 50
 6879  sz = (int )tmp;
 6880#line 52
 6881  might_fault();
 6882  }
 6883#line 53
 6884  if (sz == -1) {
 6885#line 53
 6886    tmp___1 = 1;
 6887  } else {
 6888    {
 6889#line 53
 6890    __cil_tmp10 = (unsigned long )sz;
 6891#line 53
 6892    if (__cil_tmp10 >= n) {
 6893#line 53
 6894      tmp___1 = 1;
 6895    } else {
 6896#line 53
 6897      tmp___1 = 0;
 6898    }
 6899    }
 6900  }
 6901  {
 6902#line 53
 6903  __cil_tmp11 = (long )tmp___1;
 6904#line 53
 6905  tmp___2 = __builtin_expect(__cil_tmp11, 1L);
 6906  }
 6907#line 53
 6908  if (tmp___2) {
 6909    {
 6910#line 54
 6911    __cil_tmp12 = (unsigned int )n;
 6912#line 54
 6913    n = (unsigned long )_copy_from_user(to, from, __cil_tmp12);
 6914    }
 6915  } else {
 6916    {
 6917#line 57
 6918    __ret_warn_on = 1;
 6919#line 57
 6920    __cil_tmp13 = ! __ret_warn_on;
 6921#line 57
 6922    __cil_tmp14 = ! __cil_tmp13;
 6923#line 57
 6924    __cil_tmp15 = (long )__cil_tmp14;
 6925#line 57
 6926    tmp___0 = __builtin_expect(__cil_tmp15, 0L);
 6927    }
 6928#line 57
 6929    if (tmp___0) {
 6930      {
 6931#line 57
 6932      __cil_tmp16 = (int    )57;
 6933#line 57
 6934      warn_slowpath_fmt("/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess_64.h",
 6935                        __cil_tmp16, "Buffer overflow detected!\n");
 6936      }
 6937    } else {
 6938
 6939    }
 6940    {
 6941#line 57
 6942    __cil_tmp17 = ! __ret_warn_on;
 6943#line 57
 6944    __cil_tmp18 = ! __cil_tmp17;
 6945#line 57
 6946    __cil_tmp19 = (long )__cil_tmp18;
 6947#line 57
 6948    __builtin_expect(__cil_tmp19, 0L);
 6949    }
 6950  }
 6951#line 59
 6952  return (n);
 6953}
 6954}
 6955#line 62
 6956__inline static int __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) copy_to_user)(void *dst ,
 6957                                                                                                                void    *src ,
 6958                                                                                                                unsigned int size )  __attribute__((__no_instrument_function__)) ;
 6959#line 62 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess_64.h"
 6960__inline static int __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) copy_to_user)(void *dst ,
 6961                                                                                                                void    *src ,
 6962                                                                                                                unsigned int size ) 
 6963{ unsigned long tmp ;
 6964
 6965  {
 6966  {
 6967#line 65
 6968  might_fault();
 6969#line 67
 6970  tmp = (unsigned long )_copy_to_user(dst, src, size);
 6971  }
 6972#line 67
 6973  return ((int )tmp);
 6974}
 6975}
 6976#line 70
 6977__inline static int __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) __copy_from_user)(void *dst ,
 6978                                                                                                                    void    *src ,
 6979                                                                                                                    unsigned int size )  __attribute__((__no_instrument_function__)) ;
 6980#line 70 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess_64.h"
 6981__inline static int __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) __copy_from_user)(void *dst ,
 6982                                                                                                                    void    *src ,
 6983                                                                                                                    unsigned int size ) 
 6984{ int ret ;
 6985  unsigned long tmp ;
 6986  long tmp___0 ;
 6987  long tmp___1 ;
 6988  unsigned long tmp___2 ;
 6989  void *__cil_tmp9 ;
 6990  void    *__cil_tmp10 ;
 6991  u8 *__cil_tmp11 ;
 6992  u8 *__cil_tmp12 ;
 6993  struct __large_struct *__cil_tmp13 ;
 6994  u16 *__cil_tmp14 ;
 6995  u16 *__cil_tmp15 ;
 6996  struct __large_struct *__cil_tmp16 ;
 6997  u32 *__cil_tmp17 ;
 6998  u32 *__cil_tmp18 ;
 6999  struct __large_struct *__cil_tmp19 ;
 7000  u64 *__cil_tmp20 ;
 7001  u64 *__cil_tmp21 ;
 7002  struct __large_struct *__cil_tmp22 ;
 7003  u64 *__cil_tmp23 ;
 7004  u64 *__cil_tmp24 ;
 7005  struct __large_struct *__cil_tmp25 ;
 7006  int __cil_tmp26 ;
 7007  int __cil_tmp27 ;
 7008  long __cil_tmp28 ;
 7009  char *__cil_tmp29 ;
 7010  char *__cil_tmp30 ;
 7011  u16 *__cil_tmp31 ;
 7012  char *__cil_tmp32 ;
 7013  char *__cil_tmp33 ;
 7014  u16 *__cil_tmp34 ;
 7015  struct __large_struct *__cil_tmp35 ;
 7016  u64 *__cil_tmp36 ;
 7017  u64 *__cil_tmp37 ;
 7018  struct __large_struct *__cil_tmp38 ;
 7019  int __cil_tmp39 ;
 7020  int __cil_tmp40 ;
 7021  long __cil_tmp41 ;
 7022  char *__cil_tmp42 ;
 7023  char *__cil_tmp43 ;
 7024  u64 *__cil_tmp44 ;
 7025  char *__cil_tmp45 ;
 7026  char *__cil_tmp46 ;
 7027  u64 *__cil_tmp47 ;
 7028  struct __large_struct *__cil_tmp48 ;
 7029  void *__cil_tmp49 ;
 7030  void    *__cil_tmp50 ;
 7031
 7032  {
 7033  {
 7034#line 73
 7035  ret = 0;
 7036#line 75
 7037  might_fault();
 7038#line 77
 7039  __cil_tmp9 = (void *)src;
 7040#line 77
 7041  __cil_tmp10 = (void    *)__cil_tmp9;
 7042#line 77
 7043  tmp = (unsigned long )copy_user_generic(dst, __cil_tmp10, size);
 7044  }
 7045#line 77
 7046  return ((int )tmp);
 7047#line 79
 7048  if ((int )size == 1) {
 7049#line 79
 7050    goto case_1;
 7051  } else
 7052#line 82
 7053  if ((int )size == 2) {
 7054#line 82
 7055    goto case_2;
 7056  } else
 7057#line 85
 7058  if ((int )size == 4) {
 7059#line 85
 7060    goto case_4;
 7061  } else
 7062#line 88
 7063  if ((int )size == 8) {
 7064#line 88
 7065    goto case_8;
 7066  } else
 7067#line 91
 7068  if ((int )size == 10) {
 7069#line 91
 7070    goto case_10;
 7071  } else
 7072#line 100
 7073  if ((int )size == 16) {
 7074#line 100
 7075    goto case_16;
 7076  } else {
 7077    {
 7078#line 109
 7079    goto switch_default;
 7080#line 78
 7081    if (0) {
 7082      case_1: /* CIL Label */ 
 7083#line 79
 7084      __cil_tmp11 = (u8 *)dst;
 7085#line 79
 7086      __cil_tmp12 = (u8 *)src;
 7087#line 79
 7088      __cil_tmp13 = (struct __large_struct *)__cil_tmp12;
 7089#line 79
 7090      __asm__  volatile   ("1:\tmov"
 7091                           "b"
 7092                           " %2,%"
 7093                           "b"
 7094                           "1\n"
 7095                           "2:\n"
 7096                           ".section .fixup,\"ax\"\n"
 7097                           "3:\tmov %3,%0\n"
 7098                           "\txor"
 7099                           "b"
 7100                           " %"
 7101                           "b"
 7102                           "1,%"
 7103                           "b"
 7104                           "1\n"
 7105                           "\tjmp 2b\n"
 7106                           ".previous\n"
 7107                           " .section __ex_table,\"a\"\n"
 7108                           " "
 7109                           ".balign 8"
 7110                           " "
 7111                           "\n"
 7112                           " "
 7113                           ".quad"
 7114                           " "
 7115                           "1b"
 7116                           ","
 7117                           "3b"
 7118                           "\n"
 7119                           " .previous\n": "=r" (ret), "=q" (*__cil_tmp11): "m" (*__cil_tmp13),
 7120                           "i" (1), "0" (ret));
 7121#line 81
 7122      return (ret);
 7123      case_2: /* CIL Label */ 
 7124#line 82
 7125      __cil_tmp14 = (u16 *)dst;
 7126#line 82
 7127      __cil_tmp15 = (u16 *)src;
 7128#line 82
 7129      __cil_tmp16 = (struct __large_struct *)__cil_tmp15;
 7130#line 82
 7131      __asm__  volatile   ("1:\tmov"
 7132                           "w"
 7133                           " %2,%"
 7134                           "w"
 7135                           "1\n"
 7136                           "2:\n"
 7137                           ".section .fixup,\"ax\"\n"
 7138                           "3:\tmov %3,%0\n"
 7139                           "\txor"
 7140                           "w"
 7141                           " %"
 7142                           "w"
 7143                           "1,%"
 7144                           "w"
 7145                           "1\n"
 7146                           "\tjmp 2b\n"
 7147                           ".previous\n"
 7148                           " .section __ex_table,\"a\"\n"
 7149                           " "
 7150                           ".balign 8"
 7151                           " "
 7152                           "\n"
 7153                           " "
 7154                           ".quad"
 7155                           " "
 7156                           "1b"
 7157                           ","
 7158                           "3b"
 7159                           "\n"
 7160                           " .previous\n": "=r" (ret), "=r" (*__cil_tmp14): "m" (*__cil_tmp16),
 7161                           "i" (2), "0" (ret));
 7162#line 84
 7163      return (ret);
 7164      case_4: /* CIL Label */ 
 7165#line 85
 7166      __cil_tmp17 = (u32 *)dst;
 7167#line 85
 7168      __cil_tmp18 = (u32 *)src;
 7169#line 85
 7170      __cil_tmp19 = (struct __large_struct *)__cil_tmp18;
 7171#line 85
 7172      __asm__  volatile   ("1:\tmov"
 7173                           "l"
 7174                           " %2,%"
 7175                           "k"
 7176                           "1\n"
 7177                           "2:\n"
 7178                           ".section .fixup,\"ax\"\n"
 7179                           "3:\tmov %3,%0\n"
 7180                           "\txor"
 7181                           "l"
 7182                           " %"
 7183                           "k"
 7184                           "1,%"
 7185                           "k"
 7186                           "1\n"
 7187                           "\tjmp 2b\n"
 7188                           ".previous\n"
 7189                           " .section __ex_table,\"a\"\n"
 7190                           " "
 7191                           ".balign 8"
 7192                           " "
 7193                           "\n"
 7194                           " "
 7195                           ".quad"
 7196                           " "
 7197                           "1b"
 7198                           ","
 7199                           "3b"
 7200                           "\n"
 7201                           " .previous\n": "=r" (ret), "=r" (*__cil_tmp17): "m" (*__cil_tmp19),
 7202                           "i" (4), "0" (ret));
 7203#line 87
 7204      return (ret);
 7205      case_8: /* CIL Label */ 
 7206#line 88
 7207      __cil_tmp20 = (u64 *)dst;
 7208#line 88
 7209      __cil_tmp21 = (u64 *)src;
 7210#line 88
 7211      __cil_tmp22 = (struct __large_struct *)__cil_tmp21;
 7212#line 88
 7213      __asm__  volatile   ("1:\tmov"
 7214                           "q"
 7215                           " %2,%"
 7216                           ""
 7217                           "1\n"
 7218                           "2:\n"
 7219                           ".section .fixup,\"ax\"\n"
 7220                           "3:\tmov %3,%0\n"
 7221                           "\txor"
 7222                           "q"
 7223                           " %"
 7224                           ""
 7225                           "1,%"
 7226                           ""
 7227                           "1\n"
 7228                           "\tjmp 2b\n"
 7229                           ".previous\n"
 7230                           " .section __ex_table,\"a\"\n"
 7231                           " "
 7232                           ".balign 8"
 7233                           " "
 7234                           "\n"
 7235                           " "
 7236                           ".quad"
 7237                           " "
 7238                           "1b"
 7239                           ","
 7240                           "3b"
 7241                           "\n"
 7242                           " .previous\n": "=r" (ret), "=r" (*__cil_tmp20): "m" (*__cil_tmp22),
 7243                           "i" (8), "0" (ret));
 7244#line 90
 7245      return (ret);
 7246      case_10: /* CIL Label */ 
 7247      {
 7248#line 92
 7249      __cil_tmp23 = (u64 *)dst;
 7250#line 92
 7251      __cil_tmp24 = (u64 *)src;
 7252#line 92
 7253      __cil_tmp25 = (struct __large_struct *)__cil_tmp24;
 7254#line 92
 7255      __asm__  volatile   ("1:\tmov"
 7256                           "q"
 7257                           " %2,%"
 7258                           ""
 7259                           "1\n"
 7260                           "2:\n"
 7261                           ".section .fixup,\"ax\"\n"
 7262                           "3:\tmov %3,%0\n"
 7263                           "\txor"
 7264                           "q"
 7265                           " %"
 7266                           ""
 7267                           "1,%"
 7268                           ""
 7269                           "1\n"
 7270                           "\tjmp 2b\n"
 7271                           ".previous\n"
 7272                           " .section __ex_table,\"a\"\n"
 7273                           " "
 7274                           ".balign 8"
 7275                           " "
 7276                           "\n"
 7277                           " "
 7278                           ".quad"
 7279                           " "
 7280                           "1b"
 7281                           ","
 7282                           "3b"
 7283                           "\n"
 7284                           " .previous\n": "=r" (ret), "=r" (*__cil_tmp23): "m" (*__cil_tmp25),
 7285                           "i" (10), "0" (ret));
 7286#line 94
 7287      __cil_tmp26 = ! ret;
 7288#line 94
 7289      __cil_tmp27 = ! __cil_tmp26;
 7290#line 94
 7291      __cil_tmp28 = (long )__cil_tmp27;
 7292#line 94
 7293      tmp___0 = __builtin_expect(__cil_tmp28, 0L);
 7294      }
 7295#line 94
 7296      if (tmp___0) {
 7297#line 95
 7298        return (ret);
 7299      } else {
 7300
 7301      }
 7302#line 96
 7303      __cil_tmp29 = (char *)dst;
 7304#line 96
 7305      __cil_tmp30 = __cil_tmp29 + 8;
 7306#line 96
 7307      __cil_tmp31 = (u16 *)__cil_tmp30;
 7308#line 96
 7309      __cil_tmp32 = (char *)src;
 7310#line 96
 7311      __cil_tmp33 = __cil_tmp32 + 8;
 7312#line 96
 7313      __cil_tmp34 = (u16 *)__cil_tmp33;
 7314#line 96
 7315      __cil_tmp35 = (struct __large_struct *)__cil_tmp34;
 7316#line 96
 7317      __asm__  volatile   ("1:\tmov"
 7318                           "w"
 7319                           " %2,%"
 7320                           "w"
 7321                           "1\n"
 7322                           "2:\n"
 7323                           ".section .fixup,\"ax\"\n"
 7324                           "3:\tmov %3,%0\n"
 7325                           "\txor"
 7326                           "w"
 7327                           " %"
 7328                           "w"
 7329                           "1,%"
 7330                           "w"
 7331                           "1\n"
 7332                           "\tjmp 2b\n"
 7333                           ".previous\n"
 7334                           " .section __ex_table,\"a\"\n"
 7335                           " "
 7336                           ".balign 8"
 7337                           " "
 7338                           "\n"
 7339                           " "
 7340                           ".quad"
 7341                           " "
 7342                           "1b"
 7343                           ","
 7344                           "3b"
 7345                           "\n"
 7346                           " .previous\n": "=r" (ret), "=r" (*__cil_tmp31): "m" (*__cil_tmp35),
 7347                           "i" (2), "0" (ret));
 7348#line 99
 7349      return (ret);
 7350      case_16: /* CIL Label */ 
 7351      {
 7352#line 101
 7353      __cil_tmp36 = (u64 *)dst;
 7354#line 101
 7355      __cil_tmp37 = (u64 *)src;
 7356#line 101
 7357      __cil_tmp38 = (struct __large_struct *)__cil_tmp37;
 7358#line 101
 7359      __asm__  volatile   ("1:\tmov"
 7360                           "q"
 7361                           " %2,%"
 7362                           ""
 7363                           "1\n"
 7364                           "2:\n"
 7365                           ".section .fixup,\"ax\"\n"
 7366                           "3:\tmov %3,%0\n"
 7367                           "\txor"
 7368                           "q"
 7369                           " %"
 7370                           ""
 7371                           "1,%"
 7372                           ""
 7373                           "1\n"
 7374                           "\tjmp 2b\n"
 7375                           ".previous\n"
 7376                           " .section __ex_table,\"a\"\n"
 7377                           " "
 7378                           ".balign 8"
 7379                           " "
 7380                           "\n"
 7381                           " "
 7382                           ".quad"
 7383                           " "
 7384                           "1b"
 7385                           ","
 7386                           "3b"
 7387                           "\n"
 7388                           " .previous\n": "=r" (ret), "=r" (*__cil_tmp36): "m" (*__cil_tmp38),
 7389                           "i" (16), "0" (ret));
 7390#line 103
 7391      __cil_tmp39 = ! ret;
 7392#line 103
 7393      __cil_tmp40 = ! __cil_tmp39;
 7394#line 103
 7395      __cil_tmp41 = (long )__cil_tmp40;
 7396#line 103
 7397      tmp___1 = __builtin_expect(__cil_tmp41, 0L);
 7398      }
 7399#line 103
 7400      if (tmp___1) {
 7401#line 104
 7402        return (ret);
 7403      } else {
 7404
 7405      }
 7406#line 105
 7407      __cil_tmp42 = (char *)dst;
 7408#line 105
 7409      __cil_tmp43 = __cil_tmp42 + 8;
 7410#line 105
 7411      __cil_tmp44 = (u64 *)__cil_tmp43;
 7412#line 105
 7413      __cil_tmp45 = (char *)src;
 7414#line 105
 7415      __cil_tmp46 = __cil_tmp45 + 8;
 7416#line 105
 7417      __cil_tmp47 = (u64 *)__cil_tmp46;
 7418#line 105
 7419      __cil_tmp48 = (struct __large_struct *)__cil_tmp47;
 7420#line 105
 7421      __asm__  volatile   ("1:\tmov"
 7422                           "q"
 7423                           " %2,%"
 7424                           ""
 7425                           "1\n"
 7426                           "2:\n"
 7427                           ".section .fixup,\"ax\"\n"
 7428                           "3:\tmov %3,%0\n"
 7429                           "\txor"
 7430                           "q"
 7431                           " %"
 7432                           ""
 7433                           "1,%"
 7434                           ""
 7435                           "1\n"
 7436                           "\tjmp 2b\n"
 7437                           ".previous\n"
 7438                           " .section __ex_table,\"a\"\n"
 7439                           " "
 7440                           ".balign 8"
 7441                           " "
 7442                           "\n"
 7443                           " "
 7444                           ".quad"
 7445                           " "
 7446                           "1b"
 7447                           ","
 7448                           "3b"
 7449                           "\n"
 7450                           " .previous\n": "=r" (ret), "=r" (*__cil_tmp44): "m" (*__cil_tmp48),
 7451                           "i" (8), "0" (ret));
 7452#line 108
 7453      return (ret);
 7454      switch_default: /* CIL Label */ 
 7455      {
 7456#line 110
 7457      __cil_tmp49 = (void *)src;
 7458#line 110
 7459      __cil_tmp50 = (void    *)__cil_tmp49;
 7460#line 110
 7461      tmp___2 = (unsigned long )copy_user_generic(dst, __cil_tmp50, size);
 7462      }
 7463#line 110
 7464      return ((int )tmp___2);
 7465    } else {
 7466      switch_break: /* CIL Label */ ;
 7467    }
 7468    }
 7469  }
 7470}
 7471}
 7472#line 114
 7473__inline static int __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) __copy_to_user)(void *dst ,
 7474                                                                                                                  void    *src ,
 7475                                                                                                                  unsigned int size )  __attribute__((__no_instrument_function__)) ;
 7476#line 114 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/uaccess_64.h"
 7477__inline static int __attribute__((__warn_unused_result__))  ( __attribute__((__always_inline__)) __copy_to_user)(void *dst ,
 7478                                                                                                                  void    *src ,
 7479                                                                                                                  unsigned int size ) 
 7480{ int ret ;
 7481  unsigned long tmp ;
 7482  long tmp___0 ;
 7483  long tmp___1 ;
 7484  unsigned long tmp___2 ;
 7485  u8 *__cil_tmp9 ;
 7486  u8 *__cil_tmp10 ;
 7487  struct __large_struct *__cil_tmp11 ;
 7488  u16 *__cil_tmp12 ;
 7489  u16 *__cil_tmp13 ;
 7490  struct __large_struct *__cil_tmp14 ;
 7491  u32 *__cil_tmp15 ;
 7492  u32 *__cil_tmp16 ;
 7493  struct __large_struct *__cil_tmp17 ;
 7494  u64 *__cil_tmp18 ;
 7495  u64 *__cil_tmp19 ;
 7496  struct __large_struct *__cil_tmp20 ;
 7497  u64 *__cil_tmp21 ;
 7498  u64 *__cil_tmp22 ;
 7499  struct __large_struct *__cil_tmp23 ;
 7500  int __cil_tmp24 ;
 7501  int __cil_tmp25 ;
 7502  long __cil_tmp26 ;
 7503  u16 *__cil_tmp27 ;
 7504  u16 *__cil_tmp28 ;
 7505  u16 *__cil_tmp29 ;
 7506  u16 *__cil_tmp30 ;
 7507  struct __large_struct *__cil_tmp31 ;
 7508  u64 *__cil_tmp32 ;
 7509  u64 *__cil_tmp33 ;
 7510  struct __large_struct *__cil_tmp34 ;
 7511  int __cil_tmp35 ;
 7512  int __cil_tmp36 ;
 7513  long __cil_tmp37 ;
 7514  u64 *__cil_tmp38 ;
 7515  u64 *__cil_tmp39 ;
 7516  u64 *__cil_tmp40 ;
 7517  u64 *__cil_tmp41 ;
 7518  struct __large_struct *__cil_tmp42 ;
 7519
 7520  {
 7521  {
 7522#line 117
 7523  ret = 0;
 7524#line 119
 7525  might_fault();
 7526#line 121
 7527  tmp = (unsigned long )copy_user_generic(dst, src, size);
 7528  }
 7529#line 121
 7530  return ((int )tmp);
 7531#line 123
 7532  if ((int )size == 1) {
 7533#line 123
 7534    goto case_1;
 7535  } else
 7536#line 126
 7537  if ((int )size == 2) {
 7538#line 126
 7539    goto case_2;
 7540  } else
 7541#line 129
 7542  if ((int )size == 4) {
 7543#line 129
 7544    goto case_4;
 7545  } else
 7546#line 132
 7547  if ((int )size == 8) {
 7548#line 132
 7549    goto case_8;
 7550  } else
 7551#line 135
 7552  if ((int )size == 10) {
 7553#line 135
 7554    goto case_10;
 7555  } else
 7556#line 144
 7557  if ((int )size == 16) {
 7558#line 144
 7559    goto case_16;
 7560  } else {
 7561    {
 7562#line 153
 7563    goto switch_default;
 7564#line 122
 7565    if (0) {
 7566      case_1: /* CIL Label */ 
 7567#line 123
 7568      __cil_tmp9 = (u8 *)src;
 7569#line 123
 7570      __cil_tmp10 = (u8 *)dst;
 7571#line 123
 7572      __cil_tmp11 = (struct __large_struct *)__cil_tmp10;
 7573#line 123
 7574      __asm__  volatile   ("1:\tmov"
 7575                           "b"
 7576                           " %"
 7577                           "b"
 7578                           "1,%2\n"
 7579                           "2:\n"
 7580                           ".section .fixup,\"ax\"\n"
 7581                           "3:\tmov %3,%0\n"
 7582                           "\tjmp 2b\n"
 7583                           ".previous\n"
 7584                           " .section __ex_table,\"a\"\n"
 7585                           " "
 7586                           ".balign 8"
 7587                           " "
 7588                           "\n"
 7589                           " "
 7590                           ".quad"
 7591                           " "
 7592                           "1b"
 7593                           ","
 7594                           "3b"
 7595                           "\n"
 7596                           " .previous\n": "=r" (ret): "iq" (*__cil_tmp9), "m" (*__cil_tmp11),
 7597                           "i" (1), "0" (ret));
 7598#line 125
 7599      return (ret);
 7600      case_2: /* CIL Label */ 
 7601#line 126
 7602      __cil_tmp12 = (u16 *)src;
 7603#line 126
 7604      __cil_tmp13 = (u16 *)dst;
 7605#line 126
 7606      __cil_tmp14 = (struct __large_struct *)__cil_tmp13;
 7607#line 126
 7608      __asm__  volatile   ("1:\tmov"
 7609                           "w"
 7610                           " %"
 7611                           "w"
 7612                           "1,%2\n"
 7613                           "2:\n"
 7614                           ".section .fixup,\"ax\"\n"
 7615                           "3:\tmov %3,%0\n"
 7616                           "\tjmp 2b\n"
 7617                           ".previous\n"
 7618                           " .section __ex_table,\"a\"\n"
 7619                           " "
 7620                           ".balign 8"
 7621                           " "
 7622                           "\n"
 7623                           " "
 7624                           ".quad"
 7625                           " "
 7626                           "1b"
 7627                           ","
 7628                           "3b"
 7629                           "\n"
 7630                           " .previous\n": "=r" (ret): "ir" (*__cil_tmp12), "m" (*__cil_tmp14),
 7631                           "i" (2), "0" (ret));
 7632#line 128
 7633      return (ret);
 7634      case_4: /* CIL Label */ 
 7635#line 129
 7636      __cil_tmp15 = (u32 *)src;
 7637#line 129
 7638      __cil_tmp16 = (u32 *)dst;
 7639#line 129
 7640      __cil_tmp17 = (struct __large_struct *)__cil_tmp16;
 7641#line 129
 7642      __asm__  volatile   ("1:\tmov"
 7643                           "l"
 7644                           " %"
 7645                           "k"
 7646                           "1,%2\n"
 7647                           "2:\n"
 7648                           ".section .fixup,\"ax\"\n"
 7649                           "3:\tmov %3,%0\n"
 7650                           "\tjmp 2b\n"
 7651                           ".previous\n"
 7652                           " .section __ex_table,\"a\"\n"
 7653                           " "
 7654                           ".balign 8"
 7655                           " "
 7656                           "\n"
 7657                           " "
 7658                           ".quad"
 7659                           " "
 7660                           "1b"
 7661                           ","
 7662                           "3b"
 7663                           "\n"
 7664                           " .previous\n": "=r" (ret): "ir" (*__cil_tmp15), "m" (*__cil_tmp17),
 7665                           "i" (4), "0" (ret));
 7666#line 131
 7667      return (ret);
 7668      case_8: /* CIL Label */ 
 7669#line 132
 7670      __cil_tmp18 = (u64 *)src;
 7671#line 132
 7672      __cil_tmp19 = (u64 *)dst;
 7673#line 132
 7674      __cil_tmp20 = (struct __large_struct *)__cil_tmp19;
 7675#line 132
 7676      __asm__  volatile   ("1:\tmov"
 7677                           "q"
 7678                           " %"
 7679                           ""
 7680                           "1,%2\n"
 7681                           "2:\n"
 7682                           ".section .fixup,\"ax\"\n"
 7683                           "3:\tmov %3,%0\n"
 7684                           "\tjmp 2b\n"
 7685                           ".previous\n"
 7686                           " .section __ex_table,\"a\"\n"
 7687                           " "
 7688                           ".balign 8"
 7689                           " "
 7690                           "\n"
 7691                           " "
 7692                           ".quad"
 7693                           " "
 7694                           "1b"
 7695                           ","
 7696                           "3b"
 7697                           "\n"
 7698                           " .previous\n": "=r" (ret): "er" (*__cil_tmp18), "m" (*__cil_tmp20),
 7699                           "i" (8), "0" (ret));
 7700#line 134
 7701      return (ret);
 7702      case_10: /* CIL Label */ 
 7703      {
 7704#line 136
 7705      __cil_tmp21 = (u64 *)src;
 7706#line 136
 7707      __cil_tmp22 = (u64 *)dst;
 7708#line 136
 7709      __cil_tmp23 = (struct __large_struct *)__cil_tmp22;
 7710#line 136
 7711      __asm__  volatile   ("1:\tmov"
 7712                           "q"
 7713                           " %"
 7714                           ""
 7715                           "1,%2\n"
 7716                           "2:\n"
 7717                           ".section .fixup,\"ax\"\n"
 7718                           "3:\tmov %3,%0\n"
 7719                           "\tjmp 2b\n"
 7720                           ".previous\n"
 7721                           " .section __ex_table,\"a\"\n"
 7722                           " "
 7723                           ".balign 8"
 7724                           " "
 7725                           "\n"
 7726                           " "
 7727                           ".quad"
 7728                           " "
 7729                           "1b"
 7730                           ","
 7731                           "3b"
 7732                           "\n"
 7733                           " .previous\n": "=r" (ret): "er" (*__cil_tmp21), "m" (*__cil_tmp23),
 7734                           "i" (10), "0" (ret));
 7735#line 138
 7736      __cil_tmp24 = ! ret;
 7737#line 138
 7738      __cil_tmp25 = ! __cil_tmp24;
 7739#line 138
 7740      __cil_tmp26 = (long )__cil_tmp25;
 7741#line 138
 7742      tmp___0 = __builtin_expect(__cil_tmp26, 0L);
 7743      }
 7744#line 138
 7745      if (tmp___0) {
 7746#line 139
 7747        return (ret);
 7748      } else {
 7749
 7750      }
 7751#line 140
 7752      __asm__  ("": : : "memory");
 7753#line 141
 7754      __cil_tmp27 = (u16 *)src;
 7755#line 141
 7756      __cil_tmp28 = __cil_tmp27 + 4;
 7757#line 141
 7758      __cil_tmp29 = (u16 *)dst;
 7759#line 141
 7760      __cil_tmp30 = __cil_tmp29 + 4;
 7761#line 141
 7762      __cil_tmp31 = (struct __large_struct *)__cil_tmp30;
 7763#line 141
 7764      __asm__  volatile   ("1:\tmov"
 7765                           "w"
 7766                           " %"
 7767                           "w"
 7768                           "1,%2\n"
 7769                           "2:\n"
 7770                           ".section .fixup,\"ax\"\n"
 7771                           "3:\tmov %3,%0\n"
 7772                           "\tjmp 2b\n"
 7773                           ".previous\n"
 7774                           " .section __ex_table,\"a\"\n"
 7775                           " "
 7776                           ".balign 8"
 7777                           " "
 7778                           "\n"
 7779                           " "
 7780                           ".quad"
 7781                           " "
 7782                           "1b"
 7783                           ","
 7784                           "3b"
 7785                           "\n"
 7786                           " .previous\n": "=r" (ret): "ir" (*__cil_tmp28), "m" (*__cil_tmp31),
 7787                           "i" (2), "0" (ret));
 7788#line 143
 7789      return (ret);
 7790      case_16: /* CIL Label */ 
 7791      {
 7792#line 145
 7793      __cil_tmp32 = (u64 *)src;
 7794#line 145
 7795      __cil_tmp33 = (u64 *)dst;
 7796#line 145
 7797      __cil_tmp34 = (struct __large_struct *)__cil_tmp33;
 7798#line 145
 7799      __asm__  volatile   ("1:\tmov"
 7800                           "q"
 7801                           " %"
 7802                           ""
 7803                           "1,%2\n"
 7804                           "2:\n"
 7805                           ".section .fixup,\"ax\"\n"
 7806                           "3:\tmov %3,%0\n"
 7807                           "\tjmp 2b\n"
 7808                           ".previous\n"
 7809                           " .section __ex_table,\"a\"\n"
 7810                           " "
 7811                           ".balign 8"
 7812                           " "
 7813                           "\n"
 7814                           " "
 7815                           ".quad"
 7816                           " "
 7817                           "1b"
 7818                           ","
 7819                           "3b"
 7820                           "\n"
 7821                           " .previous\n": "=r" (ret): "er" (*__cil_tmp32), "m" (*__cil_tmp34),
 7822                           "i" (16), "0" (ret));
 7823#line 147
 7824      __cil_tmp35 = ! ret;
 7825#line 147
 7826      __cil_tmp36 = ! __cil_tmp35;
 7827#line 147
 7828      __cil_tmp37 = (long )__cil_tmp36;
 7829#line 147
 7830      tmp___1 = __builtin_expect(__cil_tmp37, 0L);
 7831      }
 7832#line 147
 7833      if (tmp___1) {
 7834#line 148
 7835        return (ret);
 7836      } else {
 7837
 7838      }
 7839#line 149
 7840      __asm__  ("": : : "memory");
 7841#line 150
 7842      __cil_tmp38 = (u64 *)src;
 7843#line 150
 7844      __cil_tmp39 = __cil_tmp38 + 1;
 7845#line 150
 7846      __cil_tmp40 = (u64 *)dst;
 7847#line 150
 7848      __cil_tmp41 = __cil_tmp40 + 1;
 7849#line 150
 7850      __cil_tmp42 = (struct __large_struct *)__cil_tmp41;
 7851#line 150
 7852      __asm__  volatile   ("1:\tmov"
 7853                           "q"
 7854                           " %"
 7855                           ""
 7856                           "1,%2\n"
 7857                           "2:\n"
 7858                           ".section .fixup,\"ax\"\n"
 7859                           "3:\tmov %3,%0\n"
 7860                           "\tjmp 2b\n"
 7861                           ".previous\n"
 7862                           " .section __ex_table,\"a\"\n"
 7863                           " "
 7864                           ".balign 8"
 7865                           " "
 7866                           "\n"
 7867                           " "
 7868                           ".quad"
 7869                           " "
 7870                           "1b"
 7871                           ","
 7872                           "3b"
 7873                           "\n"
 7874                           " .previous\n": "=r" (ret): "er" (*__cil_tmp39), "m" (*__cil_tmp42),
 7875                           "i" (8), "0" (ret));
 7876#line 152
 7877      return (ret);
 7878      switch_default: /* CIL Label */ 
 7879      {
 7880#line 154
 7881      tmp___2 = (unsigned long )copy_user_generic(dst, src, size);
 7882      }
 7883#line 154
 7884      return ((int )tmp___2);
 7885    } else {
 7886      switch_break: /* CIL Label */ ;
 7887    }
 7888    }
 7889  }
 7890}
 7891}
 7892#line 6 "include/linux/mmu_context.h"
 7893extern void use_mm(struct mm_struct *mm ) ;
 7894#line 7
 7895extern void unuse_mm(struct mm_struct *mm ) ;
 7896#line 71 "include/linux/poll.h"
 7897__inline static void init_poll_funcptr(poll_table *pt , void (*qproc)(struct file * ,
 7898                                                                      wait_queue_head_t * ,
 7899                                                                      struct poll_table_struct * ) )  __attribute__((__no_instrument_function__)) ;
 7900#line 71 "include/linux/poll.h"
 7901__inline static void init_poll_funcptr(poll_table *pt , void (*qproc)(struct file * ,
 7902                                                                      wait_queue_head_t * ,
 7903                                                                      struct poll_table_struct * ) ) 
 7904{ unsigned long __cil_tmp3 ;
 7905  unsigned long __cil_tmp4 ;
 7906
 7907  {
 7908#line 73
 7909  *((void (**)(struct file * , wait_queue_head_t * , struct poll_table_struct * ))pt) = qproc;
 7910#line 74
 7911  __cil_tmp3 = (unsigned long )pt;
 7912#line 74
 7913  __cil_tmp4 = __cil_tmp3 + 8;
 7914#line 74
 7915  *((unsigned long *)__cil_tmp4) = ~ 0UL;
 7916#line 75
 7917  return;
 7918}
 7919}
 7920#line 16 "include/linux/uaccess.h"
 7921__inline static void pagefault_disable(void)  __attribute__((__no_instrument_function__)) ;
 7922#line 16 "include/linux/uaccess.h"
 7923__inline static void pagefault_disable(void) 
 7924{ struct thread_info *tmp ;
 7925  unsigned long __cil_tmp2 ;
 7926  unsigned long __cil_tmp3 ;
 7927  unsigned long __cil_tmp4 ;
 7928  unsigned long __cil_tmp5 ;
 7929  int __cil_tmp6 ;
 7930
 7931  {
 7932  {
 7933#line 18
 7934  while (1) {
 7935    while_continue: /* CIL Label */ ;
 7936    {
 7937#line 18
 7938    tmp = current_thread_info();
 7939#line 18
 7940    __cil_tmp2 = (unsigned long )tmp;
 7941#line 18
 7942    __cil_tmp3 = __cil_tmp2 + 28;
 7943#line 18
 7944    __cil_tmp4 = (unsigned long )tmp;
 7945#line 18
 7946    __cil_tmp5 = __cil_tmp4 + 28;
 7947#line 18
 7948    __cil_tmp6 = *((int *)__cil_tmp5);
 7949#line 18
 7950    *((int *)__cil_tmp3) = __cil_tmp6 + 1;
 7951    }
 7952#line 18
 7953    goto while_break;
 7954  }
 7955  while_break: /* CIL Label */ ;
 7956  }
 7957#line 23
 7958  __asm__  volatile   ("": : : "memory");
 7959#line 24
 7960  return;
 7961}
 7962}
 7963#line 26
 7964__inline static void pagefault_enable(void)  __attribute__((__no_instrument_function__)) ;
 7965#line 26 "include/linux/uaccess.h"
 7966__inline static void pagefault_enable(void) 
 7967{ struct thread_info *tmp ;
 7968  unsigned long __cil_tmp2 ;
 7969  unsigned long __cil_tmp3 ;
 7970  unsigned long __cil_tmp4 ;
 7971  unsigned long __cil_tmp5 ;
 7972  int __cil_tmp6 ;
 7973
 7974  {
 7975#line 32
 7976  __asm__  volatile   ("": : : "memory");
 7977  {
 7978#line 33
 7979  while (1) {
 7980    while_continue: /* CIL Label */ ;
 7981    {
 7982#line 33
 7983    tmp = current_thread_info();
 7984#line 33
 7985    __cil_tmp2 = (unsigned long )tmp;
 7986#line 33
 7987    __cil_tmp3 = __cil_tmp2 + 28;
 7988#line 33
 7989    __cil_tmp4 = (unsigned long )tmp;
 7990#line 33
 7991    __cil_tmp5 = __cil_tmp4 + 28;
 7992#line 33
 7993    __cil_tmp6 = *((int *)__cil_tmp5);
 7994#line 33
 7995    *((int *)__cil_tmp3) = __cil_tmp6 - 1;
 7996    }
 7997#line 33
 7998    goto while_break;
 7999  }
 8000  while_break: /* CIL Label */ ;
 8001  }
 8002#line 37
 8003  __asm__  volatile   ("": : : "memory");
 8004  {
 8005#line 38
 8006  while (1) {
 8007    while_continue___0: /* CIL Label */ ;
 8008#line 38
 8009    goto while_break___0;
 8010  }
 8011  while_break___0: /* CIL Label */ ;
 8012  }
 8013#line 39
 8014  return;
 8015}
 8016}
 8017#line 59 "include/linux/highmem.h"
 8018__inline static void *kmap_atomic(struct page *page )  __attribute__((__no_instrument_function__)) ;
 8019#line 59 "include/linux/highmem.h"
 8020__inline static void *kmap_atomic(struct page *page ) 
 8021{ void *tmp ;
 8022  struct page    *__cil_tmp3 ;
 8023
 8024  {
 8025  {
 8026#line 61
 8027  pagefault_disable();
 8028#line 62
 8029  __cil_tmp3 = (struct page    *)page;
 8030#line 62
 8031  tmp = lowmem_page_address(__cil_tmp3);
 8032  }
 8033#line 62
 8034  return (tmp);
 8035}
 8036}
 8037#line 66
 8038__inline static void __kunmap_atomic(void *addr )  __attribute__((__no_instrument_function__)) ;
 8039#line 66 "include/linux/highmem.h"
 8040__inline static void __kunmap_atomic(void *addr ) 
 8041{ 
 8042
 8043  {
 8044  {
 8045#line 68
 8046  pagefault_enable();
 8047  }
 8048#line 69
 8049  return;
 8050}
 8051}
 8052#line 362 "include/linux/sched.h"
 8053extern void schedule(void) ;
 8054#line 2194
 8055extern int wake_up_process(struct task_struct *tsk ) ;
 8056#line 2292
 8057extern void mmput(struct mm_struct * ) ;
 8058#line 2294
 8059extern struct mm_struct *get_task_mm(struct task_struct *task ) ;
 8060#line 2614
 8061__inline static int need_resched(void)  __attribute__((__no_instrument_function__)) ;
 8062#line 2614 "include/linux/sched.h"
 8063__inline static int need_resched(void) 
 8064{ struct thread_info *tmp___7 ;
 8065  int tmp___8 ;
 8066  int tmp___9 ;
 8067  long tmp___10 ;
 8068  long __cil_tmp5 ;
 8069
 8070  {
 8071  {
 8072#line 2616
 8073  tmp___7 = current_thread_info();
 8074#line 2616
 8075  tmp___8 = test_ti_thread_flag(tmp___7, 3);
 8076  }
 8077#line 2616
 8078  if (tmp___8) {
 8079#line 2616
 8080    tmp___9 = 1;
 8081  } else {
 8082#line 2616
 8083    tmp___9 = 0;
 8084  }
 8085  {
 8086#line 2616
 8087  __cil_tmp5 = (long )tmp___9;
 8088#line 2616
 8089  tmp___10 = __builtin_expect(__cil_tmp5, 0L);
 8090  }
 8091#line 2616
 8092  return ((int )tmp___10);
 8093}
 8094}
 8095#line 7 "include/linux/kthread.h"
 8096extern struct task_struct *( /* format attribute */  kthread_create_on_node)(int (*threadfn)(void *data ) ,
 8097                                                                             void *data ,
 8098                                                                             int node ,
 8099                                                                             char    *namefmt 
 8100                                                                             , ...) ;
 8101#line 36
 8102extern int kthread_stop(struct task_struct *k ) ;
 8103#line 37
 8104extern int kthread_should_stop(void) ;
 8105#line 566 "include/linux/cgroup.h"
 8106extern int cgroup_attach_task_all(struct task_struct *from , struct task_struct * ) ;
 8107#line 46 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/vhost/vhost.h"
 8108void vhost_poll_init(struct vhost_poll *poll , void (*fn)(struct vhost_work *work ) ,
 8109                     unsigned long mask , struct vhost_dev *dev ) ;
 8110#line 48
 8111void vhost_poll_start(struct vhost_poll *poll , struct file *file ) ;
 8112#line 49
 8113void vhost_poll_stop(struct vhost_poll *poll ) ;
 8114#line 50
 8115void vhost_poll_flush(struct vhost_poll *poll ) ;
 8116#line 51
 8117void vhost_poll_queue(struct vhost_poll *poll ) ;
 8118#line 66
 8119struct vhost_ubuf_ref *vhost_ubuf_alloc(struct vhost_virtqueue *vq , bool zcopy ) ;
 8120#line 67
 8121void vhost_ubuf_put(struct vhost_ubuf_ref *ubufs ) ;
 8122#line 68
 8123void vhost_ubuf_put_and_wait(struct vhost_ubuf_ref *ubufs ) ;
 8124#line 163
 8125long vhost_dev_init(struct vhost_dev *dev , struct vhost_virtqueue *vqs , int nvqs ) ;
 8126#line 164
 8127long vhost_dev_check_owner(struct vhost_dev *dev ) ;
 8128#line 165
 8129long vhost_dev_reset_owner(struct vhost_dev *dev ) ;
 8130#line 166
 8131void vhost_dev_cleanup(struct vhost_dev *dev , bool locked ) ;
 8132#line 167
 8133long vhost_dev_ioctl(struct vhost_dev *d , unsigned int ioctl , unsigned long arg ) ;
 8134#line 168
 8135int vhost_vq_access_ok(struct vhost_virtqueue *vq ) ;
 8136#line 169
 8137int vhost_log_access_ok(struct vhost_dev *dev ) ;
 8138#line 171
 8139int vhost_get_vq_desc(struct vhost_dev *dev , struct vhost_virtqueue *vq , struct iovec *iov ,
 8140                      unsigned int iov_size , unsigned int *out_num , unsigned int *in_num ,
 8141                      struct vhost_log *log , unsigned int *log_num ) ;
 8142#line 175
 8143void vhost_discard_vq_desc(struct vhost_virtqueue *vq , int n ) ;
 8144#line 177
 8145int vhost_init_used(struct vhost_virtqueue *vq ) ;
 8146#line 178
 8147int vhost_add_used(struct vhost_virtqueue *vq , unsigned int head , int len ) ;
 8148#line 179
 8149int vhost_add_used_n(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
 8150                     unsigned int count ) ;
 8151#line 181
 8152void vhost_add_used_and_signal(struct vhost_dev *dev , struct vhost_virtqueue *vq ,
 8153                               unsigned int head , int len ) ;
 8154#line 183
 8155void vhost_add_used_and_signal_n(struct vhost_dev *dev , struct vhost_virtqueue *vq ,
 8156                                 struct vring_used_elem *heads , unsigned int count ) ;
 8157#line 185
 8158void vhost_signal(struct vhost_dev *dev , struct vhost_virtqueue *vq ) ;
 8159#line 186
 8160void vhost_disable_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) ;
 8161#line 187
 8162bool vhost_enable_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) ;
 8163#line 189
 8164int vhost_log_write(struct vhost_virtqueue *vq , struct vhost_log *log , unsigned int log_num ,
 8165                    u64 len ) ;
 8166#line 191
 8167void vhost_zerocopy_callback(struct ubuf_info *ubuf ) ;
 8168#line 192
 8169int vhost_zerocopy_signal_used(struct vhost_virtqueue *vq ) ;
 8170#line 209
 8171__inline static int vhost_has_feature(struct vhost_dev *dev , int bit )  __attribute__((__no_instrument_function__)) ;
 8172#line 209 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/vhost/vhost.h"
 8173__inline static int vhost_has_feature(struct vhost_dev *dev , int bit ) 
 8174{ unsigned int acked_features ;
 8175  unsigned int _________p1 ;
 8176  unsigned long __cil_tmp5 ;
 8177  unsigned long __cil_tmp6 ;
 8178  unsigned int *__cil_tmp7 ;
 8179  unsigned int volatile   *__cil_tmp8 ;
 8180  unsigned int volatile   __cil_tmp9 ;
 8181  int __cil_tmp10 ;
 8182  unsigned int __cil_tmp11 ;
 8183  unsigned int __cil_tmp12 ;
 8184
 8185  {
 8186#line 215
 8187  __cil_tmp5 = (unsigned long )dev;
 8188#line 215
 8189  __cil_tmp6 = __cil_tmp5 + 88;
 8190#line 215
 8191  __cil_tmp7 = (unsigned int *)__cil_tmp6;
 8192#line 215
 8193  __cil_tmp8 = (unsigned int volatile   *)__cil_tmp7;
 8194#line 215
 8195  __cil_tmp9 = *__cil_tmp8;
 8196#line 215
 8197  _________p1 = (unsigned int )__cil_tmp9;
 8198  {
 8199#line 215
 8200  while (1) {
 8201    while_continue: /* CIL Label */ ;
 8202#line 215
 8203    goto while_break;
 8204  }
 8205  while_break: /* CIL Label */ ;
 8206  }
 8207  {
 8208#line 215
 8209  while (1) {
 8210    while_continue___0: /* CIL Label */ ;
 8211#line 215
 8212    goto while_break___0;
 8213  }
 8214  while_break___0: /* CIL Label */ ;
 8215  }
 8216#line 215
 8217  acked_features = _________p1;
 8218  {
 8219#line 216
 8220  __cil_tmp10 = 1 << bit;
 8221#line 216
 8222  __cil_tmp11 = (unsigned int )__cil_tmp10;
 8223#line 216
 8224  __cil_tmp12 = acked_features & __cil_tmp11;
 8225#line 216
 8226  return ((int )__cil_tmp12);
 8227  }
 8228}
 8229}
 8230#line 219
 8231void vhost_enable_zcopy(int vq ) ;
 8232#line 40 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 8233static unsigned int vhost_zcopy_mask  __attribute__((__section__(".data..read_mostly")))  ;
 8234#line 45 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 8235static void vhost_poll_func(struct file *file , wait_queue_head_t *wqh , poll_table *pt ) 
 8236{ struct vhost_poll *poll ;
 8237  poll_table    *__mptr ;
 8238  struct vhost_poll *__cil_tmp6 ;
 8239  poll_table *__cil_tmp7 ;
 8240  unsigned int __cil_tmp8 ;
 8241  char *__cil_tmp9 ;
 8242  char *__cil_tmp10 ;
 8243  unsigned long __cil_tmp11 ;
 8244  unsigned long __cil_tmp12 ;
 8245  unsigned long __cil_tmp13 ;
 8246  unsigned long __cil_tmp14 ;
 8247  wait_queue_t *__cil_tmp15 ;
 8248
 8249  {
 8250  {
 8251#line 50
 8252  __mptr = (poll_table    *)pt;
 8253#line 50
 8254  __cil_tmp6 = (struct vhost_poll *)0;
 8255#line 50
 8256  __cil_tmp7 = (poll_table *)__cil_tmp6;
 8257#line 50
 8258  __cil_tmp8 = (unsigned int )__cil_tmp7;
 8259#line 50
 8260  __cil_tmp9 = (char *)__mptr;
 8261#line 50
 8262  __cil_tmp10 = __cil_tmp9 - __cil_tmp8;
 8263#line 50
 8264  poll = (struct vhost_poll *)__cil_tmp10;
 8265#line 51
 8266  __cil_tmp11 = (unsigned long )poll;
 8267#line 51
 8268  __cil_tmp12 = __cil_tmp11 + 16;
 8269#line 51
 8270  *((wait_queue_head_t **)__cil_tmp12) = wqh;
 8271#line 52
 8272  __cil_tmp13 = (unsigned long )poll;
 8273#line 52
 8274  __cil_tmp14 = __cil_tmp13 + 24;
 8275#line 52
 8276  __cil_tmp15 = (wait_queue_t *)__cil_tmp14;
 8277#line 52
 8278  add_wait_queue(wqh, __cil_tmp15);
 8279  }
 8280#line 53
 8281  return;
 8282}
 8283}
 8284#line 55 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 8285static int vhost_poll_wakeup(wait_queue_t *wait , unsigned int mode , int sync , void *key ) 
 8286{ struct vhost_poll *poll ;
 8287  wait_queue_t    *__mptr ;
 8288  struct vhost_poll *__cil_tmp7 ;
 8289  unsigned long __cil_tmp8 ;
 8290  unsigned long __cil_tmp9 ;
 8291  wait_queue_t *__cil_tmp10 ;
 8292  unsigned int __cil_tmp11 ;
 8293  char *__cil_tmp12 ;
 8294  char *__cil_tmp13 ;
 8295  unsigned long __cil_tmp14 ;
 8296  unsigned long __cil_tmp15 ;
 8297  unsigned long __cil_tmp16 ;
 8298  unsigned long __cil_tmp17 ;
 8299  unsigned long __cil_tmp18 ;
 8300
 8301  {
 8302#line 58
 8303  __mptr = (wait_queue_t    *)wait;
 8304#line 58
 8305  __cil_tmp7 = (struct vhost_poll *)0;
 8306#line 58
 8307  __cil_tmp8 = (unsigned long )__cil_tmp7;
 8308#line 58
 8309  __cil_tmp9 = __cil_tmp8 + 24;
 8310#line 58
 8311  __cil_tmp10 = (wait_queue_t *)__cil_tmp9;
 8312#line 58
 8313  __cil_tmp11 = (unsigned int )__cil_tmp10;
 8314#line 58
 8315  __cil_tmp12 = (char *)__mptr;
 8316#line 58
 8317  __cil_tmp13 = __cil_tmp12 - __cil_tmp11;
 8318#line 58
 8319  poll = (struct vhost_poll *)__cil_tmp13;
 8320  {
 8321#line 60
 8322  __cil_tmp14 = (unsigned long )poll;
 8323#line 60
 8324  __cil_tmp15 = __cil_tmp14 + 144;
 8325#line 60
 8326  __cil_tmp16 = *((unsigned long *)__cil_tmp15);
 8327#line 60
 8328  __cil_tmp17 = (unsigned long )key;
 8329#line 60
 8330  __cil_tmp18 = __cil_tmp17 & __cil_tmp16;
 8331#line 60
 8332  if (! __cil_tmp18) {
 8333#line 61
 8334    return (0);
 8335  } else {
 8336
 8337  }
 8338  }
 8339  {
 8340#line 63
 8341  vhost_poll_queue(poll);
 8342  }
 8343#line 64
 8344  return (0);
 8345}
 8346}
 8347#line 71 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 8348static struct lock_class_key __key___6  ;
 8349#line 67 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 8350static void vhost_work_init(struct vhost_work *work , void (*fn)(struct vhost_work *work ) ) 
 8351{ unsigned int tmp___7 ;
 8352  struct list_head *__cil_tmp4 ;
 8353  unsigned long __cil_tmp5 ;
 8354  unsigned long __cil_tmp6 ;
 8355  unsigned long __cil_tmp7 ;
 8356  unsigned long __cil_tmp8 ;
 8357  wait_queue_head_t *__cil_tmp9 ;
 8358  unsigned long __cil_tmp10 ;
 8359  unsigned long __cil_tmp11 ;
 8360  unsigned long __cil_tmp12 ;
 8361  unsigned long __cil_tmp13 ;
 8362  unsigned long __cil_tmp14 ;
 8363  unsigned long __cil_tmp15 ;
 8364
 8365  {
 8366  {
 8367#line 69
 8368  __cil_tmp4 = (struct list_head *)work;
 8369#line 69
 8370  INIT_LIST_HEAD(__cil_tmp4);
 8371#line 70
 8372  __cil_tmp5 = (unsigned long )work;
 8373#line 70
 8374  __cil_tmp6 = __cil_tmp5 + 16;
 8375#line 70
 8376  *((void (**)(struct vhost_work *work ))__cil_tmp6) = fn;
 8377  }
 8378  {
 8379#line 71
 8380  while (1) {
 8381    while_continue: /* CIL Label */ ;
 8382    {
 8383#line 71
 8384    __cil_tmp7 = (unsigned long )work;
 8385#line 71
 8386    __cil_tmp8 = __cil_tmp7 + 24;
 8387#line 71
 8388    __cil_tmp9 = (wait_queue_head_t *)__cil_tmp8;
 8389#line 71
 8390    __init_waitqueue_head(__cil_tmp9, "&work->done", & __key___6);
 8391    }
 8392#line 71
 8393    goto while_break;
 8394  }
 8395  while_break: /* CIL Label */ ;
 8396  }
 8397#line 72
 8398  __cil_tmp10 = (unsigned long )work;
 8399#line 72
 8400  __cil_tmp11 = __cil_tmp10 + 64;
 8401#line 72
 8402  *((int *)__cil_tmp11) = 0;
 8403#line 73
 8404  tmp___7 = 0U;
 8405#line 73
 8406  __cil_tmp12 = (unsigned long )work;
 8407#line 73
 8408  __cil_tmp13 = __cil_tmp12 + 72;
 8409#line 73
 8410  *((unsigned int *)__cil_tmp13) = tmp___7;
 8411#line 73
 8412  __cil_tmp14 = (unsigned long )work;
 8413#line 73
 8414  __cil_tmp15 = __cil_tmp14 + 68;
 8415#line 73
 8416  *((unsigned int *)__cil_tmp15) = tmp___7;
 8417#line 74
 8418  return;
 8419}
 8420}
 8421#line 77 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 8422void vhost_poll_init(struct vhost_poll *poll , void (*fn)(struct vhost_work *work ) ,
 8423                     unsigned long mask , struct vhost_dev *dev ) 
 8424{ unsigned long __cil_tmp5 ;
 8425  unsigned long __cil_tmp6 ;
 8426  wait_queue_t *__cil_tmp7 ;
 8427  poll_table *__cil_tmp8 ;
 8428  unsigned long __cil_tmp9 ;
 8429  unsigned long __cil_tmp10 ;
 8430  unsigned long __cil_tmp11 ;
 8431  unsigned long __cil_tmp12 ;
 8432  unsigned long __cil_tmp13 ;
 8433  unsigned long __cil_tmp14 ;
 8434  struct vhost_work *__cil_tmp15 ;
 8435
 8436  {
 8437  {
 8438#line 80
 8439  __cil_tmp5 = (unsigned long )poll;
 8440#line 80
 8441  __cil_tmp6 = __cil_tmp5 + 24;
 8442#line 80
 8443  __cil_tmp7 = (wait_queue_t *)__cil_tmp6;
 8444#line 80
 8445  init_waitqueue_func_entry(__cil_tmp7, & vhost_poll_wakeup);
 8446#line 81
 8447  __cil_tmp8 = (poll_table *)poll;
 8448#line 81
 8449  init_poll_funcptr(__cil_tmp8, & vhost_poll_func);
 8450#line 82
 8451  __cil_tmp9 = (unsigned long )poll;
 8452#line 82
 8453  __cil_tmp10 = __cil_tmp9 + 144;
 8454#line 82
 8455  *((unsigned long *)__cil_tmp10) = mask;
 8456#line 83
 8457  __cil_tmp11 = (unsigned long )poll;
 8458#line 83
 8459  __cil_tmp12 = __cil_tmp11 + 152;
 8460#line 83
 8461  *((struct vhost_dev **)__cil_tmp12) = dev;
 8462#line 85
 8463  __cil_tmp13 = (unsigned long )poll;
 8464#line 85
 8465  __cil_tmp14 = __cil_tmp13 + 64;
 8466#line 85
 8467  __cil_tmp15 = (struct vhost_work *)__cil_tmp14;
 8468#line 85
 8469  vhost_work_init(__cil_tmp15, fn);
 8470  }
 8471#line 86
 8472  return;
 8473}
 8474}
 8475#line 90 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 8476void vhost_poll_start(struct vhost_poll *poll , struct file *file ) 
 8477{ unsigned long mask ;
 8478  unsigned int tmp___7 ;
 8479  unsigned long __cil_tmp5 ;
 8480  unsigned long __cil_tmp6 ;
 8481  struct file_operations    *__cil_tmp7 ;
 8482  unsigned long __cil_tmp8 ;
 8483  unsigned long __cil_tmp9 ;
 8484  unsigned int (*   __cil_tmp10)(struct file * , struct poll_table_struct * ) ;
 8485  unsigned int (*__cil_tmp11)(struct file * , struct poll_table_struct * ) ;
 8486  poll_table *__cil_tmp12 ;
 8487  unsigned long __cil_tmp13 ;
 8488  unsigned long __cil_tmp14 ;
 8489  wait_queue_t *__cil_tmp15 ;
 8490  void *__cil_tmp16 ;
 8491
 8492  {
 8493  {
 8494#line 94
 8495  __cil_tmp5 = (unsigned long )file;
 8496#line 94
 8497  __cil_tmp6 = __cil_tmp5 + 32;
 8498#line 94
 8499  __cil_tmp7 = *((struct file_operations    **)__cil_tmp6);
 8500#line 94
 8501  __cil_tmp8 = (unsigned long )__cil_tmp7;
 8502#line 94
 8503  __cil_tmp9 = __cil_tmp8 + 56;
 8504#line 94
 8505  __cil_tmp10 = *((unsigned int (*   *)(struct file * , struct poll_table_struct * ))__cil_tmp9);
 8506#line 94
 8507  __cil_tmp11 = (unsigned int (*)(struct file * , struct poll_table_struct * ))__cil_tmp10;
 8508#line 94
 8509  __cil_tmp12 = (poll_table *)poll;
 8510#line 94
 8511  tmp___7 = (*__cil_tmp11)(file, __cil_tmp12);
 8512#line 94
 8513  mask = (unsigned long )tmp___7;
 8514  }
 8515#line 95
 8516  if (mask) {
 8517    {
 8518#line 96
 8519    __cil_tmp13 = (unsigned long )poll;
 8520#line 96
 8521    __cil_tmp14 = __cil_tmp13 + 24;
 8522#line 96
 8523    __cil_tmp15 = (wait_queue_t *)__cil_tmp14;
 8524#line 96
 8525    __cil_tmp16 = (void *)mask;
 8526#line 96
 8527    vhost_poll_wakeup(__cil_tmp15, 0U, 0, __cil_tmp16);
 8528    }
 8529  } else {
 8530
 8531  }
 8532#line 97
 8533  return;
 8534}
 8535}
 8536#line 101 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 8537void vhost_poll_stop(struct vhost_poll *poll ) 
 8538{ unsigned long __cil_tmp2 ;
 8539  unsigned long __cil_tmp3 ;
 8540  wait_queue_head_t *__cil_tmp4 ;
 8541  unsigned long __cil_tmp5 ;
 8542  unsigned long __cil_tmp6 ;
 8543  wait_queue_t *__cil_tmp7 ;
 8544
 8545  {
 8546  {
 8547#line 103
 8548  __cil_tmp2 = (unsigned long )poll;
 8549#line 103
 8550  __cil_tmp3 = __cil_tmp2 + 16;
 8551#line 103
 8552  __cil_tmp4 = *((wait_queue_head_t **)__cil_tmp3);
 8553#line 103
 8554  __cil_tmp5 = (unsigned long )poll;
 8555#line 103
 8556  __cil_tmp6 = __cil_tmp5 + 24;
 8557#line 103
 8558  __cil_tmp7 = (wait_queue_t *)__cil_tmp6;
 8559#line 103
 8560  remove_wait_queue(__cil_tmp4, __cil_tmp7);
 8561  }
 8562#line 104
 8563  return;
 8564}
 8565}
 8566#line 106 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 8567static bool vhost_work_seq_done(struct vhost_dev *dev , struct vhost_work *work ,
 8568                                unsigned int seq ) 
 8569{ int left ;
 8570  unsigned long __cil_tmp5 ;
 8571  unsigned long __cil_tmp6 ;
 8572  spinlock_t *__cil_tmp7 ;
 8573  unsigned long __cil_tmp8 ;
 8574  unsigned long __cil_tmp9 ;
 8575  unsigned int __cil_tmp10 ;
 8576  unsigned int __cil_tmp11 ;
 8577  unsigned long __cil_tmp12 ;
 8578  unsigned long __cil_tmp13 ;
 8579  spinlock_t *__cil_tmp14 ;
 8580  int __cil_tmp15 ;
 8581
 8582  {
 8583  {
 8584#line 111
 8585  __cil_tmp5 = (unsigned long )dev;
 8586#line 111
 8587  __cil_tmp6 = __cil_tmp5 + 128;
 8588#line 111
 8589  __cil_tmp7 = (spinlock_t *)__cil_tmp6;
 8590#line 111
 8591  spin_lock_irq(__cil_tmp7);
 8592#line 112
 8593  __cil_tmp8 = (unsigned long )work;
 8594#line 112
 8595  __cil_tmp9 = __cil_tmp8 + 72;
 8596#line 112
 8597  __cil_tmp10 = *((unsigned int *)__cil_tmp9);
 8598#line 112
 8599  __cil_tmp11 = seq - __cil_tmp10;
 8600#line 112
 8601  left = (int )__cil_tmp11;
 8602#line 113
 8603  __cil_tmp12 = (unsigned long )dev;
 8604#line 113
 8605  __cil_tmp13 = __cil_tmp12 + 128;
 8606#line 113
 8607  __cil_tmp14 = (spinlock_t *)__cil_tmp13;
 8608#line 113
 8609  spin_unlock_irq(__cil_tmp14);
 8610  }
 8611  {
 8612#line 114
 8613  __cil_tmp15 = left <= 0;
 8614#line 114
 8615  return ((bool )__cil_tmp15);
 8616  }
 8617}
 8618}
 8619#line 117 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_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  unsigned long __cil_tmp10 ;
 8629  unsigned long __cil_tmp11 ;
 8630  spinlock_t *__cil_tmp12 ;
 8631  unsigned long __cil_tmp13 ;
 8632  unsigned long __cil_tmp14 ;
 8633  unsigned long __cil_tmp15 ;
 8634  unsigned long __cil_tmp16 ;
 8635  unsigned long __cil_tmp17 ;
 8636  unsigned long __cil_tmp18 ;
 8637  int __cil_tmp19 ;
 8638  unsigned long __cil_tmp20 ;
 8639  unsigned long __cil_tmp21 ;
 8640  spinlock_t *__cil_tmp22 ;
 8641  wait_queue_t *__cil_tmp23 ;
 8642  unsigned long __cil_tmp24 ;
 8643  unsigned long __cil_tmp25 ;
 8644  unsigned long __cil_tmp26 ;
 8645  unsigned long __cil_tmp27 ;
 8646  unsigned long __cil_tmp28 ;
 8647  unsigned long __cil_tmp29 ;
 8648  unsigned long __cil_tmp30 ;
 8649  unsigned long __cil_tmp31 ;
 8650  unsigned long __cil_tmp32 ;
 8651  wait_queue_head_t *__cil_tmp33 ;
 8652  unsigned long __cil_tmp34 ;
 8653  unsigned long __cil_tmp35 ;
 8654  wait_queue_head_t *__cil_tmp36 ;
 8655  unsigned long __cil_tmp37 ;
 8656  unsigned long __cil_tmp38 ;
 8657  spinlock_t *__cil_tmp39 ;
 8658  unsigned long __cil_tmp40 ;
 8659  unsigned long __cil_tmp41 ;
 8660  unsigned long __cil_tmp42 ;
 8661  unsigned long __cil_tmp43 ;
 8662  int __cil_tmp44 ;
 8663  unsigned long __cil_tmp45 ;
 8664  unsigned long __cil_tmp46 ;
 8665  unsigned long __cil_tmp47 ;
 8666  unsigned long __cil_tmp48 ;
 8667  spinlock_t *__cil_tmp49 ;
 8668  int __cil_tmp50 ;
 8669  int __cil_tmp51 ;
 8670  int __cil_tmp52 ;
 8671  long __cil_tmp53 ;
 8672
 8673  {
 8674  {
 8675#line 122
 8676  __cil_tmp10 = (unsigned long )dev;
 8677#line 122
 8678  __cil_tmp11 = __cil_tmp10 + 128;
 8679#line 122
 8680  __cil_tmp12 = (spinlock_t *)__cil_tmp11;
 8681#line 122
 8682  spin_lock_irq(__cil_tmp12);
 8683#line 123
 8684  __cil_tmp13 = (unsigned long )work;
 8685#line 123
 8686  __cil_tmp14 = __cil_tmp13 + 68;
 8687#line 123
 8688  seq = *((unsigned int *)__cil_tmp14);
 8689#line 124
 8690  __cil_tmp15 = (unsigned long )work;
 8691#line 124
 8692  __cil_tmp16 = __cil_tmp15 + 64;
 8693#line 124
 8694  __cil_tmp17 = (unsigned long )work;
 8695#line 124
 8696  __cil_tmp18 = __cil_tmp17 + 64;
 8697#line 124
 8698  __cil_tmp19 = *((int *)__cil_tmp18);
 8699#line 124
 8700  *((int *)__cil_tmp16) = __cil_tmp19 + 1;
 8701#line 125
 8702  __cil_tmp20 = (unsigned long )dev;
 8703#line 125
 8704  __cil_tmp21 = __cil_tmp20 + 128;
 8705#line 125
 8706  __cil_tmp22 = (spinlock_t *)__cil_tmp21;
 8707#line 125
 8708  spin_unlock_irq(__cil_tmp22);
 8709  }
 8710  {
 8711#line 126
 8712  while (1) {
 8713    while_continue: /* CIL Label */ ;
 8714    {
 8715#line 126
 8716    tmp___7 = vhost_work_seq_done(dev, work, seq);
 8717    }
 8718#line 126
 8719    if (tmp___7) {
 8720#line 126
 8721      goto while_break;
 8722    } else {
 8723
 8724    }
 8725    {
 8726#line 126
 8727    while (1) {
 8728      while_continue___0: /* CIL Label */ ;
 8729      {
 8730#line 126
 8731      tmp___8 = get_current();
 8732#line 126
 8733      __cil_tmp23 = & __wait;
 8734#line 126
 8735      *((unsigned int *)__cil_tmp23) = 0U;
 8736#line 126
 8737      __cil_tmp24 = (unsigned long )(& __wait) + 8;
 8738#line 126
 8739      *((void **)__cil_tmp24) = (void *)tmp___8;
 8740#line 126
 8741      __cil_tmp25 = (unsigned long )(& __wait) + 16;
 8742#line 126
 8743      *((int (**)(wait_queue_t *wait , unsigned int mode , int flags , void *key ))__cil_tmp25) = & autoremove_wake_function;
 8744#line 126
 8745      __cil_tmp26 = (unsigned long )(& __wait) + 24;
 8746#line 126
 8747      __cil_tmp27 = (unsigned long )(& __wait) + 24;
 8748#line 126
 8749      *((struct list_head **)__cil_tmp26) = (struct list_head *)__cil_tmp27;
 8750#line 126
 8751      __cil_tmp28 = 24 + 8;
 8752#line 126
 8753      __cil_tmp29 = (unsigned long )(& __wait) + __cil_tmp28;
 8754#line 126
 8755      __cil_tmp30 = (unsigned long )(& __wait) + 24;
 8756#line 126
 8757      *((struct list_head **)__cil_tmp29) = (struct list_head *)__cil_tmp30;
 8758      }
 8759      {
 8760#line 126
 8761      while (1) {
 8762        while_continue___1: /* CIL Label */ ;
 8763        {
 8764#line 126
 8765        __cil_tmp31 = (unsigned long )work;
 8766#line 126
 8767        __cil_tmp32 = __cil_tmp31 + 24;
 8768#line 126
 8769        __cil_tmp33 = (wait_queue_head_t *)__cil_tmp32;
 8770#line 126
 8771        prepare_to_wait(__cil_tmp33, & __wait, 2);
 8772#line 126
 8773        tmp___9 = vhost_work_seq_done(dev, work, seq);
 8774        }
 8775#line 126
 8776        if (tmp___9) {
 8777#line 126
 8778          goto while_break___1;
 8779        } else {
 8780
 8781        }
 8782        {
 8783#line 126
 8784        schedule();
 8785        }
 8786      }
 8787      while_break___1: /* CIL Label */ ;
 8788      }
 8789      {
 8790#line 126
 8791      __cil_tmp34 = (unsigned long )work;
 8792#line 126
 8793      __cil_tmp35 = __cil_tmp34 + 24;
 8794#line 126
 8795      __cil_tmp36 = (wait_queue_head_t *)__cil_tmp35;
 8796#line 126
 8797      finish_wait(__cil_tmp36, & __wait);
 8798      }
 8799#line 126
 8800      goto while_break___0;
 8801    }
 8802    while_break___0: /* CIL Label */ ;
 8803    }
 8804#line 126
 8805    goto while_break;
 8806  }
 8807  while_break: /* CIL Label */ ;
 8808  }
 8809  {
 8810#line 127
 8811  __cil_tmp37 = (unsigned long )dev;
 8812#line 127
 8813  __cil_tmp38 = __cil_tmp37 + 128;
 8814#line 127
 8815  __cil_tmp39 = (spinlock_t *)__cil_tmp38;
 8816#line 127
 8817  spin_lock_irq(__cil_tmp39);
 8818#line 128
 8819  __cil_tmp40 = (unsigned long )work;
 8820#line 128
 8821  __cil_tmp41 = __cil_tmp40 + 64;
 8822#line 128
 8823  __cil_tmp42 = (unsigned long )work;
 8824#line 128
 8825  __cil_tmp43 = __cil_tmp42 + 64;
 8826#line 128
 8827  __cil_tmp44 = *((int *)__cil_tmp43);
 8828#line 128
 8829  *((int *)__cil_tmp41) = __cil_tmp44 - 1;
 8830#line 128
 8831  __cil_tmp45 = (unsigned long )work;
 8832#line 128
 8833  __cil_tmp46 = __cil_tmp45 + 64;
 8834#line 128
 8835  flushing = *((int *)__cil_tmp46);
 8836#line 129
 8837  __cil_tmp47 = (unsigned long )dev;
 8838#line 129
 8839  __cil_tmp48 = __cil_tmp47 + 128;
 8840#line 129
 8841  __cil_tmp49 = (spinlock_t *)__cil_tmp48;
 8842#line 129
 8843  spin_unlock_irq(__cil_tmp49);
 8844  }
 8845  {
 8846#line 130
 8847  while (1) {
 8848    while_continue___2: /* CIL Label */ ;
 8849    {
 8850#line 130
 8851    __cil_tmp50 = flushing < 0;
 8852#line 130
 8853    __cil_tmp51 = ! __cil_tmp50;
 8854#line 130
 8855    __cil_tmp52 = ! __cil_tmp51;
 8856#line 130
 8857    __cil_tmp53 = (long )__cil_tmp52;
 8858#line 130
 8859    tmp___10 = __builtin_expect(__cil_tmp53, 0L);
 8860    }
 8861#line 130
 8862    if (tmp___10) {
 8863      {
 8864#line 130
 8865      while (1) {
 8866        while_continue___3: /* CIL Label */ ;
 8867#line 130
 8868        __asm__  volatile   ("1:\tud2\n"
 8869                             ".pushsection __bug_table,\"a\"\n"
 8870                             "2:\t.long 1b - 2b, %c0 - 2b\n"
 8871                             "\t.word %c1, 0\n"
 8872                             "\t.org 2b+%c2\n"
 8873                             ".popsection": : "i" ("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"),
 8874                             "i" (130), "i" (12UL));
 8875        {
 8876#line 130
 8877        while (1) {
 8878          while_continue___4: /* CIL Label */ ;
 8879        }
 8880        while_break___4: /* CIL Label */ ;
 8881        }
 8882#line 130
 8883        goto while_break___3;
 8884      }
 8885      while_break___3: /* CIL Label */ ;
 8886      }
 8887    } else {
 8888
 8889    }
 8890#line 130
 8891    goto while_break___2;
 8892  }
 8893  while_break___2: /* CIL Label */ ;
 8894  }
 8895#line 131
 8896  return;
 8897}
 8898}
 8899#line 135 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 8900void vhost_poll_flush(struct vhost_poll *poll ) 
 8901{ unsigned long __cil_tmp2 ;
 8902  unsigned long __cil_tmp3 ;
 8903  struct vhost_dev *__cil_tmp4 ;
 8904  unsigned long __cil_tmp5 ;
 8905  unsigned long __cil_tmp6 ;
 8906  struct vhost_work *__cil_tmp7 ;
 8907
 8908  {
 8909  {
 8910#line 137
 8911  __cil_tmp2 = (unsigned long )poll;
 8912#line 137
 8913  __cil_tmp3 = __cil_tmp2 + 152;
 8914#line 137
 8915  __cil_tmp4 = *((struct vhost_dev **)__cil_tmp3);
 8916#line 137
 8917  __cil_tmp5 = (unsigned long )poll;
 8918#line 137
 8919  __cil_tmp6 = __cil_tmp5 + 64;
 8920#line 137
 8921  __cil_tmp7 = (struct vhost_work *)__cil_tmp6;
 8922#line 137
 8923  vhost_work_flush(__cil_tmp4, __cil_tmp7);
 8924  }
 8925#line 138
 8926  return;
 8927}
 8928}
 8929#line 140
 8930__inline static void vhost_work_queue(struct vhost_dev *dev , struct vhost_work *work )  __attribute__((__no_instrument_function__)) ;
 8931#line 140 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 8932__inline static void vhost_work_queue(struct vhost_dev *dev , struct vhost_work *work ) 
 8933{ unsigned long flags ;
 8934  raw_spinlock_t *tmp___7 ;
 8935  int tmp___8 ;
 8936  unsigned long __cil_tmp8 ;
 8937  unsigned long __cil_tmp9 ;
 8938  spinlock_t *__cil_tmp10 ;
 8939  struct list_head *__cil_tmp11 ;
 8940  struct list_head    *__cil_tmp12 ;
 8941  struct list_head *__cil_tmp13 ;
 8942  unsigned long __cil_tmp14 ;
 8943  unsigned long __cil_tmp15 ;
 8944  struct list_head *__cil_tmp16 ;
 8945  unsigned long __cil_tmp17 ;
 8946  unsigned long __cil_tmp18 ;
 8947  unsigned long __cil_tmp19 ;
 8948  unsigned long __cil_tmp20 ;
 8949  unsigned int __cil_tmp21 ;
 8950  unsigned long __cil_tmp22 ;
 8951  unsigned long __cil_tmp23 ;
 8952  struct task_struct *__cil_tmp24 ;
 8953  unsigned long __cil_tmp25 ;
 8954  unsigned long __cil_tmp26 ;
 8955  spinlock_t *__cil_tmp27 ;
 8956
 8957  {
 8958  {
 8959#line 145
 8960  while (1) {
 8961    while_continue: /* CIL Label */ ;
 8962    {
 8963#line 145
 8964    while (1) {
 8965      while_continue___0: /* CIL Label */ ;
 8966      {
 8967#line 145
 8968      __cil_tmp8 = (unsigned long )dev;
 8969#line 145
 8970      __cil_tmp9 = __cil_tmp8 + 128;
 8971#line 145
 8972      __cil_tmp10 = (spinlock_t *)__cil_tmp9;
 8973#line 145
 8974      tmp___7 = spinlock_check(__cil_tmp10);
 8975#line 145
 8976      flags = _raw_spin_lock_irqsave(tmp___7);
 8977      }
 8978#line 145
 8979      goto while_break___0;
 8980    }
 8981    while_break___0: /* CIL Label */ ;
 8982    }
 8983#line 145
 8984    goto while_break;
 8985  }
 8986  while_break: /* CIL Label */ ;
 8987  }
 8988  {
 8989#line 146
 8990  __cil_tmp11 = (struct list_head *)work;
 8991#line 146
 8992  __cil_tmp12 = (struct list_head    *)__cil_tmp11;
 8993#line 146
 8994  tmp___8 = list_empty(__cil_tmp12);
 8995  }
 8996#line 146
 8997  if (tmp___8) {
 8998    {
 8999#line 147
 9000    __cil_tmp13 = (struct list_head *)work;
 9001#line 147
 9002    __cil_tmp14 = (unsigned long )dev;
 9003#line 147
 9004    __cil_tmp15 = __cil_tmp14 + 152;
 9005#line 147
 9006    __cil_tmp16 = (struct list_head *)__cil_tmp15;
 9007#line 147
 9008    list_add_tail(__cil_tmp13, __cil_tmp16);
 9009#line 148
 9010    __cil_tmp17 = (unsigned long )work;
 9011#line 148
 9012    __cil_tmp18 = __cil_tmp17 + 68;
 9013#line 148
 9014    __cil_tmp19 = (unsigned long )work;
 9015#line 148
 9016    __cil_tmp20 = __cil_tmp19 + 68;
 9017#line 148
 9018    __cil_tmp21 = *((unsigned int *)__cil_tmp20);
 9019#line 148
 9020    *((unsigned int *)__cil_tmp18) = __cil_tmp21 + 1U;
 9021#line 149
 9022    __cil_tmp22 = (unsigned long )dev;
 9023#line 149
 9024    __cil_tmp23 = __cil_tmp22 + 168;
 9025#line 149
 9026    __cil_tmp24 = *((struct task_struct **)__cil_tmp23);
 9027#line 149
 9028    wake_up_process(__cil_tmp24);
 9029    }
 9030  } else {
 9031
 9032  }
 9033  {
 9034#line 151
 9035  __cil_tmp25 = (unsigned long )dev;
 9036#line 151
 9037  __cil_tmp26 = __cil_tmp25 + 128;
 9038#line 151
 9039  __cil_tmp27 = (spinlock_t *)__cil_tmp26;
 9040#line 151
 9041  spin_unlock_irqrestore(__cil_tmp27, flags);
 9042  }
 9043#line 152
 9044  return;
 9045}
 9046}
 9047#line 154 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 9048void vhost_poll_queue(struct vhost_poll *poll ) 
 9049{ unsigned long __cil_tmp2 ;
 9050  unsigned long __cil_tmp3 ;
 9051  struct vhost_dev *__cil_tmp4 ;
 9052  unsigned long __cil_tmp5 ;
 9053  unsigned long __cil_tmp6 ;
 9054  struct vhost_work *__cil_tmp7 ;
 9055
 9056  {
 9057  {
 9058#line 156
 9059  __cil_tmp2 = (unsigned long )poll;
 9060#line 156
 9061  __cil_tmp3 = __cil_tmp2 + 152;
 9062#line 156
 9063  __cil_tmp4 = *((struct vhost_dev **)__cil_tmp3);
 9064#line 156
 9065  __cil_tmp5 = (unsigned long )poll;
 9066#line 156
 9067  __cil_tmp6 = __cil_tmp5 + 64;
 9068#line 156
 9069  __cil_tmp7 = (struct vhost_work *)__cil_tmp6;
 9070#line 156
 9071  vhost_work_queue(__cil_tmp4, __cil_tmp7);
 9072  }
 9073#line 157
 9074  return;
 9075}
 9076}
 9077#line 159 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 9078static void vhost_vq_reset(struct vhost_dev *dev , struct vhost_virtqueue *vq ) 
 9079{ unsigned long __cil_tmp3 ;
 9080  unsigned long __cil_tmp4 ;
 9081  unsigned long __cil_tmp5 ;
 9082  unsigned long __cil_tmp6 ;
 9083  void *__cil_tmp7 ;
 9084  unsigned long __cil_tmp8 ;
 9085  unsigned long __cil_tmp9 ;
 9086  void *__cil_tmp10 ;
 9087  unsigned long __cil_tmp11 ;
 9088  unsigned long __cil_tmp12 ;
 9089  void *__cil_tmp13 ;
 9090  unsigned long __cil_tmp14 ;
 9091  unsigned long __cil_tmp15 ;
 9092  unsigned long __cil_tmp16 ;
 9093  unsigned long __cil_tmp17 ;
 9094  unsigned long __cil_tmp18 ;
 9095  unsigned long __cil_tmp19 ;
 9096  unsigned long __cil_tmp20 ;
 9097  unsigned long __cil_tmp21 ;
 9098  unsigned long __cil_tmp22 ;
 9099  unsigned long __cil_tmp23 ;
 9100  unsigned long __cil_tmp24 ;
 9101  unsigned long __cil_tmp25 ;
 9102  unsigned long __cil_tmp26 ;
 9103  unsigned long __cil_tmp27 ;
 9104  unsigned long __cil_tmp28 ;
 9105  unsigned long __cil_tmp29 ;
 9106  unsigned long __cil_tmp30 ;
 9107  unsigned long __cil_tmp31 ;
 9108  unsigned long __cil_tmp32 ;
 9109  unsigned long __cil_tmp33 ;
 9110  unsigned long __cil_tmp34 ;
 9111  unsigned long __cil_tmp35 ;
 9112  unsigned long __cil_tmp36 ;
 9113  unsigned long __cil_tmp37 ;
 9114  unsigned long __cil_tmp38 ;
 9115  unsigned long __cil_tmp39 ;
 9116  void *__cil_tmp40 ;
 9117  unsigned long __cil_tmp41 ;
 9118  unsigned long __cil_tmp42 ;
 9119  void *__cil_tmp43 ;
 9120  unsigned long __cil_tmp44 ;
 9121  unsigned long __cil_tmp45 ;
 9122  void *__cil_tmp46 ;
 9123  unsigned long __cil_tmp47 ;
 9124  unsigned long __cil_tmp48 ;
 9125  void *__cil_tmp49 ;
 9126  unsigned long __cil_tmp50 ;
 9127  unsigned long __cil_tmp51 ;
 9128  void *__cil_tmp52 ;
 9129  unsigned long __cil_tmp53 ;
 9130  unsigned long __cil_tmp54 ;
 9131  void *__cil_tmp55 ;
 9132  unsigned long __cil_tmp56 ;
 9133  unsigned long __cil_tmp57 ;
 9134  unsigned long __cil_tmp58 ;
 9135  unsigned long __cil_tmp59 ;
 9136  unsigned long __cil_tmp60 ;
 9137  unsigned long __cil_tmp61 ;
 9138  void *__cil_tmp62 ;
 9139
 9140  {
 9141#line 162
 9142  __cil_tmp3 = (unsigned long )vq;
 9143#line 162
 9144  __cil_tmp4 = __cil_tmp3 + 80;
 9145#line 162
 9146  *((unsigned int *)__cil_tmp4) = 1U;
 9147#line 163
 9148  __cil_tmp5 = (unsigned long )vq;
 9149#line 163
 9150  __cil_tmp6 = __cil_tmp5 + 88;
 9151#line 163
 9152  __cil_tmp7 = (void *)0;
 9153#line 163
 9154  *((struct vring_desc **)__cil_tmp6) = (struct vring_desc *)__cil_tmp7;
 9155#line 164
 9156  __cil_tmp8 = (unsigned long )vq;
 9157#line 164
 9158  __cil_tmp9 = __cil_tmp8 + 96;
 9159#line 164
 9160  __cil_tmp10 = (void *)0;
 9161#line 164
 9162  *((struct vring_avail **)__cil_tmp9) = (struct vring_avail *)__cil_tmp10;
 9163#line 165
 9164  __cil_tmp11 = (unsigned long )vq;
 9165#line 165
 9166  __cil_tmp12 = __cil_tmp11 + 104;
 9167#line 165
 9168  __cil_tmp13 = (void *)0;
 9169#line 165
 9170  *((struct vring_used **)__cil_tmp12) = (struct vring_used *)__cil_tmp13;
 9171#line 166
 9172  __cil_tmp14 = (unsigned long )vq;
 9173#line 166
 9174  __cil_tmp15 = __cil_tmp14 + 328;
 9175#line 166
 9176  *((u16 *)__cil_tmp15) = (u16 )0;
 9177#line 167
 9178  __cil_tmp16 = (unsigned long )vq;
 9179#line 167
 9180  __cil_tmp17 = __cil_tmp16 + 330;
 9181#line 167
 9182  *((u16 *)__cil_tmp17) = (u16 )0;
 9183#line 168
 9184  __cil_tmp18 = (unsigned long )vq;
 9185#line 168
 9186  __cil_tmp19 = __cil_tmp18 + 332;
 9187#line 168
 9188  *((u16 *)__cil_tmp19) = (u16 )0;
 9189#line 169
 9190  __cil_tmp20 = (unsigned long )vq;
 9191#line 169
 9192  __cil_tmp21 = __cil_tmp20 + 336;
 9193#line 169
 9194  *((u16 *)__cil_tmp21) = (u16 )0;
 9195#line 170
 9196  __cil_tmp22 = (unsigned long )vq;
 9197#line 170
 9198  __cil_tmp23 = __cil_tmp22 + 338;
 9199#line 170
 9200  *((bool *)__cil_tmp23) = (bool )0;
 9201#line 171
 9202  __cil_tmp24 = (unsigned long )vq;
 9203#line 171
 9204  __cil_tmp25 = __cil_tmp24 + 334;
 9205#line 171
 9206  *((u16 *)__cil_tmp25) = (u16 )0;
 9207#line 172
 9208  __cil_tmp26 = (unsigned long )vq;
 9209#line 172
 9210  __cil_tmp27 = __cil_tmp26 + 339;
 9211#line 172
 9212  *((bool *)__cil_tmp27) = (bool )0;
 9213#line 173
 9214  __cil_tmp28 = (unsigned long )vq;
 9215#line 173
 9216  __cil_tmp29 = __cil_tmp28 + 344;
 9217#line 173
 9218  *((u64 *)__cil_tmp29) = 0xffffffffffffffffULL;
 9219#line 174
 9220  __cil_tmp30 = (unsigned long )vq;
 9221#line 174
 9222  __cil_tmp31 = __cil_tmp30 + 16936;
 9223#line 174
 9224  *((size_t *)__cil_tmp31) = (size_t )0;
 9225#line 175
 9226  __cil_tmp32 = (unsigned long )vq;
 9227#line 175
 9228  __cil_tmp33 = __cil_tmp32 + 16944;
 9229#line 175
 9230  *((size_t *)__cil_tmp33) = (size_t )0;
 9231#line 176
 9232  __cil_tmp34 = (unsigned long )vq;
 9233#line 176
 9234  __cil_tmp35 = __cil_tmp34 + 16960;
 9235#line 176
 9236  *((void **)__cil_tmp35) = (void *)0;
 9237#line 177
 9238  __cil_tmp36 = (unsigned long )vq;
 9239#line 177
 9240  __cil_tmp37 = __cil_tmp36 + 16968;
 9241#line 177
 9242  *((void **)__cil_tmp37) = (void *)0;
 9243#line 178
 9244  __cil_tmp38 = (unsigned long )vq;
 9245#line 178
 9246  __cil_tmp39 = __cil_tmp38 + 144;
 9247#line 178
 9248  __cil_tmp40 = (void *)0;
 9249#line 178
 9250  *((struct eventfd_ctx **)__cil_tmp39) = (struct eventfd_ctx *)__cil_tmp40;
 9251#line 179
 9252  __cil_tmp41 = (unsigned long )vq;
 9253#line 179
 9254  __cil_tmp42 = __cil_tmp41 + 128;
 9255#line 179
 9256  __cil_tmp43 = (void *)0;
 9257#line 179
 9258  *((struct file **)__cil_tmp42) = (struct file *)__cil_tmp43;
 9259#line 180
 9260  __cil_tmp44 = (unsigned long )vq;
 9261#line 180
 9262  __cil_tmp45 = __cil_tmp44 + 112;
 9263#line 180
 9264  __cil_tmp46 = (void *)0;
 9265#line 180
 9266  *((struct file **)__cil_tmp45) = (struct file *)__cil_tmp46;
 9267#line 181
 9268  __cil_tmp47 = (unsigned long )vq;
 9269#line 181
 9270  __cil_tmp48 = __cil_tmp47 + 136;
 9271#line 181
 9272  __cil_tmp49 = (void *)0;
 9273#line 181
 9274  *((struct eventfd_ctx **)__cil_tmp48) = (struct eventfd_ctx *)__cil_tmp49;
 9275#line 182
 9276  __cil_tmp50 = (unsigned long )vq;
 9277#line 182
 9278  __cil_tmp51 = __cil_tmp50 + 120;
 9279#line 182
 9280  __cil_tmp52 = (void *)0;
 9281#line 182
 9282  *((struct file **)__cil_tmp51) = (struct file *)__cil_tmp52;
 9283#line 183
 9284  __cil_tmp53 = (unsigned long )vq;
 9285#line 183
 9286  __cil_tmp54 = __cil_tmp53 + 152;
 9287#line 183
 9288  __cil_tmp55 = (void *)0;
 9289#line 183
 9290  *((struct eventfd_ctx **)__cil_tmp54) = (struct eventfd_ctx *)__cil_tmp55;
 9291#line 184
 9292  __cil_tmp56 = (unsigned long )vq;
 9293#line 184
 9294  __cil_tmp57 = __cil_tmp56 + 16984;
 9295#line 184
 9296  *((int *)__cil_tmp57) = 0;
 9297#line 185
 9298  __cil_tmp58 = (unsigned long )vq;
 9299#line 185
 9300  __cil_tmp59 = __cil_tmp58 + 16988;
 9301#line 185
 9302  *((int *)__cil_tmp59) = 0;
 9303#line 186
 9304  __cil_tmp60 = (unsigned long )vq;
 9305#line 186
 9306  __cil_tmp61 = __cil_tmp60 + 17000;
 9307#line 186
 9308  __cil_tmp62 = (void *)0;
 9309#line 186
 9310  *((struct vhost_ubuf_ref **)__cil_tmp61) = (struct vhost_ubuf_ref *)__cil_tmp62;
 9311#line 187
 9312  return;
 9313}
 9314}
 9315#line 189 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 9316static int vhost_worker(void *data ) 
 9317{ struct vhost_dev *dev ;
 9318  struct vhost_work *work ;
 9319  unsigned int seq ;
 9320  long volatile   __ret ;
 9321  struct task_struct *tmp___8 ;
 9322  struct task_struct *tmp___9 ;
 9323  struct task_struct *tmp___10 ;
 9324  struct task_struct *tmp___11 ;
 9325  struct task_struct *tmp___12 ;
 9326  struct task_struct *tmp___13 ;
 9327  int tmp___14 ;
 9328  struct list_head    *__mptr ;
 9329  int tmp___15 ;
 9330  struct task_struct *tmp___16 ;
 9331  int tmp___17 ;
 9332  void *__cil_tmp18 ;
 9333  unsigned long __cil_tmp19 ;
 9334  unsigned long __cil_tmp20 ;
 9335  struct mm_struct *__cil_tmp21 ;
 9336  unsigned long __cil_tmp22 ;
 9337  unsigned long __cil_tmp23 ;
 9338  spinlock_t *__cil_tmp24 ;
 9339  unsigned long __cil_tmp25 ;
 9340  unsigned long __cil_tmp26 ;
 9341  unsigned long __cil_tmp27 ;
 9342  unsigned long __cil_tmp28 ;
 9343  unsigned long __cil_tmp29 ;
 9344  unsigned long __cil_tmp30 ;
 9345  wait_queue_head_t *__cil_tmp31 ;
 9346  void *__cil_tmp32 ;
 9347  unsigned long __cil_tmp33 ;
 9348  unsigned long __cil_tmp34 ;
 9349  spinlock_t *__cil_tmp35 ;
 9350  unsigned long __cil_tmp36 ;
 9351  unsigned long __cil_tmp37 ;
 9352  struct list_head *__cil_tmp38 ;
 9353  struct list_head    *__cil_tmp39 ;
 9354  void *__cil_tmp40 ;
 9355  unsigned long __cil_tmp41 ;
 9356  unsigned long __cil_tmp42 ;
 9357  struct list_head *__cil_tmp43 ;
 9358  struct vhost_work *__cil_tmp44 ;
 9359  struct list_head *__cil_tmp45 ;
 9360  unsigned int __cil_tmp46 ;
 9361  char *__cil_tmp47 ;
 9362  char *__cil_tmp48 ;
 9363  struct list_head *__cil_tmp49 ;
 9364  unsigned long __cil_tmp50 ;
 9365  unsigned long __cil_tmp51 ;
 9366  unsigned long __cil_tmp52 ;
 9367  unsigned long __cil_tmp53 ;
 9368  spinlock_t *__cil_tmp54 ;
 9369  unsigned long __cil_tmp55 ;
 9370  unsigned long __cil_tmp56 ;
 9371  void (*__cil_tmp57)(struct vhost_work *work ) ;
 9372  unsigned long __cil_tmp58 ;
 9373  unsigned long __cil_tmp59 ;
 9374  struct mm_struct *__cil_tmp60 ;
 9375
 9376  {
 9377  {
 9378#line 191
 9379  dev = (struct vhost_dev *)data;
 9380#line 192
 9381  __cil_tmp18 = (void *)0;
 9382#line 192
 9383  work = (struct vhost_work *)__cil_tmp18;
 9384#line 193
 9385  seq = seq;
 9386#line 195
 9387  __cil_tmp19 = (unsigned long )dev;
 9388#line 195
 9389  __cil_tmp20 = __cil_tmp19 + 8;
 9390#line 195
 9391  __cil_tmp21 = *((struct mm_struct **)__cil_tmp20);
 9392#line 195
 9393  use_mm(__cil_tmp21);
 9394  }
 9395  {
 9396#line 197
 9397  while (1) {
 9398    while_continue: /* CIL Label */ ;
 9399    {
 9400#line 199
 9401    while (1) {
 9402      while_continue___0: /* CIL Label */ ;
 9403#line 199
 9404      __ret = (long volatile   )1;
 9405#line 199
 9406      if ((int )8UL == 1) {
 9407#line 199
 9408        goto case_1;
 9409      } else
 9410#line 199
 9411      if ((int )8UL == 2) {
 9412#line 199
 9413        goto case_2;
 9414      } else
 9415#line 199
 9416      if ((int )8UL == 4) {
 9417#line 199
 9418        goto case_4;
 9419      } else
 9420#line 199
 9421      if ((int )8UL == 8) {
 9422#line 199
 9423        goto case_8;
 9424      } else {
 9425        {
 9426#line 199
 9427        goto switch_default;
 9428#line 199
 9429        if (0) {
 9430          case_1: /* CIL Label */ 
 9431          {
 9432#line 199
 9433          tmp___9 = get_current();
 9434#line 199
 9435          __asm__  volatile   (""
 9436                               "xchg"
 9437                               "b %b0, %1\n": "+q" (__ret), "+m" (*((long volatile   *)tmp___9)): : "memory",
 9438                               "cc");
 9439          }
 9440#line 199
 9441          goto switch_break;
 9442          case_2: /* CIL Label */ 
 9443          {
 9444#line 199
 9445          tmp___10 = get_current();
 9446#line 199
 9447          __asm__  volatile   (""
 9448                               "xchg"
 9449                               "w %w0, %1\n": "+r" (__ret), "+m" (*((long volatile   *)tmp___10)): : "memory",
 9450                               "cc");
 9451          }
 9452#line 199
 9453          goto switch_break;
 9454          case_4: /* CIL Label */ 
 9455          {
 9456#line 199
 9457          tmp___11 = get_current();
 9458#line 199
 9459          __asm__  volatile   (""
 9460                               "xchg"
 9461                               "l %0, %1\n": "+r" (__ret), "+m" (*((long volatile   *)tmp___11)): : "memory",
 9462                               "cc");
 9463          }
 9464#line 199
 9465          goto switch_break;
 9466          case_8: /* CIL Label */ 
 9467          {
 9468#line 199
 9469          tmp___12 = get_current();
 9470#line 199
 9471          __asm__  volatile   (""
 9472                               "xchg"
 9473                               "q %q0, %1\n": "+r" (__ret), "+m" (*((long volatile   *)tmp___12)): : "memory",
 9474                               "cc");
 9475          }
 9476#line 199
 9477          goto switch_break;
 9478          switch_default: /* CIL Label */ 
 9479          {
 9480#line 199
 9481          __xchg_wrong_size();
 9482          }
 9483        } else {
 9484          switch_break: /* CIL Label */ ;
 9485        }
 9486        }
 9487      }
 9488#line 199
 9489      goto while_break___0;
 9490    }
 9491    while_break___0: /* CIL Label */ ;
 9492    }
 9493    {
 9494#line 201
 9495    __cil_tmp22 = (unsigned long )dev;
 9496#line 201
 9497    __cil_tmp23 = __cil_tmp22 + 128;
 9498#line 201
 9499    __cil_tmp24 = (spinlock_t *)__cil_tmp23;
 9500#line 201
 9501    spin_lock_irq(__cil_tmp24);
 9502    }
 9503#line 202
 9504    if (work) {
 9505#line 203
 9506      __cil_tmp25 = (unsigned long )work;
 9507#line 203
 9508      __cil_tmp26 = __cil_tmp25 + 72;
 9509#line 203
 9510      *((unsigned int *)__cil_tmp26) = seq;
 9511      {
 9512#line 204
 9513      __cil_tmp27 = (unsigned long )work;
 9514#line 204
 9515      __cil_tmp28 = __cil_tmp27 + 64;
 9516#line 204
 9517      if (*((int *)__cil_tmp28)) {
 9518        {
 9519#line 205
 9520        __cil_tmp29 = (unsigned long )work;
 9521#line 205
 9522        __cil_tmp30 = __cil_tmp29 + 24;
 9523#line 205
 9524        __cil_tmp31 = (wait_queue_head_t *)__cil_tmp30;
 9525#line 205
 9526        __cil_tmp32 = (void *)0;
 9527#line 205
 9528        __wake_up(__cil_tmp31, 3U, 0, __cil_tmp32);
 9529        }
 9530      } else {
 9531
 9532      }
 9533      }
 9534    } else {
 9535
 9536    }
 9537    {
 9538#line 208
 9539    tmp___14 = kthread_should_stop();
 9540    }
 9541#line 208
 9542    if (tmp___14) {
 9543      {
 9544#line 209
 9545      __cil_tmp33 = (unsigned long )dev;
 9546#line 209
 9547      __cil_tmp34 = __cil_tmp33 + 128;
 9548#line 209
 9549      __cil_tmp35 = (spinlock_t *)__cil_tmp34;
 9550#line 209
 9551      spin_unlock_irq(__cil_tmp35);
 9552      }
 9553      {
 9554#line 210
 9555      while (1) {
 9556        while_continue___1: /* CIL Label */ ;
 9557        {
 9558#line 210
 9559        tmp___13 = get_current();
 9560#line 210
 9561        *((long volatile   *)tmp___13) = (long volatile   )0;
 9562        }
 9563#line 210
 9564        goto while_break___1;
 9565      }
 9566      while_break___1: /* CIL Label */ ;
 9567      }
 9568#line 211
 9569      goto while_break;
 9570    } else {
 9571
 9572    }
 9573    {
 9574#line 213
 9575    __cil_tmp36 = (unsigned long )dev;
 9576#line 213
 9577    __cil_tmp37 = __cil_tmp36 + 152;
 9578#line 213
 9579    __cil_tmp38 = (struct list_head *)__cil_tmp37;
 9580#line 213
 9581    __cil_tmp39 = (struct list_head    *)__cil_tmp38;
 9582#line 213
 9583    tmp___15 = list_empty(__cil_tmp39);
 9584    }
 9585#line 213
 9586    if (tmp___15) {
 9587#line 219
 9588      __cil_tmp40 = (void *)0;
 9589#line 219
 9590      work = (struct vhost_work *)__cil_tmp40;
 9591    } else {
 9592      {
 9593#line 214
 9594      __cil_tmp41 = (unsigned long )dev;
 9595#line 214
 9596      __cil_tmp42 = __cil_tmp41 + 152;
 9597#line 214
 9598      __cil_tmp43 = *((struct list_head **)__cil_tmp42);
 9599#line 214
 9600      __mptr = (struct list_head    *)__cil_tmp43;
 9601#line 214
 9602      __cil_tmp44 = (struct vhost_work *)0;
 9603#line 214
 9604      __cil_tmp45 = (struct list_head *)__cil_tmp44;
 9605#line 214
 9606      __cil_tmp46 = (unsigned int )__cil_tmp45;
 9607#line 214
 9608      __cil_tmp47 = (char *)__mptr;
 9609#line 214
 9610      __cil_tmp48 = __cil_tmp47 - __cil_tmp46;
 9611#line 214
 9612      work = (struct vhost_work *)__cil_tmp48;
 9613#line 216
 9614      __cil_tmp49 = (struct list_head *)work;
 9615#line 216
 9616      list_del_init(__cil_tmp49);
 9617#line 217
 9618      __cil_tmp50 = (unsigned long )work;
 9619#line 217
 9620      __cil_tmp51 = __cil_tmp50 + 68;
 9621#line 217
 9622      seq = *((unsigned int *)__cil_tmp51);
 9623      }
 9624    }
 9625    {
 9626#line 220
 9627    __cil_tmp52 = (unsigned long )dev;
 9628#line 220
 9629    __cil_tmp53 = __cil_tmp52 + 128;
 9630#line 220
 9631    __cil_tmp54 = (spinlock_t *)__cil_tmp53;
 9632#line 220
 9633    spin_unlock_irq(__cil_tmp54);
 9634    }
 9635#line 222
 9636    if (work) {
 9637      {
 9638#line 223
 9639      while (1) {
 9640        while_continue___2: /* CIL Label */ ;
 9641        {
 9642#line 223
 9643        tmp___16 = get_current();
 9644#line 223
 9645        *((long volatile   *)tmp___16) = (long volatile   )0;
 9646        }
 9647#line 223
 9648        goto while_break___2;
 9649      }
 9650      while_break___2: /* CIL Label */ ;
 9651      }
 9652      {
 9653#line 224
 9654      __cil_tmp55 = (unsigned long )work;
 9655#line 224
 9656      __cil_tmp56 = __cil_tmp55 + 16;
 9657#line 224
 9658      __cil_tmp57 = *((void (**)(struct vhost_work *work ))__cil_tmp56);
 9659#line 224
 9660      (*__cil_tmp57)(work);
 9661#line 225
 9662      tmp___17 = need_resched();
 9663      }
 9664#line 225
 9665      if (tmp___17) {
 9666        {
 9667#line 226
 9668        schedule();
 9669        }
 9670      } else {
 9671
 9672      }
 9673    } else {
 9674      {
 9675#line 228
 9676      schedule();
 9677      }
 9678    }
 9679  }
 9680  while_break: /* CIL Label */ ;
 9681  }
 9682  {
 9683#line 231
 9684  __cil_tmp58 = (unsigned long )dev;
 9685#line 231
 9686  __cil_tmp59 = __cil_tmp58 + 8;
 9687#line 231
 9688  __cil_tmp60 = *((struct mm_struct **)__cil_tmp59);
 9689#line 231
 9690  unuse_mm(__cil_tmp60);
 9691  }
 9692#line 232
 9693  return (0);
 9694}
 9695}
 9696#line 235 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 9697static void vhost_vq_free_iovecs(struct vhost_virtqueue *vq ) 
 9698{ unsigned long __cil_tmp2 ;
 9699  unsigned long __cil_tmp3 ;
 9700  struct iovec *__cil_tmp4 ;
 9701  void    *__cil_tmp5 ;
 9702  unsigned long __cil_tmp6 ;
 9703  unsigned long __cil_tmp7 ;
 9704  void *__cil_tmp8 ;
 9705  unsigned long __cil_tmp9 ;
 9706  unsigned long __cil_tmp10 ;
 9707  struct vhost_log *__cil_tmp11 ;
 9708  void    *__cil_tmp12 ;
 9709  unsigned long __cil_tmp13 ;
 9710  unsigned long __cil_tmp14 ;
 9711  void *__cil_tmp15 ;
 9712  unsigned long __cil_tmp16 ;
 9713  unsigned long __cil_tmp17 ;
 9714  struct vring_used_elem *__cil_tmp18 ;
 9715  void    *__cil_tmp19 ;
 9716  unsigned long __cil_tmp20 ;
 9717  unsigned long __cil_tmp21 ;
 9718  void *__cil_tmp22 ;
 9719  unsigned long __cil_tmp23 ;
 9720  unsigned long __cil_tmp24 ;
 9721  struct ubuf_info *__cil_tmp25 ;
 9722  void    *__cil_tmp26 ;
 9723  unsigned long __cil_tmp27 ;
 9724  unsigned long __cil_tmp28 ;
 9725  void *__cil_tmp29 ;
 9726
 9727  {
 9728  {
 9729#line 237
 9730  __cil_tmp2 = (unsigned long )vq;
 9731#line 237
 9732  __cil_tmp3 = __cil_tmp2 + 16928;
 9733#line 237
 9734  __cil_tmp4 = *((struct iovec **)__cil_tmp3);
 9735#line 237
 9736  __cil_tmp5 = (void    *)__cil_tmp4;
 9737#line 237
 9738  kfree(__cil_tmp5);
 9739#line 238
 9740  __cil_tmp6 = (unsigned long )vq;
 9741#line 238
 9742  __cil_tmp7 = __cil_tmp6 + 16928;
 9743#line 238
 9744  __cil_tmp8 = (void *)0;
 9745#line 238
 9746  *((struct iovec **)__cil_tmp7) = (struct iovec *)__cil_tmp8;
 9747#line 239
 9748  __cil_tmp9 = (unsigned long )vq;
 9749#line 239
 9750  __cil_tmp10 = __cil_tmp9 + 16976;
 9751#line 239
 9752  __cil_tmp11 = *((struct vhost_log **)__cil_tmp10);
 9753#line 239
 9754  __cil_tmp12 = (void    *)__cil_tmp11;
 9755#line 239
 9756  kfree(__cil_tmp12);
 9757#line 240
 9758  __cil_tmp13 = (unsigned long )vq;
 9759#line 240
 9760  __cil_tmp14 = __cil_tmp13 + 16976;
 9761#line 240
 9762  __cil_tmp15 = (void *)0;
 9763#line 240
 9764  *((struct vhost_log **)__cil_tmp14) = (struct vhost_log *)__cil_tmp15;
 9765#line 241
 9766  __cil_tmp16 = (unsigned long )vq;
 9767#line 241
 9768  __cil_tmp17 = __cil_tmp16 + 16952;
 9769#line 241
 9770  __cil_tmp18 = *((struct vring_used_elem **)__cil_tmp17);
 9771#line 241
 9772  __cil_tmp19 = (void    *)__cil_tmp18;
 9773#line 241
 9774  kfree(__cil_tmp19);
 9775#line 242
 9776  __cil_tmp20 = (unsigned long )vq;
 9777#line 242
 9778  __cil_tmp21 = __cil_tmp20 + 16952;
 9779#line 242
 9780  __cil_tmp22 = (void *)0;
 9781#line 242
 9782  *((struct vring_used_elem **)__cil_tmp21) = (struct vring_used_elem *)__cil_tmp22;
 9783#line 243
 9784  __cil_tmp23 = (unsigned long )vq;
 9785#line 243
 9786  __cil_tmp24 = __cil_tmp23 + 16992;
 9787#line 243
 9788  __cil_tmp25 = *((struct ubuf_info **)__cil_tmp24);
 9789#line 243
 9790  __cil_tmp26 = (void    *)__cil_tmp25;
 9791#line 243
 9792  kfree(__cil_tmp26);
 9793#line 244
 9794  __cil_tmp27 = (unsigned long )vq;
 9795#line 244
 9796  __cil_tmp28 = __cil_tmp27 + 16992;
 9797#line 244
 9798  __cil_tmp29 = (void *)0;
 9799#line 244
 9800  *((struct ubuf_info **)__cil_tmp28) = (struct ubuf_info *)__cil_tmp29;
 9801  }
 9802#line 245
 9803  return;
 9804}
 9805}
 9806#line 247 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 9807void vhost_enable_zcopy(int vq ) 
 9808{ int __cil_tmp2 ;
 9809  unsigned int __cil_tmp3 ;
 9810
 9811  {
 9812#line 249
 9813  __cil_tmp2 = 1 << vq;
 9814#line 249
 9815  __cil_tmp3 = (unsigned int )__cil_tmp2;
 9816#line 249
 9817  vhost_zcopy_mask = vhost_zcopy_mask | __cil_tmp3;
 9818#line 250
 9819  return;
 9820}
 9821}
 9822#line 253 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
 9823static long vhost_dev_alloc_iovecs(struct vhost_dev *dev ) 
 9824{ int i ;
 9825  bool zcopy ;
 9826  void *tmp___7 ;
 9827  void *tmp___8 ;
 9828  void *tmp___9 ;
 9829  void *tmp___10 ;
 9830  unsigned long __cil_tmp8 ;
 9831  unsigned long __cil_tmp9 ;
 9832  int __cil_tmp10 ;
 9833  unsigned long __cil_tmp11 ;
 9834  unsigned long __cil_tmp12 ;
 9835  unsigned long __cil_tmp13 ;
 9836  struct vhost_virtqueue *__cil_tmp14 ;
 9837  struct vhost_virtqueue *__cil_tmp15 ;
 9838  unsigned long __cil_tmp16 ;
 9839  unsigned long __cil_tmp17 ;
 9840  unsigned long __cil_tmp18 ;
 9841  unsigned long __cil_tmp19 ;
 9842  unsigned long __cil_tmp20 ;
 9843  struct vhost_virtqueue *__cil_tmp21 ;
 9844  struct vhost_virtqueue *__cil_tmp22 ;
 9845  unsigned long __cil_tmp23 ;
 9846  unsigned long __cil_tmp24 ;
 9847  unsigned long __cil_tmp25 ;
 9848  unsigned long __cil_tmp26 ;
 9849  unsigned long __cil_tmp27 ;
 9850  struct vhost_virtqueue *__cil_tmp28 ;
 9851  struct vhost_virtqueue *__cil_tmp29 ;
 9852  unsigned long __cil_tmp30 ;
 9853  unsigned long __cil_tmp31 ;
 9854  int __cil_tmp32 ;
 9855  unsigned int __cil_tmp33 ;
 9856  unsigned int __cil_tmp34 ;
 9857  unsigned long __cil_tmp35 ;
 9858  unsigned long __cil_tmp36 ;
 9859  unsigned long __cil_tmp37 ;
 9860  struct vhost_virtqueue *__cil_tmp38 ;
 9861  struct vhost_virtqueue *__cil_tmp39 ;
 9862  unsigned long __cil_tmp40 ;
 9863  unsigned long __cil_tmp41 ;
 9864  unsigned long __cil_tmp42 ;
 9865  unsigned long __cil_tmp43 ;
 9866  struct vhost_virtqueue *__cil_tmp44 ;
 9867  struct vhost_virtqueue *__cil_tmp45 ;
 9868  unsigned long __cil_tmp46 ;
 9869  unsigned long __cil_tmp47 ;
 9870  struct iovec *__cil_tmp48 ;
 9871  unsigned long __cil_tmp49 ;
 9872  unsigned long __cil_tmp50 ;
 9873  struct vhost_virtqueue *__cil_tmp51 ;
 9874  struct vhost_virtqueue *__cil_tmp52 ;
 9875  unsigned long __cil_tmp53 ;
 9876  unsigned long __cil_tmp54 ;
 9877  struct vhost_log *__cil_tmp55 ;
 9878  unsigned long __cil_tmp56 ;
 9879  unsigned long __cil_tmp57 ;
 9880  struct vhost_virtqueue *__cil_tmp58 ;
 9881  struct vhost_virtqueue *__cil_tmp59 ;
 9882  unsigned long __cil_tmp60 ;
 9883  unsigned long __cil_tmp61 ;
 9884  struct vring_used_elem *__cil_tmp62 ;
 9885  unsigned long __cil_tmp63 ;
 9886  unsigned long __cil_tmp64 ;
 9887  struct vhost_virtqueue *__cil_tmp65 ;
 9888  struct vhost_virtqueue *__cil_tmp66 ;
 9889  unsigned long __cil_tmp67 ;
 9890  unsigned long __cil_tmp68 ;
 9891  struct ubuf_info *__cil_tmp69 ;
 9892  unsigned long __cil_tmp70 ;
 9893  unsigned long __cil_tmp71 ;
 9894  struct vhost_virtqueue *__cil_tmp72 ;
 9895  struct vhost_virtqueue *__cil_tmp73 ;
 9896
 9897  {
 9898#line 258
 9899  i = 0;
 9900  {
 9901#line 258
 9902  while (1) {
 9903    while_continue: /* CIL Label */ ;
 9904    {
 9905#line 258
 9906    __cil_tmp8 = (unsigned long )dev;
 9907#line 258
 9908    __cil_tmp9 = __cil_tmp8 + 104;
 9909#line 258
 9910    __cil_tmp10 = *((int *)__cil_tmp9);
 9911#line 258
 9912    if (i < __cil_tmp10) {
 9913
 9914    } else {
 9915#line 258
 9916      goto while_break;
 9917    }
 9918    }
 9919    {
 9920#line 259
 9921    __cil_tmp11 = 16UL * 1024UL;
 9922#line 259
 9923    tmp___7 = kmalloc(__cil_tmp11, 208U);
 9924#line 259
 9925    __cil_tmp12 = (unsigned long )dev;
 9926#line 259
 9927    __cil_tmp13 = __cil_tmp12 + 96;
 9928#line 259
 9929    __cil_tmp14 = *((struct vhost_virtqueue **)__cil_tmp13);
 9930#line 259
 9931    __cil_tmp15 = __cil_tmp14 + i;
 9932#line 259
 9933    __cil_tmp16 = (unsigned long )__cil_tmp15;
 9934#line 259
 9935    __cil_tmp17 = __cil_tmp16 + 16928;
 9936#line 259
 9937    *((struct iovec **)__cil_tmp17) = (struct iovec *)tmp___7;
 9938#line 261
 9939    __cil_tmp18 = 16UL * 1024UL;
 9940#line 261
 9941    tmp___8 = kmalloc(__cil_tmp18, 208U);
 9942#line 261
 9943    __cil_tmp19 = (unsigned long )dev;
 9944#line 261
 9945    __cil_tmp20 = __cil_tmp19 + 96;
 9946#line 261
 9947    __cil_tmp21 = *((struct vhost_virtqueue **)__cil_tmp20);
 9948#line 261
 9949    __cil_tmp22 = __cil_tmp21 + i;
 9950#line 261
 9951    __cil_tmp23 = (unsigned long )__cil_tmp22;
 9952#line 261
 9953    __cil_tmp24 = __cil_tmp23 + 16976;
 9954#line 261
 9955    *((struct vhost_log **)__cil_tmp24) = (struct vhost_log *)tmp___8;
 9956#line 263
 9957    __cil_tmp25 = 8UL * 1024UL;
 9958#line 263
 9959    tmp___9 = kmalloc(__cil_tmp25, 208U);
 9960#line 263
 9961    __cil_tmp26 = (unsigned long )dev;
 9962#line 263
 9963    __cil_tmp27 = __cil_tmp26 + 96;
 9964#line 263
 9965    __cil_tmp28 = *((struct vhost_virtqueue **)__cil_tmp27);
 9966#line 263
 9967    __cil_tmp29 = __cil_tmp28 + i;
 9968#line 263
 9969    __cil_tmp30 = (unsigned long )__cil_tmp29;
 9970#line 263
 9971    __cil_tmp31 = __cil_tmp30 + 16952;
 9972#line 263
 9973    *((struct vring_used_elem **)__cil_tmp31) = (struct vring_used_elem *)tmp___9;
 9974#line 265
 9975    __cil_tmp32 = 1 << i;
 9976#line 265
 9977    __cil_tmp33 = (unsigned int )__cil_tmp32;
 9978#line 265
 9979    __cil_tmp34 = vhost_zcopy_mask & __cil_tmp33;
 9980#line 265
 9981    zcopy = (bool )__cil_tmp34;
 9982    }
 9983#line 266
 9984    if (zcopy) {
 9985      {
 9986#line 267
 9987      __cil_tmp35 = 24UL * 1024UL;
 9988#line 267
 9989      tmp___10 = kmalloc(__cil_tmp35, 208U);
 9990#line 267
 9991      __cil_tmp36 = (unsigned long )dev;
 9992#line 267
 9993      __cil_tmp37 = __cil_tmp36 + 96;
 9994#line 267
 9995      __cil_tmp38 = *((struct vhost_virtqueue **)__cil_tmp37);
 9996#line 267
 9997      __cil_tmp39 = __cil_tmp38 + i;
 9998#line 267
 9999      __cil_tmp40 = (unsigned long )__cil_tmp39;
10000#line 267
10001      __cil_tmp41 = __cil_tmp40 + 16992;
10002#line 267
10003      *((struct ubuf_info **)__cil_tmp41) = (struct ubuf_info *)tmp___10;
10004      }
10005    } else {
10006
10007    }
10008    {
10009#line 270
10010    __cil_tmp42 = (unsigned long )dev;
10011#line 270
10012    __cil_tmp43 = __cil_tmp42 + 96;
10013#line 270
10014    __cil_tmp44 = *((struct vhost_virtqueue **)__cil_tmp43);
10015#line 270
10016    __cil_tmp45 = __cil_tmp44 + i;
10017#line 270
10018    __cil_tmp46 = (unsigned long )__cil_tmp45;
10019#line 270
10020    __cil_tmp47 = __cil_tmp46 + 16928;
10021#line 270
10022    __cil_tmp48 = *((struct iovec **)__cil_tmp47);
10023#line 270
10024    if (! __cil_tmp48) {
10025#line 273
10026      goto err_nomem;
10027    } else {
10028      {
10029#line 270
10030      __cil_tmp49 = (unsigned long )dev;
10031#line 270
10032      __cil_tmp50 = __cil_tmp49 + 96;
10033#line 270
10034      __cil_tmp51 = *((struct vhost_virtqueue **)__cil_tmp50);
10035#line 270
10036      __cil_tmp52 = __cil_tmp51 + i;
10037#line 270
10038      __cil_tmp53 = (unsigned long )__cil_tmp52;
10039#line 270
10040      __cil_tmp54 = __cil_tmp53 + 16976;
10041#line 270
10042      __cil_tmp55 = *((struct vhost_log **)__cil_tmp54);
10043#line 270
10044      if (! __cil_tmp55) {
10045#line 273
10046        goto err_nomem;
10047      } else {
10048        {
10049#line 270
10050        __cil_tmp56 = (unsigned long )dev;
10051#line 270
10052        __cil_tmp57 = __cil_tmp56 + 96;
10053#line 270
10054        __cil_tmp58 = *((struct vhost_virtqueue **)__cil_tmp57);
10055#line 270
10056        __cil_tmp59 = __cil_tmp58 + i;
10057#line 270
10058        __cil_tmp60 = (unsigned long )__cil_tmp59;
10059#line 270
10060        __cil_tmp61 = __cil_tmp60 + 16952;
10061#line 270
10062        __cil_tmp62 = *((struct vring_used_elem **)__cil_tmp61);
10063#line 270
10064        if (! __cil_tmp62) {
10065#line 273
10066          goto err_nomem;
10067        } else
10068#line 270
10069        if (zcopy) {
10070          {
10071#line 270
10072          __cil_tmp63 = (unsigned long )dev;
10073#line 270
10074          __cil_tmp64 = __cil_tmp63 + 96;
10075#line 270
10076          __cil_tmp65 = *((struct vhost_virtqueue **)__cil_tmp64);
10077#line 270
10078          __cil_tmp66 = __cil_tmp65 + i;
10079#line 270
10080          __cil_tmp67 = (unsigned long )__cil_tmp66;
10081#line 270
10082          __cil_tmp68 = __cil_tmp67 + 16992;
10083#line 270
10084          __cil_tmp69 = *((struct ubuf_info **)__cil_tmp68);
10085#line 270
10086          if (! __cil_tmp69) {
10087#line 273
10088            goto err_nomem;
10089          } else {
10090
10091          }
10092          }
10093        } else {
10094
10095        }
10096        }
10097      }
10098      }
10099    }
10100    }
10101#line 258
10102    i = i + 1;
10103  }
10104  while_break: /* CIL Label */ ;
10105  }
10106#line 275
10107  return (0L);
10108  err_nomem: 
10109  {
10110#line 278
10111  while (1) {
10112    while_continue___0: /* CIL Label */ ;
10113#line 278
10114    if (i >= 0) {
10115
10116    } else {
10117#line 278
10118      goto while_break___0;
10119    }
10120    {
10121#line 279
10122    __cil_tmp70 = (unsigned long )dev;
10123#line 279
10124    __cil_tmp71 = __cil_tmp70 + 96;
10125#line 279
10126    __cil_tmp72 = *((struct vhost_virtqueue **)__cil_tmp71);
10127#line 279
10128    __cil_tmp73 = __cil_tmp72 + i;
10129#line 279
10130    vhost_vq_free_iovecs(__cil_tmp73);
10131#line 278
10132    i = i - 1;
10133    }
10134  }
10135  while_break___0: /* CIL Label */ ;
10136  }
10137#line 280
10138  return (-12L);
10139}
10140}
10141#line 283 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
10142static void vhost_dev_free_iovecs(struct vhost_dev *dev ) 
10143{ int i ;
10144  unsigned long __cil_tmp3 ;
10145  unsigned long __cil_tmp4 ;
10146  int __cil_tmp5 ;
10147  unsigned long __cil_tmp6 ;
10148  unsigned long __cil_tmp7 ;
10149  struct vhost_virtqueue *__cil_tmp8 ;
10150  struct vhost_virtqueue *__cil_tmp9 ;
10151
10152  {
10153#line 287
10154  i = 0;
10155  {
10156#line 287
10157  while (1) {
10158    while_continue: /* CIL Label */ ;
10159    {
10160#line 287
10161    __cil_tmp3 = (unsigned long )dev;
10162#line 287
10163    __cil_tmp4 = __cil_tmp3 + 104;
10164#line 287
10165    __cil_tmp5 = *((int *)__cil_tmp4);
10166#line 287
10167    if (i < __cil_tmp5) {
10168
10169    } else {
10170#line 287
10171      goto while_break;
10172    }
10173    }
10174    {
10175#line 288
10176    __cil_tmp6 = (unsigned long )dev;
10177#line 288
10178    __cil_tmp7 = __cil_tmp6 + 96;
10179#line 288
10180    __cil_tmp8 = *((struct vhost_virtqueue **)__cil_tmp7);
10181#line 288
10182    __cil_tmp9 = __cil_tmp8 + i;
10183#line 288
10184    vhost_vq_free_iovecs(__cil_tmp9);
10185#line 287
10186    i = i + 1;
10187    }
10188  }
10189  while_break: /* CIL Label */ ;
10190  }
10191#line 289
10192  return;
10193}
10194}
10195#line 298 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
10196static struct lock_class_key __key___7  ;
10197#line 303 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
10198static struct lock_class_key __key___8  ;
10199#line 313 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
10200static struct lock_class_key __key___9  ;
10201#line 291 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
10202long vhost_dev_init(struct vhost_dev *dev , struct vhost_virtqueue *vqs , int nvqs ) 
10203{ int i ;
10204  unsigned long __cil_tmp5 ;
10205  unsigned long __cil_tmp6 ;
10206  unsigned long __cil_tmp7 ;
10207  unsigned long __cil_tmp8 ;
10208  unsigned long __cil_tmp9 ;
10209  unsigned long __cil_tmp10 ;
10210  struct mutex *__cil_tmp11 ;
10211  unsigned long __cil_tmp12 ;
10212  unsigned long __cil_tmp13 ;
10213  void *__cil_tmp14 ;
10214  unsigned long __cil_tmp15 ;
10215  unsigned long __cil_tmp16 ;
10216  void *__cil_tmp17 ;
10217  void *__cil_tmp18 ;
10218  unsigned long __cil_tmp19 ;
10219  unsigned long __cil_tmp20 ;
10220  void *__cil_tmp21 ;
10221  unsigned long __cil_tmp22 ;
10222  unsigned long __cil_tmp23 ;
10223  spinlock_t *__cil_tmp24 ;
10224  unsigned long __cil_tmp25 ;
10225  unsigned long __cil_tmp26 ;
10226  struct raw_spinlock *__cil_tmp27 ;
10227  unsigned long __cil_tmp28 ;
10228  unsigned long __cil_tmp29 ;
10229  struct list_head *__cil_tmp30 ;
10230  unsigned long __cil_tmp31 ;
10231  unsigned long __cil_tmp32 ;
10232  void *__cil_tmp33 ;
10233  unsigned long __cil_tmp34 ;
10234  unsigned long __cil_tmp35 ;
10235  int __cil_tmp36 ;
10236  unsigned long __cil_tmp37 ;
10237  unsigned long __cil_tmp38 ;
10238  struct vhost_virtqueue *__cil_tmp39 ;
10239  struct vhost_virtqueue *__cil_tmp40 ;
10240  unsigned long __cil_tmp41 ;
10241  unsigned long __cil_tmp42 ;
10242  void *__cil_tmp43 ;
10243  unsigned long __cil_tmp44 ;
10244  unsigned long __cil_tmp45 ;
10245  struct vhost_virtqueue *__cil_tmp46 ;
10246  struct vhost_virtqueue *__cil_tmp47 ;
10247  unsigned long __cil_tmp48 ;
10248  unsigned long __cil_tmp49 ;
10249  void *__cil_tmp50 ;
10250  unsigned long __cil_tmp51 ;
10251  unsigned long __cil_tmp52 ;
10252  struct vhost_virtqueue *__cil_tmp53 ;
10253  struct vhost_virtqueue *__cil_tmp54 ;
10254  unsigned long __cil_tmp55 ;
10255  unsigned long __cil_tmp56 ;
10256  void *__cil_tmp57 ;
10257  unsigned long __cil_tmp58 ;
10258  unsigned long __cil_tmp59 ;
10259  struct vhost_virtqueue *__cil_tmp60 ;
10260  struct vhost_virtqueue *__cil_tmp61 ;
10261  unsigned long __cil_tmp62 ;
10262  unsigned long __cil_tmp63 ;
10263  void *__cil_tmp64 ;
10264  unsigned long __cil_tmp65 ;
10265  unsigned long __cil_tmp66 ;
10266  struct vhost_virtqueue *__cil_tmp67 ;
10267  struct vhost_virtqueue *__cil_tmp68 ;
10268  unsigned long __cil_tmp69 ;
10269  unsigned long __cil_tmp70 ;
10270  struct vhost_virtqueue *__cil_tmp71 ;
10271  struct vhost_virtqueue *__cil_tmp72 ;
10272  unsigned long __cil_tmp73 ;
10273  unsigned long __cil_tmp74 ;
10274  struct mutex *__cil_tmp75 ;
10275  unsigned long __cil_tmp76 ;
10276  unsigned long __cil_tmp77 ;
10277  struct vhost_virtqueue *__cil_tmp78 ;
10278  struct vhost_virtqueue *__cil_tmp79 ;
10279  unsigned long __cil_tmp80 ;
10280  unsigned long __cil_tmp81 ;
10281  struct vhost_virtqueue *__cil_tmp82 ;
10282  struct vhost_virtqueue *__cil_tmp83 ;
10283  unsigned long __cil_tmp84 ;
10284  unsigned long __cil_tmp85 ;
10285  unsigned long __cil_tmp86 ;
10286  unsigned long __cil_tmp87 ;
10287  struct vhost_virtqueue *__cil_tmp88 ;
10288  struct vhost_virtqueue *__cil_tmp89 ;
10289  unsigned long __cil_tmp90 ;
10290  unsigned long __cil_tmp91 ;
10291  struct vhost_poll *__cil_tmp92 ;
10292  unsigned long __cil_tmp93 ;
10293  unsigned long __cil_tmp94 ;
10294  struct vhost_virtqueue *__cil_tmp95 ;
10295  struct vhost_virtqueue *__cil_tmp96 ;
10296  unsigned long __cil_tmp97 ;
10297  unsigned long __cil_tmp98 ;
10298  void (*__cil_tmp99)(struct vhost_work *work ) ;
10299
10300  {
10301#line 296
10302  __cil_tmp5 = (unsigned long )dev;
10303#line 296
10304  __cil_tmp6 = __cil_tmp5 + 96;
10305#line 296
10306  *((struct vhost_virtqueue **)__cil_tmp6) = vqs;
10307#line 297
10308  __cil_tmp7 = (unsigned long )dev;
10309#line 297
10310  __cil_tmp8 = __cil_tmp7 + 104;
10311#line 297
10312  *((int *)__cil_tmp8) = nvqs;
10313  {
10314#line 298
10315  while (1) {
10316    while_continue: /* CIL Label */ ;
10317    {
10318#line 298
10319    __cil_tmp9 = (unsigned long )dev;
10320#line 298
10321    __cil_tmp10 = __cil_tmp9 + 16;
10322#line 298
10323    __cil_tmp11 = (struct mutex *)__cil_tmp10;
10324#line 298
10325    __mutex_init(__cil_tmp11, "&dev->mutex", & __key___7);
10326    }
10327#line 298
10328    goto while_break;
10329  }
10330  while_break: /* CIL Label */ ;
10331  }
10332#line 299
10333  __cil_tmp12 = (unsigned long )dev;
10334#line 299
10335  __cil_tmp13 = __cil_tmp12 + 120;
10336#line 299
10337  __cil_tmp14 = (void *)0;
10338#line 299
10339  *((struct eventfd_ctx **)__cil_tmp13) = (struct eventfd_ctx *)__cil_tmp14;
10340#line 300
10341  __cil_tmp15 = (unsigned long )dev;
10342#line 300
10343  __cil_tmp16 = __cil_tmp15 + 112;
10344#line 300
10345  __cil_tmp17 = (void *)0;
10346#line 300
10347  *((struct file **)__cil_tmp16) = (struct file *)__cil_tmp17;
10348#line 301
10349  __cil_tmp18 = (void *)0;
10350#line 301
10351  *((struct vhost_memory **)dev) = (struct vhost_memory *)__cil_tmp18;
10352#line 302
10353  __cil_tmp19 = (unsigned long )dev;
10354#line 302
10355  __cil_tmp20 = __cil_tmp19 + 8;
10356#line 302
10357  __cil_tmp21 = (void *)0;
10358#line 302
10359  *((struct mm_struct **)__cil_tmp20) = (struct mm_struct *)__cil_tmp21;
10360  {
10361#line 303
10362  while (1) {
10363    while_continue___0: /* CIL Label */ ;
10364    {
10365#line 303
10366    __cil_tmp22 = (unsigned long )dev;
10367#line 303
10368    __cil_tmp23 = __cil_tmp22 + 128;
10369#line 303
10370    __cil_tmp24 = (spinlock_t *)__cil_tmp23;
10371#line 303
10372    spinlock_check(__cil_tmp24);
10373    }
10374    {
10375#line 303
10376    while (1) {
10377      while_continue___1: /* CIL Label */ ;
10378      {
10379#line 303
10380      __cil_tmp25 = (unsigned long )dev;
10381#line 303
10382      __cil_tmp26 = __cil_tmp25 + 128;
10383#line 303
10384      __cil_tmp27 = (struct raw_spinlock *)__cil_tmp26;
10385#line 303
10386      __raw_spin_lock_init(__cil_tmp27, "&(&dev->work_lock)->rlock", & __key___8);
10387      }
10388#line 303
10389      goto while_break___1;
10390    }
10391    while_break___1: /* CIL Label */ ;
10392    }
10393#line 303
10394    goto while_break___0;
10395  }
10396  while_break___0: /* CIL Label */ ;
10397  }
10398  {
10399#line 304
10400  __cil_tmp28 = (unsigned long )dev;
10401#line 304
10402  __cil_tmp29 = __cil_tmp28 + 152;
10403#line 304
10404  __cil_tmp30 = (struct list_head *)__cil_tmp29;
10405#line 304
10406  INIT_LIST_HEAD(__cil_tmp30);
10407#line 305
10408  __cil_tmp31 = (unsigned long )dev;
10409#line 305
10410  __cil_tmp32 = __cil_tmp31 + 168;
10411#line 305
10412  __cil_tmp33 = (void *)0;
10413#line 305
10414  *((struct task_struct **)__cil_tmp32) = (struct task_struct *)__cil_tmp33;
10415#line 307
10416  i = 0;
10417  }
10418  {
10419#line 307
10420  while (1) {
10421    while_continue___2: /* CIL Label */ ;
10422    {
10423#line 307
10424    __cil_tmp34 = (unsigned long )dev;
10425#line 307
10426    __cil_tmp35 = __cil_tmp34 + 104;
10427#line 307
10428    __cil_tmp36 = *((int *)__cil_tmp35);
10429#line 307
10430    if (i < __cil_tmp36) {
10431
10432    } else {
10433#line 307
10434      goto while_break___2;
10435    }
10436    }
10437#line 308
10438    __cil_tmp37 = (unsigned long )dev;
10439#line 308
10440    __cil_tmp38 = __cil_tmp37 + 96;
10441#line 308
10442    __cil_tmp39 = *((struct vhost_virtqueue **)__cil_tmp38);
10443#line 308
10444    __cil_tmp40 = __cil_tmp39 + i;
10445#line 308
10446    __cil_tmp41 = (unsigned long )__cil_tmp40;
10447#line 308
10448    __cil_tmp42 = __cil_tmp41 + 16976;
10449#line 308
10450    __cil_tmp43 = (void *)0;
10451#line 308
10452    *((struct vhost_log **)__cil_tmp42) = (struct vhost_log *)__cil_tmp43;
10453#line 309
10454    __cil_tmp44 = (unsigned long )dev;
10455#line 309
10456    __cil_tmp45 = __cil_tmp44 + 96;
10457#line 309
10458    __cil_tmp46 = *((struct vhost_virtqueue **)__cil_tmp45);
10459#line 309
10460    __cil_tmp47 = __cil_tmp46 + i;
10461#line 309
10462    __cil_tmp48 = (unsigned long )__cil_tmp47;
10463#line 309
10464    __cil_tmp49 = __cil_tmp48 + 16928;
10465#line 309
10466    __cil_tmp50 = (void *)0;
10467#line 309
10468    *((struct iovec **)__cil_tmp49) = (struct iovec *)__cil_tmp50;
10469#line 310
10470    __cil_tmp51 = (unsigned long )dev;
10471#line 310
10472    __cil_tmp52 = __cil_tmp51 + 96;
10473#line 310
10474    __cil_tmp53 = *((struct vhost_virtqueue **)__cil_tmp52);
10475#line 310
10476    __cil_tmp54 = __cil_tmp53 + i;
10477#line 310
10478    __cil_tmp55 = (unsigned long )__cil_tmp54;
10479#line 310
10480    __cil_tmp56 = __cil_tmp55 + 16952;
10481#line 310
10482    __cil_tmp57 = (void *)0;
10483#line 310
10484    *((struct vring_used_elem **)__cil_tmp56) = (struct vring_used_elem *)__cil_tmp57;
10485#line 311
10486    __cil_tmp58 = (unsigned long )dev;
10487#line 311
10488    __cil_tmp59 = __cil_tmp58 + 96;
10489#line 311
10490    __cil_tmp60 = *((struct vhost_virtqueue **)__cil_tmp59);
10491#line 311
10492    __cil_tmp61 = __cil_tmp60 + i;
10493#line 311
10494    __cil_tmp62 = (unsigned long )__cil_tmp61;
10495#line 311
10496    __cil_tmp63 = __cil_tmp62 + 16992;
10497#line 311
10498    __cil_tmp64 = (void *)0;
10499#line 311
10500    *((struct ubuf_info **)__cil_tmp63) = (struct ubuf_info *)__cil_tmp64;
10501#line 312
10502    __cil_tmp65 = (unsigned long )dev;
10503#line 312
10504    __cil_tmp66 = __cil_tmp65 + 96;
10505#line 312
10506    __cil_tmp67 = *((struct vhost_virtqueue **)__cil_tmp66);
10507#line 312
10508    __cil_tmp68 = __cil_tmp67 + i;
10509#line 312
10510    *((struct vhost_dev **)__cil_tmp68) = dev;
10511    {
10512#line 313
10513    while (1) {
10514      while_continue___3: /* CIL Label */ ;
10515      {
10516#line 313
10517      __cil_tmp69 = (unsigned long )dev;
10518#line 313
10519      __cil_tmp70 = __cil_tmp69 + 96;
10520#line 313
10521      __cil_tmp71 = *((struct vhost_virtqueue **)__cil_tmp70);
10522#line 313
10523      __cil_tmp72 = __cil_tmp71 + i;
10524#line 313
10525      __cil_tmp73 = (unsigned long )__cil_tmp72;
10526#line 313
10527      __cil_tmp74 = __cil_tmp73 + 8;
10528#line 313
10529      __cil_tmp75 = (struct mutex *)__cil_tmp74;
10530#line 313
10531      __mutex_init(__cil_tmp75, "&dev->vqs[i].mutex", & __key___9);
10532      }
10533#line 313
10534      goto while_break___3;
10535    }
10536    while_break___3: /* CIL Label */ ;
10537    }
10538    {
10539#line 314
10540    __cil_tmp76 = (unsigned long )dev;
10541#line 314
10542    __cil_tmp77 = __cil_tmp76 + 96;
10543#line 314
10544    __cil_tmp78 = *((struct vhost_virtqueue **)__cil_tmp77);
10545#line 314
10546    __cil_tmp79 = __cil_tmp78 + i;
10547#line 314
10548    vhost_vq_reset(dev, __cil_tmp79);
10549    }
10550    {
10551#line 315
10552    __cil_tmp80 = (unsigned long )dev;
10553#line 315
10554    __cil_tmp81 = __cil_tmp80 + 96;
10555#line 315
10556    __cil_tmp82 = *((struct vhost_virtqueue **)__cil_tmp81);
10557#line 315
10558    __cil_tmp83 = __cil_tmp82 + i;
10559#line 315
10560    __cil_tmp84 = (unsigned long )__cil_tmp83;
10561#line 315
10562    __cil_tmp85 = __cil_tmp84 + 320;
10563#line 315
10564    if (*((void (**)(struct vhost_work *work ))__cil_tmp85)) {
10565      {
10566#line 316
10567      __cil_tmp86 = (unsigned long )dev;
10568#line 316
10569      __cil_tmp87 = __cil_tmp86 + 96;
10570#line 316
10571      __cil_tmp88 = *((struct vhost_virtqueue **)__cil_tmp87);
10572#line 316
10573      __cil_tmp89 = __cil_tmp88 + i;
10574#line 316
10575      __cil_tmp90 = (unsigned long )__cil_tmp89;
10576#line 316
10577      __cil_tmp91 = __cil_tmp90 + 160;
10578#line 316
10579      __cil_tmp92 = (struct vhost_poll *)__cil_tmp91;
10580#line 316
10581      __cil_tmp93 = (unsigned long )dev;
10582#line 316
10583      __cil_tmp94 = __cil_tmp93 + 96;
10584#line 316
10585      __cil_tmp95 = *((struct vhost_virtqueue **)__cil_tmp94);
10586#line 316
10587      __cil_tmp96 = __cil_tmp95 + i;
10588#line 316
10589      __cil_tmp97 = (unsigned long )__cil_tmp96;
10590#line 316
10591      __cil_tmp98 = __cil_tmp97 + 320;
10592#line 316
10593      __cil_tmp99 = *((void (**)(struct vhost_work *work ))__cil_tmp98);
10594#line 316
10595      vhost_poll_init(__cil_tmp92, __cil_tmp99, 1UL, dev);
10596      }
10597    } else {
10598
10599    }
10600    }
10601#line 307
10602    i = i + 1;
10603  }
10604  while_break___2: /* CIL Label */ ;
10605  }
10606#line 320
10607  return (0L);
10608}
10609}
10610#line 324 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
10611long vhost_dev_check_owner(struct vhost_dev *dev ) 
10612{ int tmp___8 ;
10613  struct task_struct *tmp___9 ;
10614  unsigned long __cil_tmp5 ;
10615  unsigned long __cil_tmp6 ;
10616  struct mm_struct *__cil_tmp7 ;
10617  unsigned long __cil_tmp8 ;
10618  unsigned long __cil_tmp9 ;
10619  unsigned long __cil_tmp10 ;
10620  struct mm_struct *__cil_tmp11 ;
10621  unsigned long __cil_tmp12 ;
10622
10623  {
10624  {
10625#line 327
10626  tmp___9 = get_current();
10627  }
10628  {
10629#line 327
10630  __cil_tmp5 = (unsigned long )tmp___9;
10631#line 327
10632  __cil_tmp6 = __cil_tmp5 + 1096;
10633#line 327
10634  __cil_tmp7 = *((struct mm_struct **)__cil_tmp6);
10635#line 327
10636  __cil_tmp8 = (unsigned long )__cil_tmp7;
10637#line 327
10638  __cil_tmp9 = (unsigned long )dev;
10639#line 327
10640  __cil_tmp10 = __cil_tmp9 + 8;
10641#line 327
10642  __cil_tmp11 = *((struct mm_struct **)__cil_tmp10);
10643#line 327
10644  __cil_tmp12 = (unsigned long )__cil_tmp11;
10645#line 327
10646  if (__cil_tmp12 == __cil_tmp8) {
10647#line 327
10648    tmp___8 = 0;
10649  } else {
10650#line 327
10651    tmp___8 = -1;
10652  }
10653  }
10654#line 327
10655  return ((long )tmp___8);
10656}
10657}
10658#line 336 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
10659static void vhost_attach_cgroups_work(struct vhost_work *work ) 
10660{ struct vhost_attach_cgroups_struct *s ;
10661  struct vhost_work    *__mptr ;
10662  struct task_struct *tmp___7 ;
10663  struct vhost_attach_cgroups_struct *__cil_tmp5 ;
10664  struct vhost_work *__cil_tmp6 ;
10665  unsigned int __cil_tmp7 ;
10666  char *__cil_tmp8 ;
10667  char *__cil_tmp9 ;
10668  unsigned long __cil_tmp10 ;
10669  unsigned long __cil_tmp11 ;
10670  unsigned long __cil_tmp12 ;
10671  unsigned long __cil_tmp13 ;
10672  struct task_struct *__cil_tmp14 ;
10673
10674  {
10675  {
10676#line 340
10677  __mptr = (struct vhost_work    *)work;
10678#line 340
10679  __cil_tmp5 = (struct vhost_attach_cgroups_struct *)0;
10680#line 340
10681  __cil_tmp6 = (struct vhost_work *)__cil_tmp5;
10682#line 340
10683  __cil_tmp7 = (unsigned int )__cil_tmp6;
10684#line 340
10685  __cil_tmp8 = (char *)__mptr;
10686#line 340
10687  __cil_tmp9 = __cil_tmp8 - __cil_tmp7;
10688#line 340
10689  s = (struct vhost_attach_cgroups_struct *)__cil_tmp9;
10690#line 341
10691  tmp___7 = get_current();
10692#line 341
10693  __cil_tmp10 = (unsigned long )s;
10694#line 341
10695  __cil_tmp11 = __cil_tmp10 + 88;
10696#line 341
10697  __cil_tmp12 = (unsigned long )s;
10698#line 341
10699  __cil_tmp13 = __cil_tmp12 + 80;
10700#line 341
10701  __cil_tmp14 = *((struct task_struct **)__cil_tmp13);
10702#line 341
10703  *((int *)__cil_tmp11) = cgroup_attach_task_all(__cil_tmp14, tmp___7);
10704  }
10705#line 342
10706  return;
10707}
10708}
10709#line 344 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
10710static int vhost_attach_cgroups(struct vhost_dev *dev ) 
10711{ struct vhost_attach_cgroups_struct attach ;
10712  unsigned long __cil_tmp3 ;
10713  struct vhost_attach_cgroups_struct *__cil_tmp4 ;
10714  struct vhost_work *__cil_tmp5 ;
10715  struct vhost_attach_cgroups_struct *__cil_tmp6 ;
10716  struct vhost_work *__cil_tmp7 ;
10717  struct vhost_attach_cgroups_struct *__cil_tmp8 ;
10718  struct vhost_work *__cil_tmp9 ;
10719  unsigned long __cil_tmp10 ;
10720
10721  {
10722  {
10723#line 348
10724  __cil_tmp3 = (unsigned long )(& attach) + 80;
10725#line 348
10726  *((struct task_struct **)__cil_tmp3) = get_current();
10727#line 349
10728  __cil_tmp4 = & attach;
10729#line 349
10730  __cil_tmp5 = (struct vhost_work *)__cil_tmp4;
10731#line 349
10732  vhost_work_init(__cil_tmp5, & vhost_attach_cgroups_work);
10733#line 350
10734  __cil_tmp6 = & attach;
10735#line 350
10736  __cil_tmp7 = (struct vhost_work *)__cil_tmp6;
10737#line 350
10738  vhost_work_queue(dev, __cil_tmp7);
10739#line 351
10740  __cil_tmp8 = & attach;
10741#line 351
10742  __cil_tmp9 = (struct vhost_work *)__cil_tmp8;
10743#line 351
10744  vhost_work_flush(dev, __cil_tmp9);
10745  }
10746  {
10747#line 352
10748  __cil_tmp10 = (unsigned long )(& attach) + 88;
10749#line 352
10750  return (*((int *)__cil_tmp10));
10751  }
10752}
10753}
10754#line 356 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
10755static long vhost_dev_set_owner(struct vhost_dev *dev ) 
10756{ struct task_struct *worker ;
10757  int err ;
10758  struct task_struct *tmp___7 ;
10759  struct task_struct *tmp___8 ;
10760  long tmp___9 ;
10761  long tmp___10 ;
10762  long tmp___11 ;
10763  unsigned long __cil_tmp9 ;
10764  unsigned long __cil_tmp10 ;
10765  unsigned long __cil_tmp11 ;
10766  unsigned long __cil_tmp12 ;
10767  void *__cil_tmp13 ;
10768  unsigned long __cil_tmp14 ;
10769  unsigned long __cil_tmp15 ;
10770  pid_t __cil_tmp16 ;
10771  void    *__cil_tmp17 ;
10772  void    *__cil_tmp18 ;
10773  unsigned long __cil_tmp19 ;
10774  unsigned long __cil_tmp20 ;
10775  unsigned long __cil_tmp21 ;
10776  unsigned long __cil_tmp22 ;
10777  void *__cil_tmp23 ;
10778  unsigned long __cil_tmp24 ;
10779  unsigned long __cil_tmp25 ;
10780  unsigned long __cil_tmp26 ;
10781  unsigned long __cil_tmp27 ;
10782  struct mm_struct *__cil_tmp28 ;
10783  unsigned long __cil_tmp29 ;
10784  unsigned long __cil_tmp30 ;
10785  void *__cil_tmp31 ;
10786
10787  {
10788  {
10789#line 362
10790  __cil_tmp9 = (unsigned long )dev;
10791#line 362
10792  __cil_tmp10 = __cil_tmp9 + 8;
10793#line 362
10794  if (*((struct mm_struct **)__cil_tmp10)) {
10795#line 363
10796    err = -16;
10797#line 364
10798    goto err_mm;
10799  } else {
10800
10801  }
10802  }
10803  {
10804#line 368
10805  tmp___7 = get_current();
10806#line 368
10807  __cil_tmp11 = (unsigned long )dev;
10808#line 368
10809  __cil_tmp12 = __cil_tmp11 + 8;
10810#line 368
10811  *((struct mm_struct **)__cil_tmp12) = get_task_mm(tmp___7);
10812#line 369
10813  tmp___8 = get_current();
10814#line 369
10815  __cil_tmp13 = (void *)dev;
10816#line 369
10817  __cil_tmp14 = (unsigned long )tmp___8;
10818#line 369
10819  __cil_tmp15 = __cil_tmp14 + 1144;
10820#line 369
10821  __cil_tmp16 = *((pid_t *)__cil_tmp15);
10822#line 369
10823  worker = kthread_create_on_node(& vhost_worker, __cil_tmp13, -1, "vhost-%d", __cil_tmp16);
10824#line 370
10825  __cil_tmp17 = (void    *)worker;
10826#line 370
10827  tmp___10 = (long )IS_ERR(__cil_tmp17);
10828  }
10829#line 370
10830  if (tmp___10) {
10831    {
10832#line 371
10833    __cil_tmp18 = (void    *)worker;
10834#line 371
10835    tmp___9 = (long )PTR_ERR(__cil_tmp18);
10836#line 371
10837    err = (int )tmp___9;
10838    }
10839#line 372
10840    goto err_worker;
10841  } else {
10842
10843  }
10844  {
10845#line 375
10846  __cil_tmp19 = (unsigned long )dev;
10847#line 375
10848  __cil_tmp20 = __cil_tmp19 + 168;
10849#line 375
10850  *((struct task_struct **)__cil_tmp20) = worker;
10851#line 376
10852  wake_up_process(worker);
10853#line 378
10854  err = vhost_attach_cgroups(dev);
10855  }
10856#line 379
10857  if (err) {
10858#line 380
10859    goto err_cgroup;
10860  } else {
10861
10862  }
10863  {
10864#line 382
10865  tmp___11 = vhost_dev_alloc_iovecs(dev);
10866#line 382
10867  err = (int )tmp___11;
10868  }
10869#line 383
10870  if (err) {
10871#line 384
10872    goto err_cgroup;
10873  } else {
10874
10875  }
10876#line 386
10877  return (0L);
10878  err_cgroup: 
10879  {
10880#line 388
10881  kthread_stop(worker);
10882#line 389
10883  __cil_tmp21 = (unsigned long )dev;
10884#line 389
10885  __cil_tmp22 = __cil_tmp21 + 168;
10886#line 389
10887  __cil_tmp23 = (void *)0;
10888#line 389
10889  *((struct task_struct **)__cil_tmp22) = (struct task_struct *)__cil_tmp23;
10890  }
10891  err_worker: 
10892  {
10893#line 391
10894  __cil_tmp24 = (unsigned long )dev;
10895#line 391
10896  __cil_tmp25 = __cil_tmp24 + 8;
10897#line 391
10898  if (*((struct mm_struct **)__cil_tmp25)) {
10899    {
10900#line 392
10901    __cil_tmp26 = (unsigned long )dev;
10902#line 392
10903    __cil_tmp27 = __cil_tmp26 + 8;
10904#line 392
10905    __cil_tmp28 = *((struct mm_struct **)__cil_tmp27);
10906#line 392
10907    mmput(__cil_tmp28);
10908    }
10909  } else {
10910
10911  }
10912  }
10913#line 393
10914  __cil_tmp29 = (unsigned long )dev;
10915#line 393
10916  __cil_tmp30 = __cil_tmp29 + 8;
10917#line 393
10918  __cil_tmp31 = (void *)0;
10919#line 393
10920  *((struct mm_struct **)__cil_tmp30) = (struct mm_struct *)__cil_tmp31;
10921  err_mm: 
10922#line 395
10923  return ((long )err);
10924}
10925}
10926#line 399 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
10927long vhost_dev_reset_owner(struct vhost_dev *dev ) 
10928{ struct vhost_memory *memory ;
10929  void *tmp___7 ;
10930  struct vhost_memory *__cil_tmp4 ;
10931  unsigned long __cil_tmp5 ;
10932  unsigned long __cil_tmp6 ;
10933  struct vhost_memory_region (*__cil_tmp7)[0] ;
10934  unsigned int __cil_tmp8 ;
10935  size_t __cil_tmp9 ;
10936  bool __cil_tmp10 ;
10937
10938  {
10939  {
10940#line 404
10941  __cil_tmp4 = (struct vhost_memory *)0;
10942#line 404
10943  __cil_tmp5 = (unsigned long )__cil_tmp4;
10944#line 404
10945  __cil_tmp6 = __cil_tmp5 + 8;
10946#line 404
10947  __cil_tmp7 = (struct vhost_memory_region (*)[0])__cil_tmp6;
10948#line 404
10949  __cil_tmp8 = (unsigned int )__cil_tmp7;
10950#line 404
10951  __cil_tmp9 = (size_t )__cil_tmp8;
10952#line 404
10953  tmp___7 = kmalloc(__cil_tmp9, 208U);
10954#line 404
10955  memory = (struct vhost_memory *)tmp___7;
10956  }
10957#line 405
10958  if (! memory) {
10959#line 406
10960    return (-12L);
10961  } else {
10962
10963  }
10964  {
10965#line 408
10966  __cil_tmp10 = (bool )1;
10967#line 408
10968  vhost_dev_cleanup(dev, __cil_tmp10);
10969#line 410
10970  *((__u32 *)memory) = (__u32 )0;
10971#line 411
10972  *((struct vhost_memory **)dev) = memory;
10973  }
10974#line 412
10975  return (0L);
10976}
10977}
10978#line 420 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
10979int vhost_zerocopy_signal_used(struct vhost_virtqueue *vq ) 
10980{ int i ;
10981  int j ;
10982  unsigned long __cil_tmp4 ;
10983  unsigned long __cil_tmp5 ;
10984  unsigned long __cil_tmp6 ;
10985  unsigned long __cil_tmp7 ;
10986  int __cil_tmp8 ;
10987  unsigned long __cil_tmp9 ;
10988  unsigned long __cil_tmp10 ;
10989  struct vring_used_elem *__cil_tmp11 ;
10990  struct vring_used_elem *__cil_tmp12 ;
10991  unsigned long __cil_tmp13 ;
10992  unsigned long __cil_tmp14 ;
10993  __u32 __cil_tmp15 ;
10994  unsigned long __cil_tmp16 ;
10995  unsigned long __cil_tmp17 ;
10996  struct vring_used_elem *__cil_tmp18 ;
10997  struct vring_used_elem *__cil_tmp19 ;
10998  unsigned long __cil_tmp20 ;
10999  unsigned long __cil_tmp21 ;
11000  struct vhost_dev *__cil_tmp22 ;
11001  unsigned long __cil_tmp23 ;
11002  unsigned long __cil_tmp24 ;
11003  struct vring_used_elem *__cil_tmp25 ;
11004  struct vring_used_elem *__cil_tmp26 ;
11005  __u32 __cil_tmp27 ;
11006  int __cil_tmp28 ;
11007  unsigned long __cil_tmp29 ;
11008  unsigned long __cil_tmp30 ;
11009
11010  {
11011#line 423
11012  j = 0;
11013#line 425
11014  __cil_tmp4 = (unsigned long )vq;
11015#line 425
11016  __cil_tmp5 = __cil_tmp4 + 16988;
11017#line 425
11018  i = *((int *)__cil_tmp5);
11019  {
11020#line 425
11021  while (1) {
11022    while_continue: /* CIL Label */ ;
11023    {
11024#line 425
11025    __cil_tmp6 = (unsigned long )vq;
11026#line 425
11027    __cil_tmp7 = __cil_tmp6 + 16984;
11028#line 425
11029    __cil_tmp8 = *((int *)__cil_tmp7);
11030#line 425
11031    if (i != __cil_tmp8) {
11032
11033    } else {
11034#line 425
11035      goto while_break;
11036    }
11037    }
11038    {
11039#line 426
11040    __cil_tmp9 = (unsigned long )vq;
11041#line 426
11042    __cil_tmp10 = __cil_tmp9 + 16952;
11043#line 426
11044    __cil_tmp11 = *((struct vring_used_elem **)__cil_tmp10);
11045#line 426
11046    __cil_tmp12 = __cil_tmp11 + i;
11047#line 426
11048    __cil_tmp13 = (unsigned long )__cil_tmp12;
11049#line 426
11050    __cil_tmp14 = __cil_tmp13 + 4;
11051#line 426
11052    __cil_tmp15 = *((__u32 *)__cil_tmp14);
11053#line 426
11054    if (__cil_tmp15 == 1U) {
11055      {
11056#line 427
11057      __cil_tmp16 = (unsigned long )vq;
11058#line 427
11059      __cil_tmp17 = __cil_tmp16 + 16952;
11060#line 427
11061      __cil_tmp18 = *((struct vring_used_elem **)__cil_tmp17);
11062#line 427
11063      __cil_tmp19 = __cil_tmp18 + i;
11064#line 427
11065      __cil_tmp20 = (unsigned long )__cil_tmp19;
11066#line 427
11067      __cil_tmp21 = __cil_tmp20 + 4;
11068#line 427
11069      *((__u32 *)__cil_tmp21) = (__u32 )0;
11070#line 428
11071      __cil_tmp22 = *((struct vhost_dev **)vq);
11072#line 428
11073      __cil_tmp23 = (unsigned long )vq;
11074#line 428
11075      __cil_tmp24 = __cil_tmp23 + 16952;
11076#line 428
11077      __cil_tmp25 = *((struct vring_used_elem **)__cil_tmp24);
11078#line 428
11079      __cil_tmp26 = __cil_tmp25 + i;
11080#line 428
11081      __cil_tmp27 = *((__u32 *)__cil_tmp26);
11082#line 428
11083      vhost_add_used_and_signal(__cil_tmp22, vq, __cil_tmp27, 0);
11084#line 430
11085      j = j + 1;
11086      }
11087    } else {
11088#line 432
11089      goto while_break;
11090    }
11091    }
11092#line 425
11093    __cil_tmp28 = i + 1;
11094#line 425
11095    i = __cil_tmp28 % 1024;
11096  }
11097  while_break: /* CIL Label */ ;
11098  }
11099#line 434
11100  if (j) {
11101#line 435
11102    __cil_tmp29 = (unsigned long )vq;
11103#line 435
11104    __cil_tmp30 = __cil_tmp29 + 16988;
11105#line 435
11106    *((int *)__cil_tmp30) = i;
11107  } else {
11108
11109  }
11110#line 436
11111  return (j);
11112}
11113}
11114#line 440 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
11115void vhost_dev_cleanup(struct vhost_dev *dev , bool locked ) 
11116{ int i ;
11117  int __ret_warn_on ;
11118  int tmp___7 ;
11119  int tmp___8 ;
11120  long tmp___9 ;
11121  unsigned long __cil_tmp8 ;
11122  unsigned long __cil_tmp9 ;
11123  int __cil_tmp10 ;
11124  unsigned long __cil_tmp11 ;
11125  unsigned long __cil_tmp12 ;
11126  struct vhost_virtqueue *__cil_tmp13 ;
11127  struct vhost_virtqueue *__cil_tmp14 ;
11128  unsigned long __cil_tmp15 ;
11129  unsigned long __cil_tmp16 ;
11130  unsigned long __cil_tmp17 ;
11131  unsigned long __cil_tmp18 ;
11132  struct vhost_virtqueue *__cil_tmp19 ;
11133  struct vhost_virtqueue *__cil_tmp20 ;
11134  unsigned long __cil_tmp21 ;
11135  unsigned long __cil_tmp22 ;
11136  unsigned long __cil_tmp23 ;
11137  unsigned long __cil_tmp24 ;
11138  struct vhost_virtqueue *__cil_tmp25 ;
11139  struct vhost_virtqueue *__cil_tmp26 ;
11140  unsigned long __cil_tmp27 ;
11141  unsigned long __cil_tmp28 ;
11142  struct vhost_poll *__cil_tmp29 ;
11143  unsigned long __cil_tmp30 ;
11144  unsigned long __cil_tmp31 ;
11145  struct vhost_virtqueue *__cil_tmp32 ;
11146  struct vhost_virtqueue *__cil_tmp33 ;
11147  unsigned long __cil_tmp34 ;
11148  unsigned long __cil_tmp35 ;
11149  struct vhost_poll *__cil_tmp36 ;
11150  unsigned long __cil_tmp37 ;
11151  unsigned long __cil_tmp38 ;
11152  struct vhost_virtqueue *__cil_tmp39 ;
11153  struct vhost_virtqueue *__cil_tmp40 ;
11154  unsigned long __cil_tmp41 ;
11155  unsigned long __cil_tmp42 ;
11156  unsigned long __cil_tmp43 ;
11157  unsigned long __cil_tmp44 ;
11158  struct vhost_virtqueue *__cil_tmp45 ;
11159  struct vhost_virtqueue *__cil_tmp46 ;
11160  unsigned long __cil_tmp47 ;
11161  unsigned long __cil_tmp48 ;
11162  struct vhost_ubuf_ref *__cil_tmp49 ;
11163  unsigned long __cil_tmp50 ;
11164  unsigned long __cil_tmp51 ;
11165  struct vhost_virtqueue *__cil_tmp52 ;
11166  struct vhost_virtqueue *__cil_tmp53 ;
11167  unsigned long __cil_tmp54 ;
11168  unsigned long __cil_tmp55 ;
11169  struct vhost_virtqueue *__cil_tmp56 ;
11170  struct vhost_virtqueue *__cil_tmp57 ;
11171  unsigned long __cil_tmp58 ;
11172  unsigned long __cil_tmp59 ;
11173  unsigned long __cil_tmp60 ;
11174  unsigned long __cil_tmp61 ;
11175  struct vhost_virtqueue *__cil_tmp62 ;
11176  struct vhost_virtqueue *__cil_tmp63 ;
11177  unsigned long __cil_tmp64 ;
11178  unsigned long __cil_tmp65 ;
11179  struct eventfd_ctx *__cil_tmp66 ;
11180  unsigned long __cil_tmp67 ;
11181  unsigned long __cil_tmp68 ;
11182  struct vhost_virtqueue *__cil_tmp69 ;
11183  struct vhost_virtqueue *__cil_tmp70 ;
11184  unsigned long __cil_tmp71 ;
11185  unsigned long __cil_tmp72 ;
11186  unsigned long __cil_tmp73 ;
11187  unsigned long __cil_tmp74 ;
11188  struct vhost_virtqueue *__cil_tmp75 ;
11189  struct vhost_virtqueue *__cil_tmp76 ;
11190  unsigned long __cil_tmp77 ;
11191  unsigned long __cil_tmp78 ;
11192  struct file *__cil_tmp79 ;
11193  unsigned long __cil_tmp80 ;
11194  unsigned long __cil_tmp81 ;
11195  struct vhost_virtqueue *__cil_tmp82 ;
11196  struct vhost_virtqueue *__cil_tmp83 ;
11197  unsigned long __cil_tmp84 ;
11198  unsigned long __cil_tmp85 ;
11199  unsigned long __cil_tmp86 ;
11200  unsigned long __cil_tmp87 ;
11201  struct vhost_virtqueue *__cil_tmp88 ;
11202  struct vhost_virtqueue *__cil_tmp89 ;
11203  unsigned long __cil_tmp90 ;
11204  unsigned long __cil_tmp91 ;
11205  struct file *__cil_tmp92 ;
11206  unsigned long __cil_tmp93 ;
11207  unsigned long __cil_tmp94 ;
11208  struct vhost_virtqueue *__cil_tmp95 ;
11209  struct vhost_virtqueue *__cil_tmp96 ;
11210  unsigned long __cil_tmp97 ;
11211  unsigned long __cil_tmp98 ;
11212  unsigned long __cil_tmp99 ;
11213  unsigned long __cil_tmp100 ;
11214  struct vhost_virtqueue *__cil_tmp101 ;
11215  struct vhost_virtqueue *__cil_tmp102 ;
11216  unsigned long __cil_tmp103 ;
11217  unsigned long __cil_tmp104 ;
11218  struct eventfd_ctx *__cil_tmp105 ;
11219  unsigned long __cil_tmp106 ;
11220  unsigned long __cil_tmp107 ;
11221  struct vhost_virtqueue *__cil_tmp108 ;
11222  struct vhost_virtqueue *__cil_tmp109 ;
11223  unsigned long __cil_tmp110 ;
11224  unsigned long __cil_tmp111 ;
11225  unsigned long __cil_tmp112 ;
11226  unsigned long __cil_tmp113 ;
11227  struct vhost_virtqueue *__cil_tmp114 ;
11228  struct vhost_virtqueue *__cil_tmp115 ;
11229  unsigned long __cil_tmp116 ;
11230  unsigned long __cil_tmp117 ;
11231  struct file *__cil_tmp118 ;
11232  unsigned long __cil_tmp119 ;
11233  unsigned long __cil_tmp120 ;
11234  struct vhost_virtqueue *__cil_tmp121 ;
11235  struct vhost_virtqueue *__cil_tmp122 ;
11236  unsigned long __cil_tmp123 ;
11237  unsigned long __cil_tmp124 ;
11238  unsigned long __cil_tmp125 ;
11239  unsigned long __cil_tmp126 ;
11240  struct eventfd_ctx *__cil_tmp127 ;
11241  unsigned long __cil_tmp128 ;
11242  unsigned long __cil_tmp129 ;
11243  void *__cil_tmp130 ;
11244  unsigned long __cil_tmp131 ;
11245  unsigned long __cil_tmp132 ;
11246  unsigned long __cil_tmp133 ;
11247  unsigned long __cil_tmp134 ;
11248  struct file *__cil_tmp135 ;
11249  unsigned long __cil_tmp136 ;
11250  unsigned long __cil_tmp137 ;
11251  void *__cil_tmp138 ;
11252  struct vhost_memory *__cil_tmp139 ;
11253  void    *__cil_tmp140 ;
11254  void *__cil_tmp141 ;
11255  unsigned long __cil_tmp142 ;
11256  unsigned long __cil_tmp143 ;
11257  struct list_head *__cil_tmp144 ;
11258  struct list_head    *__cil_tmp145 ;
11259  int __cil_tmp146 ;
11260  int __cil_tmp147 ;
11261  long __cil_tmp148 ;
11262  int    __cil_tmp149 ;
11263  int __cil_tmp150 ;
11264  int __cil_tmp151 ;
11265  long __cil_tmp152 ;
11266  unsigned long __cil_tmp153 ;
11267  unsigned long __cil_tmp154 ;
11268  unsigned long __cil_tmp155 ;
11269  unsigned long __cil_tmp156 ;
11270  struct task_struct *__cil_tmp157 ;
11271  unsigned long __cil_tmp158 ;
11272  unsigned long __cil_tmp159 ;
11273  void *__cil_tmp160 ;
11274  unsigned long __cil_tmp161 ;
11275  unsigned long __cil_tmp162 ;
11276  unsigned long __cil_tmp163 ;
11277  unsigned long __cil_tmp164 ;
11278  struct mm_struct *__cil_tmp165 ;
11279  unsigned long __cil_tmp166 ;
11280  unsigned long __cil_tmp167 ;
11281  void *__cil_tmp168 ;
11282
11283  {
11284#line 444
11285  i = 0;
11286  {
11287#line 444
11288  while (1) {
11289    while_continue: /* CIL Label */ ;
11290    {
11291#line 444
11292    __cil_tmp8 = (unsigned long )dev;
11293#line 444
11294    __cil_tmp9 = __cil_tmp8 + 104;
11295#line 444
11296    __cil_tmp10 = *((int *)__cil_tmp9);
11297#line 444
11298    if (i < __cil_tmp10) {
11299
11300    } else {
11301#line 444
11302      goto while_break;
11303    }
11304    }
11305    {
11306#line 445
11307    __cil_tmp11 = (unsigned long )dev;
11308#line 445
11309    __cil_tmp12 = __cil_tmp11 + 96;
11310#line 445
11311    __cil_tmp13 = *((struct vhost_virtqueue **)__cil_tmp12);
11312#line 445
11313    __cil_tmp14 = __cil_tmp13 + i;
11314#line 445
11315    __cil_tmp15 = (unsigned long )__cil_tmp14;
11316#line 445
11317    __cil_tmp16 = __cil_tmp15 + 112;
11318#line 445
11319    if (*((struct file **)__cil_tmp16)) {
11320      {
11321#line 445
11322      __cil_tmp17 = (unsigned long )dev;
11323#line 445
11324      __cil_tmp18 = __cil_tmp17 + 96;
11325#line 445
11326      __cil_tmp19 = *((struct vhost_virtqueue **)__cil_tmp18);
11327#line 445
11328      __cil_tmp20 = __cil_tmp19 + i;
11329#line 445
11330      __cil_tmp21 = (unsigned long )__cil_tmp20;
11331#line 445
11332      __cil_tmp22 = __cil_tmp21 + 320;
11333#line 445
11334      if (*((void (**)(struct vhost_work *work ))__cil_tmp22)) {
11335        {
11336#line 446
11337        __cil_tmp23 = (unsigned long )dev;
11338#line 446
11339        __cil_tmp24 = __cil_tmp23 + 96;
11340#line 446
11341        __cil_tmp25 = *((struct vhost_virtqueue **)__cil_tmp24);
11342#line 446
11343        __cil_tmp26 = __cil_tmp25 + i;
11344#line 446
11345        __cil_tmp27 = (unsigned long )__cil_tmp26;
11346#line 446
11347        __cil_tmp28 = __cil_tmp27 + 160;
11348#line 446
11349        __cil_tmp29 = (struct vhost_poll *)__cil_tmp28;
11350#line 446
11351        vhost_poll_stop(__cil_tmp29);
11352#line 447
11353        __cil_tmp30 = (unsigned long )dev;
11354#line 447
11355        __cil_tmp31 = __cil_tmp30 + 96;
11356#line 447
11357        __cil_tmp32 = *((struct vhost_virtqueue **)__cil_tmp31);
11358#line 447
11359        __cil_tmp33 = __cil_tmp32 + i;
11360#line 447
11361        __cil_tmp34 = (unsigned long )__cil_tmp33;
11362#line 447
11363        __cil_tmp35 = __cil_tmp34 + 160;
11364#line 447
11365        __cil_tmp36 = (struct vhost_poll *)__cil_tmp35;
11366#line 447
11367        vhost_poll_flush(__cil_tmp36);
11368        }
11369      } else {
11370
11371      }
11372      }
11373    } else {
11374
11375    }
11376    }
11377    {
11378#line 450
11379    __cil_tmp37 = (unsigned long )dev;
11380#line 450
11381    __cil_tmp38 = __cil_tmp37 + 96;
11382#line 450
11383    __cil_tmp39 = *((struct vhost_virtqueue **)__cil_tmp38);
11384#line 450
11385    __cil_tmp40 = __cil_tmp39 + i;
11386#line 450
11387    __cil_tmp41 = (unsigned long )__cil_tmp40;
11388#line 450
11389    __cil_tmp42 = __cil_tmp41 + 17000;
11390#line 450
11391    if (*((struct vhost_ubuf_ref **)__cil_tmp42)) {
11392      {
11393#line 451
11394      __cil_tmp43 = (unsigned long )dev;
11395#line 451
11396      __cil_tmp44 = __cil_tmp43 + 96;
11397#line 451
11398      __cil_tmp45 = *((struct vhost_virtqueue **)__cil_tmp44);
11399#line 451
11400      __cil_tmp46 = __cil_tmp45 + i;
11401#line 451
11402      __cil_tmp47 = (unsigned long )__cil_tmp46;
11403#line 451
11404      __cil_tmp48 = __cil_tmp47 + 17000;
11405#line 451
11406      __cil_tmp49 = *((struct vhost_ubuf_ref **)__cil_tmp48);
11407#line 451
11408      vhost_ubuf_put_and_wait(__cil_tmp49);
11409      }
11410    } else {
11411
11412    }
11413    }
11414    {
11415#line 454
11416    __cil_tmp50 = (unsigned long )dev;
11417#line 454
11418    __cil_tmp51 = __cil_tmp50 + 96;
11419#line 454
11420    __cil_tmp52 = *((struct vhost_virtqueue **)__cil_tmp51);
11421#line 454
11422    __cil_tmp53 = __cil_tmp52 + i;
11423#line 454
11424    vhost_zerocopy_signal_used(__cil_tmp53);
11425    }
11426    {
11427#line 456
11428    __cil_tmp54 = (unsigned long )dev;
11429#line 456
11430    __cil_tmp55 = __cil_tmp54 + 96;
11431#line 456
11432    __cil_tmp56 = *((struct vhost_virtqueue **)__cil_tmp55);
11433#line 456
11434    __cil_tmp57 = __cil_tmp56 + i;
11435#line 456
11436    __cil_tmp58 = (unsigned long )__cil_tmp57;
11437#line 456
11438    __cil_tmp59 = __cil_tmp58 + 144;
11439#line 456
11440    if (*((struct eventfd_ctx **)__cil_tmp59)) {
11441      {
11442#line 457
11443      __cil_tmp60 = (unsigned long )dev;
11444#line 457
11445      __cil_tmp61 = __cil_tmp60 + 96;
11446#line 457
11447      __cil_tmp62 = *((struct vhost_virtqueue **)__cil_tmp61);
11448#line 457
11449      __cil_tmp63 = __cil_tmp62 + i;
11450#line 457
11451      __cil_tmp64 = (unsigned long )__cil_tmp63;
11452#line 457
11453      __cil_tmp65 = __cil_tmp64 + 144;
11454#line 457
11455      __cil_tmp66 = *((struct eventfd_ctx **)__cil_tmp65);
11456#line 457
11457      eventfd_ctx_put(__cil_tmp66);
11458      }
11459    } else {
11460
11461    }
11462    }
11463    {
11464#line 458
11465    __cil_tmp67 = (unsigned long )dev;
11466#line 458
11467    __cil_tmp68 = __cil_tmp67 + 96;
11468#line 458
11469    __cil_tmp69 = *((struct vhost_virtqueue **)__cil_tmp68);
11470#line 458
11471    __cil_tmp70 = __cil_tmp69 + i;
11472#line 458
11473    __cil_tmp71 = (unsigned long )__cil_tmp70;
11474#line 458
11475    __cil_tmp72 = __cil_tmp71 + 128;
11476#line 458
11477    if (*((struct file **)__cil_tmp72)) {
11478      {
11479#line 459
11480      __cil_tmp73 = (unsigned long )dev;
11481#line 459
11482      __cil_tmp74 = __cil_tmp73 + 96;
11483#line 459
11484      __cil_tmp75 = *((struct vhost_virtqueue **)__cil_tmp74);
11485#line 459
11486      __cil_tmp76 = __cil_tmp75 + i;
11487#line 459
11488      __cil_tmp77 = (unsigned long )__cil_tmp76;
11489#line 459
11490      __cil_tmp78 = __cil_tmp77 + 128;
11491#line 459
11492      __cil_tmp79 = *((struct file **)__cil_tmp78);
11493#line 459
11494      fput(__cil_tmp79);
11495      }
11496    } else {
11497
11498    }
11499    }
11500    {
11501#line 460
11502    __cil_tmp80 = (unsigned long )dev;
11503#line 460
11504    __cil_tmp81 = __cil_tmp80 + 96;
11505#line 460
11506    __cil_tmp82 = *((struct vhost_virtqueue **)__cil_tmp81);
11507#line 460
11508    __cil_tmp83 = __cil_tmp82 + i;
11509#line 460
11510    __cil_tmp84 = (unsigned long )__cil_tmp83;
11511#line 460
11512    __cil_tmp85 = __cil_tmp84 + 112;
11513#line 460
11514    if (*((struct file **)__cil_tmp85)) {
11515      {
11516#line 461
11517      __cil_tmp86 = (unsigned long )dev;
11518#line 461
11519      __cil_tmp87 = __cil_tmp86 + 96;
11520#line 461
11521      __cil_tmp88 = *((struct vhost_virtqueue **)__cil_tmp87);
11522#line 461
11523      __cil_tmp89 = __cil_tmp88 + i;
11524#line 461
11525      __cil_tmp90 = (unsigned long )__cil_tmp89;
11526#line 461
11527      __cil_tmp91 = __cil_tmp90 + 112;
11528#line 461
11529      __cil_tmp92 = *((struct file **)__cil_tmp91);
11530#line 461
11531      fput(__cil_tmp92);
11532      }
11533    } else {
11534
11535    }
11536    }
11537    {
11538#line 462
11539    __cil_tmp93 = (unsigned long )dev;
11540#line 462
11541    __cil_tmp94 = __cil_tmp93 + 96;
11542#line 462
11543    __cil_tmp95 = *((struct vhost_virtqueue **)__cil_tmp94);
11544#line 462
11545    __cil_tmp96 = __cil_tmp95 + i;
11546#line 462
11547    __cil_tmp97 = (unsigned long )__cil_tmp96;
11548#line 462
11549    __cil_tmp98 = __cil_tmp97 + 136;
11550#line 462
11551    if (*((struct eventfd_ctx **)__cil_tmp98)) {
11552      {
11553#line 463
11554      __cil_tmp99 = (unsigned long )dev;
11555#line 463
11556      __cil_tmp100 = __cil_tmp99 + 96;
11557#line 463
11558      __cil_tmp101 = *((struct vhost_virtqueue **)__cil_tmp100);
11559#line 463
11560      __cil_tmp102 = __cil_tmp101 + i;
11561#line 463
11562      __cil_tmp103 = (unsigned long )__cil_tmp102;
11563#line 463
11564      __cil_tmp104 = __cil_tmp103 + 136;
11565#line 463
11566      __cil_tmp105 = *((struct eventfd_ctx **)__cil_tmp104);
11567#line 463
11568      eventfd_ctx_put(__cil_tmp105);
11569      }
11570    } else {
11571
11572    }
11573    }
11574    {
11575#line 464
11576    __cil_tmp106 = (unsigned long )dev;
11577#line 464
11578    __cil_tmp107 = __cil_tmp106 + 96;
11579#line 464
11580    __cil_tmp108 = *((struct vhost_virtqueue **)__cil_tmp107);
11581#line 464
11582    __cil_tmp109 = __cil_tmp108 + i;
11583#line 464
11584    __cil_tmp110 = (unsigned long )__cil_tmp109;
11585#line 464
11586    __cil_tmp111 = __cil_tmp110 + 120;
11587#line 464
11588    if (*((struct file **)__cil_tmp111)) {
11589      {
11590#line 465
11591      __cil_tmp112 = (unsigned long )dev;
11592#line 465
11593      __cil_tmp113 = __cil_tmp112 + 96;
11594#line 465
11595      __cil_tmp114 = *((struct vhost_virtqueue **)__cil_tmp113);
11596#line 465
11597      __cil_tmp115 = __cil_tmp114 + i;
11598#line 465
11599      __cil_tmp116 = (unsigned long )__cil_tmp115;
11600#line 465
11601      __cil_tmp117 = __cil_tmp116 + 120;
11602#line 465
11603      __cil_tmp118 = *((struct file **)__cil_tmp117);
11604#line 465
11605      fput(__cil_tmp118);
11606      }
11607    } else {
11608
11609    }
11610    }
11611    {
11612#line 466
11613    __cil_tmp119 = (unsigned long )dev;
11614#line 466
11615    __cil_tmp120 = __cil_tmp119 + 96;
11616#line 466
11617    __cil_tmp121 = *((struct vhost_virtqueue **)__cil_tmp120);
11618#line 466
11619    __cil_tmp122 = __cil_tmp121 + i;
11620#line 466
11621    vhost_vq_reset(dev, __cil_tmp122);
11622#line 444
11623    i = i + 1;
11624    }
11625  }
11626  while_break: /* CIL Label */ ;
11627  }
11628  {
11629#line 468
11630  vhost_dev_free_iovecs(dev);
11631  }
11632  {
11633#line 469
11634  __cil_tmp123 = (unsigned long )dev;
11635#line 469
11636  __cil_tmp124 = __cil_tmp123 + 120;
11637#line 469
11638  if (*((struct eventfd_ctx **)__cil_tmp124)) {
11639    {
11640#line 470
11641    __cil_tmp125 = (unsigned long )dev;
11642#line 470
11643    __cil_tmp126 = __cil_tmp125 + 120;
11644#line 470
11645    __cil_tmp127 = *((struct eventfd_ctx **)__cil_tmp126);
11646#line 470
11647    eventfd_ctx_put(__cil_tmp127);
11648    }
11649  } else {
11650
11651  }
11652  }
11653#line 471
11654  __cil_tmp128 = (unsigned long )dev;
11655#line 471
11656  __cil_tmp129 = __cil_tmp128 + 120;
11657#line 471
11658  __cil_tmp130 = (void *)0;
11659#line 471
11660  *((struct eventfd_ctx **)__cil_tmp129) = (struct eventfd_ctx *)__cil_tmp130;
11661  {
11662#line 472
11663  __cil_tmp131 = (unsigned long )dev;
11664#line 472
11665  __cil_tmp132 = __cil_tmp131 + 112;
11666#line 472
11667  if (*((struct file **)__cil_tmp132)) {
11668    {
11669#line 473
11670    __cil_tmp133 = (unsigned long )dev;
11671#line 473
11672    __cil_tmp134 = __cil_tmp133 + 112;
11673#line 473
11674    __cil_tmp135 = *((struct file **)__cil_tmp134);
11675#line 473
11676    fput(__cil_tmp135);
11677    }
11678  } else {
11679
11680  }
11681  }
11682#line 474
11683  __cil_tmp136 = (unsigned long )dev;
11684#line 474
11685  __cil_tmp137 = __cil_tmp136 + 112;
11686#line 474
11687  __cil_tmp138 = (void *)0;
11688#line 474
11689  *((struct file **)__cil_tmp137) = (struct file *)__cil_tmp138;
11690  {
11691#line 476
11692  while (1) {
11693    while_continue___0: /* CIL Label */ ;
11694#line 476
11695    goto while_break___0;
11696  }
11697  while_break___0: /* CIL Label */ ;
11698  }
11699  {
11700#line 476
11701  __cil_tmp139 = *((struct vhost_memory **)dev);
11702#line 476
11703  __cil_tmp140 = (void    *)__cil_tmp139;
11704#line 476
11705  kfree(__cil_tmp140);
11706#line 479
11707  __cil_tmp141 = (void *)0;
11708#line 479
11709  *((struct vhost_memory **)dev) = (struct vhost_memory *)__cil_tmp141;
11710#line 480
11711  __cil_tmp142 = (unsigned long )dev;
11712#line 480
11713  __cil_tmp143 = __cil_tmp142 + 152;
11714#line 480
11715  __cil_tmp144 = (struct list_head *)__cil_tmp143;
11716#line 480
11717  __cil_tmp145 = (struct list_head    *)__cil_tmp144;
11718#line 480
11719  tmp___7 = list_empty(__cil_tmp145);
11720  }
11721#line 480
11722  if (tmp___7) {
11723#line 480
11724    tmp___8 = 0;
11725  } else {
11726#line 480
11727    tmp___8 = 1;
11728  }
11729  {
11730#line 480
11731  __ret_warn_on = tmp___8;
11732#line 480
11733  __cil_tmp146 = ! __ret_warn_on;
11734#line 480
11735  __cil_tmp147 = ! __cil_tmp146;
11736#line 480
11737  __cil_tmp148 = (long )__cil_tmp147;
11738#line 480
11739  tmp___9 = __builtin_expect(__cil_tmp148, 0L);
11740  }
11741#line 480
11742  if (tmp___9) {
11743    {
11744#line 480
11745    __cil_tmp149 = (int    )480;
11746#line 480
11747    warn_slowpath_null("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
11748                       __cil_tmp149);
11749    }
11750  } else {
11751
11752  }
11753  {
11754#line 480
11755  __cil_tmp150 = ! __ret_warn_on;
11756#line 480
11757  __cil_tmp151 = ! __cil_tmp150;
11758#line 480
11759  __cil_tmp152 = (long )__cil_tmp151;
11760#line 480
11761  __builtin_expect(__cil_tmp152, 0L);
11762  }
11763  {
11764#line 481
11765  __cil_tmp153 = (unsigned long )dev;
11766#line 481
11767  __cil_tmp154 = __cil_tmp153 + 168;
11768#line 481
11769  if (*((struct task_struct **)__cil_tmp154)) {
11770    {
11771#line 482
11772    __cil_tmp155 = (unsigned long )dev;
11773#line 482
11774    __cil_tmp156 = __cil_tmp155 + 168;
11775#line 482
11776    __cil_tmp157 = *((struct task_struct **)__cil_tmp156);
11777#line 482
11778    kthread_stop(__cil_tmp157);
11779#line 483
11780    __cil_tmp158 = (unsigned long )dev;
11781#line 483
11782    __cil_tmp159 = __cil_tmp158 + 168;
11783#line 483
11784    __cil_tmp160 = (void *)0;
11785#line 483
11786    *((struct task_struct **)__cil_tmp159) = (struct task_struct *)__cil_tmp160;
11787    }
11788  } else {
11789
11790  }
11791  }
11792  {
11793#line 485
11794  __cil_tmp161 = (unsigned long )dev;
11795#line 485
11796  __cil_tmp162 = __cil_tmp161 + 8;
11797#line 485
11798  if (*((struct mm_struct **)__cil_tmp162)) {
11799    {
11800#line 486
11801    __cil_tmp163 = (unsigned long )dev;
11802#line 486
11803    __cil_tmp164 = __cil_tmp163 + 8;
11804#line 486
11805    __cil_tmp165 = *((struct mm_struct **)__cil_tmp164);
11806#line 486
11807    mmput(__cil_tmp165);
11808    }
11809  } else {
11810
11811  }
11812  }
11813#line 487
11814  __cil_tmp166 = (unsigned long )dev;
11815#line 487
11816  __cil_tmp167 = __cil_tmp166 + 8;
11817#line 487
11818  __cil_tmp168 = (void *)0;
11819#line 487
11820  *((struct mm_struct **)__cil_tmp167) = (struct mm_struct *)__cil_tmp168;
11821#line 488
11822  return;
11823}
11824}
11825#line 490 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
11826static int log_access_ok(void *log_base , u64 addr , unsigned long sz ) 
11827{ u64 a ;
11828  unsigned long flag ;
11829  unsigned long roksum ;
11830  struct thread_info *tmp___7 ;
11831  int tmp___8 ;
11832  long tmp___9 ;
11833  u64 __cil_tmp10 ;
11834  unsigned long __cil_tmp11 ;
11835  unsigned long __cil_tmp12 ;
11836  u64 __cil_tmp13 ;
11837  unsigned long __cil_tmp14 ;
11838  u64 __cil_tmp15 ;
11839  u64 __cil_tmp16 ;
11840  unsigned long __cil_tmp17 ;
11841  unsigned long __cil_tmp18 ;
11842  unsigned long __cil_tmp19 ;
11843  unsigned long __cil_tmp20 ;
11844  unsigned long __cil_tmp21 ;
11845  unsigned long __cil_tmp22 ;
11846  long __cil_tmp23 ;
11847
11848  {
11849#line 492
11850  __cil_tmp10 = addr / 4096ULL;
11851#line 492
11852  a = __cil_tmp10 / 8ULL;
11853  {
11854#line 495
11855  __cil_tmp11 = (unsigned long )log_base;
11856#line 495
11857  __cil_tmp12 = 0xffffffffffffffffUL - __cil_tmp11;
11858#line 495
11859  __cil_tmp13 = (u64 )__cil_tmp12;
11860#line 495
11861  if (a > __cil_tmp13) {
11862#line 497
11863    return (0);
11864  } else {
11865    {
11866#line 495
11867    __cil_tmp14 = (unsigned long )log_base;
11868#line 495
11869    __cil_tmp15 = (u64 )__cil_tmp14;
11870#line 495
11871    __cil_tmp16 = a + __cil_tmp15;
11872#line 495
11873    if (__cil_tmp16 > 0xffffffffffffffffULL) {
11874#line 497
11875      return (0);
11876    } else {
11877
11878    }
11879    }
11880  }
11881  }
11882  {
11883#line 499
11884  tmp___7 = current_thread_info();
11885#line 499
11886  __cil_tmp17 = sz + 32768UL;
11887#line 499
11888  __cil_tmp18 = __cil_tmp17 - 1UL;
11889#line 499
11890  __cil_tmp19 = __cil_tmp18 / 4096UL;
11891#line 499
11892  __cil_tmp20 = __cil_tmp19 / 8UL;
11893#line 499
11894  __cil_tmp21 = (unsigned long )tmp___7;
11895#line 499
11896  __cil_tmp22 = __cil_tmp21 + 32;
11897#line 499
11898  __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (log_base + a),
11899            "g" ((long )__cil_tmp20), "rm" (*((unsigned long *)__cil_tmp22)));
11900  }
11901#line 499
11902  if (flag == 0UL) {
11903#line 499
11904    tmp___8 = 1;
11905  } else {
11906#line 499
11907    tmp___8 = 0;
11908  }
11909  {
11910#line 499
11911  __cil_tmp23 = (long )tmp___8;
11912#line 499
11913  tmp___9 = __builtin_expect(__cil_tmp23, 1L);
11914  }
11915#line 499
11916  return ((int )tmp___9);
11917}
11918}
11919#line 504 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
11920static int vq_memory_access_ok(void *log_base , struct vhost_memory *mem , int log_all ) 
11921{ int i ;
11922  struct vhost_memory_region *m ;
11923  unsigned long a ;
11924  int tmp___7 ;
11925  unsigned long flag ;
11926  unsigned long roksum ;
11927  struct thread_info *tmp___8 ;
11928  int tmp___9 ;
11929  long tmp___10 ;
11930  __u32 __cil_tmp13 ;
11931  __u32 __cil_tmp14 ;
11932  unsigned long __cil_tmp15 ;
11933  unsigned long __cil_tmp16 ;
11934  unsigned long __cil_tmp17 ;
11935  unsigned long __cil_tmp18 ;
11936  struct vhost_memory_region *__cil_tmp19 ;
11937  unsigned long __cil_tmp20 ;
11938  unsigned long __cil_tmp21 ;
11939  __u64 __cil_tmp22 ;
11940  unsigned long __cil_tmp23 ;
11941  unsigned long __cil_tmp24 ;
11942  __u64 __cil_tmp25 ;
11943  unsigned long __cil_tmp26 ;
11944  unsigned long __cil_tmp27 ;
11945  __u64 __cil_tmp28 ;
11946  unsigned long __cil_tmp29 ;
11947  unsigned long __cil_tmp30 ;
11948  long __cil_tmp31 ;
11949  __u64 __cil_tmp32 ;
11950  unsigned long __cil_tmp33 ;
11951  unsigned long __cil_tmp34 ;
11952  __u64 __cil_tmp35 ;
11953  unsigned long __cil_tmp36 ;
11954
11955  {
11956#line 509
11957  if (! mem) {
11958#line 510
11959    return (0);
11960  } else {
11961
11962  }
11963#line 512
11964  i = 0;
11965  {
11966#line 512
11967  while (1) {
11968    while_continue: /* CIL Label */ ;
11969    {
11970#line 512
11971    __cil_tmp13 = *((__u32 *)mem);
11972#line 512
11973    __cil_tmp14 = (__u32 )i;
11974#line 512
11975    if (__cil_tmp14 < __cil_tmp13) {
11976
11977    } else {
11978#line 512
11979      goto while_break;
11980    }
11981    }
11982#line 513
11983    __cil_tmp15 = 0 * 32UL;
11984#line 513
11985    __cil_tmp16 = 8 + __cil_tmp15;
11986#line 513
11987    __cil_tmp17 = (unsigned long )mem;
11988#line 513
11989    __cil_tmp18 = __cil_tmp17 + __cil_tmp16;
11990#line 513
11991    __cil_tmp19 = (struct vhost_memory_region *)__cil_tmp18;
11992#line 513
11993    m = __cil_tmp19 + i;
11994#line 514
11995    __cil_tmp20 = (unsigned long )m;
11996#line 514
11997    __cil_tmp21 = __cil_tmp20 + 16;
11998#line 514
11999    __cil_tmp22 = *((__u64 *)__cil_tmp21);
12000#line 514
12001    a = (unsigned long )__cil_tmp22;
12002    {
12003#line 515
12004    __cil_tmp23 = (unsigned long )m;
12005#line 515
12006    __cil_tmp24 = __cil_tmp23 + 8;
12007#line 515
12008    __cil_tmp25 = *((__u64 *)__cil_tmp24);
12009#line 515
12010    if (__cil_tmp25 > 0xffffffffffffffffULL) {
12011#line 516
12012      return (0);
12013    } else {
12014      {
12015#line 517
12016      tmp___8 = current_thread_info();
12017#line 517
12018      __cil_tmp26 = (unsigned long )m;
12019#line 517
12020      __cil_tmp27 = __cil_tmp26 + 8;
12021#line 517
12022      __cil_tmp28 = *((__u64 *)__cil_tmp27);
12023#line 517
12024      __cil_tmp29 = (unsigned long )tmp___8;
12025#line 517
12026      __cil_tmp30 = __cil_tmp29 + 32;
12027#line 517
12028      __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" ((void *)a),
12029                "g" ((long )__cil_tmp28), "rm" (*((unsigned long *)__cil_tmp30)));
12030      }
12031#line 517
12032      if (flag == 0UL) {
12033#line 517
12034        tmp___9 = 1;
12035      } else {
12036#line 517
12037        tmp___9 = 0;
12038      }
12039      {
12040#line 517
12041      __cil_tmp31 = (long )tmp___9;
12042#line 517
12043      tmp___10 = __builtin_expect(__cil_tmp31, 1L);
12044      }
12045#line 517
12046      if (tmp___10) {
12047#line 520
12048        if (log_all) {
12049          {
12050#line 520
12051          __cil_tmp32 = *((__u64 *)m);
12052#line 520
12053          __cil_tmp33 = (unsigned long )m;
12054#line 520
12055          __cil_tmp34 = __cil_tmp33 + 8;
12056#line 520
12057          __cil_tmp35 = *((__u64 *)__cil_tmp34);
12058#line 520
12059          __cil_tmp36 = (unsigned long )__cil_tmp35;
12060#line 520
12061          tmp___7 = log_access_ok(log_base, __cil_tmp32, __cil_tmp36);
12062          }
12063#line 520
12064          if (tmp___7) {
12065
12066          } else {
12067#line 523
12068            return (0);
12069          }
12070        } else {
12071
12072        }
12073      } else {
12074#line 519
12075        return (0);
12076      }
12077    }
12078    }
12079#line 512
12080    i = i + 1;
12081  }
12082  while_break: /* CIL Label */ ;
12083  }
12084#line 525
12085  return (1);
12086}
12087}
12088#line 530 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
12089static int memory_access_ok(struct vhost_dev *d , struct vhost_memory *mem , int log_all ) 
12090{ int i ;
12091  int ok ;
12092  unsigned long __cil_tmp6 ;
12093  unsigned long __cil_tmp7 ;
12094  int __cil_tmp8 ;
12095  unsigned long __cil_tmp9 ;
12096  unsigned long __cil_tmp10 ;
12097  struct vhost_virtqueue *__cil_tmp11 ;
12098  struct vhost_virtqueue *__cil_tmp12 ;
12099  unsigned long __cil_tmp13 ;
12100  unsigned long __cil_tmp14 ;
12101  struct mutex *__cil_tmp15 ;
12102  unsigned long __cil_tmp16 ;
12103  unsigned long __cil_tmp17 ;
12104  struct vhost_virtqueue *__cil_tmp18 ;
12105  struct vhost_virtqueue *__cil_tmp19 ;
12106  unsigned long __cil_tmp20 ;
12107  unsigned long __cil_tmp21 ;
12108  unsigned long __cil_tmp22 ;
12109  unsigned long __cil_tmp23 ;
12110  struct vhost_virtqueue *__cil_tmp24 ;
12111  struct vhost_virtqueue *__cil_tmp25 ;
12112  unsigned long __cil_tmp26 ;
12113  unsigned long __cil_tmp27 ;
12114  void *__cil_tmp28 ;
12115  unsigned long __cil_tmp29 ;
12116  unsigned long __cil_tmp30 ;
12117  struct vhost_virtqueue *__cil_tmp31 ;
12118  struct vhost_virtqueue *__cil_tmp32 ;
12119  unsigned long __cil_tmp33 ;
12120  unsigned long __cil_tmp34 ;
12121  struct mutex *__cil_tmp35 ;
12122
12123  {
12124#line 535
12125  i = 0;
12126  {
12127#line 535
12128  while (1) {
12129    while_continue: /* CIL Label */ ;
12130    {
12131#line 535
12132    __cil_tmp6 = (unsigned long )d;
12133#line 535
12134    __cil_tmp7 = __cil_tmp6 + 104;
12135#line 535
12136    __cil_tmp8 = *((int *)__cil_tmp7);
12137#line 535
12138    if (i < __cil_tmp8) {
12139
12140    } else {
12141#line 535
12142      goto while_break;
12143    }
12144    }
12145    {
12146#line 537
12147    __cil_tmp9 = (unsigned long )d;
12148#line 537
12149    __cil_tmp10 = __cil_tmp9 + 96;
12150#line 537
12151    __cil_tmp11 = *((struct vhost_virtqueue **)__cil_tmp10);
12152#line 537
12153    __cil_tmp12 = __cil_tmp11 + i;
12154#line 537
12155    __cil_tmp13 = (unsigned long )__cil_tmp12;
12156#line 537
12157    __cil_tmp14 = __cil_tmp13 + 8;
12158#line 537
12159    __cil_tmp15 = (struct mutex *)__cil_tmp14;
12160#line 537
12161    mutex_lock(__cil_tmp15);
12162    }
12163    {
12164#line 539
12165    __cil_tmp16 = (unsigned long )d;
12166#line 539
12167    __cil_tmp17 = __cil_tmp16 + 96;
12168#line 539
12169    __cil_tmp18 = *((struct vhost_virtqueue **)__cil_tmp17);
12170#line 539
12171    __cil_tmp19 = __cil_tmp18 + i;
12172#line 539
12173    __cil_tmp20 = (unsigned long )__cil_tmp19;
12174#line 539
12175    __cil_tmp21 = __cil_tmp20 + 16960;
12176#line 539
12177    if (*((void **)__cil_tmp21)) {
12178      {
12179#line 540
12180      __cil_tmp22 = (unsigned long )d;
12181#line 540
12182      __cil_tmp23 = __cil_tmp22 + 96;
12183#line 540
12184      __cil_tmp24 = *((struct vhost_virtqueue **)__cil_tmp23);
12185#line 540
12186      __cil_tmp25 = __cil_tmp24 + i;
12187#line 540
12188      __cil_tmp26 = (unsigned long )__cil_tmp25;
12189#line 540
12190      __cil_tmp27 = __cil_tmp26 + 16968;
12191#line 540
12192      __cil_tmp28 = *((void **)__cil_tmp27);
12193#line 540
12194      ok = vq_memory_access_ok(__cil_tmp28, mem, log_all);
12195      }
12196    } else {
12197#line 543
12198      ok = 1;
12199    }
12200    }
12201    {
12202#line 544
12203    __cil_tmp29 = (unsigned long )d;
12204#line 544
12205    __cil_tmp30 = __cil_tmp29 + 96;
12206#line 544
12207    __cil_tmp31 = *((struct vhost_virtqueue **)__cil_tmp30);
12208#line 544
12209    __cil_tmp32 = __cil_tmp31 + i;
12210#line 544
12211    __cil_tmp33 = (unsigned long )__cil_tmp32;
12212#line 544
12213    __cil_tmp34 = __cil_tmp33 + 8;
12214#line 544
12215    __cil_tmp35 = (struct mutex *)__cil_tmp34;
12216#line 544
12217    mutex_unlock(__cil_tmp35);
12218    }
12219#line 545
12220    if (! ok) {
12221#line 546
12222      return (0);
12223    } else {
12224
12225    }
12226#line 535
12227    i = i + 1;
12228  }
12229  while_break: /* CIL Label */ ;
12230  }
12231#line 548
12232  return (1);
12233}
12234}
12235#line 551 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
12236static int vq_access_ok(struct vhost_dev *d , unsigned int num , struct vring_desc *desc ,
12237                        struct vring_avail *avail , struct vring_used *used ) 
12238{ size_t s ;
12239  int tmp___8 ;
12240  int tmp___9 ;
12241  unsigned long flag ;
12242  unsigned long roksum ;
12243  struct thread_info *tmp___10 ;
12244  int tmp___11 ;
12245  long tmp___12 ;
12246  unsigned long flag___0 ;
12247  unsigned long roksum___0 ;
12248  struct thread_info *tmp___13 ;
12249  int tmp___14 ;
12250  long tmp___15 ;
12251  unsigned long flag___1 ;
12252  unsigned long roksum___1 ;
12253  struct thread_info *tmp___16 ;
12254  int tmp___17 ;
12255  long tmp___18 ;
12256  int tmp___19 ;
12257  unsigned long __cil_tmp26 ;
12258  unsigned long __cil_tmp27 ;
12259  unsigned long __cil_tmp28 ;
12260  unsigned long __cil_tmp29 ;
12261  long __cil_tmp30 ;
12262  unsigned long __cil_tmp31 ;
12263  unsigned long __cil_tmp32 ;
12264  unsigned long __cil_tmp33 ;
12265  unsigned long __cil_tmp34 ;
12266  unsigned long __cil_tmp35 ;
12267  unsigned long __cil_tmp36 ;
12268  long __cil_tmp37 ;
12269  unsigned long __cil_tmp38 ;
12270  unsigned long __cil_tmp39 ;
12271  unsigned long __cil_tmp40 ;
12272  unsigned long __cil_tmp41 ;
12273  unsigned long __cil_tmp42 ;
12274  unsigned long __cil_tmp43 ;
12275  long __cil_tmp44 ;
12276
12277  {
12278  {
12279#line 556
12280  tmp___9 = vhost_has_feature(d, 29);
12281  }
12282#line 556
12283  if (tmp___9) {
12284#line 556
12285    tmp___8 = 2;
12286  } else {
12287#line 556
12288    tmp___8 = 0;
12289  }
12290  {
12291#line 556
12292  s = (size_t )tmp___8;
12293#line 557
12294  tmp___10 = current_thread_info();
12295#line 557
12296  __cil_tmp26 = (unsigned long )num;
12297#line 557
12298  __cil_tmp27 = __cil_tmp26 * 16UL;
12299#line 557
12300  __cil_tmp28 = (unsigned long )tmp___10;
12301#line 557
12302  __cil_tmp29 = __cil_tmp28 + 32;
12303#line 557
12304  __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (desc),
12305            "g" ((long )__cil_tmp27), "rm" (*((unsigned long *)__cil_tmp29)));
12306  }
12307#line 557
12308  if (flag == 0UL) {
12309#line 557
12310    tmp___11 = 1;
12311  } else {
12312#line 557
12313    tmp___11 = 0;
12314  }
12315  {
12316#line 557
12317  __cil_tmp30 = (long )tmp___11;
12318#line 557
12319  tmp___12 = __builtin_expect(__cil_tmp30, 1L);
12320  }
12321#line 560
12322  if (tmp___12) {
12323    {
12324#line 558
12325    tmp___13 = current_thread_info();
12326#line 558
12327    __cil_tmp31 = (unsigned long )num;
12328#line 558
12329    __cil_tmp32 = __cil_tmp31 * 2UL;
12330#line 558
12331    __cil_tmp33 = 4UL + __cil_tmp32;
12332#line 558
12333    __cil_tmp34 = __cil_tmp33 + s;
12334#line 558
12335    __cil_tmp35 = (unsigned long )tmp___13;
12336#line 558
12337    __cil_tmp36 = __cil_tmp35 + 32;
12338#line 558
12339    __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag___0), "=r" (roksum___0): "1" (avail),
12340              "g" ((long )__cil_tmp34), "rm" (*((unsigned long *)__cil_tmp36)));
12341    }
12342#line 558
12343    if (flag___0 == 0UL) {
12344#line 558
12345      tmp___14 = 1;
12346    } else {
12347#line 558
12348      tmp___14 = 0;
12349    }
12350    {
12351#line 558
12352    __cil_tmp37 = (long )tmp___14;
12353#line 558
12354    tmp___15 = __builtin_expect(__cil_tmp37, 1L);
12355    }
12356#line 560
12357    if (tmp___15) {
12358      {
12359#line 560
12360      tmp___16 = current_thread_info();
12361#line 560
12362      __cil_tmp38 = (unsigned long )num;
12363#line 560
12364      __cil_tmp39 = __cil_tmp38 * 8UL;
12365#line 560
12366      __cil_tmp40 = 4UL + __cil_tmp39;
12367#line 560
12368      __cil_tmp41 = __cil_tmp40 + s;
12369#line 560
12370      __cil_tmp42 = (unsigned long )tmp___16;
12371#line 560
12372      __cil_tmp43 = __cil_tmp42 + 32;
12373#line 560
12374      __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag___1),
12375                "=r" (roksum___1): "1" (used), "g" ((long )__cil_tmp41), "rm" (*((unsigned long *)__cil_tmp43)));
12376      }
12377#line 560
12378      if (flag___1 == 0UL) {
12379#line 560
12380        tmp___17 = 1;
12381      } else {
12382#line 560
12383        tmp___17 = 0;
12384      }
12385      {
12386#line 560
12387      __cil_tmp44 = (long )tmp___17;
12388#line 560
12389      tmp___18 = __builtin_expect(__cil_tmp44, 1L);
12390      }
12391#line 560
12392      if (tmp___18) {
12393#line 560
12394        tmp___19 = 1;
12395      } else {
12396#line 560
12397        tmp___19 = 0;
12398      }
12399    } else {
12400#line 560
12401      tmp___19 = 0;
12402    }
12403  } else {
12404#line 560
12405    tmp___19 = 0;
12406  }
12407#line 557
12408  return (tmp___19);
12409}
12410}
12411#line 566 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
12412int vhost_log_access_ok(struct vhost_dev *dev ) 
12413{ struct vhost_memory *mp ;
12414  int tmp___7 ;
12415
12416  {
12417  {
12418#line 570
12419  while (1) {
12420    while_continue: /* CIL Label */ ;
12421#line 570
12422    goto while_break;
12423  }
12424  while_break: /* CIL Label */ ;
12425  }
12426  {
12427#line 570
12428  mp = *((struct vhost_memory **)dev);
12429#line 572
12430  tmp___7 = memory_access_ok(dev, mp, 1);
12431  }
12432#line 572
12433  return (tmp___7);
12434}
12435}
12436#line 577 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
12437static int vq_log_access_ok(struct vhost_dev *d , struct vhost_virtqueue *vq , void *log_base ) 
12438{ struct vhost_memory *mp ;
12439  size_t s ;
12440  int tmp___8 ;
12441  int tmp___9 ;
12442  int tmp___10 ;
12443  int tmp___11 ;
12444  int tmp___12 ;
12445  int tmp___13 ;
12446  struct vhost_dev *__cil_tmp13 ;
12447  struct vhost_dev *__cil_tmp14 ;
12448  unsigned long __cil_tmp15 ;
12449  unsigned long __cil_tmp16 ;
12450  bool __cil_tmp17 ;
12451  unsigned long __cil_tmp18 ;
12452  unsigned long __cil_tmp19 ;
12453  u64 __cil_tmp20 ;
12454  unsigned long __cil_tmp21 ;
12455  unsigned long __cil_tmp22 ;
12456  unsigned int __cil_tmp23 ;
12457  unsigned long __cil_tmp24 ;
12458  unsigned long __cil_tmp25 ;
12459  unsigned long __cil_tmp26 ;
12460  unsigned long __cil_tmp27 ;
12461
12462  {
12463  {
12464#line 581
12465  tmp___9 = vhost_has_feature(d, 29);
12466  }
12467#line 581
12468  if (tmp___9) {
12469#line 581
12470    tmp___8 = 2;
12471  } else {
12472#line 581
12473    tmp___8 = 0;
12474  }
12475#line 581
12476  s = (size_t )tmp___8;
12477  {
12478#line 583
12479  while (1) {
12480    while_continue: /* CIL Label */ ;
12481#line 583
12482    goto while_break;
12483  }
12484  while_break: /* CIL Label */ ;
12485  }
12486  {
12487#line 583
12488  __cil_tmp13 = *((struct vhost_dev **)vq);
12489#line 583
12490  mp = *((struct vhost_memory **)__cil_tmp13);
12491#line 585
12492  __cil_tmp14 = *((struct vhost_dev **)vq);
12493#line 585
12494  tmp___10 = vhost_has_feature(__cil_tmp14, 26);
12495#line 585
12496  tmp___11 = vq_memory_access_ok(log_base, mp, tmp___10);
12497  }
12498#line 585
12499  if (tmp___11) {
12500    {
12501#line 585
12502    __cil_tmp15 = (unsigned long )vq;
12503#line 585
12504    __cil_tmp16 = __cil_tmp15 + 339;
12505#line 585
12506    __cil_tmp17 = *((bool *)__cil_tmp16);
12507#line 585
12508    if (! __cil_tmp17) {
12509#line 585
12510      tmp___13 = 1;
12511    } else {
12512      {
12513#line 585
12514      __cil_tmp18 = (unsigned long )vq;
12515#line 585
12516      __cil_tmp19 = __cil_tmp18 + 344;
12517#line 585
12518      __cil_tmp20 = *((u64 *)__cil_tmp19);
12519#line 585
12520      __cil_tmp21 = (unsigned long )vq;
12521#line 585
12522      __cil_tmp22 = __cil_tmp21 + 80;
12523#line 585
12524      __cil_tmp23 = *((unsigned int *)__cil_tmp22);
12525#line 585
12526      __cil_tmp24 = (unsigned long )__cil_tmp23;
12527#line 585
12528      __cil_tmp25 = __cil_tmp24 * 8UL;
12529#line 585
12530      __cil_tmp26 = 4UL + __cil_tmp25;
12531#line 585
12532      __cil_tmp27 = __cil_tmp26 + s;
12533#line 585
12534      tmp___12 = log_access_ok(log_base, __cil_tmp20, __cil_tmp27);
12535      }
12536#line 585
12537      if (tmp___12) {
12538#line 585
12539        tmp___13 = 1;
12540      } else {
12541#line 585
12542        tmp___13 = 0;
12543      }
12544    }
12545    }
12546  } else {
12547#line 585
12548    tmp___13 = 0;
12549  }
12550#line 585
12551  return (tmp___13);
12552}
12553}
12554#line 594 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
12555int vhost_vq_access_ok(struct vhost_virtqueue *vq ) 
12556{ int tmp___7 ;
12557  int tmp___8 ;
12558  int tmp___9 ;
12559  struct vhost_dev *__cil_tmp5 ;
12560  unsigned long __cil_tmp6 ;
12561  unsigned long __cil_tmp7 ;
12562  unsigned int __cil_tmp8 ;
12563  unsigned long __cil_tmp9 ;
12564  unsigned long __cil_tmp10 ;
12565  struct vring_desc *__cil_tmp11 ;
12566  unsigned long __cil_tmp12 ;
12567  unsigned long __cil_tmp13 ;
12568  struct vring_avail *__cil_tmp14 ;
12569  unsigned long __cil_tmp15 ;
12570  unsigned long __cil_tmp16 ;
12571  struct vring_used *__cil_tmp17 ;
12572  struct vhost_dev *__cil_tmp18 ;
12573  unsigned long __cil_tmp19 ;
12574  unsigned long __cil_tmp20 ;
12575  void *__cil_tmp21 ;
12576
12577  {
12578  {
12579#line 596
12580  __cil_tmp5 = *((struct vhost_dev **)vq);
12581#line 596
12582  __cil_tmp6 = (unsigned long )vq;
12583#line 596
12584  __cil_tmp7 = __cil_tmp6 + 80;
12585#line 596
12586  __cil_tmp8 = *((unsigned int *)__cil_tmp7);
12587#line 596
12588  __cil_tmp9 = (unsigned long )vq;
12589#line 596
12590  __cil_tmp10 = __cil_tmp9 + 88;
12591#line 596
12592  __cil_tmp11 = *((struct vring_desc **)__cil_tmp10);
12593#line 596
12594  __cil_tmp12 = (unsigned long )vq;
12595#line 596
12596  __cil_tmp13 = __cil_tmp12 + 96;
12597#line 596
12598  __cil_tmp14 = *((struct vring_avail **)__cil_tmp13);
12599#line 596
12600  __cil_tmp15 = (unsigned long )vq;
12601#line 596
12602  __cil_tmp16 = __cil_tmp15 + 104;
12603#line 596
12604  __cil_tmp17 = *((struct vring_used **)__cil_tmp16);
12605#line 596
12606  tmp___7 = vq_access_ok(__cil_tmp5, __cil_tmp8, __cil_tmp11, __cil_tmp14, __cil_tmp17);
12607  }
12608#line 596
12609  if (tmp___7) {
12610    {
12611#line 596
12612    __cil_tmp18 = *((struct vhost_dev **)vq);
12613#line 596
12614    __cil_tmp19 = (unsigned long )vq;
12615#line 596
12616    __cil_tmp20 = __cil_tmp19 + 16968;
12617#line 596
12618    __cil_tmp21 = *((void **)__cil_tmp20);
12619#line 596
12620    tmp___8 = vq_log_access_ok(__cil_tmp18, vq, __cil_tmp21);
12621    }
12622#line 596
12623    if (tmp___8) {
12624#line 596
12625      tmp___9 = 1;
12626    } else {
12627#line 596
12628      tmp___9 = 0;
12629    }
12630  } else {
12631#line 596
12632    tmp___9 = 0;
12633  }
12634#line 596
12635  return (tmp___9);
12636}
12637}
12638#line 600 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
12639static long vhost_set_memory(struct vhost_dev *d , struct vhost_memory *m ) 
12640{ struct vhost_memory mem ;
12641  struct vhost_memory *newmem ;
12642  struct vhost_memory *oldmem ;
12643  unsigned long size ;
12644  unsigned long tmp___7 ;
12645  void *tmp___8 ;
12646  size_t __len ;
12647  void *__ret ;
12648  unsigned long tmp___9 ;
12649  int tmp___10 ;
12650  int tmp___11 ;
12651  struct vhost_memory *__cil_tmp14 ;
12652  unsigned long __cil_tmp15 ;
12653  unsigned long __cil_tmp16 ;
12654  struct vhost_memory_region (*__cil_tmp17)[0] ;
12655  unsigned int __cil_tmp18 ;
12656  void *__cil_tmp19 ;
12657  void    *__cil_tmp20 ;
12658  unsigned long __cil_tmp21 ;
12659  struct vhost_memory *__cil_tmp22 ;
12660  __u32 __cil_tmp23 ;
12661  struct vhost_memory *__cil_tmp24 ;
12662  __u32 __cil_tmp25 ;
12663  unsigned long __cil_tmp26 ;
12664  unsigned long __cil_tmp27 ;
12665  unsigned long __cil_tmp28 ;
12666  void *__cil_tmp29 ;
12667  void    *__cil_tmp30 ;
12668  unsigned long __cil_tmp31 ;
12669  unsigned long __cil_tmp32 ;
12670  unsigned long __cil_tmp33 ;
12671  unsigned long __cil_tmp34 ;
12672  struct vhost_memory_region *__cil_tmp35 ;
12673  void *__cil_tmp36 ;
12674  unsigned long __cil_tmp37 ;
12675  unsigned long __cil_tmp38 ;
12676  unsigned long __cil_tmp39 ;
12677  unsigned long __cil_tmp40 ;
12678  struct vhost_memory_region *__cil_tmp41 ;
12679  void    *__cil_tmp42 ;
12680  struct vhost_memory *__cil_tmp43 ;
12681  __u32 __cil_tmp44 ;
12682  unsigned long __cil_tmp45 ;
12683  unsigned long __cil_tmp46 ;
12684  void    *__cil_tmp47 ;
12685  void    *__cil_tmp48 ;
12686  void    *__cil_tmp49 ;
12687
12688  {
12689  {
12690#line 603
12691  __cil_tmp14 = (struct vhost_memory *)0;
12692#line 603
12693  __cil_tmp15 = (unsigned long )__cil_tmp14;
12694#line 603
12695  __cil_tmp16 = __cil_tmp15 + 8;
12696#line 603
12697  __cil_tmp17 = (struct vhost_memory_region (*)[0])__cil_tmp16;
12698#line 603
12699  __cil_tmp18 = (unsigned int )__cil_tmp17;
12700#line 603
12701  size = (unsigned long )__cil_tmp18;
12702#line 605
12703  __cil_tmp19 = (void *)(& mem);
12704#line 605
12705  __cil_tmp20 = (void    *)m;
12706#line 605
12707  tmp___7 = (unsigned long )copy_from_user(__cil_tmp19, __cil_tmp20, size);
12708  }
12709#line 605
12710  if (tmp___7) {
12711#line 606
12712    return (-14L);
12713  } else {
12714
12715  }
12716  {
12717#line 607
12718  __cil_tmp21 = (unsigned long )(& mem) + 4;
12719#line 607
12720  if (*((__u32 *)__cil_tmp21)) {
12721#line 608
12722    return (-95L);
12723  } else {
12724
12725  }
12726  }
12727  {
12728#line 609
12729  __cil_tmp22 = & mem;
12730#line 609
12731  __cil_tmp23 = *((__u32 *)__cil_tmp22);
12732#line 609
12733  if (__cil_tmp23 > 64U) {
12734#line 610
12735    return (-7L);
12736  } else {
12737
12738  }
12739  }
12740  {
12741#line 611
12742  __cil_tmp24 = & mem;
12743#line 611
12744  __cil_tmp25 = *((__u32 *)__cil_tmp24);
12745#line 611
12746  __cil_tmp26 = (unsigned long )__cil_tmp25;
12747#line 611
12748  __cil_tmp27 = __cil_tmp26 * 32UL;
12749#line 611
12750  __cil_tmp28 = size + __cil_tmp27;
12751#line 611
12752  tmp___8 = kmalloc(__cil_tmp28, 208U);
12753#line 611
12754  newmem = (struct vhost_memory *)tmp___8;
12755  }
12756#line 612
12757  if (! newmem) {
12758#line 613
12759    return (-12L);
12760  } else {
12761
12762  }
12763  {
12764#line 615
12765  __len = size;
12766#line 615
12767  __cil_tmp29 = (void *)newmem;
12768#line 615
12769  __cil_tmp30 = (void    *)(& mem);
12770#line 615
12771  __ret = __builtin_memcpy(__cil_tmp29, __cil_tmp30, __len);
12772#line 616
12773  __cil_tmp31 = 0 * 32UL;
12774#line 616
12775  __cil_tmp32 = 8 + __cil_tmp31;
12776#line 616
12777  __cil_tmp33 = (unsigned long )newmem;
12778#line 616
12779  __cil_tmp34 = __cil_tmp33 + __cil_tmp32;
12780#line 616
12781  __cil_tmp35 = (struct vhost_memory_region *)__cil_tmp34;
12782#line 616
12783  __cil_tmp36 = (void *)__cil_tmp35;
12784#line 616
12785  __cil_tmp37 = 0 * 32UL;
12786#line 616
12787  __cil_tmp38 = 8 + __cil_tmp37;
12788#line 616
12789  __cil_tmp39 = (unsigned long )m;
12790#line 616
12791  __cil_tmp40 = __cil_tmp39 + __cil_tmp38;
12792#line 616
12793  __cil_tmp41 = (struct vhost_memory_region *)__cil_tmp40;
12794#line 616
12795  __cil_tmp42 = (void    *)__cil_tmp41;
12796#line 616
12797  __cil_tmp43 = & mem;
12798#line 616
12799  __cil_tmp44 = *((__u32 *)__cil_tmp43);
12800#line 616
12801  __cil_tmp45 = (unsigned long )__cil_tmp44;
12802#line 616
12803  __cil_tmp46 = __cil_tmp45 * 32UL;
12804#line 616
12805  tmp___9 = (unsigned long )copy_from_user(__cil_tmp36, __cil_tmp42, __cil_tmp46);
12806  }
12807#line 616
12808  if (tmp___9) {
12809    {
12810#line 618
12811    __cil_tmp47 = (void    *)newmem;
12812#line 618
12813    kfree(__cil_tmp47);
12814    }
12815#line 619
12816    return (-14L);
12817  } else {
12818
12819  }
12820  {
12821#line 622
12822  tmp___10 = vhost_has_feature(d, 26);
12823#line 622
12824  tmp___11 = memory_access_ok(d, newmem, tmp___10);
12825  }
12826#line 622
12827  if (tmp___11) {
12828
12829  } else {
12830    {
12831#line 624
12832    __cil_tmp48 = (void    *)newmem;
12833#line 624
12834    kfree(__cil_tmp48);
12835    }
12836#line 625
12837    return (-14L);
12838  }
12839  {
12840#line 627
12841  while (1) {
12842    while_continue: /* CIL Label */ ;
12843#line 627
12844    goto while_break;
12845  }
12846  while_break: /* CIL Label */ ;
12847  }
12848  {
12849#line 627
12850  oldmem = *((struct vhost_memory **)d);
12851#line 629
12852  __asm__  volatile   ("": : : "memory");
12853#line 629
12854  *((struct vhost_memory **)d) = newmem;
12855#line 630
12856  synchronize_rcu();
12857#line 631
12858  __cil_tmp49 = (void    *)oldmem;
12859#line 631
12860  kfree(__cil_tmp49);
12861  }
12862#line 632
12863  return (0L);
12864}
12865}
12866#line 635 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
12867static long vhost_set_vring(struct vhost_dev *d , int ioctl , void *argp ) 
12868{ struct file *eventfp ;
12869  struct file *filep ;
12870  struct file *pollstart ;
12871  struct file *pollstop ;
12872  struct eventfd_ctx *ctx ;
12873  u32 *idxp ;
12874  struct vhost_virtqueue *vq ;
12875  struct vhost_vring_state s ;
12876  struct vhost_vring_file f ;
12877  struct vhost_vring_addr a ;
12878  u32 idx ;
12879  long r ;
12880  int __ret_gu ;
12881  unsigned long __val_gu ;
12882  unsigned long tmp___7 ;
12883  unsigned long tmp___8 ;
12884  int tmp___9 ;
12885  unsigned long tmp___10 ;
12886  int tmp___11 ;
12887  int tmp___12 ;
12888  unsigned long tmp___13 ;
12889  struct file *tmp___14 ;
12890  long tmp___15 ;
12891  struct file *tmp___16 ;
12892  unsigned long tmp___17 ;
12893  struct file *tmp___18 ;
12894  long tmp___19 ;
12895  struct eventfd_ctx *tmp___20 ;
12896  unsigned long tmp___21 ;
12897  struct file *tmp___22 ;
12898  long tmp___23 ;
12899  struct eventfd_ctx *tmp___24 ;
12900  void *__cil_tmp36 ;
12901  void *__cil_tmp37 ;
12902  void *__cil_tmp38 ;
12903  void *__cil_tmp39 ;
12904  unsigned long __cil_tmp40 ;
12905  unsigned long __cil_tmp41 ;
12906  int __cil_tmp42 ;
12907  u32 __cil_tmp43 ;
12908  unsigned long __cil_tmp44 ;
12909  unsigned long __cil_tmp45 ;
12910  struct vhost_virtqueue *__cil_tmp46 ;
12911  unsigned long __cil_tmp47 ;
12912  unsigned long __cil_tmp48 ;
12913  struct mutex *__cil_tmp49 ;
12914  unsigned long __cil_tmp50 ;
12915  unsigned long __cil_tmp51 ;
12916  unsigned long __cil_tmp52 ;
12917  int __cil_tmp53 ;
12918  unsigned int __cil_tmp54 ;
12919  unsigned int __cil_tmp55 ;
12920  unsigned int __cil_tmp56 ;
12921  unsigned int __cil_tmp57 ;
12922  unsigned long __cil_tmp58 ;
12923  void *__cil_tmp59 ;
12924  void    *__cil_tmp60 ;
12925  unsigned long __cil_tmp61 ;
12926  unsigned int __cil_tmp62 ;
12927  unsigned long __cil_tmp63 ;
12928  unsigned int __cil_tmp64 ;
12929  unsigned long __cil_tmp65 ;
12930  unsigned int __cil_tmp66 ;
12931  unsigned int __cil_tmp67 ;
12932  unsigned long __cil_tmp68 ;
12933  unsigned int __cil_tmp69 ;
12934  unsigned long __cil_tmp70 ;
12935  unsigned long __cil_tmp71 ;
12936  unsigned long __cil_tmp72 ;
12937  unsigned long __cil_tmp73 ;
12938  unsigned long __cil_tmp74 ;
12939  unsigned long __cil_tmp75 ;
12940  int __cil_tmp76 ;
12941  unsigned int __cil_tmp77 ;
12942  unsigned int __cil_tmp78 ;
12943  unsigned int __cil_tmp79 ;
12944  unsigned int __cil_tmp80 ;
12945  unsigned long __cil_tmp81 ;
12946  void *__cil_tmp82 ;
12947  void    *__cil_tmp83 ;
12948  unsigned long __cil_tmp84 ;
12949  unsigned int __cil_tmp85 ;
12950  unsigned long __cil_tmp86 ;
12951  unsigned long __cil_tmp87 ;
12952  unsigned long __cil_tmp88 ;
12953  unsigned int __cil_tmp89 ;
12954  unsigned long __cil_tmp90 ;
12955  unsigned long __cil_tmp91 ;
12956  unsigned long __cil_tmp92 ;
12957  unsigned long __cil_tmp93 ;
12958  struct vhost_vring_state *__cil_tmp94 ;
12959  unsigned long __cil_tmp95 ;
12960  unsigned long __cil_tmp96 ;
12961  unsigned long __cil_tmp97 ;
12962  u16 __cil_tmp98 ;
12963  void    *__cil_tmp99 ;
12964  unsigned int __cil_tmp100 ;
12965  unsigned long __cil_tmp101 ;
12966  int __cil_tmp102 ;
12967  unsigned int __cil_tmp103 ;
12968  unsigned int __cil_tmp104 ;
12969  unsigned int __cil_tmp105 ;
12970  unsigned int __cil_tmp106 ;
12971  unsigned long __cil_tmp107 ;
12972  void *__cil_tmp108 ;
12973  void    *__cil_tmp109 ;
12974  unsigned long __cil_tmp110 ;
12975  int __cil_tmp111 ;
12976  unsigned int __cil_tmp112 ;
12977  unsigned int __cil_tmp113 ;
12978  unsigned int __cil_tmp114 ;
12979  unsigned int __cil_tmp115 ;
12980  unsigned long __cil_tmp116 ;
12981  unsigned long __cil_tmp117 ;
12982  unsigned int __cil_tmp118 ;
12983  unsigned long __cil_tmp119 ;
12984  __u64 __cil_tmp120 ;
12985  unsigned long __cil_tmp121 ;
12986  __u64 __cil_tmp122 ;
12987  unsigned long __cil_tmp123 ;
12988  u64 __cil_tmp124 ;
12989  unsigned long __cil_tmp125 ;
12990  __u64 __cil_tmp126 ;
12991  unsigned long __cil_tmp127 ;
12992  __u64 __cil_tmp128 ;
12993  unsigned long __cil_tmp129 ;
12994  u64 __cil_tmp130 ;
12995  unsigned long __cil_tmp131 ;
12996  __u64 __cil_tmp132 ;
12997  unsigned long __cil_tmp133 ;
12998  __u64 __cil_tmp134 ;
12999  unsigned long __cil_tmp135 ;
13000  u64 __cil_tmp136 ;
13001  unsigned long __cil_tmp137 ;
13002  unsigned long long __cil_tmp138 ;
13003  unsigned long __cil_tmp139 ;
13004  __u64 __cil_tmp140 ;
13005  unsigned long __cil_tmp141 ;
13006  unsigned long long __cil_tmp142 ;
13007  unsigned long __cil_tmp143 ;
13008  __u64 __cil_tmp144 ;
13009  unsigned long __cil_tmp145 ;
13010  unsigned long long __cil_tmp146 ;
13011  unsigned long __cil_tmp147 ;
13012  __u64 __cil_tmp148 ;
13013  unsigned long __cil_tmp149 ;
13014  unsigned long __cil_tmp150 ;
13015  unsigned long __cil_tmp151 ;
13016  unsigned long __cil_tmp152 ;
13017  unsigned int __cil_tmp153 ;
13018  unsigned long __cil_tmp154 ;
13019  __u64 __cil_tmp155 ;
13020  unsigned long __cil_tmp156 ;
13021  void *__cil_tmp157 ;
13022  struct vring_desc *__cil_tmp158 ;
13023  unsigned long __cil_tmp159 ;
13024  __u64 __cil_tmp160 ;
13025  unsigned long __cil_tmp161 ;
13026  void *__cil_tmp162 ;
13027  struct vring_avail *__cil_tmp163 ;
13028  unsigned long __cil_tmp164 ;
13029  __u64 __cil_tmp165 ;
13030  unsigned long __cil_tmp166 ;
13031  void *__cil_tmp167 ;
13032  struct vring_used *__cil_tmp168 ;
13033  unsigned long __cil_tmp169 ;
13034  unsigned int __cil_tmp170 ;
13035  unsigned long __cil_tmp171 ;
13036  unsigned long __cil_tmp172 ;
13037  void *__cil_tmp173 ;
13038  unsigned long __cil_tmp174 ;
13039  __u64 __cil_tmp175 ;
13040  unsigned long __cil_tmp176 ;
13041  unsigned long __cil_tmp177 ;
13042  unsigned int __cil_tmp178 ;
13043  unsigned long __cil_tmp179 ;
13044  unsigned long __cil_tmp180 ;
13045  unsigned long __cil_tmp181 ;
13046  unsigned long __cil_tmp182 ;
13047  unsigned long __cil_tmp183 ;
13048  unsigned long __cil_tmp184 ;
13049  unsigned int __cil_tmp185 ;
13050  unsigned int __cil_tmp186 ;
13051  int __cil_tmp187 ;
13052  int __cil_tmp188 ;
13053  unsigned long __cil_tmp189 ;
13054  unsigned long __cil_tmp190 ;
13055  unsigned long __cil_tmp191 ;
13056  __u64 __cil_tmp192 ;
13057  unsigned long __cil_tmp193 ;
13058  void *__cil_tmp194 ;
13059  unsigned long __cil_tmp195 ;
13060  unsigned long __cil_tmp196 ;
13061  unsigned long __cil_tmp197 ;
13062  __u64 __cil_tmp198 ;
13063  unsigned long __cil_tmp199 ;
13064  void *__cil_tmp200 ;
13065  unsigned long __cil_tmp201 ;
13066  unsigned long __cil_tmp202 ;
13067  unsigned long __cil_tmp203 ;
13068  unsigned long __cil_tmp204 ;
13069  unsigned long __cil_tmp205 ;
13070  unsigned long __cil_tmp206 ;
13071  __u64 __cil_tmp207 ;
13072  unsigned long __cil_tmp208 ;
13073  void *__cil_tmp209 ;
13074  void *__cil_tmp210 ;
13075  void    *__cil_tmp211 ;
13076  unsigned long __cil_tmp212 ;
13077  int __cil_tmp213 ;
13078  unsigned int __cil_tmp214 ;
13079  unsigned int __cil_tmp215 ;
13080  unsigned int __cil_tmp216 ;
13081  unsigned int __cil_tmp217 ;
13082  unsigned long __cil_tmp218 ;
13083  unsigned long __cil_tmp219 ;
13084  int __cil_tmp220 ;
13085  void *__cil_tmp221 ;
13086  unsigned long __cil_tmp222 ;
13087  int __cil_tmp223 ;
13088  void    *__cil_tmp224 ;
13089  void    *__cil_tmp225 ;
13090  unsigned long __cil_tmp226 ;
13091  unsigned long __cil_tmp227 ;
13092  struct file *__cil_tmp228 ;
13093  unsigned long __cil_tmp229 ;
13094  unsigned long __cil_tmp230 ;
13095  unsigned long __cil_tmp231 ;
13096  unsigned long __cil_tmp232 ;
13097  unsigned long __cil_tmp233 ;
13098  unsigned long __cil_tmp234 ;
13099  void *__cil_tmp235 ;
13100  void    *__cil_tmp236 ;
13101  unsigned long __cil_tmp237 ;
13102  int __cil_tmp238 ;
13103  unsigned int __cil_tmp239 ;
13104  unsigned int __cil_tmp240 ;
13105  unsigned int __cil_tmp241 ;
13106  unsigned int __cil_tmp242 ;
13107  unsigned long __cil_tmp243 ;
13108  unsigned long __cil_tmp244 ;
13109  int __cil_tmp245 ;
13110  void *__cil_tmp246 ;
13111  unsigned long __cil_tmp247 ;
13112  int __cil_tmp248 ;
13113  void    *__cil_tmp249 ;
13114  void    *__cil_tmp250 ;
13115  unsigned long __cil_tmp251 ;
13116  unsigned long __cil_tmp252 ;
13117  struct file *__cil_tmp253 ;
13118  unsigned long __cil_tmp254 ;
13119  unsigned long __cil_tmp255 ;
13120  unsigned long __cil_tmp256 ;
13121  unsigned long __cil_tmp257 ;
13122  unsigned long __cil_tmp258 ;
13123  unsigned long __cil_tmp259 ;
13124  unsigned long __cil_tmp260 ;
13125  unsigned long __cil_tmp261 ;
13126  unsigned long __cil_tmp262 ;
13127  unsigned long __cil_tmp263 ;
13128  unsigned long __cil_tmp264 ;
13129  unsigned long __cil_tmp265 ;
13130  void *__cil_tmp266 ;
13131  void *__cil_tmp267 ;
13132  void    *__cil_tmp268 ;
13133  unsigned long __cil_tmp269 ;
13134  int __cil_tmp270 ;
13135  unsigned int __cil_tmp271 ;
13136  unsigned int __cil_tmp272 ;
13137  unsigned int __cil_tmp273 ;
13138  unsigned int __cil_tmp274 ;
13139  unsigned long __cil_tmp275 ;
13140  unsigned long __cil_tmp276 ;
13141  int __cil_tmp277 ;
13142  void *__cil_tmp278 ;
13143  unsigned long __cil_tmp279 ;
13144  int __cil_tmp280 ;
13145  void    *__cil_tmp281 ;
13146  void    *__cil_tmp282 ;
13147  unsigned long __cil_tmp283 ;
13148  unsigned long __cil_tmp284 ;
13149  struct file *__cil_tmp285 ;
13150  unsigned long __cil_tmp286 ;
13151  unsigned long __cil_tmp287 ;
13152  unsigned long __cil_tmp288 ;
13153  unsigned long __cil_tmp289 ;
13154  unsigned long __cil_tmp290 ;
13155  unsigned long __cil_tmp291 ;
13156  unsigned long __cil_tmp292 ;
13157  unsigned long __cil_tmp293 ;
13158  unsigned long __cil_tmp294 ;
13159  unsigned long __cil_tmp295 ;
13160  unsigned long __cil_tmp296 ;
13161  unsigned long __cil_tmp297 ;
13162  void *__cil_tmp298 ;
13163  unsigned long __cil_tmp299 ;
13164  unsigned long __cil_tmp300 ;
13165  unsigned long __cil_tmp301 ;
13166  unsigned long __cil_tmp302 ;
13167  struct vhost_poll *__cil_tmp303 ;
13168  unsigned long __cil_tmp304 ;
13169  unsigned long __cil_tmp305 ;
13170  unsigned long __cil_tmp306 ;
13171  unsigned long __cil_tmp307 ;
13172  struct vhost_poll *__cil_tmp308 ;
13173  unsigned long __cil_tmp309 ;
13174  unsigned long __cil_tmp310 ;
13175  struct file *__cil_tmp311 ;
13176  unsigned long __cil_tmp312 ;
13177  unsigned long __cil_tmp313 ;
13178  struct mutex *__cil_tmp314 ;
13179  unsigned long __cil_tmp315 ;
13180  unsigned long __cil_tmp316 ;
13181  unsigned long __cil_tmp317 ;
13182  unsigned long __cil_tmp318 ;
13183  struct vhost_poll *__cil_tmp319 ;
13184
13185  {
13186  {
13187#line 637
13188  __cil_tmp36 = (void *)0;
13189#line 637
13190  filep = (struct file *)__cil_tmp36;
13191#line 637
13192  __cil_tmp37 = (void *)0;
13193#line 637
13194  pollstart = (struct file *)__cil_tmp37;
13195#line 637
13196  __cil_tmp38 = (void *)0;
13197#line 637
13198  pollstop = (struct file *)__cil_tmp38;
13199#line 639
13200  __cil_tmp39 = (void *)0;
13201#line 639
13202  ctx = (struct eventfd_ctx *)__cil_tmp39;
13203#line 640
13204  idxp = (u32 *)argp;
13205#line 648
13206  might_fault();
13207  }
13208#line 648
13209  if ((int )4UL == 1) {
13210#line 648
13211    goto case_1;
13212  } else
13213#line 648
13214  if ((int )4UL == 2) {
13215#line 648
13216    goto case_2;
13217  } else
13218#line 648
13219  if ((int )4UL == 4) {
13220#line 648
13221    goto case_4;
13222  } else
13223#line 648
13224  if ((int )4UL == 8) {
13225#line 648
13226    goto case_8;
13227  } else {
13228    {
13229#line 648
13230    goto switch_default;
13231#line 648
13232    if (0) {
13233      case_1: /* CIL Label */ 
13234#line 648
13235      __asm__  volatile   ("call __get_user_"
13236                           "1": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
13237#line 648
13238      goto switch_break;
13239      case_2: /* CIL Label */ 
13240#line 648
13241      __asm__  volatile   ("call __get_user_"
13242                           "2": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
13243#line 648
13244      goto switch_break;
13245      case_4: /* CIL Label */ 
13246#line 648
13247      __asm__  volatile   ("call __get_user_"
13248                           "4": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
13249#line 648
13250      goto switch_break;
13251      case_8: /* CIL Label */ 
13252#line 648
13253      __asm__  volatile   ("call __get_user_"
13254                           "8": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
13255#line 648
13256      goto switch_break;
13257      switch_default: /* CIL Label */ 
13258#line 648
13259      __asm__  volatile   ("call __get_user_"
13260                           "X": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
13261#line 648
13262      goto switch_break;
13263    } else {
13264      switch_break: /* CIL Label */ ;
13265    }
13266    }
13267  }
13268#line 648
13269  idx = (u32 )__val_gu;
13270#line 648
13271  r = (long )__ret_gu;
13272#line 649
13273  if (r < 0L) {
13274#line 650
13275    return (r);
13276  } else {
13277
13278  }
13279  {
13280#line 651
13281  __cil_tmp40 = (unsigned long )d;
13282#line 651
13283  __cil_tmp41 = __cil_tmp40 + 104;
13284#line 651
13285  __cil_tmp42 = *((int *)__cil_tmp41);
13286#line 651
13287  __cil_tmp43 = (u32 )__cil_tmp42;
13288#line 651
13289  if (idx >= __cil_tmp43) {
13290#line 652
13291    return (-105L);
13292  } else {
13293
13294  }
13295  }
13296  {
13297#line 654
13298  __cil_tmp44 = (unsigned long )d;
13299#line 654
13300  __cil_tmp45 = __cil_tmp44 + 96;
13301#line 654
13302  __cil_tmp46 = *((struct vhost_virtqueue **)__cil_tmp45);
13303#line 654
13304  vq = __cil_tmp46 + idx;
13305#line 656
13306  __cil_tmp47 = (unsigned long )vq;
13307#line 656
13308  __cil_tmp48 = __cil_tmp47 + 8;
13309#line 656
13310  __cil_tmp49 = (struct mutex *)__cil_tmp48;
13311#line 656
13312  mutex_lock(__cil_tmp49);
13313  }
13314#line 659
13315  if (ioctl == (__cil_tmp58 | __cil_tmp52)) {
13316#line 659
13317    goto case_exp;
13318  } else
13319#line 676
13320  if (ioctl == (__cil_tmp81 | __cil_tmp75)) {
13321#line 676
13322    goto case_exp___0;
13323  } else
13324#line 695
13325  if (ioctl == (__cil_tmp107 | __cil_tmp101)) {
13326#line 695
13327    goto case_exp___1;
13328  } else
13329#line 701
13330  if (ioctl == (__cil_tmp116 | __cil_tmp110)) {
13331#line 701
13332    goto case_exp___2;
13333  } else
13334#line 753
13335  if (ioctl == (__cil_tmp218 | __cil_tmp212)) {
13336#line 753
13337    goto case_exp___3;
13338  } else
13339#line 769
13340  if (ioctl == (__cil_tmp243 | __cil_tmp237)) {
13341#line 769
13342    goto case_exp___4;
13343  } else
13344#line 788
13345  if (ioctl == (__cil_tmp275 | __cil_tmp269)) {
13346#line 788
13347    goto case_exp___5;
13348  } else {
13349    {
13350#line 807
13351    goto switch_default___0;
13352#line 658
13353    if (0) {
13354      case_exp: /* CIL Label */ 
13355      {
13356#line 662
13357      __cil_tmp50 = (unsigned long )vq;
13358#line 662
13359      __cil_tmp51 = __cil_tmp50 + 16960;
13360#line 662
13361      __cil_tmp52 = 8UL << 16;
13362#line 662
13363      __cil_tmp53 = 175 << 8;
13364#line 662
13365      __cil_tmp54 = (unsigned int )__cil_tmp53;
13366#line 662
13367      __cil_tmp55 = 1U << 30;
13368#line 662
13369      __cil_tmp56 = __cil_tmp55 | __cil_tmp54;
13370#line 662
13371      __cil_tmp57 = __cil_tmp56 | 16U;
13372#line 662
13373      __cil_tmp58 = (unsigned long )__cil_tmp57;
13374#line 662
13375      if (*((void **)__cil_tmp51)) {
13376#line 663
13377        r = -16L;
13378#line 664
13379        goto switch_break___0;
13380      } else {
13381
13382      }
13383      }
13384      {
13385#line 666
13386      __cil_tmp59 = (void *)(& s);
13387#line 666
13388      __cil_tmp60 = (void    *)argp;
13389#line 666
13390      tmp___7 = (unsigned long )copy_from_user(__cil_tmp59, __cil_tmp60, 8UL);
13391      }
13392#line 666
13393      if (tmp___7) {
13394#line 667
13395        r = -14L;
13396#line 668
13397        goto switch_break___0;
13398      } else {
13399
13400      }
13401      {
13402#line 670
13403      __cil_tmp61 = (unsigned long )(& s) + 4;
13404#line 670
13405      __cil_tmp62 = *((unsigned int *)__cil_tmp61);
13406#line 670
13407      if (! __cil_tmp62) {
13408#line 671
13409        r = -22L;
13410#line 672
13411        goto switch_break___0;
13412      } else {
13413        {
13414#line 670
13415        __cil_tmp63 = (unsigned long )(& s) + 4;
13416#line 670
13417        __cil_tmp64 = *((unsigned int *)__cil_tmp63);
13418#line 670
13419        if (__cil_tmp64 > 65535U) {
13420#line 671
13421          r = -22L;
13422#line 672
13423          goto switch_break___0;
13424        } else {
13425          {
13426#line 670
13427          __cil_tmp65 = (unsigned long )(& s) + 4;
13428#line 670
13429          __cil_tmp66 = *((unsigned int *)__cil_tmp65);
13430#line 670
13431          __cil_tmp67 = __cil_tmp66 - 1U;
13432#line 670
13433          __cil_tmp68 = (unsigned long )(& s) + 4;
13434#line 670
13435          __cil_tmp69 = *((unsigned int *)__cil_tmp68);
13436#line 670
13437          if (__cil_tmp69 & __cil_tmp67) {
13438#line 671
13439            r = -22L;
13440#line 672
13441            goto switch_break___0;
13442          } else {
13443
13444          }
13445          }
13446        }
13447        }
13448      }
13449      }
13450#line 674
13451      __cil_tmp70 = (unsigned long )vq;
13452#line 674
13453      __cil_tmp71 = __cil_tmp70 + 80;
13454#line 674
13455      __cil_tmp72 = (unsigned long )(& s) + 4;
13456#line 674
13457      *((unsigned int *)__cil_tmp71) = *((unsigned int *)__cil_tmp72);
13458#line 675
13459      goto switch_break___0;
13460      case_exp___0: /* CIL Label */ 
13461      {
13462#line 679
13463      __cil_tmp73 = (unsigned long )vq;
13464#line 679
13465      __cil_tmp74 = __cil_tmp73 + 16960;
13466#line 679
13467      __cil_tmp75 = 8UL << 16;
13468#line 679
13469      __cil_tmp76 = 175 << 8;
13470#line 679
13471      __cil_tmp77 = (unsigned int )__cil_tmp76;
13472#line 679
13473      __cil_tmp78 = 1U << 30;
13474#line 679
13475      __cil_tmp79 = __cil_tmp78 | __cil_tmp77;
13476#line 679
13477      __cil_tmp80 = __cil_tmp79 | 18U;
13478#line 679
13479      __cil_tmp81 = (unsigned long )__cil_tmp80;
13480#line 679
13481      if (*((void **)__cil_tmp74)) {
13482#line 680
13483        r = -16L;
13484#line 681
13485        goto switch_break___0;
13486      } else {
13487
13488      }
13489      }
13490      {
13491#line 683
13492      __cil_tmp82 = (void *)(& s);
13493#line 683
13494      __cil_tmp83 = (void    *)argp;
13495#line 683
13496      tmp___8 = (unsigned long )copy_from_user(__cil_tmp82, __cil_tmp83, 8UL);
13497      }
13498#line 683
13499      if (tmp___8) {
13500#line 684
13501        r = -14L;
13502#line 685
13503        goto switch_break___0;
13504      } else {
13505
13506      }
13507      {
13508#line 687
13509      __cil_tmp84 = (unsigned long )(& s) + 4;
13510#line 687
13511      __cil_tmp85 = *((unsigned int *)__cil_tmp84);
13512#line 687
13513      if (__cil_tmp85 > 65535U) {
13514#line 688
13515        r = -22L;
13516#line 689
13517        goto switch_break___0;
13518      } else {
13519
13520      }
13521      }
13522#line 691
13523      __cil_tmp86 = (unsigned long )vq;
13524#line 691
13525      __cil_tmp87 = __cil_tmp86 + 328;
13526#line 691
13527      __cil_tmp88 = (unsigned long )(& s) + 4;
13528#line 691
13529      __cil_tmp89 = *((unsigned int *)__cil_tmp88);
13530#line 691
13531      *((u16 *)__cil_tmp87) = (u16 )__cil_tmp89;
13532#line 693
13533      __cil_tmp90 = (unsigned long )vq;
13534#line 693
13535      __cil_tmp91 = __cil_tmp90 + 330;
13536#line 693
13537      __cil_tmp92 = (unsigned long )vq;
13538#line 693
13539      __cil_tmp93 = __cil_tmp92 + 328;
13540#line 693
13541      *((u16 *)__cil_tmp91) = *((u16 *)__cil_tmp93);
13542#line 694
13543      goto switch_break___0;
13544      case_exp___1: /* CIL Label */ 
13545      {
13546#line 696
13547      __cil_tmp101 = 8UL << 16;
13548#line 696
13549      __cil_tmp102 = 175 << 8;
13550#line 696
13551      __cil_tmp103 = (unsigned int )__cil_tmp102;
13552#line 696
13553      __cil_tmp104 = 3U << 30;
13554#line 696
13555      __cil_tmp105 = __cil_tmp104 | __cil_tmp103;
13556#line 696
13557      __cil_tmp106 = __cil_tmp105 | 18U;
13558#line 696
13559      __cil_tmp107 = (unsigned long )__cil_tmp106;
13560      {
13561#line 696
13562      __cil_tmp94 = & s;
13563#line 696
13564      *((unsigned int *)__cil_tmp94) = idx;
13565#line 697
13566      __cil_tmp95 = (unsigned long )(& s) + 4;
13567#line 697
13568      __cil_tmp96 = (unsigned long )vq;
13569#line 697
13570      __cil_tmp97 = __cil_tmp96 + 328;
13571#line 697
13572      __cil_tmp98 = *((u16 *)__cil_tmp97);
13573#line 697
13574      *((unsigned int *)__cil_tmp95) = (unsigned int )__cil_tmp98;
13575#line 698
13576      __cil_tmp99 = (void    *)(& s);
13577#line 698
13578      __cil_tmp100 = (unsigned int )8UL;
13579#line 698
13580      tmp___9 = (int )copy_to_user(argp, __cil_tmp99, __cil_tmp100);
13581      }
13582      }
13583#line 698
13584      if (tmp___9) {
13585#line 699
13586        r = -14L;
13587      } else {
13588
13589      }
13590#line 700
13591      goto switch_break___0;
13592      case_exp___2: /* CIL Label */ 
13593      {
13594#line 702
13595      __cil_tmp110 = 40UL << 16;
13596#line 702
13597      __cil_tmp111 = 175 << 8;
13598#line 702
13599      __cil_tmp112 = (unsigned int )__cil_tmp111;
13600#line 702
13601      __cil_tmp113 = 1U << 30;
13602#line 702
13603      __cil_tmp114 = __cil_tmp113 | __cil_tmp112;
13604#line 702
13605      __cil_tmp115 = __cil_tmp114 | 17U;
13606#line 702
13607      __cil_tmp116 = (unsigned long )__cil_tmp115;
13608      {
13609#line 702
13610      __cil_tmp108 = (void *)(& a);
13611#line 702
13612      __cil_tmp109 = (void    *)argp;
13613#line 702
13614      tmp___10 = (unsigned long )copy_from_user(__cil_tmp108, __cil_tmp109, 40UL);
13615      }
13616      }
13617#line 702
13618      if (tmp___10) {
13619#line 703
13620        r = -14L;
13621#line 704
13622        goto switch_break___0;
13623      } else {
13624
13625      }
13626      {
13627#line 706
13628      __cil_tmp117 = (unsigned long )(& a) + 4;
13629#line 706
13630      __cil_tmp118 = *((unsigned int *)__cil_tmp117);
13631#line 706
13632      if (__cil_tmp118 & 4294967294U) {
13633#line 707
13634        r = -95L;
13635#line 708
13636        goto switch_break___0;
13637      } else {
13638
13639      }
13640      }
13641      {
13642#line 712
13643      __cil_tmp119 = (unsigned long )(& a) + 8;
13644#line 712
13645      __cil_tmp120 = *((__u64 *)__cil_tmp119);
13646#line 712
13647      __cil_tmp121 = (unsigned long )(& a) + 8;
13648#line 712
13649      __cil_tmp122 = *((__u64 *)__cil_tmp121);
13650#line 712
13651      __cil_tmp123 = (unsigned long )__cil_tmp122;
13652#line 712
13653      __cil_tmp124 = (u64 )__cil_tmp123;
13654#line 712
13655      if (__cil_tmp124 != __cil_tmp120) {
13656#line 715
13657        r = -14L;
13658#line 716
13659        goto switch_break___0;
13660      } else {
13661        {
13662#line 712
13663        __cil_tmp125 = (unsigned long )(& a) + 16;
13664#line 712
13665        __cil_tmp126 = *((__u64 *)__cil_tmp125);
13666#line 712
13667        __cil_tmp127 = (unsigned long )(& a) + 16;
13668#line 712
13669        __cil_tmp128 = *((__u64 *)__cil_tmp127);
13670#line 712
13671        __cil_tmp129 = (unsigned long )__cil_tmp128;
13672#line 712
13673        __cil_tmp130 = (u64 )__cil_tmp129;
13674#line 712
13675        if (__cil_tmp130 != __cil_tmp126) {
13676#line 715
13677          r = -14L;
13678#line 716
13679          goto switch_break___0;
13680        } else {
13681          {
13682#line 712
13683          __cil_tmp131 = (unsigned long )(& a) + 24;
13684#line 712
13685          __cil_tmp132 = *((__u64 *)__cil_tmp131);
13686#line 712
13687          __cil_tmp133 = (unsigned long )(& a) + 24;
13688#line 712
13689          __cil_tmp134 = *((__u64 *)__cil_tmp133);
13690#line 712
13691          __cil_tmp135 = (unsigned long )__cil_tmp134;
13692#line 712
13693          __cil_tmp136 = (u64 )__cil_tmp135;
13694#line 712
13695          if (__cil_tmp136 != __cil_tmp132) {
13696#line 715
13697            r = -14L;
13698#line 716
13699            goto switch_break___0;
13700          } else {
13701
13702          }
13703          }
13704        }
13705        }
13706      }
13707      }
13708      {
13709#line 718
13710      __cil_tmp137 = 2UL - 1UL;
13711#line 718
13712      __cil_tmp138 = (unsigned long long )__cil_tmp137;
13713#line 718
13714      __cil_tmp139 = (unsigned long )(& a) + 24;
13715#line 718
13716      __cil_tmp140 = *((__u64 *)__cil_tmp139);
13717#line 718
13718      if (__cil_tmp140 & __cil_tmp138) {
13719#line 721
13720        r = -22L;
13721#line 722
13722        goto switch_break___0;
13723      } else {
13724        {
13725#line 718
13726        __cil_tmp141 = 8UL - 1UL;
13727#line 718
13728        __cil_tmp142 = (unsigned long long )__cil_tmp141;
13729#line 718
13730        __cil_tmp143 = (unsigned long )(& a) + 16;
13731#line 718
13732        __cil_tmp144 = *((__u64 *)__cil_tmp143);
13733#line 718
13734        if (__cil_tmp144 & __cil_tmp142) {
13735#line 721
13736          r = -22L;
13737#line 722
13738          goto switch_break___0;
13739        } else {
13740          {
13741#line 718
13742          __cil_tmp145 = 8UL - 1UL;
13743#line 718
13744          __cil_tmp146 = (unsigned long long )__cil_tmp145;
13745#line 718
13746          __cil_tmp147 = (unsigned long )(& a) + 32;
13747#line 718
13748          __cil_tmp148 = *((__u64 *)__cil_tmp147);
13749#line 718
13750          if (__cil_tmp148 & __cil_tmp146) {
13751#line 721
13752            r = -22L;
13753#line 722
13754            goto switch_break___0;
13755          } else {
13756
13757          }
13758          }
13759        }
13760        }
13761      }
13762      }
13763      {
13764#line 728
13765      __cil_tmp149 = (unsigned long )vq;
13766#line 728
13767      __cil_tmp150 = __cil_tmp149 + 16960;
13768#line 728
13769      if (*((void **)__cil_tmp150)) {
13770        {
13771#line 729
13772        __cil_tmp151 = (unsigned long )vq;
13773#line 729
13774        __cil_tmp152 = __cil_tmp151 + 80;
13775#line 729
13776        __cil_tmp153 = *((unsigned int *)__cil_tmp152);
13777#line 729
13778        __cil_tmp154 = (unsigned long )(& a) + 8;
13779#line 729
13780        __cil_tmp155 = *((__u64 *)__cil_tmp154);
13781#line 729
13782        __cil_tmp156 = (unsigned long )__cil_tmp155;
13783#line 729
13784        __cil_tmp157 = (void *)__cil_tmp156;
13785#line 729
13786        __cil_tmp158 = (struct vring_desc *)__cil_tmp157;
13787#line 729
13788        __cil_tmp159 = (unsigned long )(& a) + 24;
13789#line 729
13790        __cil_tmp160 = *((__u64 *)__cil_tmp159);
13791#line 729
13792        __cil_tmp161 = (unsigned long )__cil_tmp160;
13793#line 729
13794        __cil_tmp162 = (void *)__cil_tmp161;
13795#line 729
13796        __cil_tmp163 = (struct vring_avail *)__cil_tmp162;
13797#line 729
13798        __cil_tmp164 = (unsigned long )(& a) + 16;
13799#line 729
13800        __cil_tmp165 = *((__u64 *)__cil_tmp164);
13801#line 729
13802        __cil_tmp166 = (unsigned long )__cil_tmp165;
13803#line 729
13804        __cil_tmp167 = (void *)__cil_tmp166;
13805#line 729
13806        __cil_tmp168 = (struct vring_used *)__cil_tmp167;
13807#line 729
13808        tmp___11 = vq_access_ok(d, __cil_tmp153, __cil_tmp158, __cil_tmp163, __cil_tmp168);
13809        }
13810#line 729
13811        if (tmp___11) {
13812
13813        } else {
13814#line 733
13815          r = -22L;
13816#line 734
13817          goto switch_break___0;
13818        }
13819        {
13820#line 738
13821        __cil_tmp169 = (unsigned long )(& a) + 4;
13822#line 738
13823        __cil_tmp170 = *((unsigned int *)__cil_tmp169);
13824#line 738
13825        if (__cil_tmp170 & 1U) {
13826          {
13827#line 738
13828          __cil_tmp171 = (unsigned long )vq;
13829#line 738
13830          __cil_tmp172 = __cil_tmp171 + 16968;
13831#line 738
13832          __cil_tmp173 = *((void **)__cil_tmp172);
13833#line 738
13834          __cil_tmp174 = (unsigned long )(& a) + 32;
13835#line 738
13836          __cil_tmp175 = *((__u64 *)__cil_tmp174);
13837#line 738
13838          __cil_tmp176 = (unsigned long )vq;
13839#line 738
13840          __cil_tmp177 = __cil_tmp176 + 80;
13841#line 738
13842          __cil_tmp178 = *((unsigned int *)__cil_tmp177);
13843#line 738
13844          __cil_tmp179 = (unsigned long )__cil_tmp178;
13845#line 738
13846          __cil_tmp180 = __cil_tmp179 * 8UL;
13847#line 738
13848          __cil_tmp181 = 4UL + __cil_tmp180;
13849#line 738
13850          tmp___12 = log_access_ok(__cil_tmp173, __cil_tmp175, __cil_tmp181);
13851          }
13852#line 738
13853          if (tmp___12) {
13854
13855          } else {
13856#line 742
13857            r = -22L;
13858#line 743
13859            goto switch_break___0;
13860          }
13861        } else {
13862
13863        }
13864        }
13865      } else {
13866
13867      }
13868      }
13869#line 747
13870      __cil_tmp182 = (unsigned long )vq;
13871#line 747
13872      __cil_tmp183 = __cil_tmp182 + 339;
13873#line 747
13874      __cil_tmp184 = (unsigned long )(& a) + 4;
13875#line 747
13876      __cil_tmp185 = *((unsigned int *)__cil_tmp184);
13877#line 747
13878      __cil_tmp186 = __cil_tmp185 & 1U;
13879#line 747
13880      __cil_tmp187 = ! __cil_tmp186;
13881#line 747
13882      __cil_tmp188 = ! __cil_tmp187;
13883#line 747
13884      *((bool *)__cil_tmp183) = (bool )__cil_tmp188;
13885#line 748
13886      __cil_tmp189 = (unsigned long )vq;
13887#line 748
13888      __cil_tmp190 = __cil_tmp189 + 88;
13889#line 748
13890      __cil_tmp191 = (unsigned long )(& a) + 8;
13891#line 748
13892      __cil_tmp192 = *((__u64 *)__cil_tmp191);
13893#line 748
13894      __cil_tmp193 = (unsigned long )__cil_tmp192;
13895#line 748
13896      __cil_tmp194 = (void *)__cil_tmp193;
13897#line 748
13898      *((struct vring_desc **)__cil_tmp190) = (struct vring_desc *)__cil_tmp194;
13899#line 749
13900      __cil_tmp195 = (unsigned long )vq;
13901#line 749
13902      __cil_tmp196 = __cil_tmp195 + 96;
13903#line 749
13904      __cil_tmp197 = (unsigned long )(& a) + 24;
13905#line 749
13906      __cil_tmp198 = *((__u64 *)__cil_tmp197);
13907#line 749
13908      __cil_tmp199 = (unsigned long )__cil_tmp198;
13909#line 749
13910      __cil_tmp200 = (void *)__cil_tmp199;
13911#line 749
13912      *((struct vring_avail **)__cil_tmp196) = (struct vring_avail *)__cil_tmp200;
13913#line 750
13914      __cil_tmp201 = (unsigned long )vq;
13915#line 750
13916      __cil_tmp202 = __cil_tmp201 + 344;
13917#line 750
13918      __cil_tmp203 = (unsigned long )(& a) + 32;
13919#line 750
13920      *((u64 *)__cil_tmp202) = *((__u64 *)__cil_tmp203);
13921#line 751
13922      __cil_tmp204 = (unsigned long )vq;
13923#line 751
13924      __cil_tmp205 = __cil_tmp204 + 104;
13925#line 751
13926      __cil_tmp206 = (unsigned long )(& a) + 16;
13927#line 751
13928      __cil_tmp207 = *((__u64 *)__cil_tmp206);
13929#line 751
13930      __cil_tmp208 = (unsigned long )__cil_tmp207;
13931#line 751
13932      __cil_tmp209 = (void *)__cil_tmp208;
13933#line 751
13934      *((struct vring_used **)__cil_tmp205) = (struct vring_used *)__cil_tmp209;
13935#line 752
13936      goto switch_break___0;
13937      case_exp___3: /* CIL Label */ 
13938      {
13939#line 754
13940      __cil_tmp212 = 8UL << 16;
13941#line 754
13942      __cil_tmp213 = 175 << 8;
13943#line 754
13944      __cil_tmp214 = (unsigned int )__cil_tmp213;
13945#line 754
13946      __cil_tmp215 = 1U << 30;
13947#line 754
13948      __cil_tmp216 = __cil_tmp215 | __cil_tmp214;
13949#line 754
13950      __cil_tmp217 = __cil_tmp216 | 32U;
13951#line 754
13952      __cil_tmp218 = (unsigned long )__cil_tmp217;
13953      {
13954#line 754
13955      __cil_tmp210 = (void *)(& f);
13956#line 754
13957      __cil_tmp211 = (void    *)argp;
13958#line 754
13959      tmp___13 = (unsigned long )copy_from_user(__cil_tmp210, __cil_tmp211, 8UL);
13960      }
13961      }
13962#line 754
13963      if (tmp___13) {
13964#line 755
13965        r = -14L;
13966#line 756
13967        goto switch_break___0;
13968      } else {
13969
13970      }
13971      {
13972#line 758
13973      __cil_tmp219 = (unsigned long )(& f) + 4;
13974#line 758
13975      __cil_tmp220 = *((int *)__cil_tmp219);
13976#line 758
13977      if (__cil_tmp220 == -1) {
13978#line 758
13979        __cil_tmp221 = (void *)0;
13980#line 758
13981        eventfp = (struct file *)__cil_tmp221;
13982      } else {
13983        {
13984#line 758
13985        __cil_tmp222 = (unsigned long )(& f) + 4;
13986#line 758
13987        __cil_tmp223 = *((int *)__cil_tmp222);
13988#line 758
13989        tmp___14 = eventfd_fget(__cil_tmp223);
13990#line 758
13991        eventfp = tmp___14;
13992        }
13993      }
13994      }
13995      {
13996#line 759
13997      __cil_tmp224 = (void    *)eventfp;
13998#line 759
13999      tmp___15 = (long )IS_ERR(__cil_tmp224);
14000      }
14001#line 759
14002      if (tmp___15) {
14003        {
14004#line 760
14005        __cil_tmp225 = (void    *)eventfp;
14006#line 760
14007        r = (long )PTR_ERR(__cil_tmp225);
14008        }
14009#line 761
14010        goto switch_break___0;
14011      } else {
14012
14013      }
14014      {
14015#line 763
14016      __cil_tmp226 = (unsigned long )vq;
14017#line 763
14018      __cil_tmp227 = __cil_tmp226 + 112;
14019#line 763
14020      __cil_tmp228 = *((struct file **)__cil_tmp227);
14021#line 763
14022      __cil_tmp229 = (unsigned long )__cil_tmp228;
14023#line 763
14024      __cil_tmp230 = (unsigned long )eventfp;
14025#line 763
14026      if (__cil_tmp230 != __cil_tmp229) {
14027#line 764
14028        __cil_tmp231 = (unsigned long )vq;
14029#line 764
14030        __cil_tmp232 = __cil_tmp231 + 112;
14031#line 764
14032        filep = *((struct file **)__cil_tmp232);
14033#line 764
14034        pollstop = filep;
14035#line 765
14036        tmp___16 = eventfp;
14037#line 765
14038        __cil_tmp233 = (unsigned long )vq;
14039#line 765
14040        __cil_tmp234 = __cil_tmp233 + 112;
14041#line 765
14042        *((struct file **)__cil_tmp234) = tmp___16;
14043#line 765
14044        pollstart = tmp___16;
14045      } else {
14046#line 767
14047        filep = eventfp;
14048      }
14049      }
14050#line 768
14051      goto switch_break___0;
14052      case_exp___4: /* CIL Label */ 
14053      {
14054#line 770
14055      __cil_tmp237 = 8UL << 16;
14056#line 770
14057      __cil_tmp238 = 175 << 8;
14058#line 770
14059      __cil_tmp239 = (unsigned int )__cil_tmp238;
14060#line 770
14061      __cil_tmp240 = 1U << 30;
14062#line 770
14063      __cil_tmp241 = __cil_tmp240 | __cil_tmp239;
14064#line 770
14065      __cil_tmp242 = __cil_tmp241 | 33U;
14066#line 770
14067      __cil_tmp243 = (unsigned long )__cil_tmp242;
14068      {
14069#line 770
14070      __cil_tmp235 = (void *)(& f);
14071#line 770
14072      __cil_tmp236 = (void    *)argp;
14073#line 770
14074      tmp___17 = (unsigned long )copy_from_user(__cil_tmp235, __cil_tmp236, 8UL);
14075      }
14076      }
14077#line 770
14078      if (tmp___17) {
14079#line 771
14080        r = -14L;
14081#line 772
14082        goto switch_break___0;
14083      } else {
14084
14085      }
14086      {
14087#line 774
14088      __cil_tmp244 = (unsigned long )(& f) + 4;
14089#line 774
14090      __cil_tmp245 = *((int *)__cil_tmp244);
14091#line 774
14092      if (__cil_tmp245 == -1) {
14093#line 774
14094        __cil_tmp246 = (void *)0;
14095#line 774
14096        eventfp = (struct file *)__cil_tmp246;
14097      } else {
14098        {
14099#line 774
14100        __cil_tmp247 = (unsigned long )(& f) + 4;
14101#line 774
14102        __cil_tmp248 = *((int *)__cil_tmp247);
14103#line 774
14104        tmp___18 = eventfd_fget(__cil_tmp248);
14105#line 774
14106        eventfp = tmp___18;
14107        }
14108      }
14109      }
14110      {
14111#line 775
14112      __cil_tmp249 = (void    *)eventfp;
14113#line 775
14114      tmp___19 = (long )IS_ERR(__cil_tmp249);
14115      }
14116#line 775
14117      if (tmp___19) {
14118        {
14119#line 776
14120        __cil_tmp250 = (void    *)eventfp;
14121#line 776
14122        r = (long )PTR_ERR(__cil_tmp250);
14123        }
14124#line 777
14125        goto switch_break___0;
14126      } else {
14127
14128      }
14129      {
14130#line 779
14131      __cil_tmp251 = (unsigned long )vq;
14132#line 779
14133      __cil_tmp252 = __cil_tmp251 + 120;
14134#line 779
14135      __cil_tmp253 = *((struct file **)__cil_tmp252);
14136#line 779
14137      __cil_tmp254 = (unsigned long )__cil_tmp253;
14138#line 779
14139      __cil_tmp255 = (unsigned long )eventfp;
14140#line 779
14141      if (__cil_tmp255 != __cil_tmp254) {
14142#line 780
14143        __cil_tmp256 = (unsigned long )vq;
14144#line 780
14145        __cil_tmp257 = __cil_tmp256 + 120;
14146#line 780
14147        filep = *((struct file **)__cil_tmp257);
14148#line 781
14149        __cil_tmp258 = (unsigned long )vq;
14150#line 781
14151        __cil_tmp259 = __cil_tmp258 + 136;
14152#line 781
14153        ctx = *((struct eventfd_ctx **)__cil_tmp259);
14154#line 782
14155        __cil_tmp260 = (unsigned long )vq;
14156#line 782
14157        __cil_tmp261 = __cil_tmp260 + 120;
14158#line 782
14159        *((struct file **)__cil_tmp261) = eventfp;
14160#line 783
14161        if (eventfp) {
14162          {
14163#line 783
14164          tmp___20 = eventfd_ctx_fileget(eventfp);
14165#line 783
14166          __cil_tmp262 = (unsigned long )vq;
14167#line 783
14168          __cil_tmp263 = __cil_tmp262 + 136;
14169#line 783
14170          *((struct eventfd_ctx **)__cil_tmp263) = tmp___20;
14171          }
14172        } else {
14173#line 783
14174          __cil_tmp264 = (unsigned long )vq;
14175#line 783
14176          __cil_tmp265 = __cil_tmp264 + 136;
14177#line 783
14178          __cil_tmp266 = (void *)0;
14179#line 783
14180          *((struct eventfd_ctx **)__cil_tmp265) = (struct eventfd_ctx *)__cil_tmp266;
14181        }
14182      } else {
14183#line 786
14184        filep = eventfp;
14185      }
14186      }
14187#line 787
14188      goto switch_break___0;
14189      case_exp___5: /* CIL Label */ 
14190      {
14191#line 789
14192      __cil_tmp269 = 8UL << 16;
14193#line 789
14194      __cil_tmp270 = 175 << 8;
14195#line 789
14196      __cil_tmp271 = (unsigned int )__cil_tmp270;
14197#line 789
14198      __cil_tmp272 = 1U << 30;
14199#line 789
14200      __cil_tmp273 = __cil_tmp272 | __cil_tmp271;
14201#line 789
14202      __cil_tmp274 = __cil_tmp273 | 34U;
14203#line 789
14204      __cil_tmp275 = (unsigned long )__cil_tmp274;
14205      {
14206#line 789
14207      __cil_tmp267 = (void *)(& f);
14208#line 789
14209      __cil_tmp268 = (void    *)argp;
14210#line 789
14211      tmp___21 = (unsigned long )copy_from_user(__cil_tmp267, __cil_tmp268, 8UL);
14212      }
14213      }
14214#line 789
14215      if (tmp___21) {
14216#line 790
14217        r = -14L;
14218#line 791
14219        goto switch_break___0;
14220      } else {
14221
14222      }
14223      {
14224#line 793
14225      __cil_tmp276 = (unsigned long )(& f) + 4;
14226#line 793
14227      __cil_tmp277 = *((int *)__cil_tmp276);
14228#line 793
14229      if (__cil_tmp277 == -1) {
14230#line 793
14231        __cil_tmp278 = (void *)0;
14232#line 793
14233        eventfp = (struct file *)__cil_tmp278;
14234      } else {
14235        {
14236#line 793
14237        __cil_tmp279 = (unsigned long )(& f) + 4;
14238#line 793
14239        __cil_tmp280 = *((int *)__cil_tmp279);
14240#line 793
14241        tmp___22 = eventfd_fget(__cil_tmp280);
14242#line 793
14243        eventfp = tmp___22;
14244        }
14245      }
14246      }
14247      {
14248#line 794
14249      __cil_tmp281 = (void    *)eventfp;
14250#line 794
14251      tmp___23 = (long )IS_ERR(__cil_tmp281);
14252      }
14253#line 794
14254      if (tmp___23) {
14255        {
14256#line 795
14257        __cil_tmp282 = (void    *)eventfp;
14258#line 795
14259        r = (long )PTR_ERR(__cil_tmp282);
14260        }
14261#line 796
14262        goto switch_break___0;
14263      } else {
14264
14265      }
14266      {
14267#line 798
14268      __cil_tmp283 = (unsigned long )vq;
14269#line 798
14270      __cil_tmp284 = __cil_tmp283 + 128;
14271#line 798
14272      __cil_tmp285 = *((struct file **)__cil_tmp284);
14273#line 798
14274      __cil_tmp286 = (unsigned long )__cil_tmp285;
14275#line 798
14276      __cil_tmp287 = (unsigned long )eventfp;
14277#line 798
14278      if (__cil_tmp287 != __cil_tmp286) {
14279#line 799
14280        __cil_tmp288 = (unsigned long )vq;
14281#line 799
14282        __cil_tmp289 = __cil_tmp288 + 128;
14283#line 799
14284        filep = *((struct file **)__cil_tmp289);
14285#line 800
14286        __cil_tmp290 = (unsigned long )vq;
14287#line 800
14288        __cil_tmp291 = __cil_tmp290 + 128;
14289#line 800
14290        *((struct file **)__cil_tmp291) = eventfp;
14291#line 801
14292        __cil_tmp292 = (unsigned long )vq;
14293#line 801
14294        __cil_tmp293 = __cil_tmp292 + 144;
14295#line 801
14296        ctx = *((struct eventfd_ctx **)__cil_tmp293);
14297#line 802
14298        if (eventfp) {
14299          {
14300#line 802
14301          tmp___24 = eventfd_ctx_fileget(eventfp);
14302#line 802
14303          __cil_tmp294 = (unsigned long )vq;
14304#line 802
14305          __cil_tmp295 = __cil_tmp294 + 144;
14306#line 802
14307          *((struct eventfd_ctx **)__cil_tmp295) = tmp___24;
14308          }
14309        } else {
14310#line 802
14311          __cil_tmp296 = (unsigned long )vq;
14312#line 802
14313          __cil_tmp297 = __cil_tmp296 + 144;
14314#line 802
14315          __cil_tmp298 = (void *)0;
14316#line 802
14317          *((struct eventfd_ctx **)__cil_tmp297) = (struct eventfd_ctx *)__cil_tmp298;
14318        }
14319      } else {
14320#line 805
14321        filep = eventfp;
14322      }
14323      }
14324#line 806
14325      goto switch_break___0;
14326      switch_default___0: /* CIL Label */ 
14327#line 808
14328      r = -515L;
14329    } else {
14330      switch_break___0: /* CIL Label */ ;
14331    }
14332    }
14333  }
14334#line 811
14335  if (pollstop) {
14336    {
14337#line 811
14338    __cil_tmp299 = (unsigned long )vq;
14339#line 811
14340    __cil_tmp300 = __cil_tmp299 + 320;
14341#line 811
14342    if (*((void (**)(struct vhost_work *work ))__cil_tmp300)) {
14343      {
14344#line 812
14345      __cil_tmp301 = (unsigned long )vq;
14346#line 812
14347      __cil_tmp302 = __cil_tmp301 + 160;
14348#line 812
14349      __cil_tmp303 = (struct vhost_poll *)__cil_tmp302;
14350#line 812
14351      vhost_poll_stop(__cil_tmp303);
14352      }
14353    } else {
14354
14355    }
14356    }
14357  } else {
14358
14359  }
14360#line 814
14361  if (ctx) {
14362    {
14363#line 815
14364    eventfd_ctx_put(ctx);
14365    }
14366  } else {
14367
14368  }
14369#line 816
14370  if (filep) {
14371    {
14372#line 817
14373    fput(filep);
14374    }
14375  } else {
14376
14377  }
14378#line 819
14379  if (pollstart) {
14380    {
14381#line 819
14382    __cil_tmp304 = (unsigned long )vq;
14383#line 819
14384    __cil_tmp305 = __cil_tmp304 + 320;
14385#line 819
14386    if (*((void (**)(struct vhost_work *work ))__cil_tmp305)) {
14387      {
14388#line 820
14389      __cil_tmp306 = (unsigned long )vq;
14390#line 820
14391      __cil_tmp307 = __cil_tmp306 + 160;
14392#line 820
14393      __cil_tmp308 = (struct vhost_poll *)__cil_tmp307;
14394#line 820
14395      __cil_tmp309 = (unsigned long )vq;
14396#line 820
14397      __cil_tmp310 = __cil_tmp309 + 112;
14398#line 820
14399      __cil_tmp311 = *((struct file **)__cil_tmp310);
14400#line 820
14401      vhost_poll_start(__cil_tmp308, __cil_tmp311);
14402      }
14403    } else {
14404
14405    }
14406    }
14407  } else {
14408
14409  }
14410  {
14411#line 822
14412  __cil_tmp312 = (unsigned long )vq;
14413#line 822
14414  __cil_tmp313 = __cil_tmp312 + 8;
14415#line 822
14416  __cil_tmp314 = (struct mutex *)__cil_tmp313;
14417#line 822
14418  mutex_unlock(__cil_tmp314);
14419  }
14420#line 824
14421  if (pollstop) {
14422    {
14423#line 824
14424    __cil_tmp315 = (unsigned long )vq;
14425#line 824
14426    __cil_tmp316 = __cil_tmp315 + 320;
14427#line 824
14428    if (*((void (**)(struct vhost_work *work ))__cil_tmp316)) {
14429      {
14430#line 825
14431      __cil_tmp317 = (unsigned long )vq;
14432#line 825
14433      __cil_tmp318 = __cil_tmp317 + 160;
14434#line 825
14435      __cil_tmp319 = (struct vhost_poll *)__cil_tmp318;
14436#line 825
14437      vhost_poll_flush(__cil_tmp319);
14438      }
14439    } else {
14440
14441    }
14442    }
14443  } else {
14444
14445  }
14446#line 826
14447  return (r);
14448}
14449}
14450#line 830 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
14451long vhost_dev_ioctl(struct vhost_dev *d , unsigned int ioctl , unsigned long arg ) 
14452{ void *argp ;
14453  struct file *eventfp ;
14454  struct file *filep ;
14455  struct eventfd_ctx *ctx ;
14456  u64 p ;
14457  long r ;
14458  int i ;
14459  int fd ;
14460  unsigned long tmp___7 ;
14461  struct vhost_virtqueue *vq ;
14462  void *base ;
14463  int tmp___8 ;
14464  int __ret_gu ;
14465  unsigned long __val_gu ;
14466  struct file *tmp___9 ;
14467  long tmp___10 ;
14468  struct eventfd_ctx *tmp___11 ;
14469  void *__cil_tmp21 ;
14470  void *__cil_tmp22 ;
14471  int __cil_tmp23 ;
14472  unsigned int __cil_tmp24 ;
14473  unsigned int __cil_tmp25 ;
14474  struct vhost_memory *__cil_tmp26 ;
14475  unsigned long __cil_tmp27 ;
14476  int __cil_tmp28 ;
14477  unsigned int __cil_tmp29 ;
14478  unsigned int __cil_tmp30 ;
14479  unsigned int __cil_tmp31 ;
14480  unsigned int __cil_tmp32 ;
14481  unsigned long __cil_tmp33 ;
14482  void *__cil_tmp34 ;
14483  void    *__cil_tmp35 ;
14484  unsigned long __cil_tmp36 ;
14485  int __cil_tmp37 ;
14486  unsigned int __cil_tmp38 ;
14487  unsigned int __cil_tmp39 ;
14488  unsigned int __cil_tmp40 ;
14489  unsigned int __cil_tmp41 ;
14490  unsigned long __cil_tmp42 ;
14491  u64 *__cil_tmp43 ;
14492  u64 __cil_tmp44 ;
14493  u64 *__cil_tmp45 ;
14494  u64 __cil_tmp46 ;
14495  unsigned long __cil_tmp47 ;
14496  u64 __cil_tmp48 ;
14497  unsigned long __cil_tmp49 ;
14498  unsigned long __cil_tmp50 ;
14499  int __cil_tmp51 ;
14500  u64 *__cil_tmp52 ;
14501  u64 __cil_tmp53 ;
14502  unsigned long __cil_tmp54 ;
14503  unsigned long __cil_tmp55 ;
14504  unsigned long __cil_tmp56 ;
14505  struct vhost_virtqueue *__cil_tmp57 ;
14506  unsigned long __cil_tmp58 ;
14507  unsigned long __cil_tmp59 ;
14508  struct mutex *__cil_tmp60 ;
14509  unsigned long __cil_tmp61 ;
14510  unsigned long __cil_tmp62 ;
14511  unsigned long __cil_tmp63 ;
14512  unsigned long __cil_tmp64 ;
14513  unsigned long __cil_tmp65 ;
14514  unsigned long __cil_tmp66 ;
14515  unsigned long __cil_tmp67 ;
14516  unsigned long __cil_tmp68 ;
14517  struct mutex *__cil_tmp69 ;
14518  unsigned long __cil_tmp70 ;
14519  int __cil_tmp71 ;
14520  unsigned int __cil_tmp72 ;
14521  unsigned int __cil_tmp73 ;
14522  unsigned int __cil_tmp74 ;
14523  unsigned int __cil_tmp75 ;
14524  unsigned long __cil_tmp76 ;
14525  void *__cil_tmp77 ;
14526  void    *__cil_tmp78 ;
14527  void    *__cil_tmp79 ;
14528  unsigned long __cil_tmp80 ;
14529  unsigned long __cil_tmp81 ;
14530  struct file *__cil_tmp82 ;
14531  unsigned long __cil_tmp83 ;
14532  unsigned long __cil_tmp84 ;
14533  unsigned long __cil_tmp85 ;
14534  unsigned long __cil_tmp86 ;
14535  unsigned long __cil_tmp87 ;
14536  unsigned long __cil_tmp88 ;
14537  unsigned long __cil_tmp89 ;
14538  unsigned long __cil_tmp90 ;
14539  unsigned long __cil_tmp91 ;
14540  unsigned long __cil_tmp92 ;
14541  void *__cil_tmp93 ;
14542  unsigned long __cil_tmp94 ;
14543  unsigned long __cil_tmp95 ;
14544  int __cil_tmp96 ;
14545  unsigned long __cil_tmp97 ;
14546  unsigned long __cil_tmp98 ;
14547  struct vhost_virtqueue *__cil_tmp99 ;
14548  struct vhost_virtqueue *__cil_tmp100 ;
14549  unsigned long __cil_tmp101 ;
14550  unsigned long __cil_tmp102 ;
14551  struct mutex *__cil_tmp103 ;
14552  unsigned long __cil_tmp104 ;
14553  unsigned long __cil_tmp105 ;
14554  struct vhost_virtqueue *__cil_tmp106 ;
14555  struct vhost_virtqueue *__cil_tmp107 ;
14556  unsigned long __cil_tmp108 ;
14557  unsigned long __cil_tmp109 ;
14558  unsigned long __cil_tmp110 ;
14559  unsigned long __cil_tmp111 ;
14560  unsigned long __cil_tmp112 ;
14561  unsigned long __cil_tmp113 ;
14562  struct vhost_virtqueue *__cil_tmp114 ;
14563  struct vhost_virtqueue *__cil_tmp115 ;
14564  unsigned long __cil_tmp116 ;
14565  unsigned long __cil_tmp117 ;
14566  struct mutex *__cil_tmp118 ;
14567  int __cil_tmp119 ;
14568
14569  {
14570#line 832
14571  argp = (void *)arg;
14572#line 833
14573  __cil_tmp21 = (void *)0;
14574#line 833
14575  filep = (struct file *)__cil_tmp21;
14576#line 834
14577  __cil_tmp22 = (void *)0;
14578#line 834
14579  ctx = (struct eventfd_ctx *)__cil_tmp22;
14580  {
14581#line 840
14582  __cil_tmp23 = 175 << 8;
14583#line 840
14584  __cil_tmp24 = (unsigned int )__cil_tmp23;
14585#line 840
14586  __cil_tmp25 = __cil_tmp24 | 1U;
14587#line 840
14588  if (ioctl == __cil_tmp25) {
14589    {
14590#line 841
14591    r = vhost_dev_set_owner(d);
14592    }
14593#line 842
14594    goto done;
14595  } else {
14596
14597  }
14598  }
14599  {
14600#line 846
14601  r = vhost_dev_check_owner(d);
14602  }
14603#line 847
14604  if (r) {
14605#line 848
14606    goto done;
14607  } else {
14608
14609  }
14610#line 851
14611  if ((int )ioctl == (__cil_tmp33 | __cil_tmp27)) {
14612#line 851
14613    goto case_exp;
14614  } else
14615#line 854
14616  if ((int )ioctl == (__cil_tmp42 | __cil_tmp36)) {
14617#line 854
14618    goto case_exp___0;
14619  } else
14620#line 876
14621  if ((int )ioctl == (__cil_tmp76 | __cil_tmp70)) {
14622#line 876
14623    goto case_exp___1;
14624  } else {
14625    {
14626#line 902
14627    goto switch_default___0;
14628#line 850
14629    if (0) {
14630      case_exp: /* CIL Label */ 
14631      {
14632#line 852
14633      __cil_tmp27 = 8UL << 16;
14634#line 852
14635      __cil_tmp28 = 175 << 8;
14636#line 852
14637      __cil_tmp29 = (unsigned int )__cil_tmp28;
14638#line 852
14639      __cil_tmp30 = 1U << 30;
14640#line 852
14641      __cil_tmp31 = __cil_tmp30 | __cil_tmp29;
14642#line 852
14643      __cil_tmp32 = __cil_tmp31 | 3U;
14644#line 852
14645      __cil_tmp33 = (unsigned long )__cil_tmp32;
14646      {
14647#line 852
14648      __cil_tmp26 = (struct vhost_memory *)argp;
14649#line 852
14650      r = vhost_set_memory(d, __cil_tmp26);
14651      }
14652      }
14653#line 853
14654      goto switch_break;
14655      case_exp___0: /* CIL Label */ 
14656      {
14657#line 855
14658      __cil_tmp36 = 8UL << 16;
14659#line 855
14660      __cil_tmp37 = 175 << 8;
14661#line 855
14662      __cil_tmp38 = (unsigned int )__cil_tmp37;
14663#line 855
14664      __cil_tmp39 = 1U << 30;
14665#line 855
14666      __cil_tmp40 = __cil_tmp39 | __cil_tmp38;
14667#line 855
14668      __cil_tmp41 = __cil_tmp40 | 4U;
14669#line 855
14670      __cil_tmp42 = (unsigned long )__cil_tmp41;
14671      {
14672#line 855
14673      __cil_tmp34 = (void *)(& p);
14674#line 855
14675      __cil_tmp35 = (void    *)argp;
14676#line 855
14677      tmp___7 = (unsigned long )copy_from_user(__cil_tmp34, __cil_tmp35, 8UL);
14678      }
14679      }
14680#line 855
14681      if (tmp___7) {
14682#line 856
14683        r = -14L;
14684#line 857
14685        goto switch_break;
14686      } else {
14687
14688      }
14689      {
14690#line 859
14691      __cil_tmp43 = & p;
14692#line 859
14693      __cil_tmp44 = *__cil_tmp43;
14694#line 859
14695      __cil_tmp45 = & p;
14696#line 859
14697      __cil_tmp46 = *__cil_tmp45;
14698#line 859
14699      __cil_tmp47 = (unsigned long )__cil_tmp46;
14700#line 859
14701      __cil_tmp48 = (u64 )__cil_tmp47;
14702#line 859
14703      if (__cil_tmp48 != __cil_tmp44) {
14704#line 860
14705        r = -14L;
14706#line 861
14707        goto switch_break;
14708      } else {
14709
14710      }
14711      }
14712#line 863
14713      i = 0;
14714      {
14715#line 863
14716      while (1) {
14717        while_continue: /* CIL Label */ ;
14718        {
14719#line 863
14720        __cil_tmp49 = (unsigned long )d;
14721#line 863
14722        __cil_tmp50 = __cil_tmp49 + 104;
14723#line 863
14724        __cil_tmp51 = *((int *)__cil_tmp50);
14725#line 863
14726        if (i < __cil_tmp51) {
14727
14728        } else {
14729#line 863
14730          goto while_break;
14731        }
14732        }
14733        {
14734#line 865
14735        __cil_tmp52 = & p;
14736#line 865
14737        __cil_tmp53 = *__cil_tmp52;
14738#line 865
14739        __cil_tmp54 = (unsigned long )__cil_tmp53;
14740#line 865
14741        base = (void *)__cil_tmp54;
14742#line 866
14743        __cil_tmp55 = (unsigned long )d;
14744#line 866
14745        __cil_tmp56 = __cil_tmp55 + 96;
14746#line 866
14747        __cil_tmp57 = *((struct vhost_virtqueue **)__cil_tmp56);
14748#line 866
14749        vq = __cil_tmp57 + i;
14750#line 867
14751        __cil_tmp58 = (unsigned long )vq;
14752#line 867
14753        __cil_tmp59 = __cil_tmp58 + 8;
14754#line 867
14755        __cil_tmp60 = (struct mutex *)__cil_tmp59;
14756#line 867
14757        mutex_lock(__cil_tmp60);
14758        }
14759        {
14760#line 869
14761        __cil_tmp61 = (unsigned long )vq;
14762#line 869
14763        __cil_tmp62 = __cil_tmp61 + 16960;
14764#line 869
14765        if (*((void **)__cil_tmp62)) {
14766          {
14767#line 869
14768          tmp___8 = vq_log_access_ok(d, vq, base);
14769          }
14770#line 869
14771          if (tmp___8) {
14772#line 872
14773            __cil_tmp63 = (unsigned long )vq;
14774#line 872
14775            __cil_tmp64 = __cil_tmp63 + 16968;
14776#line 872
14777            *((void **)__cil_tmp64) = base;
14778          } else {
14779#line 870
14780            r = -14L;
14781          }
14782        } else {
14783#line 872
14784          __cil_tmp65 = (unsigned long )vq;
14785#line 872
14786          __cil_tmp66 = __cil_tmp65 + 16968;
14787#line 872
14788          *((void **)__cil_tmp66) = base;
14789        }
14790        }
14791        {
14792#line 873
14793        __cil_tmp67 = (unsigned long )vq;
14794#line 873
14795        __cil_tmp68 = __cil_tmp67 + 8;
14796#line 873
14797        __cil_tmp69 = (struct mutex *)__cil_tmp68;
14798#line 873
14799        mutex_unlock(__cil_tmp69);
14800#line 863
14801        i = i + 1;
14802        }
14803      }
14804      while_break: /* CIL Label */ ;
14805      }
14806#line 875
14807      goto switch_break;
14808      case_exp___1: /* CIL Label */ 
14809      {
14810#line 877
14811      __cil_tmp70 = 4UL << 16;
14812#line 877
14813      __cil_tmp71 = 175 << 8;
14814#line 877
14815      __cil_tmp72 = (unsigned int )__cil_tmp71;
14816#line 877
14817      __cil_tmp73 = 1U << 30;
14818#line 877
14819      __cil_tmp74 = __cil_tmp73 | __cil_tmp72;
14820#line 877
14821      __cil_tmp75 = __cil_tmp74 | 7U;
14822#line 877
14823      __cil_tmp76 = (unsigned long )__cil_tmp75;
14824      {
14825#line 877
14826      might_fault();
14827      }
14828      }
14829#line 877
14830      if ((int )4UL == 1) {
14831#line 877
14832        goto case_1;
14833      } else
14834#line 877
14835      if ((int )4UL == 2) {
14836#line 877
14837        goto case_2;
14838      } else
14839#line 877
14840      if ((int )4UL == 4) {
14841#line 877
14842        goto case_4;
14843      } else
14844#line 877
14845      if ((int )4UL == 8) {
14846#line 877
14847        goto case_8;
14848      } else {
14849        {
14850#line 877
14851        goto switch_default;
14852#line 877
14853        if (0) {
14854          case_1: /* CIL Label */ 
14855#line 877
14856          __asm__  volatile   ("call __get_user_"
14857                               "1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
14858#line 877
14859          goto switch_break___0;
14860          case_2: /* CIL Label */ 
14861#line 877
14862          __asm__  volatile   ("call __get_user_"
14863                               "2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
14864#line 877
14865          goto switch_break___0;
14866          case_4: /* CIL Label */ 
14867#line 877
14868          __asm__  volatile   ("call __get_user_"
14869                               "4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
14870#line 877
14871          goto switch_break___0;
14872          case_8: /* CIL Label */ 
14873#line 877
14874          __asm__  volatile   ("call __get_user_"
14875                               "8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
14876#line 877
14877          goto switch_break___0;
14878          switch_default: /* CIL Label */ 
14879#line 877
14880          __asm__  volatile   ("call __get_user_"
14881                               "X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
14882#line 877
14883          goto switch_break___0;
14884        } else {
14885          switch_break___0: /* CIL Label */ ;
14886        }
14887        }
14888      }
14889#line 877
14890      fd = (int )__val_gu;
14891#line 877
14892      r = (long )__ret_gu;
14893#line 878
14894      if (r < 0L) {
14895#line 879
14896        goto switch_break;
14897      } else {
14898
14899      }
14900#line 880
14901      if (fd == -1) {
14902#line 880
14903        __cil_tmp77 = (void *)0;
14904#line 880
14905        eventfp = (struct file *)__cil_tmp77;
14906      } else {
14907        {
14908#line 880
14909        tmp___9 = eventfd_fget(fd);
14910#line 880
14911        eventfp = tmp___9;
14912        }
14913      }
14914      {
14915#line 881
14916      __cil_tmp78 = (void    *)eventfp;
14917#line 881
14918      tmp___10 = (long )IS_ERR(__cil_tmp78);
14919      }
14920#line 881
14921      if (tmp___10) {
14922        {
14923#line 882
14924        __cil_tmp79 = (void    *)eventfp;
14925#line 882
14926        r = (long )PTR_ERR(__cil_tmp79);
14927        }
14928#line 883
14929        goto switch_break;
14930      } else {
14931
14932      }
14933      {
14934#line 885
14935      __cil_tmp80 = (unsigned long )d;
14936#line 885
14937      __cil_tmp81 = __cil_tmp80 + 112;
14938#line 885
14939      __cil_tmp82 = *((struct file **)__cil_tmp81);
14940#line 885
14941      __cil_tmp83 = (unsigned long )__cil_tmp82;
14942#line 885
14943      __cil_tmp84 = (unsigned long )eventfp;
14944#line 885
14945      if (__cil_tmp84 != __cil_tmp83) {
14946#line 886
14947        __cil_tmp85 = (unsigned long )d;
14948#line 886
14949        __cil_tmp86 = __cil_tmp85 + 112;
14950#line 886
14951        filep = *((struct file **)__cil_tmp86);
14952#line 887
14953        __cil_tmp87 = (unsigned long )d;
14954#line 887
14955        __cil_tmp88 = __cil_tmp87 + 120;
14956#line 887
14957        ctx = *((struct eventfd_ctx **)__cil_tmp88);
14958#line 888
14959        if (eventfp) {
14960          {
14961#line 888
14962          tmp___11 = eventfd_ctx_fileget(eventfp);
14963#line 888
14964          __cil_tmp89 = (unsigned long )d;
14965#line 888
14966          __cil_tmp90 = __cil_tmp89 + 120;
14967#line 888
14968          *((struct eventfd_ctx **)__cil_tmp90) = tmp___11;
14969          }
14970        } else {
14971#line 888
14972          __cil_tmp91 = (unsigned long )d;
14973#line 888
14974          __cil_tmp92 = __cil_tmp91 + 120;
14975#line 888
14976          __cil_tmp93 = (void *)0;
14977#line 888
14978          *((struct eventfd_ctx **)__cil_tmp92) = (struct eventfd_ctx *)__cil_tmp93;
14979        }
14980      } else {
14981#line 891
14982        filep = eventfp;
14983      }
14984      }
14985#line 892
14986      i = 0;
14987      {
14988#line 892
14989      while (1) {
14990        while_continue___0: /* CIL Label */ ;
14991        {
14992#line 892
14993        __cil_tmp94 = (unsigned long )d;
14994#line 892
14995        __cil_tmp95 = __cil_tmp94 + 104;
14996#line 892
14997        __cil_tmp96 = *((int *)__cil_tmp95);
14998#line 892
14999        if (i < __cil_tmp96) {
15000
15001        } else {
15002#line 892
15003          goto while_break___0;
15004        }
15005        }
15006        {
15007#line 893
15008        __cil_tmp97 = (unsigned long )d;
15009#line 893
15010        __cil_tmp98 = __cil_tmp97 + 96;
15011#line 893
15012        __cil_tmp99 = *((struct vhost_virtqueue **)__cil_tmp98);
15013#line 893
15014        __cil_tmp100 = __cil_tmp99 + i;
15015#line 893
15016        __cil_tmp101 = (unsigned long )__cil_tmp100;
15017#line 893
15018        __cil_tmp102 = __cil_tmp101 + 8;
15019#line 893
15020        __cil_tmp103 = (struct mutex *)__cil_tmp102;
15021#line 893
15022        mutex_lock(__cil_tmp103);
15023#line 894
15024        __cil_tmp104 = (unsigned long )d;
15025#line 894
15026        __cil_tmp105 = __cil_tmp104 + 96;
15027#line 894
15028        __cil_tmp106 = *((struct vhost_virtqueue **)__cil_tmp105);
15029#line 894
15030        __cil_tmp107 = __cil_tmp106 + i;
15031#line 894
15032        __cil_tmp108 = (unsigned long )__cil_tmp107;
15033#line 894
15034        __cil_tmp109 = __cil_tmp108 + 152;
15035#line 894
15036        __cil_tmp110 = (unsigned long )d;
15037#line 894
15038        __cil_tmp111 = __cil_tmp110 + 120;
15039#line 894
15040        *((struct eventfd_ctx **)__cil_tmp109) = *((struct eventfd_ctx **)__cil_tmp111);
15041#line 895
15042        __cil_tmp112 = (unsigned long )d;
15043#line 895
15044        __cil_tmp113 = __cil_tmp112 + 96;
15045#line 895
15046        __cil_tmp114 = *((struct vhost_virtqueue **)__cil_tmp113);
15047#line 895
15048        __cil_tmp115 = __cil_tmp114 + i;
15049#line 895
15050        __cil_tmp116 = (unsigned long )__cil_tmp115;
15051#line 895
15052        __cil_tmp117 = __cil_tmp116 + 8;
15053#line 895
15054        __cil_tmp118 = (struct mutex *)__cil_tmp117;
15055#line 895
15056        mutex_unlock(__cil_tmp118);
15057#line 892
15058        i = i + 1;
15059        }
15060      }
15061      while_break___0: /* CIL Label */ ;
15062      }
15063#line 897
15064      if (ctx) {
15065        {
15066#line 898
15067        eventfd_ctx_put(ctx);
15068        }
15069      } else {
15070
15071      }
15072#line 899
15073      if (filep) {
15074        {
15075#line 900
15076        fput(filep);
15077        }
15078      } else {
15079
15080      }
15081#line 901
15082      goto switch_break;
15083      switch_default___0: /* CIL Label */ 
15084      {
15085#line 903
15086      __cil_tmp119 = (int )ioctl;
15087#line 903
15088      r = vhost_set_vring(d, __cil_tmp119, argp);
15089      }
15090#line 904
15091      goto switch_break;
15092    } else {
15093      switch_break: /* CIL Label */ ;
15094    }
15095    }
15096  }
15097  done: 
15098#line 907
15099  return (r);
15100}
15101}
15102#line 910 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
15103static struct vhost_memory_region    *find_region(struct vhost_memory *mem ,
15104                                                       __u64 addr , __u32 len ) 
15105{ struct vhost_memory_region *reg ;
15106  int i ;
15107  __u32 __cil_tmp6 ;
15108  __u32 __cil_tmp7 ;
15109  unsigned long __cil_tmp8 ;
15110  unsigned long __cil_tmp9 ;
15111  unsigned long __cil_tmp10 ;
15112  unsigned long __cil_tmp11 ;
15113  struct vhost_memory_region *__cil_tmp12 ;
15114  __u64 __cil_tmp13 ;
15115  unsigned long __cil_tmp14 ;
15116  unsigned long __cil_tmp15 ;
15117  __u64 __cil_tmp16 ;
15118  __u64 __cil_tmp17 ;
15119  __u64 __cil_tmp18 ;
15120  __u64 __cil_tmp19 ;
15121  void *__cil_tmp20 ;
15122
15123  {
15124#line 918
15125  i = 0;
15126  {
15127#line 918
15128  while (1) {
15129    while_continue: /* CIL Label */ ;
15130    {
15131#line 918
15132    __cil_tmp6 = *((__u32 *)mem);
15133#line 918
15134    __cil_tmp7 = (__u32 )i;
15135#line 918
15136    if (__cil_tmp7 < __cil_tmp6) {
15137
15138    } else {
15139#line 918
15140      goto while_break;
15141    }
15142    }
15143#line 919
15144    __cil_tmp8 = 0 * 32UL;
15145#line 919
15146    __cil_tmp9 = 8 + __cil_tmp8;
15147#line 919
15148    __cil_tmp10 = (unsigned long )mem;
15149#line 919
15150    __cil_tmp11 = __cil_tmp10 + __cil_tmp9;
15151#line 919
15152    __cil_tmp12 = (struct vhost_memory_region *)__cil_tmp11;
15153#line 919
15154    reg = __cil_tmp12 + i;
15155    {
15156#line 920
15157    __cil_tmp13 = *((__u64 *)reg);
15158#line 920
15159    if (__cil_tmp13 <= addr) {
15160      {
15161#line 920
15162      __cil_tmp14 = (unsigned long )reg;
15163#line 920
15164      __cil_tmp15 = __cil_tmp14 + 8;
15165#line 920
15166      __cil_tmp16 = *((__u64 *)__cil_tmp15);
15167#line 920
15168      __cil_tmp17 = *((__u64 *)reg);
15169#line 920
15170      __cil_tmp18 = __cil_tmp17 + __cil_tmp16;
15171#line 920
15172      __cil_tmp19 = __cil_tmp18 - 1ULL;
15173#line 920
15174      if (__cil_tmp19 >= addr) {
15175#line 922
15176        return ((struct vhost_memory_region    *)reg);
15177      } else {
15178
15179      }
15180      }
15181    } else {
15182
15183    }
15184    }
15185#line 918
15186    i = i + 1;
15187  }
15188  while_break: /* CIL Label */ ;
15189  }
15190  {
15191#line 924
15192  __cil_tmp20 = (void *)0;
15193#line 924
15194  return ((struct vhost_memory_region    *)__cil_tmp20);
15195  }
15196}
15197}
15198#line 931 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
15199static int set_bit_to_user(int nr , void *addr ) 
15200{ unsigned long log ;
15201  struct page *page ;
15202  void *base ;
15203  int bit ;
15204  int r ;
15205  long tmp___7 ;
15206  unsigned long __cil_tmp9 ;
15207  unsigned long __cil_tmp10 ;
15208  unsigned long __cil_tmp11 ;
15209  unsigned long __cil_tmp12 ;
15210  unsigned long __cil_tmp13 ;
15211  int __cil_tmp14 ;
15212  int __cil_tmp15 ;
15213  int __cil_tmp16 ;
15214  long __cil_tmp17 ;
15215  struct page **__cil_tmp18 ;
15216  struct page *__cil_tmp19 ;
15217  unsigned int __cil_tmp20 ;
15218  unsigned long volatile   *__cil_tmp21 ;
15219  struct page **__cil_tmp22 ;
15220  struct page *__cil_tmp23 ;
15221  struct page **__cil_tmp24 ;
15222  struct page *__cil_tmp25 ;
15223
15224  {
15225  {
15226#line 933
15227  log = (unsigned long )addr;
15228#line 936
15229  __cil_tmp9 = 1UL << 12;
15230#line 936
15231  __cil_tmp10 = log % __cil_tmp9;
15232#line 936
15233  __cil_tmp11 = __cil_tmp10 * 8UL;
15234#line 936
15235  __cil_tmp12 = (unsigned long )nr;
15236#line 936
15237  __cil_tmp13 = __cil_tmp12 + __cil_tmp11;
15238#line 936
15239  bit = (int )__cil_tmp13;
15240#line 939
15241  r = get_user_pages_fast(log, 1, 1, & page);
15242  }
15243#line 940
15244  if (r < 0) {
15245#line 941
15246    return (r);
15247  } else {
15248
15249  }
15250  {
15251#line 942
15252  while (1) {
15253    while_continue: /* CIL Label */ ;
15254    {
15255#line 942
15256    __cil_tmp14 = r != 1;
15257#line 942
15258    __cil_tmp15 = ! __cil_tmp14;
15259#line 942
15260    __cil_tmp16 = ! __cil_tmp15;
15261#line 942
15262    __cil_tmp17 = (long )__cil_tmp16;
15263#line 942
15264    tmp___7 = __builtin_expect(__cil_tmp17, 0L);
15265    }
15266#line 942
15267    if (tmp___7) {
15268      {
15269#line 942
15270      while (1) {
15271        while_continue___0: /* CIL Label */ ;
15272#line 942
15273        __asm__  volatile   ("1:\tud2\n"
15274                             ".pushsection __bug_table,\"a\"\n"
15275                             "2:\t.long 1b - 2b, %c0 - 2b\n"
15276                             "\t.word %c1, 0\n"
15277                             "\t.org 2b+%c2\n"
15278                             ".popsection": : "i" ("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"),
15279                             "i" (942), "i" (12UL));
15280        {
15281#line 942
15282        while (1) {
15283          while_continue___1: /* CIL Label */ ;
15284        }
15285        while_break___1: /* CIL Label */ ;
15286        }
15287#line 942
15288        goto while_break___0;
15289      }
15290      while_break___0: /* CIL Label */ ;
15291      }
15292    } else {
15293
15294    }
15295#line 942
15296    goto while_break;
15297  }
15298  while_break: /* CIL Label */ ;
15299  }
15300  {
15301#line 943
15302  __cil_tmp18 = & page;
15303#line 943
15304  __cil_tmp19 = *__cil_tmp18;
15305#line 943
15306  base = kmap_atomic(__cil_tmp19);
15307#line 944
15308  __cil_tmp20 = (unsigned int )bit;
15309#line 944
15310  __cil_tmp21 = (unsigned long volatile   *)base;
15311#line 944
15312  set_bit(__cil_tmp20, __cil_tmp21);
15313  }
15314  {
15315#line 945
15316  while (1) {
15317    while_continue___2: /* CIL Label */ ;
15318    {
15319#line 945
15320    __kunmap_atomic(base);
15321    }
15322#line 945
15323    goto while_break___2;
15324  }
15325  while_break___2: /* CIL Label */ ;
15326  }
15327  {
15328#line 946
15329  __cil_tmp22 = & page;
15330#line 946
15331  __cil_tmp23 = *__cil_tmp22;
15332#line 946
15333  set_page_dirty_lock(__cil_tmp23);
15334#line 947
15335  __cil_tmp24 = & page;
15336#line 947
15337  __cil_tmp25 = *__cil_tmp24;
15338#line 947
15339  put_page(__cil_tmp25);
15340  }
15341#line 948
15342  return (0);
15343}
15344}
15345#line 951 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
15346static int log_write(void *log_base , u64 write_address , u64 write_length ) 
15347{ u64 write_page ;
15348  int r ;
15349  u64 base ;
15350  u64 log ;
15351  int bit ;
15352  unsigned long long __cil_tmp9 ;
15353  unsigned long __cil_tmp10 ;
15354  u64 __cil_tmp11 ;
15355  unsigned long long __cil_tmp12 ;
15356  unsigned long __cil_tmp13 ;
15357  u64 __cil_tmp14 ;
15358  unsigned long __cil_tmp15 ;
15359  void *__cil_tmp16 ;
15360
15361  {
15362#line 954
15363  write_page = write_address / 4096ULL;
15364#line 957
15365  if (! write_length) {
15366#line 958
15367    return (0);
15368  } else {
15369
15370  }
15371#line 959
15372  __cil_tmp9 = write_address % 4096ULL;
15373#line 959
15374  write_length = write_length + __cil_tmp9;
15375  {
15376#line 960
15377  while (1) {
15378    while_continue: /* CIL Label */ ;
15379#line 961
15380    __cil_tmp10 = (unsigned long )log_base;
15381#line 961
15382    base = (u64 )__cil_tmp10;
15383#line 962
15384    __cil_tmp11 = write_page / 8ULL;
15385#line 962
15386    log = base + __cil_tmp11;
15387#line 963
15388    __cil_tmp12 = write_page % 8ULL;
15389#line 963
15390    bit = (int )__cil_tmp12;
15391    {
15392#line 964
15393    __cil_tmp13 = (unsigned long )log;
15394#line 964
15395    __cil_tmp14 = (u64 )__cil_tmp13;
15396#line 964
15397    if (__cil_tmp14 != log) {
15398#line 965
15399      return (-14);
15400    } else {
15401
15402    }
15403    }
15404    {
15405#line 966
15406    __cil_tmp15 = (unsigned long )log;
15407#line 966
15408    __cil_tmp16 = (void *)__cil_tmp15;
15409#line 966
15410    r = set_bit_to_user(bit, __cil_tmp16);
15411    }
15412#line 967
15413    if (r < 0) {
15414#line 968
15415      return (r);
15416    } else {
15417
15418    }
15419#line 969
15420    if (write_length <= 4096ULL) {
15421#line 970
15422      goto while_break;
15423    } else {
15424
15425    }
15426#line 971
15427    write_length = write_length - 4096ULL;
15428#line 972
15429    write_page = write_page + 1ULL;
15430  }
15431  while_break: /* CIL Label */ ;
15432  }
15433#line 974
15434  return (r);
15435}
15436}
15437#line 977 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
15438int vhost_log_write(struct vhost_virtqueue *vq , struct vhost_log *log , unsigned int log_num ,
15439                    u64 len ) 
15440{ int i ;
15441  int r ;
15442  u64 l ;
15443  u64 _min1 ;
15444  u64 _min2 ;
15445  u64 tmp___7 ;
15446  unsigned int __cil_tmp11 ;
15447  u64 *__cil_tmp12 ;
15448  struct vhost_log *__cil_tmp13 ;
15449  unsigned long __cil_tmp14 ;
15450  unsigned long __cil_tmp15 ;
15451  u64 *__cil_tmp16 ;
15452  u64 *__cil_tmp17 ;
15453  u64 __cil_tmp18 ;
15454  u64 *__cil_tmp19 ;
15455  u64 __cil_tmp20 ;
15456  u64 *__cil_tmp21 ;
15457  u64 *__cil_tmp22 ;
15458  unsigned long __cil_tmp23 ;
15459  unsigned long __cil_tmp24 ;
15460  void *__cil_tmp25 ;
15461  struct vhost_log *__cil_tmp26 ;
15462  u64 __cil_tmp27 ;
15463  unsigned long __cil_tmp28 ;
15464  unsigned long __cil_tmp29 ;
15465  unsigned long __cil_tmp30 ;
15466  unsigned long __cil_tmp31 ;
15467  struct eventfd_ctx *__cil_tmp32 ;
15468
15469  {
15470#line 983
15471  __asm__  volatile   ("": : : "memory");
15472#line 984
15473  i = 0;
15474  {
15475#line 984
15476  while (1) {
15477    while_continue: /* CIL Label */ ;
15478    {
15479#line 984
15480    __cil_tmp11 = (unsigned int )i;
15481#line 984
15482    if (__cil_tmp11 < log_num) {
15483
15484    } else {
15485#line 984
15486      goto while_break;
15487    }
15488    }
15489#line 985
15490    __cil_tmp12 = & _min1;
15491#line 985
15492    __cil_tmp13 = log + i;
15493#line 985
15494    __cil_tmp14 = (unsigned long )__cil_tmp13;
15495#line 985
15496    __cil_tmp15 = __cil_tmp14 + 8;
15497#line 985
15498    *__cil_tmp12 = *((u64 *)__cil_tmp15);
15499#line 985
15500    __cil_tmp16 = & _min2;
15501#line 985
15502    *__cil_tmp16 = len;
15503    {
15504#line 985
15505    __cil_tmp17 = & _min2;
15506#line 985
15507    __cil_tmp18 = *__cil_tmp17;
15508#line 985
15509    __cil_tmp19 = & _min1;
15510#line 985
15511    __cil_tmp20 = *__cil_tmp19;
15512#line 985
15513    if (__cil_tmp20 < __cil_tmp18) {
15514#line 985
15515      __cil_tmp21 = & _min1;
15516#line 985
15517      tmp___7 = *__cil_tmp21;
15518    } else {
15519#line 985
15520      __cil_tmp22 = & _min2;
15521#line 985
15522      tmp___7 = *__cil_tmp22;
15523    }
15524    }
15525    {
15526#line 985
15527    l = tmp___7;
15528#line 986
15529    __cil_tmp23 = (unsigned long )vq;
15530#line 986
15531    __cil_tmp24 = __cil_tmp23 + 16968;
15532#line 986
15533    __cil_tmp25 = *((void **)__cil_tmp24);
15534#line 986
15535    __cil_tmp26 = log + i;
15536#line 986
15537    __cil_tmp27 = *((u64 *)__cil_tmp26);
15538#line 986
15539    r = log_write(__cil_tmp25, __cil_tmp27, l);
15540    }
15541#line 987
15542    if (r < 0) {
15543#line 988
15544      return (r);
15545    } else {
15546
15547    }
15548#line 989
15549    len = len - l;
15550#line 990
15551    if (! len) {
15552      {
15553#line 991
15554      __cil_tmp28 = (unsigned long )vq;
15555#line 991
15556      __cil_tmp29 = __cil_tmp28 + 152;
15557#line 991
15558      if (*((struct eventfd_ctx **)__cil_tmp29)) {
15559        {
15560#line 992
15561        __cil_tmp30 = (unsigned long )vq;
15562#line 992
15563        __cil_tmp31 = __cil_tmp30 + 152;
15564#line 992
15565        __cil_tmp32 = *((struct eventfd_ctx **)__cil_tmp31);
15566#line 992
15567        eventfd_signal(__cil_tmp32, 1);
15568        }
15569      } else {
15570
15571      }
15572      }
15573#line 993
15574      return (0);
15575    } else {
15576
15577    }
15578#line 984
15579    i = i + 1;
15580  }
15581  while_break: /* CIL Label */ ;
15582  }
15583  {
15584#line 997
15585  while (1) {
15586    while_continue___0: /* CIL Label */ ;
15587#line 997
15588    __asm__  volatile   ("1:\tud2\n"
15589                         ".pushsection __bug_table,\"a\"\n"
15590                         "2:\t.long 1b - 2b, %c0 - 2b\n"
15591                         "\t.word %c1, 0\n"
15592                         "\t.org 2b+%c2\n"
15593                         ".popsection": : "i" ("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"),
15594                         "i" (997), "i" (12UL));
15595    {
15596#line 997
15597    while (1) {
15598      while_continue___1: /* CIL Label */ ;
15599    }
15600    while_break___1: /* CIL Label */ ;
15601    }
15602#line 997
15603    goto while_break___0;
15604  }
15605  while_break___0: /* CIL Label */ ;
15606  }
15607#line 998
15608  return (0);
15609}
15610}
15611#line 1001 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
15612static int vhost_update_used_flags(struct vhost_virtqueue *vq ) 
15613{ void *used ;
15614  int __pu_err ;
15615  long tmp___7 ;
15616  unsigned long __cil_tmp5 ;
15617  unsigned long __cil_tmp6 ;
15618  unsigned long __cil_tmp7 ;
15619  unsigned long __cil_tmp8 ;
15620  struct vring_used *__cil_tmp9 ;
15621  __u16 *__cil_tmp10 ;
15622  struct __large_struct *__cil_tmp11 ;
15623  unsigned long __cil_tmp12 ;
15624  unsigned long __cil_tmp13 ;
15625  unsigned long __cil_tmp14 ;
15626  unsigned long __cil_tmp15 ;
15627  struct vring_used *__cil_tmp16 ;
15628  __u16 *__cil_tmp17 ;
15629  struct __large_struct *__cil_tmp18 ;
15630  unsigned long __cil_tmp19 ;
15631  unsigned long __cil_tmp20 ;
15632  unsigned long __cil_tmp21 ;
15633  unsigned long __cil_tmp22 ;
15634  struct vring_used *__cil_tmp23 ;
15635  __u16 *__cil_tmp24 ;
15636  struct __large_struct *__cil_tmp25 ;
15637  unsigned long __cil_tmp26 ;
15638  unsigned long __cil_tmp27 ;
15639  unsigned long __cil_tmp28 ;
15640  unsigned long __cil_tmp29 ;
15641  struct vring_used *__cil_tmp30 ;
15642  __u16 *__cil_tmp31 ;
15643  struct __large_struct *__cil_tmp32 ;
15644  unsigned long __cil_tmp33 ;
15645  unsigned long __cil_tmp34 ;
15646  bool __cil_tmp35 ;
15647  int __cil_tmp36 ;
15648  int __cil_tmp37 ;
15649  long __cil_tmp38 ;
15650  unsigned long __cil_tmp39 ;
15651  unsigned long __cil_tmp40 ;
15652  struct vring_used *__cil_tmp41 ;
15653  __u16 *__cil_tmp42 ;
15654  unsigned long __cil_tmp43 ;
15655  unsigned long __cil_tmp44 ;
15656  void *__cil_tmp45 ;
15657  unsigned long __cil_tmp46 ;
15658  unsigned long __cil_tmp47 ;
15659  struct vring_used *__cil_tmp48 ;
15660  void *__cil_tmp49 ;
15661  int __cil_tmp50 ;
15662  u64 __cil_tmp51 ;
15663  unsigned long __cil_tmp52 ;
15664  unsigned long __cil_tmp53 ;
15665  u64 __cil_tmp54 ;
15666  u64 __cil_tmp55 ;
15667  u64 __cil_tmp56 ;
15668  unsigned long __cil_tmp57 ;
15669  unsigned long __cil_tmp58 ;
15670  unsigned long __cil_tmp59 ;
15671  unsigned long __cil_tmp60 ;
15672  struct eventfd_ctx *__cil_tmp61 ;
15673
15674  {
15675  {
15676#line 1004
15677  while (1) {
15678    while_continue: /* CIL Label */ ;
15679#line 1004
15680    __pu_err = 0;
15681#line 1004
15682    if ((int )2UL == 1) {
15683#line 1004
15684      goto case_1;
15685    } else
15686#line 1004
15687    if ((int )2UL == 2) {
15688#line 1004
15689      goto case_2;
15690    } else
15691#line 1004
15692    if ((int )2UL == 4) {
15693#line 1004
15694      goto case_4;
15695    } else
15696#line 1004
15697    if ((int )2UL == 8) {
15698#line 1004
15699      goto case_8;
15700    } else {
15701      {
15702#line 1004
15703      goto switch_default;
15704#line 1004
15705      if (0) {
15706        case_1: /* CIL Label */ 
15707#line 1004
15708        __cil_tmp5 = (unsigned long )vq;
15709#line 1004
15710        __cil_tmp6 = __cil_tmp5 + 334;
15711#line 1004
15712        __cil_tmp7 = (unsigned long )vq;
15713#line 1004
15714        __cil_tmp8 = __cil_tmp7 + 104;
15715#line 1004
15716        __cil_tmp9 = *((struct vring_used **)__cil_tmp8);
15717#line 1004
15718        __cil_tmp10 = (__u16 *)__cil_tmp9;
15719#line 1004
15720        __cil_tmp11 = (struct __large_struct *)__cil_tmp10;
15721#line 1004
15722        __asm__  volatile   ("1:\tmov"
15723                             "b"
15724                             " %"
15725                             "b"
15726                             "1,%2\n"
15727                             "2:\n"
15728                             ".section .fixup,\"ax\"\n"
15729                             "3:\tmov %3,%0\n"
15730                             "\tjmp 2b\n"
15731                             ".previous\n"
15732                             " .section __ex_table,\"a\"\n"
15733                             " "
15734                             ".balign 8"
15735                             " "
15736                             "\n"
15737                             " "
15738                             ".quad"
15739                             " "
15740                             "1b"
15741                             ","
15742                             "3b"
15743                             "\n"
15744                             " .previous\n": "=r" (__pu_err): "iq" (*((u16 *)__cil_tmp6)),
15745                             "m" (*__cil_tmp11), "i" (-14), "0" (__pu_err));
15746#line 1004
15747        goto switch_break;
15748        case_2: /* CIL Label */ 
15749#line 1004
15750        __cil_tmp12 = (unsigned long )vq;
15751#line 1004
15752        __cil_tmp13 = __cil_tmp12 + 334;
15753#line 1004
15754        __cil_tmp14 = (unsigned long )vq;
15755#line 1004
15756        __cil_tmp15 = __cil_tmp14 + 104;
15757#line 1004
15758        __cil_tmp16 = *((struct vring_used **)__cil_tmp15);
15759#line 1004
15760        __cil_tmp17 = (__u16 *)__cil_tmp16;
15761#line 1004
15762        __cil_tmp18 = (struct __large_struct *)__cil_tmp17;
15763#line 1004
15764        __asm__  volatile   ("1:\tmov"
15765                             "w"
15766                             " %"
15767                             "w"
15768                             "1,%2\n"
15769                             "2:\n"
15770                             ".section .fixup,\"ax\"\n"
15771                             "3:\tmov %3,%0\n"
15772                             "\tjmp 2b\n"
15773                             ".previous\n"
15774                             " .section __ex_table,\"a\"\n"
15775                             " "
15776                             ".balign 8"
15777                             " "
15778                             "\n"
15779                             " "
15780                             ".quad"
15781                             " "
15782                             "1b"
15783                             ","
15784                             "3b"
15785                             "\n"
15786                             " .previous\n": "=r" (__pu_err): "ir" (*((u16 *)__cil_tmp13)),
15787                             "m" (*__cil_tmp18), "i" (-14), "0" (__pu_err));
15788#line 1004
15789        goto switch_break;
15790        case_4: /* CIL Label */ 
15791#line 1004
15792        __cil_tmp19 = (unsigned long )vq;
15793#line 1004
15794        __cil_tmp20 = __cil_tmp19 + 334;
15795#line 1004
15796        __cil_tmp21 = (unsigned long )vq;
15797#line 1004
15798        __cil_tmp22 = __cil_tmp21 + 104;
15799#line 1004
15800        __cil_tmp23 = *((struct vring_used **)__cil_tmp22);
15801#line 1004
15802        __cil_tmp24 = (__u16 *)__cil_tmp23;
15803#line 1004
15804        __cil_tmp25 = (struct __large_struct *)__cil_tmp24;
15805#line 1004
15806        __asm__  volatile   ("1:\tmov"
15807                             "l"
15808                             " %"
15809                             "k"
15810                             "1,%2\n"
15811                             "2:\n"
15812                             ".section .fixup,\"ax\"\n"
15813                             "3:\tmov %3,%0\n"
15814                             "\tjmp 2b\n"
15815                             ".previous\n"
15816                             " .section __ex_table,\"a\"\n"
15817                             " "
15818                             ".balign 8"
15819                             " "
15820                             "\n"
15821                             " "
15822                             ".quad"
15823                             " "
15824                             "1b"
15825                             ","
15826                             "3b"
15827                             "\n"
15828                             " .previous\n": "=r" (__pu_err): "ir" (*((u16 *)__cil_tmp20)),
15829                             "m" (*__cil_tmp25), "i" (-14), "0" (__pu_err));
15830#line 1004
15831        goto switch_break;
15832        case_8: /* CIL Label */ 
15833#line 1004
15834        __cil_tmp26 = (unsigned long )vq;
15835#line 1004
15836        __cil_tmp27 = __cil_tmp26 + 334;
15837#line 1004
15838        __cil_tmp28 = (unsigned long )vq;
15839#line 1004
15840        __cil_tmp29 = __cil_tmp28 + 104;
15841#line 1004
15842        __cil_tmp30 = *((struct vring_used **)__cil_tmp29);
15843#line 1004
15844        __cil_tmp31 = (__u16 *)__cil_tmp30;
15845#line 1004
15846        __cil_tmp32 = (struct __large_struct *)__cil_tmp31;
15847#line 1004
15848        __asm__  volatile   ("1:\tmov"
15849                             "q"
15850                             " %"
15851                             ""
15852                             "1,%2\n"
15853                             "2:\n"
15854                             ".section .fixup,\"ax\"\n"
15855                             "3:\tmov %3,%0\n"
15856                             "\tjmp 2b\n"
15857                             ".previous\n"
15858                             " .section __ex_table,\"a\"\n"
15859                             " "
15860                             ".balign 8"
15861                             " "
15862                             "\n"
15863                             " "
15864                             ".quad"
15865                             " "
15866                             "1b"
15867                             ","
15868                             "3b"
15869                             "\n"
15870                             " .previous\n": "=r" (__pu_err): "er" (*((u16 *)__cil_tmp27)),
15871                             "m" (*__cil_tmp32), "i" (-14), "0" (__pu_err));
15872#line 1004
15873        goto switch_break;
15874        switch_default: /* CIL Label */ 
15875        {
15876#line 1004
15877        __put_user_bad();
15878        }
15879      } else {
15880        switch_break: /* CIL Label */ ;
15881      }
15882      }
15883    }
15884#line 1004
15885    goto while_break;
15886  }
15887  while_break: /* CIL Label */ ;
15888  }
15889#line 1004
15890  if (__pu_err < 0) {
15891#line 1005
15892    return (-14);
15893  } else {
15894
15895  }
15896  {
15897#line 1006
15898  __cil_tmp33 = (unsigned long )vq;
15899#line 1006
15900  __cil_tmp34 = __cil_tmp33 + 339;
15901#line 1006
15902  __cil_tmp35 = *((bool *)__cil_tmp34);
15903#line 1006
15904  __cil_tmp36 = ! __cil_tmp35;
15905#line 1006
15906  __cil_tmp37 = ! __cil_tmp36;
15907#line 1006
15908  __cil_tmp38 = (long )__cil_tmp37;
15909#line 1006
15910  tmp___7 = __builtin_expect(__cil_tmp38, 0L);
15911  }
15912#line 1006
15913  if (tmp___7) {
15914    {
15915#line 1008
15916    __asm__  volatile   ("": : : "memory");
15917#line 1010
15918    __cil_tmp39 = (unsigned long )vq;
15919#line 1010
15920    __cil_tmp40 = __cil_tmp39 + 104;
15921#line 1010
15922    __cil_tmp41 = *((struct vring_used **)__cil_tmp40);
15923#line 1010
15924    __cil_tmp42 = (__u16 *)__cil_tmp41;
15925#line 1010
15926    used = (void *)__cil_tmp42;
15927#line 1011
15928    __cil_tmp43 = (unsigned long )vq;
15929#line 1011
15930    __cil_tmp44 = __cil_tmp43 + 16968;
15931#line 1011
15932    __cil_tmp45 = *((void **)__cil_tmp44);
15933#line 1011
15934    __cil_tmp46 = (unsigned long )vq;
15935#line 1011
15936    __cil_tmp47 = __cil_tmp46 + 104;
15937#line 1011
15938    __cil_tmp48 = *((struct vring_used **)__cil_tmp47);
15939#line 1011
15940    __cil_tmp49 = (void *)__cil_tmp48;
15941#line 1011
15942    __cil_tmp50 = used - __cil_tmp49;
15943#line 1011
15944    __cil_tmp51 = (u64 )__cil_tmp50;
15945#line 1011
15946    __cil_tmp52 = (unsigned long )vq;
15947#line 1011
15948    __cil_tmp53 = __cil_tmp52 + 344;
15949#line 1011
15950    __cil_tmp54 = *((u64 *)__cil_tmp53);
15951#line 1011
15952    __cil_tmp55 = __cil_tmp54 + __cil_tmp51;
15953#line 1011
15954    __cil_tmp56 = (u64 )2UL;
15955#line 1011
15956    log_write(__cil_tmp45, __cil_tmp55, __cil_tmp56);
15957    }
15958    {
15959#line 1014
15960    __cil_tmp57 = (unsigned long )vq;
15961#line 1014
15962    __cil_tmp58 = __cil_tmp57 + 152;
15963#line 1014
15964    if (*((struct eventfd_ctx **)__cil_tmp58)) {
15965      {
15966#line 1015
15967      __cil_tmp59 = (unsigned long )vq;
15968#line 1015
15969      __cil_tmp60 = __cil_tmp59 + 152;
15970#line 1015
15971      __cil_tmp61 = *((struct eventfd_ctx **)__cil_tmp60);
15972#line 1015
15973      eventfd_signal(__cil_tmp61, 1);
15974      }
15975    } else {
15976
15977    }
15978    }
15979  } else {
15980
15981  }
15982#line 1017
15983  return (0);
15984}
15985}
15986#line 1020 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
15987static int vhost_update_avail_event(struct vhost_virtqueue *vq , u16 avail_event ) 
15988{ int __pu_err ;
15989  void *used ;
15990  long tmp___7 ;
15991  unsigned long __cil_tmp6 ;
15992  unsigned long __cil_tmp7 ;
15993  unsigned long __cil_tmp8 ;
15994  unsigned long __cil_tmp9 ;
15995  unsigned int __cil_tmp10 ;
15996  unsigned long __cil_tmp11 ;
15997  unsigned long __cil_tmp12 ;
15998  unsigned long __cil_tmp13 ;
15999  unsigned long __cil_tmp14 ;
16000  struct vring_used *__cil_tmp15 ;
16001  unsigned long __cil_tmp16 ;
16002  unsigned long __cil_tmp17 ;
16003  struct vring_used_elem *__cil_tmp18 ;
16004  u16 *__cil_tmp19 ;
16005  struct __large_struct *__cil_tmp20 ;
16006  unsigned long __cil_tmp21 ;
16007  unsigned long __cil_tmp22 ;
16008  unsigned long __cil_tmp23 ;
16009  unsigned long __cil_tmp24 ;
16010  unsigned int __cil_tmp25 ;
16011  unsigned long __cil_tmp26 ;
16012  unsigned long __cil_tmp27 ;
16013  unsigned long __cil_tmp28 ;
16014  unsigned long __cil_tmp29 ;
16015  struct vring_used *__cil_tmp30 ;
16016  unsigned long __cil_tmp31 ;
16017  unsigned long __cil_tmp32 ;
16018  struct vring_used_elem *__cil_tmp33 ;
16019  u16 *__cil_tmp34 ;
16020  struct __large_struct *__cil_tmp35 ;
16021  unsigned long __cil_tmp36 ;
16022  unsigned long __cil_tmp37 ;
16023  unsigned long __cil_tmp38 ;
16024  unsigned long __cil_tmp39 ;
16025  unsigned int __cil_tmp40 ;
16026  unsigned long __cil_tmp41 ;
16027  unsigned long __cil_tmp42 ;
16028  unsigned long __cil_tmp43 ;
16029  unsigned long __cil_tmp44 ;
16030  struct vring_used *__cil_tmp45 ;
16031  unsigned long __cil_tmp46 ;
16032  unsigned long __cil_tmp47 ;
16033  struct vring_used_elem *__cil_tmp48 ;
16034  u16 *__cil_tmp49 ;
16035  struct __large_struct *__cil_tmp50 ;
16036  unsigned long __cil_tmp51 ;
16037  unsigned long __cil_tmp52 ;
16038  unsigned long __cil_tmp53 ;
16039  unsigned long __cil_tmp54 ;
16040  unsigned int __cil_tmp55 ;
16041  unsigned long __cil_tmp56 ;
16042  unsigned long __cil_tmp57 ;
16043  unsigned long __cil_tmp58 ;
16044  unsigned long __cil_tmp59 ;
16045  struct vring_used *__cil_tmp60 ;
16046  unsigned long __cil_tmp61 ;
16047  unsigned long __cil_tmp62 ;
16048  struct vring_used_elem *__cil_tmp63 ;
16049  u16 *__cil_tmp64 ;
16050  struct __large_struct *__cil_tmp65 ;
16051  unsigned long __cil_tmp66 ;
16052  unsigned long __cil_tmp67 ;
16053  bool __cil_tmp68 ;
16054  int __cil_tmp69 ;
16055  int __cil_tmp70 ;
16056  long __cil_tmp71 ;
16057  unsigned long __cil_tmp72 ;
16058  unsigned long __cil_tmp73 ;
16059  unsigned int __cil_tmp74 ;
16060  unsigned long __cil_tmp75 ;
16061  unsigned long __cil_tmp76 ;
16062  unsigned long __cil_tmp77 ;
16063  unsigned long __cil_tmp78 ;
16064  struct vring_used *__cil_tmp79 ;
16065  unsigned long __cil_tmp80 ;
16066  unsigned long __cil_tmp81 ;
16067  struct vring_used_elem *__cil_tmp82 ;
16068  u16 *__cil_tmp83 ;
16069  unsigned long __cil_tmp84 ;
16070  unsigned long __cil_tmp85 ;
16071  void *__cil_tmp86 ;
16072  unsigned long __cil_tmp87 ;
16073  unsigned long __cil_tmp88 ;
16074  struct vring_used *__cil_tmp89 ;
16075  void *__cil_tmp90 ;
16076  int __cil_tmp91 ;
16077  u64 __cil_tmp92 ;
16078  unsigned long __cil_tmp93 ;
16079  unsigned long __cil_tmp94 ;
16080  u64 __cil_tmp95 ;
16081  u64 __cil_tmp96 ;
16082  u64 __cil_tmp97 ;
16083  unsigned long __cil_tmp98 ;
16084  unsigned long __cil_tmp99 ;
16085  unsigned long __cil_tmp100 ;
16086  unsigned long __cil_tmp101 ;
16087  struct eventfd_ctx *__cil_tmp102 ;
16088
16089  {
16090  {
16091#line 1022
16092  while (1) {
16093    while_continue: /* CIL Label */ ;
16094#line 1022
16095    __pu_err = 0;
16096#line 1022
16097    if ((int )2UL == 1) {
16098#line 1022
16099      goto case_1;
16100    } else
16101#line 1022
16102    if ((int )2UL == 2) {
16103#line 1022
16104      goto case_2;
16105    } else
16106#line 1022
16107    if ((int )2UL == 4) {
16108#line 1022
16109      goto case_4;
16110    } else
16111#line 1022
16112    if ((int )2UL == 8) {
16113#line 1022
16114      goto case_8;
16115    } else {
16116      {
16117#line 1022
16118      goto switch_default;
16119#line 1022
16120      if (0) {
16121        case_1: /* CIL Label */ 
16122#line 1022
16123        __cil_tmp6 = (unsigned long )vq;
16124#line 1022
16125        __cil_tmp7 = __cil_tmp6 + 330;
16126#line 1022
16127        __cil_tmp8 = (unsigned long )vq;
16128#line 1022
16129        __cil_tmp9 = __cil_tmp8 + 80;
16130#line 1022
16131        __cil_tmp10 = *((unsigned int *)__cil_tmp9);
16132#line 1022
16133        __cil_tmp11 = __cil_tmp10 * 8UL;
16134#line 1022
16135        __cil_tmp12 = 4 + __cil_tmp11;
16136#line 1022
16137        __cil_tmp13 = (unsigned long )vq;
16138#line 1022
16139        __cil_tmp14 = __cil_tmp13 + 104;
16140#line 1022
16141        __cil_tmp15 = *((struct vring_used **)__cil_tmp14);
16142#line 1022
16143        __cil_tmp16 = (unsigned long )__cil_tmp15;
16144#line 1022
16145        __cil_tmp17 = __cil_tmp16 + __cil_tmp12;
16146#line 1022
16147        __cil_tmp18 = (struct vring_used_elem *)__cil_tmp17;
16148#line 1022
16149        __cil_tmp19 = (u16 *)__cil_tmp18;
16150#line 1022
16151        __cil_tmp20 = (struct __large_struct *)__cil_tmp19;
16152#line 1022
16153        __asm__  volatile   ("1:\tmov"
16154                             "b"
16155                             " %"
16156                             "b"
16157                             "1,%2\n"
16158                             "2:\n"
16159                             ".section .fixup,\"ax\"\n"
16160                             "3:\tmov %3,%0\n"
16161                             "\tjmp 2b\n"
16162                             ".previous\n"
16163                             " .section __ex_table,\"a\"\n"
16164                             " "
16165                             ".balign 8"
16166                             " "
16167                             "\n"
16168                             " "
16169                             ".quad"
16170                             " "
16171                             "1b"
16172                             ","
16173                             "3b"
16174                             "\n"
16175                             " .previous\n": "=r" (__pu_err): "iq" (*((u16 *)__cil_tmp7)),
16176                             "m" (*__cil_tmp20), "i" (-14), "0" (__pu_err));
16177#line 1022
16178        goto switch_break;
16179        case_2: /* CIL Label */ 
16180#line 1022
16181        __cil_tmp21 = (unsigned long )vq;
16182#line 1022
16183        __cil_tmp22 = __cil_tmp21 + 330;
16184#line 1022
16185        __cil_tmp23 = (unsigned long )vq;
16186#line 1022
16187        __cil_tmp24 = __cil_tmp23 + 80;
16188#line 1022
16189        __cil_tmp25 = *((unsigned int *)__cil_tmp24);
16190#line 1022
16191        __cil_tmp26 = __cil_tmp25 * 8UL;
16192#line 1022
16193        __cil_tmp27 = 4 + __cil_tmp26;
16194#line 1022
16195        __cil_tmp28 = (unsigned long )vq;
16196#line 1022
16197        __cil_tmp29 = __cil_tmp28 + 104;
16198#line 1022
16199        __cil_tmp30 = *((struct vring_used **)__cil_tmp29);
16200#line 1022
16201        __cil_tmp31 = (unsigned long )__cil_tmp30;
16202#line 1022
16203        __cil_tmp32 = __cil_tmp31 + __cil_tmp27;
16204#line 1022
16205        __cil_tmp33 = (struct vring_used_elem *)__cil_tmp32;
16206#line 1022
16207        __cil_tmp34 = (u16 *)__cil_tmp33;
16208#line 1022
16209        __cil_tmp35 = (struct __large_struct *)__cil_tmp34;
16210#line 1022
16211        __asm__  volatile   ("1:\tmov"
16212                             "w"
16213                             " %"
16214                             "w"
16215                             "1,%2\n"
16216                             "2:\n"
16217                             ".section .fixup,\"ax\"\n"
16218                             "3:\tmov %3,%0\n"
16219                             "\tjmp 2b\n"
16220                             ".previous\n"
16221                             " .section __ex_table,\"a\"\n"
16222                             " "
16223                             ".balign 8"
16224                             " "
16225                             "\n"
16226                             " "
16227                             ".quad"
16228                             " "
16229                             "1b"
16230                             ","
16231                             "3b"
16232                             "\n"
16233                             " .previous\n": "=r" (__pu_err): "ir" (*((u16 *)__cil_tmp22)),
16234                             "m" (*__cil_tmp35), "i" (-14), "0" (__pu_err));
16235#line 1022
16236        goto switch_break;
16237        case_4: /* CIL Label */ 
16238#line 1022
16239        __cil_tmp36 = (unsigned long )vq;
16240#line 1022
16241        __cil_tmp37 = __cil_tmp36 + 330;
16242#line 1022
16243        __cil_tmp38 = (unsigned long )vq;
16244#line 1022
16245        __cil_tmp39 = __cil_tmp38 + 80;
16246#line 1022
16247        __cil_tmp40 = *((unsigned int *)__cil_tmp39);
16248#line 1022
16249        __cil_tmp41 = __cil_tmp40 * 8UL;
16250#line 1022
16251        __cil_tmp42 = 4 + __cil_tmp41;
16252#line 1022
16253        __cil_tmp43 = (unsigned long )vq;
16254#line 1022
16255        __cil_tmp44 = __cil_tmp43 + 104;
16256#line 1022
16257        __cil_tmp45 = *((struct vring_used **)__cil_tmp44);
16258#line 1022
16259        __cil_tmp46 = (unsigned long )__cil_tmp45;
16260#line 1022
16261        __cil_tmp47 = __cil_tmp46 + __cil_tmp42;
16262#line 1022
16263        __cil_tmp48 = (struct vring_used_elem *)__cil_tmp47;
16264#line 1022
16265        __cil_tmp49 = (u16 *)__cil_tmp48;
16266#line 1022
16267        __cil_tmp50 = (struct __large_struct *)__cil_tmp49;
16268#line 1022
16269        __asm__  volatile   ("1:\tmov"
16270                             "l"
16271                             " %"
16272                             "k"
16273                             "1,%2\n"
16274                             "2:\n"
16275                             ".section .fixup,\"ax\"\n"
16276                             "3:\tmov %3,%0\n"
16277                             "\tjmp 2b\n"
16278                             ".previous\n"
16279                             " .section __ex_table,\"a\"\n"
16280                             " "
16281                             ".balign 8"
16282                             " "
16283                             "\n"
16284                             " "
16285                             ".quad"
16286                             " "
16287                             "1b"
16288                             ","
16289                             "3b"
16290                             "\n"
16291                             " .previous\n": "=r" (__pu_err): "ir" (*((u16 *)__cil_tmp37)),
16292                             "m" (*__cil_tmp50), "i" (-14), "0" (__pu_err));
16293#line 1022
16294        goto switch_break;
16295        case_8: /* CIL Label */ 
16296#line 1022
16297        __cil_tmp51 = (unsigned long )vq;
16298#line 1022
16299        __cil_tmp52 = __cil_tmp51 + 330;
16300#line 1022
16301        __cil_tmp53 = (unsigned long )vq;
16302#line 1022
16303        __cil_tmp54 = __cil_tmp53 + 80;
16304#line 1022
16305        __cil_tmp55 = *((unsigned int *)__cil_tmp54);
16306#line 1022
16307        __cil_tmp56 = __cil_tmp55 * 8UL;
16308#line 1022
16309        __cil_tmp57 = 4 + __cil_tmp56;
16310#line 1022
16311        __cil_tmp58 = (unsigned long )vq;
16312#line 1022
16313        __cil_tmp59 = __cil_tmp58 + 104;
16314#line 1022
16315        __cil_tmp60 = *((struct vring_used **)__cil_tmp59);
16316#line 1022
16317        __cil_tmp61 = (unsigned long )__cil_tmp60;
16318#line 1022
16319        __cil_tmp62 = __cil_tmp61 + __cil_tmp57;
16320#line 1022
16321        __cil_tmp63 = (struct vring_used_elem *)__cil_tmp62;
16322#line 1022
16323        __cil_tmp64 = (u16 *)__cil_tmp63;
16324#line 1022
16325        __cil_tmp65 = (struct __large_struct *)__cil_tmp64;
16326#line 1022
16327        __asm__  volatile   ("1:\tmov"
16328                             "q"
16329                             " %"
16330                             ""
16331                             "1,%2\n"
16332                             "2:\n"
16333                             ".section .fixup,\"ax\"\n"
16334                             "3:\tmov %3,%0\n"
16335                             "\tjmp 2b\n"
16336                             ".previous\n"
16337                             " .section __ex_table,\"a\"\n"
16338                             " "
16339                             ".balign 8"
16340                             " "
16341                             "\n"
16342                             " "
16343                             ".quad"
16344                             " "
16345                             "1b"
16346                             ","
16347                             "3b"
16348                             "\n"
16349                             " .previous\n": "=r" (__pu_err): "er" (*((u16 *)__cil_tmp52)),
16350                             "m" (*__cil_tmp65), "i" (-14), "0" (__pu_err));
16351#line 1022
16352        goto switch_break;
16353        switch_default: /* CIL Label */ 
16354        {
16355#line 1022
16356        __put_user_bad();
16357        }
16358      } else {
16359        switch_break: /* CIL Label */ ;
16360      }
16361      }
16362    }
16363#line 1022
16364    goto while_break;
16365  }
16366  while_break: /* CIL Label */ ;
16367  }
16368#line 1022
16369  if (__pu_err) {
16370#line 1023
16371    return (-14);
16372  } else {
16373
16374  }
16375  {
16376#line 1024
16377  __cil_tmp66 = (unsigned long )vq;
16378#line 1024
16379  __cil_tmp67 = __cil_tmp66 + 339;
16380#line 1024
16381  __cil_tmp68 = *((bool *)__cil_tmp67);
16382#line 1024
16383  __cil_tmp69 = ! __cil_tmp68;
16384#line 1024
16385  __cil_tmp70 = ! __cil_tmp69;
16386#line 1024
16387  __cil_tmp71 = (long )__cil_tmp70;
16388#line 1024
16389  tmp___7 = __builtin_expect(__cil_tmp71, 0L);
16390  }
16391#line 1024
16392  if (tmp___7) {
16393    {
16394#line 1027
16395    __asm__  volatile   ("": : : "memory");
16396#line 1029
16397    __cil_tmp72 = (unsigned long )vq;
16398#line 1029
16399    __cil_tmp73 = __cil_tmp72 + 80;
16400#line 1029
16401    __cil_tmp74 = *((unsigned int *)__cil_tmp73);
16402#line 1029
16403    __cil_tmp75 = __cil_tmp74 * 8UL;
16404#line 1029
16405    __cil_tmp76 = 4 + __cil_tmp75;
16406#line 1029
16407    __cil_tmp77 = (unsigned long )vq;
16408#line 1029
16409    __cil_tmp78 = __cil_tmp77 + 104;
16410#line 1029
16411    __cil_tmp79 = *((struct vring_used **)__cil_tmp78);
16412#line 1029
16413    __cil_tmp80 = (unsigned long )__cil_tmp79;
16414#line 1029
16415    __cil_tmp81 = __cil_tmp80 + __cil_tmp76;
16416#line 1029
16417    __cil_tmp82 = (struct vring_used_elem *)__cil_tmp81;
16418#line 1029
16419    __cil_tmp83 = (u16 *)__cil_tmp82;
16420#line 1029
16421    used = (void *)__cil_tmp83;
16422#line 1030
16423    __cil_tmp84 = (unsigned long )vq;
16424#line 1030
16425    __cil_tmp85 = __cil_tmp84 + 16968;
16426#line 1030
16427    __cil_tmp86 = *((void **)__cil_tmp85);
16428#line 1030
16429    __cil_tmp87 = (unsigned long )vq;
16430#line 1030
16431    __cil_tmp88 = __cil_tmp87 + 104;
16432#line 1030
16433    __cil_tmp89 = *((struct vring_used **)__cil_tmp88);
16434#line 1030
16435    __cil_tmp90 = (void *)__cil_tmp89;
16436#line 1030
16437    __cil_tmp91 = used - __cil_tmp90;
16438#line 1030
16439    __cil_tmp92 = (u64 )__cil_tmp91;
16440#line 1030
16441    __cil_tmp93 = (unsigned long )vq;
16442#line 1030
16443    __cil_tmp94 = __cil_tmp93 + 344;
16444#line 1030
16445    __cil_tmp95 = *((u64 *)__cil_tmp94);
16446#line 1030
16447    __cil_tmp96 = __cil_tmp95 + __cil_tmp92;
16448#line 1030
16449    __cil_tmp97 = (u64 )2UL;
16450#line 1030
16451    log_write(__cil_tmp86, __cil_tmp96, __cil_tmp97);
16452    }
16453    {
16454#line 1033
16455    __cil_tmp98 = (unsigned long )vq;
16456#line 1033
16457    __cil_tmp99 = __cil_tmp98 + 152;
16458#line 1033
16459    if (*((struct eventfd_ctx **)__cil_tmp99)) {
16460      {
16461#line 1034
16462      __cil_tmp100 = (unsigned long )vq;
16463#line 1034
16464      __cil_tmp101 = __cil_tmp100 + 152;
16465#line 1034
16466      __cil_tmp102 = *((struct eventfd_ctx **)__cil_tmp101);
16467#line 1034
16468      eventfd_signal(__cil_tmp102, 1);
16469      }
16470    } else {
16471
16472    }
16473    }
16474  } else {
16475
16476  }
16477#line 1036
16478  return (0);
16479}
16480}
16481#line 1039 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
16482int vhost_init_used(struct vhost_virtqueue *vq ) 
16483{ int r ;
16484  int __ret_gu ;
16485  unsigned long __val_gu ;
16486  unsigned long __cil_tmp5 ;
16487  unsigned long __cil_tmp6 ;
16488  void *__cil_tmp7 ;
16489  unsigned long __cil_tmp8 ;
16490  unsigned long __cil_tmp9 ;
16491  unsigned long __cil_tmp10 ;
16492  unsigned long __cil_tmp11 ;
16493  struct vring_used *__cil_tmp12 ;
16494  unsigned long __cil_tmp13 ;
16495  unsigned long __cil_tmp14 ;
16496  unsigned long __cil_tmp15 ;
16497  unsigned long __cil_tmp16 ;
16498  struct vring_used *__cil_tmp17 ;
16499  unsigned long __cil_tmp18 ;
16500  unsigned long __cil_tmp19 ;
16501  unsigned long __cil_tmp20 ;
16502  unsigned long __cil_tmp21 ;
16503  struct vring_used *__cil_tmp22 ;
16504  unsigned long __cil_tmp23 ;
16505  unsigned long __cil_tmp24 ;
16506  unsigned long __cil_tmp25 ;
16507  unsigned long __cil_tmp26 ;
16508  struct vring_used *__cil_tmp27 ;
16509  unsigned long __cil_tmp28 ;
16510  unsigned long __cil_tmp29 ;
16511  unsigned long __cil_tmp30 ;
16512  unsigned long __cil_tmp31 ;
16513  struct vring_used *__cil_tmp32 ;
16514  unsigned long __cil_tmp33 ;
16515  unsigned long __cil_tmp34 ;
16516  unsigned long __cil_tmp35 ;
16517  unsigned long __cil_tmp36 ;
16518
16519  {
16520  {
16521#line 1042
16522  __cil_tmp5 = (unsigned long )vq;
16523#line 1042
16524  __cil_tmp6 = __cil_tmp5 + 16960;
16525#line 1042
16526  __cil_tmp7 = *((void **)__cil_tmp6);
16527#line 1042
16528  if (! __cil_tmp7) {
16529#line 1043
16530    return (0);
16531  } else {
16532
16533  }
16534  }
16535  {
16536#line 1045
16537  r = vhost_update_used_flags(vq);
16538  }
16539#line 1046
16540  if (r) {
16541#line 1047
16542    return (r);
16543  } else {
16544
16545  }
16546  {
16547#line 1048
16548  __cil_tmp8 = (unsigned long )vq;
16549#line 1048
16550  __cil_tmp9 = __cil_tmp8 + 338;
16551#line 1048
16552  *((bool *)__cil_tmp9) = (bool )0;
16553#line 1049
16554  might_fault();
16555  }
16556#line 1049
16557  if ((int )2UL == 1) {
16558#line 1049
16559    goto case_1;
16560  } else
16561#line 1049
16562  if ((int )2UL == 2) {
16563#line 1049
16564    goto case_2;
16565  } else
16566#line 1049
16567  if ((int )2UL == 4) {
16568#line 1049
16569    goto case_4;
16570  } else
16571#line 1049
16572  if ((int )2UL == 8) {
16573#line 1049
16574    goto case_8;
16575  } else {
16576    {
16577#line 1049
16578    goto switch_default;
16579#line 1049
16580    if (0) {
16581      case_1: /* CIL Label */ 
16582#line 1049
16583      __cil_tmp10 = (unsigned long )vq;
16584#line 1049
16585      __cil_tmp11 = __cil_tmp10 + 104;
16586#line 1049
16587      __cil_tmp12 = *((struct vring_used **)__cil_tmp11);
16588#line 1049
16589      __cil_tmp13 = (unsigned long )__cil_tmp12;
16590#line 1049
16591      __cil_tmp14 = __cil_tmp13 + 2;
16592#line 1049
16593      __asm__  volatile   ("call __get_user_"
16594                           "1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((__u16 *)__cil_tmp14));
16595#line 1049
16596      goto switch_break;
16597      case_2: /* CIL Label */ 
16598#line 1049
16599      __cil_tmp15 = (unsigned long )vq;
16600#line 1049
16601      __cil_tmp16 = __cil_tmp15 + 104;
16602#line 1049
16603      __cil_tmp17 = *((struct vring_used **)__cil_tmp16);
16604#line 1049
16605      __cil_tmp18 = (unsigned long )__cil_tmp17;
16606#line 1049
16607      __cil_tmp19 = __cil_tmp18 + 2;
16608#line 1049
16609      __asm__  volatile   ("call __get_user_"
16610                           "2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((__u16 *)__cil_tmp19));
16611#line 1049
16612      goto switch_break;
16613      case_4: /* CIL Label */ 
16614#line 1049
16615      __cil_tmp20 = (unsigned long )vq;
16616#line 1049
16617      __cil_tmp21 = __cil_tmp20 + 104;
16618#line 1049
16619      __cil_tmp22 = *((struct vring_used **)__cil_tmp21);
16620#line 1049
16621      __cil_tmp23 = (unsigned long )__cil_tmp22;
16622#line 1049
16623      __cil_tmp24 = __cil_tmp23 + 2;
16624#line 1049
16625      __asm__  volatile   ("call __get_user_"
16626                           "4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((__u16 *)__cil_tmp24));
16627#line 1049
16628      goto switch_break;
16629      case_8: /* CIL Label */ 
16630#line 1049
16631      __cil_tmp25 = (unsigned long )vq;
16632#line 1049
16633      __cil_tmp26 = __cil_tmp25 + 104;
16634#line 1049
16635      __cil_tmp27 = *((struct vring_used **)__cil_tmp26);
16636#line 1049
16637      __cil_tmp28 = (unsigned long )__cil_tmp27;
16638#line 1049
16639      __cil_tmp29 = __cil_tmp28 + 2;
16640#line 1049
16641      __asm__  volatile   ("call __get_user_"
16642                           "8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((__u16 *)__cil_tmp29));
16643#line 1049
16644      goto switch_break;
16645      switch_default: /* CIL Label */ 
16646#line 1049
16647      __cil_tmp30 = (unsigned long )vq;
16648#line 1049
16649      __cil_tmp31 = __cil_tmp30 + 104;
16650#line 1049
16651      __cil_tmp32 = *((struct vring_used **)__cil_tmp31);
16652#line 1049
16653      __cil_tmp33 = (unsigned long )__cil_tmp32;
16654#line 1049
16655      __cil_tmp34 = __cil_tmp33 + 2;
16656#line 1049
16657      __asm__  volatile   ("call __get_user_"
16658                           "X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((__u16 *)__cil_tmp34));
16659#line 1049
16660      goto switch_break;
16661    } else {
16662      switch_break: /* CIL Label */ ;
16663    }
16664    }
16665  }
16666#line 1049
16667  __cil_tmp35 = (unsigned long )vq;
16668#line 1049
16669  __cil_tmp36 = __cil_tmp35 + 332;
16670#line 1049
16671  *((u16 *)__cil_tmp36) = (__u16 )__val_gu;
16672#line 1049
16673  return (__ret_gu);
16674}
16675}
16676#line 1052 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
16677static int translate_desc(struct vhost_dev *dev , u64 addr , u32 len , struct iovec *iov ,
16678                          int iov_size ) 
16679{ struct vhost_memory_region    *reg ;
16680  struct vhost_memory *mem ;
16681  struct iovec *_iov ;
16682  u64 s ;
16683  int ret ;
16684  struct vhost_memory *_________p1 ;
16685  u64 size ;
16686  long tmp___7 ;
16687  long tmp___8 ;
16688  u64 _min1 ;
16689  u64 _min2 ;
16690  u64 tmp___9 ;
16691  struct vhost_memory **__cil_tmp18 ;
16692  struct vhost_memory * volatile  *__cil_tmp19 ;
16693  struct vhost_memory * volatile  __cil_tmp20 ;
16694  u64 __cil_tmp21 ;
16695  int __cil_tmp22 ;
16696  int __cil_tmp23 ;
16697  int __cil_tmp24 ;
16698  long __cil_tmp25 ;
16699  int __cil_tmp26 ;
16700  int __cil_tmp27 ;
16701  int __cil_tmp28 ;
16702  long __cil_tmp29 ;
16703  __u64    __cil_tmp30 ;
16704  __u64    __cil_tmp31 ;
16705  unsigned long __cil_tmp32 ;
16706  unsigned long __cil_tmp33 ;
16707  __u64    __cil_tmp34 ;
16708  __u64    __cil_tmp35 ;
16709  __u64    __cil_tmp36 ;
16710  u64 *__cil_tmp37 ;
16711  u64 *__cil_tmp38 ;
16712  u64 *__cil_tmp39 ;
16713  u64 __cil_tmp40 ;
16714  u64 *__cil_tmp41 ;
16715  u64 __cil_tmp42 ;
16716  u64 *__cil_tmp43 ;
16717  u64 *__cil_tmp44 ;
16718  unsigned long __cil_tmp45 ;
16719  unsigned long __cil_tmp46 ;
16720  __u64    __cil_tmp47 ;
16721  __u64    __cil_tmp48 ;
16722  unsigned long __cil_tmp49 ;
16723  unsigned long __cil_tmp50 ;
16724  __u64    __cil_tmp51 ;
16725  __u64    __cil_tmp52 ;
16726  __u64    __cil_tmp53 ;
16727  unsigned long __cil_tmp54 ;
16728
16729  {
16730  {
16731#line 1058
16732  s = (u64 )0;
16733#line 1059
16734  ret = 0;
16735#line 1061
16736  rcu_read_lock();
16737#line 1063
16738  __cil_tmp18 = (struct vhost_memory **)dev;
16739#line 1063
16740  __cil_tmp19 = (struct vhost_memory * volatile  *)__cil_tmp18;
16741#line 1063
16742  __cil_tmp20 = *__cil_tmp19;
16743#line 1063
16744  _________p1 = (struct vhost_memory *)__cil_tmp20;
16745  }
16746  {
16747#line 1063
16748  while (1) {
16749    while_continue: /* CIL Label */ ;
16750#line 1063
16751    goto while_break;
16752  }
16753  while_break: /* CIL Label */ ;
16754  }
16755  {
16756#line 1063
16757  while (1) {
16758    while_continue___0: /* CIL Label */ ;
16759#line 1063
16760    goto while_break___0;
16761  }
16762  while_break___0: /* CIL Label */ ;
16763  }
16764#line 1063
16765  mem = _________p1;
16766  {
16767#line 1064
16768  while (1) {
16769    while_continue___1: /* CIL Label */ ;
16770    {
16771#line 1064
16772    __cil_tmp21 = (u64 )len;
16773#line 1064
16774    if (__cil_tmp21 > s) {
16775
16776    } else {
16777#line 1064
16778      goto while_break___1;
16779    }
16780    }
16781    {
16782#line 1066
16783    __cil_tmp22 = ret >= iov_size;
16784#line 1066
16785    __cil_tmp23 = ! __cil_tmp22;
16786#line 1066
16787    __cil_tmp24 = ! __cil_tmp23;
16788#line 1066
16789    __cil_tmp25 = (long )__cil_tmp24;
16790#line 1066
16791    tmp___7 = __builtin_expect(__cil_tmp25, 0L);
16792    }
16793#line 1066
16794    if (tmp___7) {
16795#line 1067
16796      ret = -105;
16797#line 1068
16798      goto while_break___1;
16799    } else {
16800
16801    }
16802    {
16803#line 1070
16804    reg = find_region(mem, addr, len);
16805#line 1071
16806    __cil_tmp26 = ! reg;
16807#line 1071
16808    __cil_tmp27 = ! __cil_tmp26;
16809#line 1071
16810    __cil_tmp28 = ! __cil_tmp27;
16811#line 1071
16812    __cil_tmp29 = (long )__cil_tmp28;
16813#line 1071
16814    tmp___8 = __builtin_expect(__cil_tmp29, 0L);
16815    }
16816#line 1071
16817    if (tmp___8) {
16818#line 1072
16819      ret = -14;
16820#line 1073
16821      goto while_break___1;
16822    } else {
16823
16824    }
16825#line 1075
16826    _iov = iov + ret;
16827#line 1076
16828    __cil_tmp30 = *((__u64    *)reg);
16829#line 1076
16830    __cil_tmp31 = (__u64    )addr;
16831#line 1076
16832    __cil_tmp32 = (unsigned long )reg;
16833#line 1076
16834    __cil_tmp33 = __cil_tmp32 + 8;
16835#line 1076
16836    __cil_tmp34 = *((__u64    *)__cil_tmp33);
16837#line 1076
16838    __cil_tmp35 = __cil_tmp34 - __cil_tmp31;
16839#line 1076
16840    __cil_tmp36 = __cil_tmp35 + __cil_tmp30;
16841#line 1076
16842    size = (u64 )__cil_tmp36;
16843#line 1077
16844    __cil_tmp37 = & _min1;
16845#line 1077
16846    *__cil_tmp37 = (u64 )len;
16847#line 1077
16848    __cil_tmp38 = & _min2;
16849#line 1077
16850    *__cil_tmp38 = size;
16851    {
16852#line 1077
16853    __cil_tmp39 = & _min2;
16854#line 1077
16855    __cil_tmp40 = *__cil_tmp39;
16856#line 1077
16857    __cil_tmp41 = & _min1;
16858#line 1077
16859    __cil_tmp42 = *__cil_tmp41;
16860#line 1077
16861    if (__cil_tmp42 < __cil_tmp40) {
16862#line 1077
16863      __cil_tmp43 = & _min1;
16864#line 1077
16865      tmp___9 = *__cil_tmp43;
16866    } else {
16867#line 1077
16868      __cil_tmp44 = & _min2;
16869#line 1077
16870      tmp___9 = *__cil_tmp44;
16871    }
16872    }
16873#line 1077
16874    __cil_tmp45 = (unsigned long )_iov;
16875#line 1077
16876    __cil_tmp46 = __cil_tmp45 + 8;
16877#line 1077
16878    *((__kernel_size_t *)__cil_tmp46) = (__kernel_size_t )tmp___9;
16879#line 1078
16880    __cil_tmp47 = *((__u64    *)reg);
16881#line 1078
16882    __cil_tmp48 = (__u64    )addr;
16883#line 1078
16884    __cil_tmp49 = (unsigned long )reg;
16885#line 1078
16886    __cil_tmp50 = __cil_tmp49 + 16;
16887#line 1078
16888    __cil_tmp51 = *((__u64    *)__cil_tmp50);
16889#line 1078
16890    __cil_tmp52 = __cil_tmp51 + __cil_tmp48;
16891#line 1078
16892    __cil_tmp53 = __cil_tmp52 - __cil_tmp47;
16893#line 1078
16894    __cil_tmp54 = (unsigned long )__cil_tmp53;
16895#line 1078
16896    *((void **)_iov) = (void *)__cil_tmp54;
16897#line 1080
16898    s = s + size;
16899#line 1081
16900    addr = addr + size;
16901#line 1082
16902    ret = ret + 1;
16903  }
16904  while_break___1: /* CIL Label */ ;
16905  }
16906  {
16907#line 1085
16908  rcu_read_unlock();
16909  }
16910#line 1086
16911  return (ret);
16912}
16913}
16914#line 1092 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
16915static unsigned int next_desc(struct vring_desc *desc ) 
16916{ unsigned int next ;
16917  unsigned long __cil_tmp3 ;
16918  unsigned long __cil_tmp4 ;
16919  __u16 __cil_tmp5 ;
16920  int __cil_tmp6 ;
16921  int __cil_tmp7 ;
16922  unsigned long __cil_tmp8 ;
16923  unsigned long __cil_tmp9 ;
16924  __u16 __cil_tmp10 ;
16925
16926  {
16927  {
16928#line 1097
16929  __cil_tmp3 = (unsigned long )desc;
16930#line 1097
16931  __cil_tmp4 = __cil_tmp3 + 12;
16932#line 1097
16933  __cil_tmp5 = *((__u16 *)__cil_tmp4);
16934#line 1097
16935  __cil_tmp6 = (int )__cil_tmp5;
16936#line 1097
16937  __cil_tmp7 = __cil_tmp6 & 1;
16938#line 1097
16939  if (! __cil_tmp7) {
16940#line 1098
16941    return (4294967295U);
16942  } else {
16943
16944  }
16945  }
16946#line 1101
16947  __cil_tmp8 = (unsigned long )desc;
16948#line 1101
16949  __cil_tmp9 = __cil_tmp8 + 14;
16950#line 1101
16951  __cil_tmp10 = *((__u16 *)__cil_tmp9);
16952#line 1101
16953  next = (unsigned int )__cil_tmp10;
16954  {
16955#line 1105
16956  while (1) {
16957    while_continue: /* CIL Label */ ;
16958#line 1105
16959    goto while_break;
16960  }
16961  while_break: /* CIL Label */ ;
16962  }
16963#line 1107
16964  return (next);
16965}
16966}
16967#line 1122
16968static int get_indirect(struct vhost_dev *dev , struct vhost_virtqueue *vq , struct iovec *iov ,
16969                        unsigned int iov_size , unsigned int *out_num , unsigned int *in_num ,
16970                        struct vhost_log *log , unsigned int *log_num , struct vring_desc *indirect ) ;
16971#line 1122 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
16972static struct _ddebug  __attribute__((__aligned__(8))) descriptor  __attribute__((__used__,
16973__section__("__verbose")))  =    {"vhost_net", "get_indirect", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
16974    "Invalid length in indirect descriptor: len 0x%llx not multiple of 0x%zx\n", 1125U,
16975    0U};
16976#line 1132 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
16977static struct _ddebug  __attribute__((__aligned__(8))) descriptor___0  __attribute__((__used__,
16978__section__("__verbose")))  =    {"vhost_net", "get_indirect", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
16979    "Translation failure %d in indirect.\n", 1132U, 0U};
16980#line 1144 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
16981static struct _ddebug  __attribute__((__aligned__(8))) descriptor___1  __attribute__((__used__,
16982__section__("__verbose")))  =    {"vhost_net", "get_indirect", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
16983    "Indirect buffer length too big: %d\n", 1145U, 0U};
16984#line 1152 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
16985static struct _ddebug  __attribute__((__aligned__(8))) descriptor___2  __attribute__((__used__,
16986__section__("__verbose")))  =    {"vhost_net", "get_indirect", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
16987    "Loop detected: last one at %u indirect size %u\n", 1154U, 0U};
16988#line 1159 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
16989static struct _ddebug  __attribute__((__aligned__(8))) descriptor___3  __attribute__((__used__,
16990__section__("__verbose")))  =    {"vhost_net", "get_indirect", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
16991    "Failed indirect descriptor: idx %d, %zx\n", 1160U, 0U};
16992#line 1164 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
16993static struct _ddebug  __attribute__((__aligned__(8))) descriptor___4  __attribute__((__used__,
16994__section__("__verbose")))  =    {"vhost_net", "get_indirect", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
16995    "Nested indirect descriptor: idx %d, %zx\n", 1165U, 0U};
16996#line 1172 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
16997static struct _ddebug  __attribute__((__aligned__(8))) descriptor___5  __attribute__((__used__,
16998__section__("__verbose")))  =    {"vhost_net", "get_indirect", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
16999    "Translation failure %d indirect idx %d\n", 1173U, 0U};
17000#line 1188 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
17001static struct _ddebug  __attribute__((__aligned__(8))) descriptor___6  __attribute__((__used__,
17002__section__("__verbose")))  =    {"vhost_net", "get_indirect", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
17003    "Indirect descriptor has out after in: idx %d\n", 1189U, 0U};
17004#line 1110 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
17005static int get_indirect(struct vhost_dev *dev , struct vhost_virtqueue *vq , struct iovec *iov ,
17006                        unsigned int iov_size , unsigned int *out_num , unsigned int *in_num ,
17007                        struct vhost_log *log , unsigned int *log_num , struct vring_desc *indirect ) 
17008{ struct vring_desc desc ;
17009  unsigned int i ;
17010  unsigned int count ;
17011  unsigned int found ;
17012  int ret ;
17013  long tmp___7 ;
17014  long tmp___8 ;
17015  long tmp___9 ;
17016  long tmp___10 ;
17017  long tmp___11 ;
17018  long tmp___12 ;
17019  unsigned int iov_count ;
17020  long tmp___13 ;
17021  int tmp___14 ;
17022  long tmp___15 ;
17023  long tmp___16 ;
17024  int tmp___17 ;
17025  int tmp___18 ;
17026  long tmp___19 ;
17027  long tmp___20 ;
17028  long tmp___21 ;
17029  long tmp___22 ;
17030  long tmp___23 ;
17031  long tmp___24 ;
17032  long tmp___25 ;
17033  long tmp___26 ;
17034  unsigned long __cil_tmp36 ;
17035  unsigned long __cil_tmp37 ;
17036  __u32 __cil_tmp38 ;
17037  unsigned long __cil_tmp39 ;
17038  unsigned long __cil_tmp40 ;
17039  int __cil_tmp41 ;
17040  int __cil_tmp42 ;
17041  long __cil_tmp43 ;
17042  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp44 ;
17043  unsigned int __cil_tmp45 ;
17044  unsigned int __cil_tmp46 ;
17045  int __cil_tmp47 ;
17046  int __cil_tmp48 ;
17047  long __cil_tmp49 ;
17048  unsigned long __cil_tmp50 ;
17049  unsigned long __cil_tmp51 ;
17050  __u32 __cil_tmp52 ;
17051  unsigned long long __cil_tmp53 ;
17052  unsigned long __cil_tmp54 ;
17053  unsigned long __cil_tmp55 ;
17054  unsigned long __cil_tmp56 ;
17055  unsigned long __cil_tmp57 ;
17056  struct eventfd_ctx *__cil_tmp58 ;
17057  __u64 __cil_tmp59 ;
17058  unsigned long __cil_tmp60 ;
17059  unsigned long __cil_tmp61 ;
17060  __u32 __cil_tmp62 ;
17061  unsigned long __cil_tmp63 ;
17062  unsigned long __cil_tmp64 ;
17063  struct iovec *__cil_tmp65 ;
17064  int __cil_tmp66 ;
17065  int __cil_tmp67 ;
17066  int __cil_tmp68 ;
17067  long __cil_tmp69 ;
17068  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp70 ;
17069  unsigned int __cil_tmp71 ;
17070  unsigned int __cil_tmp72 ;
17071  int __cil_tmp73 ;
17072  int __cil_tmp74 ;
17073  long __cil_tmp75 ;
17074  unsigned long __cil_tmp76 ;
17075  unsigned long __cil_tmp77 ;
17076  unsigned long __cil_tmp78 ;
17077  unsigned long __cil_tmp79 ;
17078  struct eventfd_ctx *__cil_tmp80 ;
17079  unsigned long __cil_tmp81 ;
17080  unsigned long __cil_tmp82 ;
17081  __u32 __cil_tmp83 ;
17082  unsigned long __cil_tmp84 ;
17083  unsigned long __cil_tmp85 ;
17084  int __cil_tmp86 ;
17085  int __cil_tmp87 ;
17086  int __cil_tmp88 ;
17087  long __cil_tmp89 ;
17088  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp90 ;
17089  unsigned int __cil_tmp91 ;
17090  unsigned int __cil_tmp92 ;
17091  int __cil_tmp93 ;
17092  int __cil_tmp94 ;
17093  long __cil_tmp95 ;
17094  unsigned long __cil_tmp96 ;
17095  unsigned long __cil_tmp97 ;
17096  __u32 __cil_tmp98 ;
17097  unsigned long __cil_tmp99 ;
17098  unsigned long __cil_tmp100 ;
17099  unsigned long __cil_tmp101 ;
17100  unsigned long __cil_tmp102 ;
17101  struct eventfd_ctx *__cil_tmp103 ;
17102  unsigned int __cil_tmp104 ;
17103  unsigned int __cil_tmp105 ;
17104  long __cil_tmp106 ;
17105  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp107 ;
17106  unsigned int __cil_tmp108 ;
17107  unsigned int __cil_tmp109 ;
17108  int __cil_tmp110 ;
17109  int __cil_tmp111 ;
17110  long __cil_tmp112 ;
17111  unsigned long __cil_tmp113 ;
17112  unsigned long __cil_tmp114 ;
17113  unsigned long __cil_tmp115 ;
17114  unsigned long __cil_tmp116 ;
17115  struct eventfd_ctx *__cil_tmp117 ;
17116  unsigned char *__cil_tmp118 ;
17117  unsigned long __cil_tmp119 ;
17118  unsigned long __cil_tmp120 ;
17119  struct iovec *__cil_tmp121 ;
17120  int __cil_tmp122 ;
17121  long __cil_tmp123 ;
17122  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp124 ;
17123  unsigned int __cil_tmp125 ;
17124  unsigned int __cil_tmp126 ;
17125  int __cil_tmp127 ;
17126  int __cil_tmp128 ;
17127  long __cil_tmp129 ;
17128  unsigned long __cil_tmp130 ;
17129  unsigned long __cil_tmp131 ;
17130  __u64 __cil_tmp132 ;
17131  size_t __cil_tmp133 ;
17132  size_t __cil_tmp134 ;
17133  unsigned long __cil_tmp135 ;
17134  unsigned long __cil_tmp136 ;
17135  unsigned long __cil_tmp137 ;
17136  unsigned long __cil_tmp138 ;
17137  struct eventfd_ctx *__cil_tmp139 ;
17138  unsigned long __cil_tmp140 ;
17139  __u16 __cil_tmp141 ;
17140  int __cil_tmp142 ;
17141  int __cil_tmp143 ;
17142  int __cil_tmp144 ;
17143  int __cil_tmp145 ;
17144  long __cil_tmp146 ;
17145  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp147 ;
17146  unsigned int __cil_tmp148 ;
17147  unsigned int __cil_tmp149 ;
17148  int __cil_tmp150 ;
17149  int __cil_tmp151 ;
17150  long __cil_tmp152 ;
17151  unsigned long __cil_tmp153 ;
17152  unsigned long __cil_tmp154 ;
17153  __u64 __cil_tmp155 ;
17154  size_t __cil_tmp156 ;
17155  size_t __cil_tmp157 ;
17156  unsigned long __cil_tmp158 ;
17157  unsigned long __cil_tmp159 ;
17158  unsigned long __cil_tmp160 ;
17159  unsigned long __cil_tmp161 ;
17160  struct eventfd_ctx *__cil_tmp162 ;
17161  struct vring_desc *__cil_tmp163 ;
17162  __u64 __cil_tmp164 ;
17163  unsigned long __cil_tmp165 ;
17164  __u32 __cil_tmp166 ;
17165  struct iovec *__cil_tmp167 ;
17166  unsigned int __cil_tmp168 ;
17167  int __cil_tmp169 ;
17168  int __cil_tmp170 ;
17169  int __cil_tmp171 ;
17170  int __cil_tmp172 ;
17171  long __cil_tmp173 ;
17172  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp174 ;
17173  unsigned int __cil_tmp175 ;
17174  unsigned int __cil_tmp176 ;
17175  int __cil_tmp177 ;
17176  int __cil_tmp178 ;
17177  long __cil_tmp179 ;
17178  unsigned long __cil_tmp180 ;
17179  unsigned long __cil_tmp181 ;
17180  unsigned long __cil_tmp182 ;
17181  unsigned long __cil_tmp183 ;
17182  struct eventfd_ctx *__cil_tmp184 ;
17183  unsigned long __cil_tmp185 ;
17184  __u16 __cil_tmp186 ;
17185  int __cil_tmp187 ;
17186  unsigned int __cil_tmp188 ;
17187  unsigned int __cil_tmp189 ;
17188  int __cil_tmp190 ;
17189  int __cil_tmp191 ;
17190  long __cil_tmp192 ;
17191  unsigned int __cil_tmp193 ;
17192  struct vhost_log *__cil_tmp194 ;
17193  struct vring_desc *__cil_tmp195 ;
17194  unsigned int __cil_tmp196 ;
17195  struct vhost_log *__cil_tmp197 ;
17196  unsigned long __cil_tmp198 ;
17197  unsigned long __cil_tmp199 ;
17198  unsigned long __cil_tmp200 ;
17199  __u32 __cil_tmp201 ;
17200  unsigned int __cil_tmp202 ;
17201  unsigned int __cil_tmp203 ;
17202  int __cil_tmp204 ;
17203  int __cil_tmp205 ;
17204  long __cil_tmp206 ;
17205  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp207 ;
17206  unsigned int __cil_tmp208 ;
17207  unsigned int __cil_tmp209 ;
17208  int __cil_tmp210 ;
17209  int __cil_tmp211 ;
17210  long __cil_tmp212 ;
17211  unsigned long __cil_tmp213 ;
17212  unsigned long __cil_tmp214 ;
17213  unsigned long __cil_tmp215 ;
17214  unsigned long __cil_tmp216 ;
17215  struct eventfd_ctx *__cil_tmp217 ;
17216  unsigned int __cil_tmp218 ;
17217  unsigned int __cil_tmp219 ;
17218
17219  {
17220  {
17221#line 1117
17222  i = 0U;
17223#line 1117
17224  found = 0U;
17225#line 1121
17226  __cil_tmp36 = (unsigned long )indirect;
17227#line 1121
17228  __cil_tmp37 = __cil_tmp36 + 8;
17229#line 1121
17230  __cil_tmp38 = *((__u32 *)__cil_tmp37);
17231#line 1121
17232  __cil_tmp39 = (unsigned long )__cil_tmp38;
17233#line 1121
17234  __cil_tmp40 = __cil_tmp39 % 16UL;
17235#line 1121
17236  __cil_tmp41 = ! __cil_tmp40;
17237#line 1121
17238  __cil_tmp42 = ! __cil_tmp41;
17239#line 1121
17240  __cil_tmp43 = (long )__cil_tmp42;
17241#line 1121
17242  tmp___8 = __builtin_expect(__cil_tmp43, 0L);
17243  }
17244#line 1121
17245  if (tmp___8) {
17246    {
17247#line 1122
17248    while (1) {
17249      while_continue: /* CIL Label */ ;
17250      {
17251#line 1122
17252      while (1) {
17253        while_continue___0: /* CIL Label */ ;
17254        {
17255#line 1122
17256        __cil_tmp44 = & descriptor;
17257#line 1122
17258        __cil_tmp45 = __cil_tmp44->flags;
17259#line 1122
17260        __cil_tmp46 = __cil_tmp45 & 1U;
17261#line 1122
17262        __cil_tmp47 = ! __cil_tmp46;
17263#line 1122
17264        __cil_tmp48 = ! __cil_tmp47;
17265#line 1122
17266        __cil_tmp49 = (long )__cil_tmp48;
17267#line 1122
17268        tmp___7 = __builtin_expect(__cil_tmp49, 0L);
17269        }
17270#line 1122
17271        if (tmp___7) {
17272          {
17273#line 1122
17274          __cil_tmp50 = (unsigned long )indirect;
17275#line 1122
17276          __cil_tmp51 = __cil_tmp50 + 8;
17277#line 1122
17278          __cil_tmp52 = *((__u32 *)__cil_tmp51);
17279#line 1122
17280          __cil_tmp53 = (unsigned long long )__cil_tmp52;
17281#line 1122
17282          __dynamic_pr_debug(& descriptor, "Invalid length in indirect descriptor: len 0x%llx not multiple of 0x%zx\n",
17283                             __cil_tmp53, 16UL);
17284          }
17285        } else {
17286
17287        }
17288#line 1122
17289        goto while_break___0;
17290      }
17291      while_break___0: /* CIL Label */ ;
17292      }
17293      {
17294#line 1122
17295      __cil_tmp54 = (unsigned long )vq;
17296#line 1122
17297      __cil_tmp55 = __cil_tmp54 + 144;
17298#line 1122
17299      if (*((struct eventfd_ctx **)__cil_tmp55)) {
17300        {
17301#line 1122
17302        __cil_tmp56 = (unsigned long )vq;
17303#line 1122
17304        __cil_tmp57 = __cil_tmp56 + 144;
17305#line 1122
17306        __cil_tmp58 = *((struct eventfd_ctx **)__cil_tmp57);
17307#line 1122
17308        eventfd_signal(__cil_tmp58, 1);
17309        }
17310      } else {
17311
17312      }
17313      }
17314#line 1122
17315      goto while_break;
17316    }
17317    while_break: /* CIL Label */ ;
17318    }
17319#line 1126
17320    return (-22);
17321  } else {
17322
17323  }
17324  {
17325#line 1129
17326  __cil_tmp59 = *((__u64 *)indirect);
17327#line 1129
17328  __cil_tmp60 = (unsigned long )indirect;
17329#line 1129
17330  __cil_tmp61 = __cil_tmp60 + 8;
17331#line 1129
17332  __cil_tmp62 = *((__u32 *)__cil_tmp61);
17333#line 1129
17334  __cil_tmp63 = (unsigned long )vq;
17335#line 1129
17336  __cil_tmp64 = __cil_tmp63 + 16928;
17337#line 1129
17338  __cil_tmp65 = *((struct iovec **)__cil_tmp64);
17339#line 1129
17340  ret = translate_desc(dev, __cil_tmp59, __cil_tmp62, __cil_tmp65, 1024);
17341#line 1131
17342  __cil_tmp66 = ret < 0;
17343#line 1131
17344  __cil_tmp67 = ! __cil_tmp66;
17345#line 1131
17346  __cil_tmp68 = ! __cil_tmp67;
17347#line 1131
17348  __cil_tmp69 = (long )__cil_tmp68;
17349#line 1131
17350  tmp___10 = __builtin_expect(__cil_tmp69, 0L);
17351  }
17352#line 1131
17353  if (tmp___10) {
17354    {
17355#line 1132
17356    while (1) {
17357      while_continue___1: /* CIL Label */ ;
17358      {
17359#line 1132
17360      while (1) {
17361        while_continue___2: /* CIL Label */ ;
17362        {
17363#line 1132
17364        __cil_tmp70 = & descriptor___0;
17365#line 1132
17366        __cil_tmp71 = __cil_tmp70->flags;
17367#line 1132
17368        __cil_tmp72 = __cil_tmp71 & 1U;
17369#line 1132
17370        __cil_tmp73 = ! __cil_tmp72;
17371#line 1132
17372        __cil_tmp74 = ! __cil_tmp73;
17373#line 1132
17374        __cil_tmp75 = (long )__cil_tmp74;
17375#line 1132
17376        tmp___9 = __builtin_expect(__cil_tmp75, 0L);
17377        }
17378#line 1132
17379        if (tmp___9) {
17380          {
17381#line 1132
17382          __dynamic_pr_debug(& descriptor___0, "Translation failure %d in indirect.\n",
17383                             ret);
17384          }
17385        } else {
17386
17387        }
17388#line 1132
17389        goto while_break___2;
17390      }
17391      while_break___2: /* CIL Label */ ;
17392      }
17393      {
17394#line 1132
17395      __cil_tmp76 = (unsigned long )vq;
17396#line 1132
17397      __cil_tmp77 = __cil_tmp76 + 144;
17398#line 1132
17399      if (*((struct eventfd_ctx **)__cil_tmp77)) {
17400        {
17401#line 1132
17402        __cil_tmp78 = (unsigned long )vq;
17403#line 1132
17404        __cil_tmp79 = __cil_tmp78 + 144;
17405#line 1132
17406        __cil_tmp80 = *((struct eventfd_ctx **)__cil_tmp79);
17407#line 1132
17408        eventfd_signal(__cil_tmp80, 1);
17409        }
17410      } else {
17411
17412      }
17413      }
17414#line 1132
17415      goto while_break___1;
17416    }
17417    while_break___1: /* CIL Label */ ;
17418    }
17419#line 1133
17420    return (ret);
17421  } else {
17422
17423  }
17424  {
17425#line 1138
17426  while (1) {
17427    while_continue___3: /* CIL Label */ ;
17428#line 1138
17429    goto while_break___3;
17430  }
17431  while_break___3: /* CIL Label */ ;
17432  }
17433  {
17434#line 1140
17435  __cil_tmp81 = (unsigned long )indirect;
17436#line 1140
17437  __cil_tmp82 = __cil_tmp81 + 8;
17438#line 1140
17439  __cil_tmp83 = *((__u32 *)__cil_tmp82);
17440#line 1140
17441  __cil_tmp84 = (unsigned long )__cil_tmp83;
17442#line 1140
17443  __cil_tmp85 = __cil_tmp84 / 16UL;
17444#line 1140
17445  count = (unsigned int )__cil_tmp85;
17446#line 1143
17447  __cil_tmp86 = count > 65536U;
17448#line 1143
17449  __cil_tmp87 = ! __cil_tmp86;
17450#line 1143
17451  __cil_tmp88 = ! __cil_tmp87;
17452#line 1143
17453  __cil_tmp89 = (long )__cil_tmp88;
17454#line 1143
17455  tmp___12 = __builtin_expect(__cil_tmp89, 0L);
17456  }
17457#line 1143
17458  if (tmp___12) {
17459    {
17460#line 1144
17461    while (1) {
17462      while_continue___4: /* CIL Label */ ;
17463      {
17464#line 1144
17465      while (1) {
17466        while_continue___5: /* CIL Label */ ;
17467        {
17468#line 1144
17469        __cil_tmp90 = & descriptor___1;
17470#line 1144
17471        __cil_tmp91 = __cil_tmp90->flags;
17472#line 1144
17473        __cil_tmp92 = __cil_tmp91 & 1U;
17474#line 1144
17475        __cil_tmp93 = ! __cil_tmp92;
17476#line 1144
17477        __cil_tmp94 = ! __cil_tmp93;
17478#line 1144
17479        __cil_tmp95 = (long )__cil_tmp94;
17480#line 1144
17481        tmp___11 = __builtin_expect(__cil_tmp95, 0L);
17482        }
17483#line 1144
17484        if (tmp___11) {
17485          {
17486#line 1144
17487          __cil_tmp96 = (unsigned long )indirect;
17488#line 1144
17489          __cil_tmp97 = __cil_tmp96 + 8;
17490#line 1144
17491          __cil_tmp98 = *((__u32 *)__cil_tmp97);
17492#line 1144
17493          __dynamic_pr_debug(& descriptor___1, "Indirect buffer length too big: %d\n",
17494                             __cil_tmp98);
17495          }
17496        } else {
17497
17498        }
17499#line 1144
17500        goto while_break___5;
17501      }
17502      while_break___5: /* CIL Label */ ;
17503      }
17504      {
17505#line 1144
17506      __cil_tmp99 = (unsigned long )vq;
17507#line 1144
17508      __cil_tmp100 = __cil_tmp99 + 144;
17509#line 1144
17510      if (*((struct eventfd_ctx **)__cil_tmp100)) {
17511        {
17512#line 1144
17513        __cil_tmp101 = (unsigned long )vq;
17514#line 1144
17515        __cil_tmp102 = __cil_tmp101 + 144;
17516#line 1144
17517        __cil_tmp103 = *((struct eventfd_ctx **)__cil_tmp102);
17518#line 1144
17519        eventfd_signal(__cil_tmp103, 1);
17520        }
17521      } else {
17522
17523      }
17524      }
17525#line 1144
17526      goto while_break___4;
17527    }
17528    while_break___4: /* CIL Label */ ;
17529    }
17530#line 1146
17531    return (-7);
17532  } else {
17533
17534  }
17535  {
17536#line 1149
17537  while (1) {
17538    while_continue___6: /* CIL Label */ ;
17539#line 1150
17540    __cil_tmp104 = *out_num;
17541#line 1150
17542    __cil_tmp105 = *in_num;
17543#line 1150
17544    iov_count = __cil_tmp105 + __cil_tmp104;
17545#line 1151
17546    found = found + 1U;
17547#line 1151
17548    if (found > count) {
17549#line 1151
17550      tmp___14 = 1;
17551    } else {
17552#line 1151
17553      tmp___14 = 0;
17554    }
17555    {
17556#line 1151
17557    __cil_tmp106 = (long )tmp___14;
17558#line 1151
17559    tmp___15 = __builtin_expect(__cil_tmp106, 0L);
17560    }
17561#line 1151
17562    if (tmp___15) {
17563      {
17564#line 1152
17565      while (1) {
17566        while_continue___7: /* CIL Label */ ;
17567        {
17568#line 1152
17569        while (1) {
17570          while_continue___8: /* CIL Label */ ;
17571          {
17572#line 1152
17573          __cil_tmp107 = & descriptor___2;
17574#line 1152
17575          __cil_tmp108 = __cil_tmp107->flags;
17576#line 1152
17577          __cil_tmp109 = __cil_tmp108 & 1U;
17578#line 1152
17579          __cil_tmp110 = ! __cil_tmp109;
17580#line 1152
17581          __cil_tmp111 = ! __cil_tmp110;
17582#line 1152
17583          __cil_tmp112 = (long )__cil_tmp111;
17584#line 1152
17585          tmp___13 = __builtin_expect(__cil_tmp112, 0L);
17586          }
17587#line 1152
17588          if (tmp___13) {
17589            {
17590#line 1152
17591            __dynamic_pr_debug(& descriptor___2, "Loop detected: last one at %u indirect size %u\n",
17592                               i, count);
17593            }
17594          } else {
17595
17596          }
17597#line 1152
17598          goto while_break___8;
17599        }
17600        while_break___8: /* CIL Label */ ;
17601        }
17602        {
17603#line 1152
17604        __cil_tmp113 = (unsigned long )vq;
17605#line 1152
17606        __cil_tmp114 = __cil_tmp113 + 144;
17607#line 1152
17608        if (*((struct eventfd_ctx **)__cil_tmp114)) {
17609          {
17610#line 1152
17611          __cil_tmp115 = (unsigned long )vq;
17612#line 1152
17613          __cil_tmp116 = __cil_tmp115 + 144;
17614#line 1152
17615          __cil_tmp117 = *((struct eventfd_ctx **)__cil_tmp116);
17616#line 1152
17617          eventfd_signal(__cil_tmp117, 1);
17618          }
17619        } else {
17620
17621        }
17622        }
17623#line 1152
17624        goto while_break___7;
17625      }
17626      while_break___7: /* CIL Label */ ;
17627      }
17628#line 1155
17629      return (-22);
17630    } else {
17631
17632    }
17633    {
17634#line 1157
17635    __cil_tmp118 = (unsigned char *)(& desc);
17636#line 1157
17637    __cil_tmp119 = (unsigned long )vq;
17638#line 1157
17639    __cil_tmp120 = __cil_tmp119 + 16928;
17640#line 1157
17641    __cil_tmp121 = *((struct iovec **)__cil_tmp120);
17642#line 1157
17643    __cil_tmp122 = (int )16UL;
17644#line 1157
17645    tmp___17 = memcpy_fromiovec(__cil_tmp118, __cil_tmp121, __cil_tmp122);
17646    }
17647#line 1157
17648    if (tmp___17) {
17649#line 1157
17650      tmp___18 = 1;
17651    } else {
17652#line 1157
17653      tmp___18 = 0;
17654    }
17655    {
17656#line 1157
17657    __cil_tmp123 = (long )tmp___18;
17658#line 1157
17659    tmp___19 = __builtin_expect(__cil_tmp123, 0L);
17660    }
17661#line 1157
17662    if (tmp___19) {
17663      {
17664#line 1159
17665      while (1) {
17666        while_continue___9: /* CIL Label */ ;
17667        {
17668#line 1159
17669        while (1) {
17670          while_continue___10: /* CIL Label */ ;
17671          {
17672#line 1159
17673          __cil_tmp124 = & descriptor___3;
17674#line 1159
17675          __cil_tmp125 = __cil_tmp124->flags;
17676#line 1159
17677          __cil_tmp126 = __cil_tmp125 & 1U;
17678#line 1159
17679          __cil_tmp127 = ! __cil_tmp126;
17680#line 1159
17681          __cil_tmp128 = ! __cil_tmp127;
17682#line 1159
17683          __cil_tmp129 = (long )__cil_tmp128;
17684#line 1159
17685          tmp___16 = __builtin_expect(__cil_tmp129, 0L);
17686          }
17687#line 1159
17688          if (tmp___16) {
17689            {
17690#line 1159
17691            __cil_tmp130 = (unsigned long )i;
17692#line 1159
17693            __cil_tmp131 = __cil_tmp130 * 16UL;
17694#line 1159
17695            __cil_tmp132 = *((__u64 *)indirect);
17696#line 1159
17697            __cil_tmp133 = (size_t )__cil_tmp132;
17698#line 1159
17699            __cil_tmp134 = __cil_tmp133 + __cil_tmp131;
17700#line 1159
17701            __dynamic_pr_debug(& descriptor___3, "Failed indirect descriptor: idx %d, %zx\n",
17702                               i, __cil_tmp134);
17703            }
17704          } else {
17705
17706          }
17707#line 1159
17708          goto while_break___10;
17709        }
17710        while_break___10: /* CIL Label */ ;
17711        }
17712        {
17713#line 1159
17714        __cil_tmp135 = (unsigned long )vq;
17715#line 1159
17716        __cil_tmp136 = __cil_tmp135 + 144;
17717#line 1159
17718        if (*((struct eventfd_ctx **)__cil_tmp136)) {
17719          {
17720#line 1159
17721          __cil_tmp137 = (unsigned long )vq;
17722#line 1159
17723          __cil_tmp138 = __cil_tmp137 + 144;
17724#line 1159
17725          __cil_tmp139 = *((struct eventfd_ctx **)__cil_tmp138);
17726#line 1159
17727          eventfd_signal(__cil_tmp139, 1);
17728          }
17729        } else {
17730
17731        }
17732        }
17733#line 1159
17734        goto while_break___9;
17735      }
17736      while_break___9: /* CIL Label */ ;
17737      }
17738#line 1161
17739      return (-22);
17740    } else {
17741
17742    }
17743    {
17744#line 1163
17745    __cil_tmp140 = (unsigned long )(& desc) + 12;
17746#line 1163
17747    __cil_tmp141 = *((__u16 *)__cil_tmp140);
17748#line 1163
17749    __cil_tmp142 = (int )__cil_tmp141;
17750#line 1163
17751    __cil_tmp143 = __cil_tmp142 & 4;
17752#line 1163
17753    __cil_tmp144 = ! __cil_tmp143;
17754#line 1163
17755    __cil_tmp145 = ! __cil_tmp144;
17756#line 1163
17757    __cil_tmp146 = (long )__cil_tmp145;
17758#line 1163
17759    tmp___21 = __builtin_expect(__cil_tmp146, 0L);
17760    }
17761#line 1163
17762    if (tmp___21) {
17763      {
17764#line 1164
17765      while (1) {
17766        while_continue___11: /* CIL Label */ ;
17767        {
17768#line 1164
17769        while (1) {
17770          while_continue___12: /* CIL Label */ ;
17771          {
17772#line 1164
17773          __cil_tmp147 = & descriptor___4;
17774#line 1164
17775          __cil_tmp148 = __cil_tmp147->flags;
17776#line 1164
17777          __cil_tmp149 = __cil_tmp148 & 1U;
17778#line 1164
17779          __cil_tmp150 = ! __cil_tmp149;
17780#line 1164
17781          __cil_tmp151 = ! __cil_tmp150;
17782#line 1164
17783          __cil_tmp152 = (long )__cil_tmp151;
17784#line 1164
17785          tmp___20 = __builtin_expect(__cil_tmp152, 0L);
17786          }
17787#line 1164
17788          if (tmp___20) {
17789            {
17790#line 1164
17791            __cil_tmp153 = (unsigned long )i;
17792#line 1164
17793            __cil_tmp154 = __cil_tmp153 * 16UL;
17794#line 1164
17795            __cil_tmp155 = *((__u64 *)indirect);
17796#line 1164
17797            __cil_tmp156 = (size_t )__cil_tmp155;
17798#line 1164
17799            __cil_tmp157 = __cil_tmp156 + __cil_tmp154;
17800#line 1164
17801            __dynamic_pr_debug(& descriptor___4, "Nested indirect descriptor: idx %d, %zx\n",
17802                               i, __cil_tmp157);
17803            }
17804          } else {
17805
17806          }
17807#line 1164
17808          goto while_break___12;
17809        }
17810        while_break___12: /* CIL Label */ ;
17811        }
17812        {
17813#line 1164
17814        __cil_tmp158 = (unsigned long )vq;
17815#line 1164
17816        __cil_tmp159 = __cil_tmp158 + 144;
17817#line 1164
17818        if (*((struct eventfd_ctx **)__cil_tmp159)) {
17819          {
17820#line 1164
17821          __cil_tmp160 = (unsigned long )vq;
17822#line 1164
17823          __cil_tmp161 = __cil_tmp160 + 144;
17824#line 1164
17825          __cil_tmp162 = *((struct eventfd_ctx **)__cil_tmp161);
17826#line 1164
17827          eventfd_signal(__cil_tmp162, 1);
17828          }
17829        } else {
17830
17831        }
17832        }
17833#line 1164
17834        goto while_break___11;
17835      }
17836      while_break___11: /* CIL Label */ ;
17837      }
17838#line 1166
17839      return (-22);
17840    } else {
17841
17842    }
17843    {
17844#line 1169
17845    __cil_tmp163 = & desc;
17846#line 1169
17847    __cil_tmp164 = *((__u64 *)__cil_tmp163);
17848#line 1169
17849    __cil_tmp165 = (unsigned long )(& desc) + 8;
17850#line 1169
17851    __cil_tmp166 = *((__u32 *)__cil_tmp165);
17852#line 1169
17853    __cil_tmp167 = iov + iov_count;
17854#line 1169
17855    __cil_tmp168 = iov_size - iov_count;
17856#line 1169
17857    __cil_tmp169 = (int )__cil_tmp168;
17858#line 1169
17859    ret = translate_desc(dev, __cil_tmp164, __cil_tmp166, __cil_tmp167, __cil_tmp169);
17860#line 1171
17861    __cil_tmp170 = ret < 0;
17862#line 1171
17863    __cil_tmp171 = ! __cil_tmp170;
17864#line 1171
17865    __cil_tmp172 = ! __cil_tmp171;
17866#line 1171
17867    __cil_tmp173 = (long )__cil_tmp172;
17868#line 1171
17869    tmp___23 = __builtin_expect(__cil_tmp173, 0L);
17870    }
17871#line 1171
17872    if (tmp___23) {
17873      {
17874#line 1172
17875      while (1) {
17876        while_continue___13: /* CIL Label */ ;
17877        {
17878#line 1172
17879        while (1) {
17880          while_continue___14: /* CIL Label */ ;
17881          {
17882#line 1172
17883          __cil_tmp174 = & descriptor___5;
17884#line 1172
17885          __cil_tmp175 = __cil_tmp174->flags;
17886#line 1172
17887          __cil_tmp176 = __cil_tmp175 & 1U;
17888#line 1172
17889          __cil_tmp177 = ! __cil_tmp176;
17890#line 1172
17891          __cil_tmp178 = ! __cil_tmp177;
17892#line 1172
17893          __cil_tmp179 = (long )__cil_tmp178;
17894#line 1172
17895          tmp___22 = __builtin_expect(__cil_tmp179, 0L);
17896          }
17897#line 1172
17898          if (tmp___22) {
17899            {
17900#line 1172
17901            __dynamic_pr_debug(& descriptor___5, "Translation failure %d indirect idx %d\n",
17902                               ret, i);
17903            }
17904          } else {
17905
17906          }
17907#line 1172
17908          goto while_break___14;
17909        }
17910        while_break___14: /* CIL Label */ ;
17911        }
17912        {
17913#line 1172
17914        __cil_tmp180 = (unsigned long )vq;
17915#line 1172
17916        __cil_tmp181 = __cil_tmp180 + 144;
17917#line 1172
17918        if (*((struct eventfd_ctx **)__cil_tmp181)) {
17919          {
17920#line 1172
17921          __cil_tmp182 = (unsigned long )vq;
17922#line 1172
17923          __cil_tmp183 = __cil_tmp182 + 144;
17924#line 1172
17925          __cil_tmp184 = *((struct eventfd_ctx **)__cil_tmp183);
17926#line 1172
17927          eventfd_signal(__cil_tmp184, 1);
17928          }
17929        } else {
17930
17931        }
17932        }
17933#line 1172
17934        goto while_break___13;
17935      }
17936      while_break___13: /* CIL Label */ ;
17937      }
17938#line 1174
17939      return (ret);
17940    } else {
17941
17942    }
17943    {
17944#line 1177
17945    __cil_tmp185 = (unsigned long )(& desc) + 12;
17946#line 1177
17947    __cil_tmp186 = *((__u16 *)__cil_tmp185);
17948#line 1177
17949    __cil_tmp187 = (int )__cil_tmp186;
17950#line 1177
17951    if (__cil_tmp187 & 2) {
17952      {
17953#line 1178
17954      __cil_tmp188 = (unsigned int )ret;
17955#line 1178
17956      __cil_tmp189 = *in_num;
17957#line 1178
17958      *in_num = __cil_tmp189 + __cil_tmp188;
17959#line 1179
17960      __cil_tmp190 = ! log;
17961#line 1179
17962      __cil_tmp191 = ! __cil_tmp190;
17963#line 1179
17964      __cil_tmp192 = (long )__cil_tmp191;
17965#line 1179
17966      tmp___24 = __builtin_expect(__cil_tmp192, 0L);
17967      }
17968#line 1179
17969      if (tmp___24) {
17970#line 1180
17971        __cil_tmp193 = *log_num;
17972#line 1180
17973        __cil_tmp194 = log + __cil_tmp193;
17974#line 1180
17975        __cil_tmp195 = & desc;
17976#line 1180
17977        *((u64 *)__cil_tmp194) = *((__u64 *)__cil_tmp195);
17978#line 1181
17979        __cil_tmp196 = *log_num;
17980#line 1181
17981        __cil_tmp197 = log + __cil_tmp196;
17982#line 1181
17983        __cil_tmp198 = (unsigned long )__cil_tmp197;
17984#line 1181
17985        __cil_tmp199 = __cil_tmp198 + 8;
17986#line 1181
17987        __cil_tmp200 = (unsigned long )(& desc) + 8;
17988#line 1181
17989        __cil_tmp201 = *((__u32 *)__cil_tmp200);
17990#line 1181
17991        *((u64 *)__cil_tmp199) = (u64 )__cil_tmp201;
17992#line 1182
17993        __cil_tmp202 = *log_num;
17994#line 1182
17995        *log_num = __cil_tmp202 + 1U;
17996      } else {
17997
17998      }
17999    } else {
18000      {
18001#line 1187
18002      __cil_tmp203 = *in_num;
18003#line 1187
18004      __cil_tmp204 = ! __cil_tmp203;
18005#line 1187
18006      __cil_tmp205 = ! __cil_tmp204;
18007#line 1187
18008      __cil_tmp206 = (long )__cil_tmp205;
18009#line 1187
18010      tmp___26 = __builtin_expect(__cil_tmp206, 0L);
18011      }
18012#line 1187
18013      if (tmp___26) {
18014        {
18015#line 1188
18016        while (1) {
18017          while_continue___15: /* CIL Label */ ;
18018          {
18019#line 1188
18020          while (1) {
18021            while_continue___16: /* CIL Label */ ;
18022            {
18023#line 1188
18024            __cil_tmp207 = & descriptor___6;
18025#line 1188
18026            __cil_tmp208 = __cil_tmp207->flags;
18027#line 1188
18028            __cil_tmp209 = __cil_tmp208 & 1U;
18029#line 1188
18030            __cil_tmp210 = ! __cil_tmp209;
18031#line 1188
18032            __cil_tmp211 = ! __cil_tmp210;
18033#line 1188
18034            __cil_tmp212 = (long )__cil_tmp211;
18035#line 1188
18036            tmp___25 = __builtin_expect(__cil_tmp212, 0L);
18037            }
18038#line 1188
18039            if (tmp___25) {
18040              {
18041#line 1188
18042              __dynamic_pr_debug(& descriptor___6, "Indirect descriptor has out after in: idx %d\n",
18043                                 i);
18044              }
18045            } else {
18046
18047            }
18048#line 1188
18049            goto while_break___16;
18050          }
18051          while_break___16: /* CIL Label */ ;
18052          }
18053          {
18054#line 1188
18055          __cil_tmp213 = (unsigned long )vq;
18056#line 1188
18057          __cil_tmp214 = __cil_tmp213 + 144;
18058#line 1188
18059          if (*((struct eventfd_ctx **)__cil_tmp214)) {
18060            {
18061#line 1188
18062            __cil_tmp215 = (unsigned long )vq;
18063#line 1188
18064            __cil_tmp216 = __cil_tmp215 + 144;
18065#line 1188
18066            __cil_tmp217 = *((struct eventfd_ctx **)__cil_tmp216);
18067#line 1188
18068            eventfd_signal(__cil_tmp217, 1);
18069            }
18070          } else {
18071
18072          }
18073          }
18074#line 1188
18075          goto while_break___15;
18076        }
18077        while_break___15: /* CIL Label */ ;
18078        }
18079#line 1190
18080        return (-22);
18081      } else {
18082
18083      }
18084#line 1192
18085      __cil_tmp218 = (unsigned int )ret;
18086#line 1192
18087      __cil_tmp219 = *out_num;
18088#line 1192
18089      *out_num = __cil_tmp219 + __cil_tmp218;
18090    }
18091    }
18092    {
18093#line 1149
18094    i = next_desc(& desc);
18095    }
18096#line 1149
18097    if (i != 4294967295U) {
18098
18099    } else {
18100#line 1149
18101      goto while_break___6;
18102    }
18103  }
18104  while_break___6: /* CIL Label */ ;
18105  }
18106#line 1195
18107  return (0);
18108}
18109}
18110#line 1219 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
18111static struct _ddebug  __attribute__((__aligned__(8))) descriptor___7  __attribute__((__used__,
18112__section__("__verbose")))  =    {"vhost_net", "vhost_get_vq_desc", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
18113    "Failed to access avail idx at %p\n", 1220U, 0U};
18114#line 1225 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
18115static struct _ddebug  __attribute__((__aligned__(8))) descriptor___8  __attribute__((__used__,
18116__section__("__verbose")))  =    {"vhost_net", "vhost_get_vq_desc", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
18117    "Guest moved used index from %u to %u", 1226U, 0U};
18118#line 1241 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
18119static struct _ddebug  __attribute__((__aligned__(8))) descriptor___9  __attribute__((__used__,
18120__section__("__verbose")))  =    {"vhost_net", "vhost_get_vq_desc", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
18121    "Failed to read head: idx %d address %p\n", 1243U, 0U};
18122#line 1249 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
18123static struct _ddebug  __attribute__((__aligned__(8))) descriptor___10  __attribute__((__used__,
18124__section__("__verbose")))  =    {"vhost_net", "vhost_get_vq_desc", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
18125    "Guest says index %u > %u is available", 1250U, 0U};
18126#line 1263 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
18127static struct _ddebug  __attribute__((__aligned__(8))) descriptor___11  __attribute__((__used__,
18128__section__("__verbose")))  =    {"vhost_net", "vhost_get_vq_desc", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
18129    "Desc index is %u > %u, head = %u", 1264U, 0U};
18130#line 1268 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
18131static struct _ddebug  __attribute__((__aligned__(8))) descriptor___12  __attribute__((__used__,
18132__section__("__verbose")))  =    {"vhost_net", "vhost_get_vq_desc", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
18133    "Loop detected: last one at %u vq size %u head %u\n", 1270U, 0U};
18134#line 1275 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
18135static struct _ddebug  __attribute__((__aligned__(8))) descriptor___13  __attribute__((__used__,
18136__section__("__verbose")))  =    {"vhost_net", "vhost_get_vq_desc", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
18137    "Failed to get descriptor: idx %d addr %p\n", 1276U, 0U};
18138#line 1284 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
18139static struct _ddebug  __attribute__((__aligned__(8))) descriptor___14  __attribute__((__used__,
18140__section__("__verbose")))  =    {"vhost_net", "vhost_get_vq_desc", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
18141    "Failure detected in indirect descriptor at idx %d\n", 1285U, 0U};
18142#line 1294 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
18143static struct _ddebug  __attribute__((__aligned__(8))) descriptor___15  __attribute__((__used__,
18144__section__("__verbose")))  =    {"vhost_net", "vhost_get_vq_desc", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
18145    "Translation failure %d descriptor idx %d\n", 1295U, 0U};
18146#line 1311 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
18147static struct _ddebug  __attribute__((__aligned__(8))) descriptor___16  __attribute__((__used__,
18148__section__("__verbose")))  =    {"vhost_net", "vhost_get_vq_desc", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
18149    "Descriptor has out after in: idx %d\n", 1312U, 0U};
18150#line 1206 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
18151int vhost_get_vq_desc(struct vhost_dev *dev , struct vhost_virtqueue *vq , struct iovec *iov ,
18152                      unsigned int iov_size , unsigned int *out_num , unsigned int *in_num ,
18153                      struct vhost_log *log , unsigned int *log_num ) 
18154{ struct vring_desc desc ;
18155  unsigned int i ;
18156  unsigned int head ;
18157  unsigned int found ;
18158  u16 last_avail_idx ;
18159  int ret ;
18160  long tmp___7 ;
18161  int __gu_err ;
18162  unsigned long __gu_val ;
18163  int tmp___8 ;
18164  int tmp___9 ;
18165  long tmp___10 ;
18166  long tmp___11 ;
18167  long tmp___12 ;
18168  long tmp___13 ;
18169  int __gu_err___0 ;
18170  unsigned long __gu_val___0 ;
18171  int tmp___14 ;
18172  int tmp___15 ;
18173  long tmp___16 ;
18174  long tmp___17 ;
18175  long tmp___18 ;
18176  unsigned int tmp___19 ;
18177  long tmp___20 ;
18178  unsigned int iov_count ;
18179  long tmp___21 ;
18180  long tmp___22 ;
18181  long tmp___23 ;
18182  int tmp___24 ;
18183  long tmp___25 ;
18184  long tmp___26 ;
18185  long tmp___27 ;
18186  long tmp___28 ;
18187  long tmp___29 ;
18188  long tmp___30 ;
18189  long tmp___31 ;
18190  long tmp___32 ;
18191  long tmp___33 ;
18192  long tmp___34 ;
18193  long tmp___35 ;
18194  unsigned long __cil_tmp49 ;
18195  unsigned long __cil_tmp50 ;
18196  unsigned long __cil_tmp51 ;
18197  unsigned long __cil_tmp52 ;
18198  struct vring_avail *__cil_tmp53 ;
18199  unsigned long __cil_tmp54 ;
18200  unsigned long __cil_tmp55 ;
18201  __u16 *__cil_tmp56 ;
18202  struct __large_struct *__cil_tmp57 ;
18203  unsigned long __cil_tmp58 ;
18204  unsigned long __cil_tmp59 ;
18205  struct vring_avail *__cil_tmp60 ;
18206  unsigned long __cil_tmp61 ;
18207  unsigned long __cil_tmp62 ;
18208  __u16 *__cil_tmp63 ;
18209  struct __large_struct *__cil_tmp64 ;
18210  unsigned long __cil_tmp65 ;
18211  unsigned long __cil_tmp66 ;
18212  struct vring_avail *__cil_tmp67 ;
18213  unsigned long __cil_tmp68 ;
18214  unsigned long __cil_tmp69 ;
18215  __u16 *__cil_tmp70 ;
18216  struct __large_struct *__cil_tmp71 ;
18217  unsigned long __cil_tmp72 ;
18218  unsigned long __cil_tmp73 ;
18219  struct vring_avail *__cil_tmp74 ;
18220  unsigned long __cil_tmp75 ;
18221  unsigned long __cil_tmp76 ;
18222  __u16 *__cil_tmp77 ;
18223  struct __large_struct *__cil_tmp78 ;
18224  unsigned long __cil_tmp79 ;
18225  unsigned long __cil_tmp80 ;
18226  long __cil_tmp81 ;
18227  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp82 ;
18228  unsigned int __cil_tmp83 ;
18229  unsigned int __cil_tmp84 ;
18230  int __cil_tmp85 ;
18231  int __cil_tmp86 ;
18232  long __cil_tmp87 ;
18233  unsigned long __cil_tmp88 ;
18234  unsigned long __cil_tmp89 ;
18235  struct vring_avail *__cil_tmp90 ;
18236  unsigned long __cil_tmp91 ;
18237  unsigned long __cil_tmp92 ;
18238  __u16 *__cil_tmp93 ;
18239  unsigned long __cil_tmp94 ;
18240  unsigned long __cil_tmp95 ;
18241  unsigned long __cil_tmp96 ;
18242  unsigned long __cil_tmp97 ;
18243  struct eventfd_ctx *__cil_tmp98 ;
18244  unsigned long __cil_tmp99 ;
18245  unsigned long __cil_tmp100 ;
18246  unsigned int __cil_tmp101 ;
18247  int __cil_tmp102 ;
18248  unsigned long __cil_tmp103 ;
18249  unsigned long __cil_tmp104 ;
18250  u16 __cil_tmp105 ;
18251  int __cil_tmp106 ;
18252  int __cil_tmp107 ;
18253  u16 __cil_tmp108 ;
18254  unsigned int __cil_tmp109 ;
18255  int __cil_tmp110 ;
18256  int __cil_tmp111 ;
18257  int __cil_tmp112 ;
18258  long __cil_tmp113 ;
18259  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp114 ;
18260  unsigned int __cil_tmp115 ;
18261  unsigned int __cil_tmp116 ;
18262  int __cil_tmp117 ;
18263  int __cil_tmp118 ;
18264  long __cil_tmp119 ;
18265  int __cil_tmp120 ;
18266  unsigned long __cil_tmp121 ;
18267  unsigned long __cil_tmp122 ;
18268  u16 __cil_tmp123 ;
18269  int __cil_tmp124 ;
18270  unsigned long __cil_tmp125 ;
18271  unsigned long __cil_tmp126 ;
18272  unsigned long __cil_tmp127 ;
18273  unsigned long __cil_tmp128 ;
18274  struct eventfd_ctx *__cil_tmp129 ;
18275  int __cil_tmp130 ;
18276  unsigned long __cil_tmp131 ;
18277  unsigned long __cil_tmp132 ;
18278  u16 __cil_tmp133 ;
18279  int __cil_tmp134 ;
18280  unsigned long __cil_tmp135 ;
18281  unsigned long __cil_tmp136 ;
18282  unsigned int __cil_tmp137 ;
18283  unsigned long __cil_tmp138 ;
18284  unsigned long __cil_tmp139 ;
18285  unsigned int __cil_tmp140 ;
18286  unsigned int __cil_tmp141 ;
18287  unsigned int __cil_tmp142 ;
18288  unsigned long __cil_tmp143 ;
18289  unsigned long __cil_tmp144 ;
18290  unsigned long __cil_tmp145 ;
18291  unsigned long __cil_tmp146 ;
18292  struct vring_avail *__cil_tmp147 ;
18293  unsigned long __cil_tmp148 ;
18294  unsigned long __cil_tmp149 ;
18295  __u16 *__cil_tmp150 ;
18296  struct __large_struct *__cil_tmp151 ;
18297  unsigned long __cil_tmp152 ;
18298  unsigned long __cil_tmp153 ;
18299  unsigned int __cil_tmp154 ;
18300  unsigned int __cil_tmp155 ;
18301  unsigned int __cil_tmp156 ;
18302  unsigned long __cil_tmp157 ;
18303  unsigned long __cil_tmp158 ;
18304  unsigned long __cil_tmp159 ;
18305  unsigned long __cil_tmp160 ;
18306  struct vring_avail *__cil_tmp161 ;
18307  unsigned long __cil_tmp162 ;
18308  unsigned long __cil_tmp163 ;
18309  __u16 *__cil_tmp164 ;
18310  struct __large_struct *__cil_tmp165 ;
18311  unsigned long __cil_tmp166 ;
18312  unsigned long __cil_tmp167 ;
18313  unsigned int __cil_tmp168 ;
18314  unsigned int __cil_tmp169 ;
18315  unsigned int __cil_tmp170 ;
18316  unsigned long __cil_tmp171 ;
18317  unsigned long __cil_tmp172 ;
18318  unsigned long __cil_tmp173 ;
18319  unsigned long __cil_tmp174 ;
18320  struct vring_avail *__cil_tmp175 ;
18321  unsigned long __cil_tmp176 ;
18322  unsigned long __cil_tmp177 ;
18323  __u16 *__cil_tmp178 ;
18324  struct __large_struct *__cil_tmp179 ;
18325  unsigned long __cil_tmp180 ;
18326  unsigned long __cil_tmp181 ;
18327  unsigned int __cil_tmp182 ;
18328  unsigned int __cil_tmp183 ;
18329  unsigned int __cil_tmp184 ;
18330  unsigned long __cil_tmp185 ;
18331  unsigned long __cil_tmp186 ;
18332  unsigned long __cil_tmp187 ;
18333  unsigned long __cil_tmp188 ;
18334  struct vring_avail *__cil_tmp189 ;
18335  unsigned long __cil_tmp190 ;
18336  unsigned long __cil_tmp191 ;
18337  __u16 *__cil_tmp192 ;
18338  struct __large_struct *__cil_tmp193 ;
18339  __u16 __cil_tmp194 ;
18340  long __cil_tmp195 ;
18341  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp196 ;
18342  unsigned int __cil_tmp197 ;
18343  unsigned int __cil_tmp198 ;
18344  int __cil_tmp199 ;
18345  int __cil_tmp200 ;
18346  long __cil_tmp201 ;
18347  int __cil_tmp202 ;
18348  unsigned long __cil_tmp203 ;
18349  unsigned long __cil_tmp204 ;
18350  unsigned int __cil_tmp205 ;
18351  unsigned int __cil_tmp206 ;
18352  unsigned int __cil_tmp207 ;
18353  unsigned long __cil_tmp208 ;
18354  unsigned long __cil_tmp209 ;
18355  unsigned long __cil_tmp210 ;
18356  unsigned long __cil_tmp211 ;
18357  struct vring_avail *__cil_tmp212 ;
18358  unsigned long __cil_tmp213 ;
18359  unsigned long __cil_tmp214 ;
18360  __u16 *__cil_tmp215 ;
18361  unsigned long __cil_tmp216 ;
18362  unsigned long __cil_tmp217 ;
18363  unsigned long __cil_tmp218 ;
18364  unsigned long __cil_tmp219 ;
18365  struct eventfd_ctx *__cil_tmp220 ;
18366  unsigned long __cil_tmp221 ;
18367  unsigned long __cil_tmp222 ;
18368  unsigned int __cil_tmp223 ;
18369  int __cil_tmp224 ;
18370  int __cil_tmp225 ;
18371  int __cil_tmp226 ;
18372  long __cil_tmp227 ;
18373  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp228 ;
18374  unsigned int __cil_tmp229 ;
18375  unsigned int __cil_tmp230 ;
18376  int __cil_tmp231 ;
18377  int __cil_tmp232 ;
18378  long __cil_tmp233 ;
18379  unsigned long __cil_tmp234 ;
18380  unsigned long __cil_tmp235 ;
18381  unsigned int __cil_tmp236 ;
18382  unsigned long __cil_tmp237 ;
18383  unsigned long __cil_tmp238 ;
18384  unsigned long __cil_tmp239 ;
18385  unsigned long __cil_tmp240 ;
18386  struct eventfd_ctx *__cil_tmp241 ;
18387  int __cil_tmp242 ;
18388  int __cil_tmp243 ;
18389  long __cil_tmp244 ;
18390  unsigned int __cil_tmp245 ;
18391  unsigned int __cil_tmp246 ;
18392  unsigned long __cil_tmp247 ;
18393  unsigned long __cil_tmp248 ;
18394  unsigned int __cil_tmp249 ;
18395  int __cil_tmp250 ;
18396  int __cil_tmp251 ;
18397  int __cil_tmp252 ;
18398  long __cil_tmp253 ;
18399  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp254 ;
18400  unsigned int __cil_tmp255 ;
18401  unsigned int __cil_tmp256 ;
18402  int __cil_tmp257 ;
18403  int __cil_tmp258 ;
18404  long __cil_tmp259 ;
18405  unsigned long __cil_tmp260 ;
18406  unsigned long __cil_tmp261 ;
18407  unsigned int __cil_tmp262 ;
18408  unsigned long __cil_tmp263 ;
18409  unsigned long __cil_tmp264 ;
18410  unsigned long __cil_tmp265 ;
18411  unsigned long __cil_tmp266 ;
18412  struct eventfd_ctx *__cil_tmp267 ;
18413  unsigned long __cil_tmp268 ;
18414  unsigned long __cil_tmp269 ;
18415  unsigned int __cil_tmp270 ;
18416  long __cil_tmp271 ;
18417  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp272 ;
18418  unsigned int __cil_tmp273 ;
18419  unsigned int __cil_tmp274 ;
18420  int __cil_tmp275 ;
18421  int __cil_tmp276 ;
18422  long __cil_tmp277 ;
18423  unsigned long __cil_tmp278 ;
18424  unsigned long __cil_tmp279 ;
18425  unsigned int __cil_tmp280 ;
18426  unsigned long __cil_tmp281 ;
18427  unsigned long __cil_tmp282 ;
18428  unsigned long __cil_tmp283 ;
18429  unsigned long __cil_tmp284 ;
18430  struct eventfd_ctx *__cil_tmp285 ;
18431  void *__cil_tmp286 ;
18432  unsigned long __cil_tmp287 ;
18433  unsigned long __cil_tmp288 ;
18434  struct vring_desc *__cil_tmp289 ;
18435  struct vring_desc *__cil_tmp290 ;
18436  void    *__cil_tmp291 ;
18437  unsigned int __cil_tmp292 ;
18438  int __cil_tmp293 ;
18439  int __cil_tmp294 ;
18440  long __cil_tmp295 ;
18441  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp296 ;
18442  unsigned int __cil_tmp297 ;
18443  unsigned int __cil_tmp298 ;
18444  int __cil_tmp299 ;
18445  int __cil_tmp300 ;
18446  long __cil_tmp301 ;
18447  unsigned long __cil_tmp302 ;
18448  unsigned long __cil_tmp303 ;
18449  struct vring_desc *__cil_tmp304 ;
18450  struct vring_desc *__cil_tmp305 ;
18451  unsigned long __cil_tmp306 ;
18452  unsigned long __cil_tmp307 ;
18453  unsigned long __cil_tmp308 ;
18454  unsigned long __cil_tmp309 ;
18455  struct eventfd_ctx *__cil_tmp310 ;
18456  unsigned long __cil_tmp311 ;
18457  __u16 __cil_tmp312 ;
18458  int __cil_tmp313 ;
18459  int __cil_tmp314 ;
18460  int __cil_tmp315 ;
18461  int __cil_tmp316 ;
18462  long __cil_tmp317 ;
18463  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp318 ;
18464  unsigned int __cil_tmp319 ;
18465  unsigned int __cil_tmp320 ;
18466  int __cil_tmp321 ;
18467  int __cil_tmp322 ;
18468  long __cil_tmp323 ;
18469  unsigned long __cil_tmp324 ;
18470  unsigned long __cil_tmp325 ;
18471  unsigned long __cil_tmp326 ;
18472  unsigned long __cil_tmp327 ;
18473  struct eventfd_ctx *__cil_tmp328 ;
18474  struct vring_desc *__cil_tmp329 ;
18475  __u64 __cil_tmp330 ;
18476  unsigned long __cil_tmp331 ;
18477  __u32 __cil_tmp332 ;
18478  struct iovec *__cil_tmp333 ;
18479  unsigned int __cil_tmp334 ;
18480  int __cil_tmp335 ;
18481  int __cil_tmp336 ;
18482  int __cil_tmp337 ;
18483  int __cil_tmp338 ;
18484  long __cil_tmp339 ;
18485  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp340 ;
18486  unsigned int __cil_tmp341 ;
18487  unsigned int __cil_tmp342 ;
18488  int __cil_tmp343 ;
18489  int __cil_tmp344 ;
18490  long __cil_tmp345 ;
18491  unsigned long __cil_tmp346 ;
18492  unsigned long __cil_tmp347 ;
18493  unsigned long __cil_tmp348 ;
18494  unsigned long __cil_tmp349 ;
18495  struct eventfd_ctx *__cil_tmp350 ;
18496  unsigned long __cil_tmp351 ;
18497  __u16 __cil_tmp352 ;
18498  int __cil_tmp353 ;
18499  unsigned int __cil_tmp354 ;
18500  unsigned int __cil_tmp355 ;
18501  int __cil_tmp356 ;
18502  int __cil_tmp357 ;
18503  long __cil_tmp358 ;
18504  unsigned int __cil_tmp359 ;
18505  struct vhost_log *__cil_tmp360 ;
18506  struct vring_desc *__cil_tmp361 ;
18507  unsigned int __cil_tmp362 ;
18508  struct vhost_log *__cil_tmp363 ;
18509  unsigned long __cil_tmp364 ;
18510  unsigned long __cil_tmp365 ;
18511  unsigned long __cil_tmp366 ;
18512  __u32 __cil_tmp367 ;
18513  unsigned int __cil_tmp368 ;
18514  unsigned int __cil_tmp369 ;
18515  int __cil_tmp370 ;
18516  int __cil_tmp371 ;
18517  long __cil_tmp372 ;
18518  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp373 ;
18519  unsigned int __cil_tmp374 ;
18520  unsigned int __cil_tmp375 ;
18521  int __cil_tmp376 ;
18522  int __cil_tmp377 ;
18523  long __cil_tmp378 ;
18524  unsigned long __cil_tmp379 ;
18525  unsigned long __cil_tmp380 ;
18526  unsigned long __cil_tmp381 ;
18527  unsigned long __cil_tmp382 ;
18528  struct eventfd_ctx *__cil_tmp383 ;
18529  unsigned int __cil_tmp384 ;
18530  unsigned int __cil_tmp385 ;
18531  unsigned long __cil_tmp386 ;
18532  unsigned long __cil_tmp387 ;
18533  unsigned long __cil_tmp388 ;
18534  unsigned long __cil_tmp389 ;
18535  u16 __cil_tmp390 ;
18536  int __cil_tmp391 ;
18537  int __cil_tmp392 ;
18538  unsigned long __cil_tmp393 ;
18539  unsigned long __cil_tmp394 ;
18540  u16 __cil_tmp395 ;
18541  int __cil_tmp396 ;
18542  int __cil_tmp397 ;
18543  int __cil_tmp398 ;
18544  int __cil_tmp399 ;
18545  int __cil_tmp400 ;
18546  long __cil_tmp401 ;
18547
18548  {
18549#line 1212
18550  found = 0U;
18551#line 1217
18552  __cil_tmp49 = (unsigned long )vq;
18553#line 1217
18554  __cil_tmp50 = __cil_tmp49 + 328;
18555#line 1217
18556  last_avail_idx = *((u16 *)__cil_tmp50);
18557  {
18558#line 1218
18559  while (1) {
18560    while_continue: /* CIL Label */ ;
18561#line 1218
18562    __gu_err = 0;
18563#line 1218
18564    if ((int )2UL == 1) {
18565#line 1218
18566      goto case_1;
18567    } else
18568#line 1218
18569    if ((int )2UL == 2) {
18570#line 1218
18571      goto case_2;
18572    } else
18573#line 1218
18574    if ((int )2UL == 4) {
18575#line 1218
18576      goto case_4;
18577    } else
18578#line 1218
18579    if ((int )2UL == 8) {
18580#line 1218
18581      goto case_8;
18582    } else {
18583      {
18584#line 1218
18585      goto switch_default;
18586#line 1218
18587      if (0) {
18588        case_1: /* CIL Label */ 
18589#line 1218
18590        __cil_tmp51 = (unsigned long )vq;
18591#line 1218
18592        __cil_tmp52 = __cil_tmp51 + 96;
18593#line 1218
18594        __cil_tmp53 = *((struct vring_avail **)__cil_tmp52);
18595#line 1218
18596        __cil_tmp54 = (unsigned long )__cil_tmp53;
18597#line 1218
18598        __cil_tmp55 = __cil_tmp54 + 2;
18599#line 1218
18600        __cil_tmp56 = (__u16 *)__cil_tmp55;
18601#line 1218
18602        __cil_tmp57 = (struct __large_struct *)__cil_tmp56;
18603#line 1218
18604        __asm__  volatile   ("1:\tmov"
18605                             "b"
18606                             " %2,%"
18607                             "b"
18608                             "1\n"
18609                             "2:\n"
18610                             ".section .fixup,\"ax\"\n"
18611                             "3:\tmov %3,%0\n"
18612                             "\txor"
18613                             "b"
18614                             " %"
18615                             "b"
18616                             "1,%"
18617                             "b"
18618                             "1\n"
18619                             "\tjmp 2b\n"
18620                             ".previous\n"
18621                             " .section __ex_table,\"a\"\n"
18622                             " "
18623                             ".balign 8"
18624                             " "
18625                             "\n"
18626                             " "
18627                             ".quad"
18628                             " "
18629                             "1b"
18630                             ","
18631                             "3b"
18632                             "\n"
18633                             " .previous\n": "=r" (__gu_err), "=q" (__gu_val): "m" (*__cil_tmp57),
18634                             "i" (-14), "0" (__gu_err));
18635#line 1218
18636        goto switch_break;
18637        case_2: /* CIL Label */ 
18638#line 1218
18639        __cil_tmp58 = (unsigned long )vq;
18640#line 1218
18641        __cil_tmp59 = __cil_tmp58 + 96;
18642#line 1218
18643        __cil_tmp60 = *((struct vring_avail **)__cil_tmp59);
18644#line 1218
18645        __cil_tmp61 = (unsigned long )__cil_tmp60;
18646#line 1218
18647        __cil_tmp62 = __cil_tmp61 + 2;
18648#line 1218
18649        __cil_tmp63 = (__u16 *)__cil_tmp62;
18650#line 1218
18651        __cil_tmp64 = (struct __large_struct *)__cil_tmp63;
18652#line 1218
18653        __asm__  volatile   ("1:\tmov"
18654                             "w"
18655                             " %2,%"
18656                             "w"
18657                             "1\n"
18658                             "2:\n"
18659                             ".section .fixup,\"ax\"\n"
18660                             "3:\tmov %3,%0\n"
18661                             "\txor"
18662                             "w"
18663                             " %"
18664                             "w"
18665                             "1,%"
18666                             "w"
18667                             "1\n"
18668                             "\tjmp 2b\n"
18669                             ".previous\n"
18670                             " .section __ex_table,\"a\"\n"
18671                             " "
18672                             ".balign 8"
18673                             " "
18674                             "\n"
18675                             " "
18676                             ".quad"
18677                             " "
18678                             "1b"
18679                             ","
18680                             "3b"
18681                             "\n"
18682                             " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp64),
18683                             "i" (-14), "0" (__gu_err));
18684#line 1218
18685        goto switch_break;
18686        case_4: /* CIL Label */ 
18687#line 1218
18688        __cil_tmp65 = (unsigned long )vq;
18689#line 1218
18690        __cil_tmp66 = __cil_tmp65 + 96;
18691#line 1218
18692        __cil_tmp67 = *((struct vring_avail **)__cil_tmp66);
18693#line 1218
18694        __cil_tmp68 = (unsigned long )__cil_tmp67;
18695#line 1218
18696        __cil_tmp69 = __cil_tmp68 + 2;
18697#line 1218
18698        __cil_tmp70 = (__u16 *)__cil_tmp69;
18699#line 1218
18700        __cil_tmp71 = (struct __large_struct *)__cil_tmp70;
18701#line 1218
18702        __asm__  volatile   ("1:\tmov"
18703                             "l"
18704                             " %2,%"
18705                             "k"
18706                             "1\n"
18707                             "2:\n"
18708                             ".section .fixup,\"ax\"\n"
18709                             "3:\tmov %3,%0\n"
18710                             "\txor"
18711                             "l"
18712                             " %"
18713                             "k"
18714                             "1,%"
18715                             "k"
18716                             "1\n"
18717                             "\tjmp 2b\n"
18718                             ".previous\n"
18719                             " .section __ex_table,\"a\"\n"
18720                             " "
18721                             ".balign 8"
18722                             " "
18723                             "\n"
18724                             " "
18725                             ".quad"
18726                             " "
18727                             "1b"
18728                             ","
18729                             "3b"
18730                             "\n"
18731                             " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp71),
18732                             "i" (-14), "0" (__gu_err));
18733#line 1218
18734        goto switch_break;
18735        case_8: /* CIL Label */ 
18736#line 1218
18737        __cil_tmp72 = (unsigned long )vq;
18738#line 1218
18739        __cil_tmp73 = __cil_tmp72 + 96;
18740#line 1218
18741        __cil_tmp74 = *((struct vring_avail **)__cil_tmp73);
18742#line 1218
18743        __cil_tmp75 = (unsigned long )__cil_tmp74;
18744#line 1218
18745        __cil_tmp76 = __cil_tmp75 + 2;
18746#line 1218
18747        __cil_tmp77 = (__u16 *)__cil_tmp76;
18748#line 1218
18749        __cil_tmp78 = (struct __large_struct *)__cil_tmp77;
18750#line 1218
18751        __asm__  volatile   ("1:\tmov"
18752                             "q"
18753                             " %2,%"
18754                             ""
18755                             "1\n"
18756                             "2:\n"
18757                             ".section .fixup,\"ax\"\n"
18758                             "3:\tmov %3,%0\n"
18759                             "\txor"
18760                             "q"
18761                             " %"
18762                             ""
18763                             "1,%"
18764                             ""
18765                             "1\n"
18766                             "\tjmp 2b\n"
18767                             ".previous\n"
18768                             " .section __ex_table,\"a\"\n"
18769                             " "
18770                             ".balign 8"
18771                             " "
18772                             "\n"
18773                             " "
18774                             ".quad"
18775                             " "
18776                             "1b"
18777                             ","
18778                             "3b"
18779                             "\n"
18780                             " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp78),
18781                             "i" (-14), "0" (__gu_err));
18782#line 1218
18783        goto switch_break;
18784        switch_default: /* CIL Label */ 
18785        {
18786#line 1218
18787        tmp___8 = __get_user_bad();
18788#line 1218
18789        __gu_val = (unsigned long )tmp___8;
18790        }
18791      } else {
18792        switch_break: /* CIL Label */ ;
18793      }
18794      }
18795    }
18796#line 1218
18797    goto while_break;
18798  }
18799  while_break: /* CIL Label */ ;
18800  }
18801#line 1218
18802  __cil_tmp79 = (unsigned long )vq;
18803#line 1218
18804  __cil_tmp80 = __cil_tmp79 + 330;
18805#line 1218
18806  *((u16 *)__cil_tmp80) = (__u16 )__gu_val;
18807#line 1218
18808  if (__gu_err) {
18809#line 1218
18810    tmp___9 = 1;
18811  } else {
18812#line 1218
18813    tmp___9 = 0;
18814  }
18815  {
18816#line 1218
18817  __cil_tmp81 = (long )tmp___9;
18818#line 1218
18819  tmp___10 = __builtin_expect(__cil_tmp81, 0L);
18820  }
18821#line 1218
18822  if (tmp___10) {
18823    {
18824#line 1219
18825    while (1) {
18826      while_continue___0: /* CIL Label */ ;
18827      {
18828#line 1219
18829      while (1) {
18830        while_continue___1: /* CIL Label */ ;
18831        {
18832#line 1219
18833        __cil_tmp82 = & descriptor___7;
18834#line 1219
18835        __cil_tmp83 = __cil_tmp82->flags;
18836#line 1219
18837        __cil_tmp84 = __cil_tmp83 & 1U;
18838#line 1219
18839        __cil_tmp85 = ! __cil_tmp84;
18840#line 1219
18841        __cil_tmp86 = ! __cil_tmp85;
18842#line 1219
18843        __cil_tmp87 = (long )__cil_tmp86;
18844#line 1219
18845        tmp___7 = __builtin_expect(__cil_tmp87, 0L);
18846        }
18847#line 1219
18848        if (tmp___7) {
18849          {
18850#line 1219
18851          __cil_tmp88 = (unsigned long )vq;
18852#line 1219
18853          __cil_tmp89 = __cil_tmp88 + 96;
18854#line 1219
18855          __cil_tmp90 = *((struct vring_avail **)__cil_tmp89);
18856#line 1219
18857          __cil_tmp91 = (unsigned long )__cil_tmp90;
18858#line 1219
18859          __cil_tmp92 = __cil_tmp91 + 2;
18860#line 1219
18861          __cil_tmp93 = (__u16 *)__cil_tmp92;
18862#line 1219
18863          __dynamic_pr_debug(& descriptor___7, "Failed to access avail idx at %p\n",
18864                             __cil_tmp93);
18865          }
18866        } else {
18867
18868        }
18869#line 1219
18870        goto while_break___1;
18871      }
18872      while_break___1: /* CIL Label */ ;
18873      }
18874      {
18875#line 1219
18876      __cil_tmp94 = (unsigned long )vq;
18877#line 1219
18878      __cil_tmp95 = __cil_tmp94 + 144;
18879#line 1219
18880      if (*((struct eventfd_ctx **)__cil_tmp95)) {
18881        {
18882#line 1219
18883        __cil_tmp96 = (unsigned long )vq;
18884#line 1219
18885        __cil_tmp97 = __cil_tmp96 + 144;
18886#line 1219
18887        __cil_tmp98 = *((struct eventfd_ctx **)__cil_tmp97);
18888#line 1219
18889        eventfd_signal(__cil_tmp98, 1);
18890        }
18891      } else {
18892
18893      }
18894      }
18895#line 1219
18896      goto while_break___0;
18897    }
18898    while_break___0: /* CIL Label */ ;
18899    }
18900#line 1221
18901    return (-14);
18902  } else {
18903
18904  }
18905  {
18906#line 1224
18907  __cil_tmp99 = (unsigned long )vq;
18908#line 1224
18909  __cil_tmp100 = __cil_tmp99 + 80;
18910#line 1224
18911  __cil_tmp101 = *((unsigned int *)__cil_tmp100);
18912#line 1224
18913  __cil_tmp102 = (int )last_avail_idx;
18914#line 1224
18915  __cil_tmp103 = (unsigned long )vq;
18916#line 1224
18917  __cil_tmp104 = __cil_tmp103 + 330;
18918#line 1224
18919  __cil_tmp105 = *((u16 *)__cil_tmp104);
18920#line 1224
18921  __cil_tmp106 = (int )__cil_tmp105;
18922#line 1224
18923  __cil_tmp107 = __cil_tmp106 - __cil_tmp102;
18924#line 1224
18925  __cil_tmp108 = (u16 )__cil_tmp107;
18926#line 1224
18927  __cil_tmp109 = (unsigned int )__cil_tmp108;
18928#line 1224
18929  __cil_tmp110 = __cil_tmp109 > __cil_tmp101;
18930#line 1224
18931  __cil_tmp111 = ! __cil_tmp110;
18932#line 1224
18933  __cil_tmp112 = ! __cil_tmp111;
18934#line 1224
18935  __cil_tmp113 = (long )__cil_tmp112;
18936#line 1224
18937  tmp___12 = __builtin_expect(__cil_tmp113, 0L);
18938  }
18939#line 1224
18940  if (tmp___12) {
18941    {
18942#line 1225
18943    while (1) {
18944      while_continue___2: /* CIL Label */ ;
18945      {
18946#line 1225
18947      while (1) {
18948        while_continue___3: /* CIL Label */ ;
18949        {
18950#line 1225
18951        __cil_tmp114 = & descriptor___8;
18952#line 1225
18953        __cil_tmp115 = __cil_tmp114->flags;
18954#line 1225
18955        __cil_tmp116 = __cil_tmp115 & 1U;
18956#line 1225
18957        __cil_tmp117 = ! __cil_tmp116;
18958#line 1225
18959        __cil_tmp118 = ! __cil_tmp117;
18960#line 1225
18961        __cil_tmp119 = (long )__cil_tmp118;
18962#line 1225
18963        tmp___11 = __builtin_expect(__cil_tmp119, 0L);
18964        }
18965#line 1225
18966        if (tmp___11) {
18967          {
18968#line 1225
18969          __cil_tmp120 = (int )last_avail_idx;
18970#line 1225
18971          __cil_tmp121 = (unsigned long )vq;
18972#line 1225
18973          __cil_tmp122 = __cil_tmp121 + 330;
18974#line 1225
18975          __cil_tmp123 = *((u16 *)__cil_tmp122);
18976#line 1225
18977          __cil_tmp124 = (int )__cil_tmp123;
18978#line 1225
18979          __dynamic_pr_debug(& descriptor___8, "Guest moved used index from %u to %u",
18980                             __cil_tmp120, __cil_tmp124);
18981          }
18982        } else {
18983
18984        }
18985#line 1225
18986        goto while_break___3;
18987      }
18988      while_break___3: /* CIL Label */ ;
18989      }
18990      {
18991#line 1225
18992      __cil_tmp125 = (unsigned long )vq;
18993#line 1225
18994      __cil_tmp126 = __cil_tmp125 + 144;
18995#line 1225
18996      if (*((struct eventfd_ctx **)__cil_tmp126)) {
18997        {
18998#line 1225
18999        __cil_tmp127 = (unsigned long )vq;
19000#line 1225
19001        __cil_tmp128 = __cil_tmp127 + 144;
19002#line 1225
19003        __cil_tmp129 = *((struct eventfd_ctx **)__cil_tmp128);
19004#line 1225
19005        eventfd_signal(__cil_tmp129, 1);
19006        }
19007      } else {
19008
19009      }
19010      }
19011#line 1225
19012      goto while_break___2;
19013    }
19014    while_break___2: /* CIL Label */ ;
19015    }
19016#line 1227
19017    return (-14);
19018  } else {
19019
19020  }
19021  {
19022#line 1231
19023  __cil_tmp130 = (int )last_avail_idx;
19024#line 1231
19025  __cil_tmp131 = (unsigned long )vq;
19026#line 1231
19027  __cil_tmp132 = __cil_tmp131 + 330;
19028#line 1231
19029  __cil_tmp133 = *((u16 *)__cil_tmp132);
19030#line 1231
19031  __cil_tmp134 = (int )__cil_tmp133;
19032#line 1231
19033  if (__cil_tmp134 == __cil_tmp130) {
19034    {
19035#line 1232
19036    __cil_tmp135 = (unsigned long )vq;
19037#line 1232
19038    __cil_tmp136 = __cil_tmp135 + 80;
19039#line 1232
19040    __cil_tmp137 = *((unsigned int *)__cil_tmp136);
19041#line 1232
19042    return ((int )__cil_tmp137);
19043    }
19044  } else {
19045
19046  }
19047  }
19048#line 1235
19049  __asm__  volatile   ("": : : "memory");
19050  {
19051#line 1239
19052  while (1) {
19053    while_continue___4: /* CIL Label */ ;
19054#line 1239
19055    __gu_err___0 = 0;
19056#line 1239
19057    if ((int )2UL == 1) {
19058#line 1239
19059      goto case_1___0;
19060    } else
19061#line 1239
19062    if ((int )2UL == 2) {
19063#line 1239
19064      goto case_2___0;
19065    } else
19066#line 1239
19067    if ((int )2UL == 4) {
19068#line 1239
19069      goto case_4___0;
19070    } else
19071#line 1239
19072    if ((int )2UL == 8) {
19073#line 1239
19074      goto case_8___0;
19075    } else {
19076      {
19077#line 1239
19078      goto switch_default___0;
19079#line 1239
19080      if (0) {
19081        case_1___0: /* CIL Label */ 
19082#line 1239
19083        __cil_tmp138 = (unsigned long )vq;
19084#line 1239
19085        __cil_tmp139 = __cil_tmp138 + 80;
19086#line 1239
19087        __cil_tmp140 = *((unsigned int *)__cil_tmp139);
19088#line 1239
19089        __cil_tmp141 = (unsigned int )last_avail_idx;
19090#line 1239
19091        __cil_tmp142 = __cil_tmp141 % __cil_tmp140;
19092#line 1239
19093        __cil_tmp143 = __cil_tmp142 * 2UL;
19094#line 1239
19095        __cil_tmp144 = 4 + __cil_tmp143;
19096#line 1239
19097        __cil_tmp145 = (unsigned long )vq;
19098#line 1239
19099        __cil_tmp146 = __cil_tmp145 + 96;
19100#line 1239
19101        __cil_tmp147 = *((struct vring_avail **)__cil_tmp146);
19102#line 1239
19103        __cil_tmp148 = (unsigned long )__cil_tmp147;
19104#line 1239
19105        __cil_tmp149 = __cil_tmp148 + __cil_tmp144;
19106#line 1239
19107        __cil_tmp150 = (__u16 *)__cil_tmp149;
19108#line 1239
19109        __cil_tmp151 = (struct __large_struct *)__cil_tmp150;
19110#line 1239
19111        __asm__  volatile   ("1:\tmov"
19112                             "b"
19113                             " %2,%"
19114                             "b"
19115                             "1\n"
19116                             "2:\n"
19117                             ".section .fixup,\"ax\"\n"
19118                             "3:\tmov %3,%0\n"
19119                             "\txor"
19120                             "b"
19121                             " %"
19122                             "b"
19123                             "1,%"
19124                             "b"
19125                             "1\n"
19126                             "\tjmp 2b\n"
19127                             ".previous\n"
19128                             " .section __ex_table,\"a\"\n"
19129                             " "
19130                             ".balign 8"
19131                             " "
19132                             "\n"
19133                             " "
19134                             ".quad"
19135                             " "
19136                             "1b"
19137                             ","
19138                             "3b"
19139                             "\n"
19140                             " .previous\n": "=r" (__gu_err___0), "=q" (__gu_val___0): "m" (*__cil_tmp151),
19141                             "i" (-14), "0" (__gu_err___0));
19142#line 1239
19143        goto switch_break___0;
19144        case_2___0: /* CIL Label */ 
19145#line 1239
19146        __cil_tmp152 = (unsigned long )vq;
19147#line 1239
19148        __cil_tmp153 = __cil_tmp152 + 80;
19149#line 1239
19150        __cil_tmp154 = *((unsigned int *)__cil_tmp153);
19151#line 1239
19152        __cil_tmp155 = (unsigned int )last_avail_idx;
19153#line 1239
19154        __cil_tmp156 = __cil_tmp155 % __cil_tmp154;
19155#line 1239
19156        __cil_tmp157 = __cil_tmp156 * 2UL;
19157#line 1239
19158        __cil_tmp158 = 4 + __cil_tmp157;
19159#line 1239
19160        __cil_tmp159 = (unsigned long )vq;
19161#line 1239
19162        __cil_tmp160 = __cil_tmp159 + 96;
19163#line 1239
19164        __cil_tmp161 = *((struct vring_avail **)__cil_tmp160);
19165#line 1239
19166        __cil_tmp162 = (unsigned long )__cil_tmp161;
19167#line 1239
19168        __cil_tmp163 = __cil_tmp162 + __cil_tmp158;
19169#line 1239
19170        __cil_tmp164 = (__u16 *)__cil_tmp163;
19171#line 1239
19172        __cil_tmp165 = (struct __large_struct *)__cil_tmp164;
19173#line 1239
19174        __asm__  volatile   ("1:\tmov"
19175                             "w"
19176                             " %2,%"
19177                             "w"
19178                             "1\n"
19179                             "2:\n"
19180                             ".section .fixup,\"ax\"\n"
19181                             "3:\tmov %3,%0\n"
19182                             "\txor"
19183                             "w"
19184                             " %"
19185                             "w"
19186                             "1,%"
19187                             "w"
19188                             "1\n"
19189                             "\tjmp 2b\n"
19190                             ".previous\n"
19191                             " .section __ex_table,\"a\"\n"
19192                             " "
19193                             ".balign 8"
19194                             " "
19195                             "\n"
19196                             " "
19197                             ".quad"
19198                             " "
19199                             "1b"
19200                             ","
19201                             "3b"
19202                             "\n"
19203                             " .previous\n": "=r" (__gu_err___0), "=r" (__gu_val___0): "m" (*__cil_tmp165),
19204                             "i" (-14), "0" (__gu_err___0));
19205#line 1239
19206        goto switch_break___0;
19207        case_4___0: /* CIL Label */ 
19208#line 1239
19209        __cil_tmp166 = (unsigned long )vq;
19210#line 1239
19211        __cil_tmp167 = __cil_tmp166 + 80;
19212#line 1239
19213        __cil_tmp168 = *((unsigned int *)__cil_tmp167);
19214#line 1239
19215        __cil_tmp169 = (unsigned int )last_avail_idx;
19216#line 1239
19217        __cil_tmp170 = __cil_tmp169 % __cil_tmp168;
19218#line 1239
19219        __cil_tmp171 = __cil_tmp170 * 2UL;
19220#line 1239
19221        __cil_tmp172 = 4 + __cil_tmp171;
19222#line 1239
19223        __cil_tmp173 = (unsigned long )vq;
19224#line 1239
19225        __cil_tmp174 = __cil_tmp173 + 96;
19226#line 1239
19227        __cil_tmp175 = *((struct vring_avail **)__cil_tmp174);
19228#line 1239
19229        __cil_tmp176 = (unsigned long )__cil_tmp175;
19230#line 1239
19231        __cil_tmp177 = __cil_tmp176 + __cil_tmp172;
19232#line 1239
19233        __cil_tmp178 = (__u16 *)__cil_tmp177;
19234#line 1239
19235        __cil_tmp179 = (struct __large_struct *)__cil_tmp178;
19236#line 1239
19237        __asm__  volatile   ("1:\tmov"
19238                             "l"
19239                             " %2,%"
19240                             "k"
19241                             "1\n"
19242                             "2:\n"
19243                             ".section .fixup,\"ax\"\n"
19244                             "3:\tmov %3,%0\n"
19245                             "\txor"
19246                             "l"
19247                             " %"
19248                             "k"
19249                             "1,%"
19250                             "k"
19251                             "1\n"
19252                             "\tjmp 2b\n"
19253                             ".previous\n"
19254                             " .section __ex_table,\"a\"\n"
19255                             " "
19256                             ".balign 8"
19257                             " "
19258                             "\n"
19259                             " "
19260                             ".quad"
19261                             " "
19262                             "1b"
19263                             ","
19264                             "3b"
19265                             "\n"
19266                             " .previous\n": "=r" (__gu_err___0), "=r" (__gu_val___0): "m" (*__cil_tmp179),
19267                             "i" (-14), "0" (__gu_err___0));
19268#line 1239
19269        goto switch_break___0;
19270        case_8___0: /* CIL Label */ 
19271#line 1239
19272        __cil_tmp180 = (unsigned long )vq;
19273#line 1239
19274        __cil_tmp181 = __cil_tmp180 + 80;
19275#line 1239
19276        __cil_tmp182 = *((unsigned int *)__cil_tmp181);
19277#line 1239
19278        __cil_tmp183 = (unsigned int )last_avail_idx;
19279#line 1239
19280        __cil_tmp184 = __cil_tmp183 % __cil_tmp182;
19281#line 1239
19282        __cil_tmp185 = __cil_tmp184 * 2UL;
19283#line 1239
19284        __cil_tmp186 = 4 + __cil_tmp185;
19285#line 1239
19286        __cil_tmp187 = (unsigned long )vq;
19287#line 1239
19288        __cil_tmp188 = __cil_tmp187 + 96;
19289#line 1239
19290        __cil_tmp189 = *((struct vring_avail **)__cil_tmp188);
19291#line 1239
19292        __cil_tmp190 = (unsigned long )__cil_tmp189;
19293#line 1239
19294        __cil_tmp191 = __cil_tmp190 + __cil_tmp186;
19295#line 1239
19296        __cil_tmp192 = (__u16 *)__cil_tmp191;
19297#line 1239
19298        __cil_tmp193 = (struct __large_struct *)__cil_tmp192;
19299#line 1239
19300        __asm__  volatile   ("1:\tmov"
19301                             "q"
19302                             " %2,%"
19303                             ""
19304                             "1\n"
19305                             "2:\n"
19306                             ".section .fixup,\"ax\"\n"
19307                             "3:\tmov %3,%0\n"
19308                             "\txor"
19309                             "q"
19310                             " %"
19311                             ""
19312                             "1,%"
19313                             ""
19314                             "1\n"
19315                             "\tjmp 2b\n"
19316                             ".previous\n"
19317                             " .section __ex_table,\"a\"\n"
19318                             " "
19319                             ".balign 8"
19320                             " "
19321                             "\n"
19322                             " "
19323                             ".quad"
19324                             " "
19325                             "1b"
19326                             ","
19327                             "3b"
19328                             "\n"
19329                             " .previous\n": "=r" (__gu_err___0), "=r" (__gu_val___0): "m" (*__cil_tmp193),
19330                             "i" (-14), "0" (__gu_err___0));
19331#line 1239
19332        goto switch_break___0;
19333        switch_default___0: /* CIL Label */ 
19334        {
19335#line 1239
19336        tmp___14 = __get_user_bad();
19337#line 1239
19338        __gu_val___0 = (unsigned long )tmp___14;
19339        }
19340      } else {
19341        switch_break___0: /* CIL Label */ ;
19342      }
19343      }
19344    }
19345#line 1239
19346    goto while_break___4;
19347  }
19348  while_break___4: /* CIL Label */ ;
19349  }
19350#line 1239
19351  __cil_tmp194 = (__u16 )__gu_val___0;
19352#line 1239
19353  head = (unsigned int )__cil_tmp194;
19354#line 1239
19355  if (__gu_err___0) {
19356#line 1239
19357    tmp___15 = 1;
19358  } else {
19359#line 1239
19360    tmp___15 = 0;
19361  }
19362  {
19363#line 1239
19364  __cil_tmp195 = (long )tmp___15;
19365#line 1239
19366  tmp___16 = __builtin_expect(__cil_tmp195, 0L);
19367  }
19368#line 1239
19369  if (tmp___16) {
19370    {
19371#line 1241
19372    while (1) {
19373      while_continue___5: /* CIL Label */ ;
19374      {
19375#line 1241
19376      while (1) {
19377        while_continue___6: /* CIL Label */ ;
19378        {
19379#line 1241
19380        __cil_tmp196 = & descriptor___9;
19381#line 1241
19382        __cil_tmp197 = __cil_tmp196->flags;
19383#line 1241
19384        __cil_tmp198 = __cil_tmp197 & 1U;
19385#line 1241
19386        __cil_tmp199 = ! __cil_tmp198;
19387#line 1241
19388        __cil_tmp200 = ! __cil_tmp199;
19389#line 1241
19390        __cil_tmp201 = (long )__cil_tmp200;
19391#line 1241
19392        tmp___13 = __builtin_expect(__cil_tmp201, 0L);
19393        }
19394#line 1241
19395        if (tmp___13) {
19396          {
19397#line 1241
19398          __cil_tmp202 = (int )last_avail_idx;
19399#line 1241
19400          __cil_tmp203 = (unsigned long )vq;
19401#line 1241
19402          __cil_tmp204 = __cil_tmp203 + 80;
19403#line 1241
19404          __cil_tmp205 = *((unsigned int *)__cil_tmp204);
19405#line 1241
19406          __cil_tmp206 = (unsigned int )last_avail_idx;
19407#line 1241
19408          __cil_tmp207 = __cil_tmp206 % __cil_tmp205;
19409#line 1241
19410          __cil_tmp208 = __cil_tmp207 * 2UL;
19411#line 1241
19412          __cil_tmp209 = 4 + __cil_tmp208;
19413#line 1241
19414          __cil_tmp210 = (unsigned long )vq;
19415#line 1241
19416          __cil_tmp211 = __cil_tmp210 + 96;
19417#line 1241
19418          __cil_tmp212 = *((struct vring_avail **)__cil_tmp211);
19419#line 1241
19420          __cil_tmp213 = (unsigned long )__cil_tmp212;
19421#line 1241
19422          __cil_tmp214 = __cil_tmp213 + __cil_tmp209;
19423#line 1241
19424          __cil_tmp215 = (__u16 *)__cil_tmp214;
19425#line 1241
19426          __dynamic_pr_debug(& descriptor___9, "Failed to read head: idx %d address %p\n",
19427                             __cil_tmp202, __cil_tmp215);
19428          }
19429        } else {
19430
19431        }
19432#line 1241
19433        goto while_break___6;
19434      }
19435      while_break___6: /* CIL Label */ ;
19436      }
19437      {
19438#line 1241
19439      __cil_tmp216 = (unsigned long )vq;
19440#line 1241
19441      __cil_tmp217 = __cil_tmp216 + 144;
19442#line 1241
19443      if (*((struct eventfd_ctx **)__cil_tmp217)) {
19444        {
19445#line 1241
19446        __cil_tmp218 = (unsigned long )vq;
19447#line 1241
19448        __cil_tmp219 = __cil_tmp218 + 144;
19449#line 1241
19450        __cil_tmp220 = *((struct eventfd_ctx **)__cil_tmp219);
19451#line 1241
19452        eventfd_signal(__cil_tmp220, 1);
19453        }
19454      } else {
19455
19456      }
19457      }
19458#line 1241
19459      goto while_break___5;
19460    }
19461    while_break___5: /* CIL Label */ ;
19462    }
19463#line 1244
19464    return (-14);
19465  } else {
19466
19467  }
19468  {
19469#line 1248
19470  __cil_tmp221 = (unsigned long )vq;
19471#line 1248
19472  __cil_tmp222 = __cil_tmp221 + 80;
19473#line 1248
19474  __cil_tmp223 = *((unsigned int *)__cil_tmp222);
19475#line 1248
19476  __cil_tmp224 = head >= __cil_tmp223;
19477#line 1248
19478  __cil_tmp225 = ! __cil_tmp224;
19479#line 1248
19480  __cil_tmp226 = ! __cil_tmp225;
19481#line 1248
19482  __cil_tmp227 = (long )__cil_tmp226;
19483#line 1248
19484  tmp___18 = __builtin_expect(__cil_tmp227, 0L);
19485  }
19486#line 1248
19487  if (tmp___18) {
19488    {
19489#line 1249
19490    while (1) {
19491      while_continue___7: /* CIL Label */ ;
19492      {
19493#line 1249
19494      while (1) {
19495        while_continue___8: /* CIL Label */ ;
19496        {
19497#line 1249
19498        __cil_tmp228 = & descriptor___10;
19499#line 1249
19500        __cil_tmp229 = __cil_tmp228->flags;
19501#line 1249
19502        __cil_tmp230 = __cil_tmp229 & 1U;
19503#line 1249
19504        __cil_tmp231 = ! __cil_tmp230;
19505#line 1249
19506        __cil_tmp232 = ! __cil_tmp231;
19507#line 1249
19508        __cil_tmp233 = (long )__cil_tmp232;
19509#line 1249
19510        tmp___17 = __builtin_expect(__cil_tmp233, 0L);
19511        }
19512#line 1249
19513        if (tmp___17) {
19514          {
19515#line 1249
19516          __cil_tmp234 = (unsigned long )vq;
19517#line 1249
19518          __cil_tmp235 = __cil_tmp234 + 80;
19519#line 1249
19520          __cil_tmp236 = *((unsigned int *)__cil_tmp235);
19521#line 1249
19522          __dynamic_pr_debug(& descriptor___10, "Guest says index %u > %u is available",
19523                             head, __cil_tmp236);
19524          }
19525        } else {
19526
19527        }
19528#line 1249
19529        goto while_break___8;
19530      }
19531      while_break___8: /* CIL Label */ ;
19532      }
19533      {
19534#line 1249
19535      __cil_tmp237 = (unsigned long )vq;
19536#line 1249
19537      __cil_tmp238 = __cil_tmp237 + 144;
19538#line 1249
19539      if (*((struct eventfd_ctx **)__cil_tmp238)) {
19540        {
19541#line 1249
19542        __cil_tmp239 = (unsigned long )vq;
19543#line 1249
19544        __cil_tmp240 = __cil_tmp239 + 144;
19545#line 1249
19546        __cil_tmp241 = *((struct eventfd_ctx **)__cil_tmp240);
19547#line 1249
19548        eventfd_signal(__cil_tmp241, 1);
19549        }
19550      } else {
19551
19552      }
19553      }
19554#line 1249
19555      goto while_break___7;
19556    }
19557    while_break___7: /* CIL Label */ ;
19558    }
19559#line 1251
19560    return (-22);
19561  } else {
19562
19563  }
19564  {
19565#line 1255
19566  tmp___19 = 0U;
19567#line 1255
19568  *in_num = tmp___19;
19569#line 1255
19570  *out_num = tmp___19;
19571#line 1256
19572  __cil_tmp242 = ! log;
19573#line 1256
19574  __cil_tmp243 = ! __cil_tmp242;
19575#line 1256
19576  __cil_tmp244 = (long )__cil_tmp243;
19577#line 1256
19578  tmp___20 = __builtin_expect(__cil_tmp244, 0L);
19579  }
19580#line 1256
19581  if (tmp___20) {
19582#line 1257
19583    *log_num = 0U;
19584  } else {
19585
19586  }
19587#line 1259
19588  i = head;
19589  {
19590#line 1260
19591  while (1) {
19592    while_continue___9: /* CIL Label */ ;
19593    {
19594#line 1261
19595    __cil_tmp245 = *out_num;
19596#line 1261
19597    __cil_tmp246 = *in_num;
19598#line 1261
19599    iov_count = __cil_tmp246 + __cil_tmp245;
19600#line 1262
19601    __cil_tmp247 = (unsigned long )vq;
19602#line 1262
19603    __cil_tmp248 = __cil_tmp247 + 80;
19604#line 1262
19605    __cil_tmp249 = *((unsigned int *)__cil_tmp248);
19606#line 1262
19607    __cil_tmp250 = i >= __cil_tmp249;
19608#line 1262
19609    __cil_tmp251 = ! __cil_tmp250;
19610#line 1262
19611    __cil_tmp252 = ! __cil_tmp251;
19612#line 1262
19613    __cil_tmp253 = (long )__cil_tmp252;
19614#line 1262
19615    tmp___22 = __builtin_expect(__cil_tmp253, 0L);
19616    }
19617#line 1262
19618    if (tmp___22) {
19619      {
19620#line 1263
19621      while (1) {
19622        while_continue___10: /* CIL Label */ ;
19623        {
19624#line 1263
19625        while (1) {
19626          while_continue___11: /* CIL Label */ ;
19627          {
19628#line 1263
19629          __cil_tmp254 = & descriptor___11;
19630#line 1263
19631          __cil_tmp255 = __cil_tmp254->flags;
19632#line 1263
19633          __cil_tmp256 = __cil_tmp255 & 1U;
19634#line 1263
19635          __cil_tmp257 = ! __cil_tmp256;
19636#line 1263
19637          __cil_tmp258 = ! __cil_tmp257;
19638#line 1263
19639          __cil_tmp259 = (long )__cil_tmp258;
19640#line 1263
19641          tmp___21 = __builtin_expect(__cil_tmp259, 0L);
19642          }
19643#line 1263
19644          if (tmp___21) {
19645            {
19646#line 1263
19647            __cil_tmp260 = (unsigned long )vq;
19648#line 1263
19649            __cil_tmp261 = __cil_tmp260 + 80;
19650#line 1263
19651            __cil_tmp262 = *((unsigned int *)__cil_tmp261);
19652#line 1263
19653            __dynamic_pr_debug(& descriptor___11, "Desc index is %u > %u, head = %u",
19654                               i, __cil_tmp262, head);
19655            }
19656          } else {
19657
19658          }
19659#line 1263
19660          goto while_break___11;
19661        }
19662        while_break___11: /* CIL Label */ ;
19663        }
19664        {
19665#line 1263
19666        __cil_tmp263 = (unsigned long )vq;
19667#line 1263
19668        __cil_tmp264 = __cil_tmp263 + 144;
19669#line 1263
19670        if (*((struct eventfd_ctx **)__cil_tmp264)) {
19671          {
19672#line 1263
19673          __cil_tmp265 = (unsigned long )vq;
19674#line 1263
19675          __cil_tmp266 = __cil_tmp265 + 144;
19676#line 1263
19677          __cil_tmp267 = *((struct eventfd_ctx **)__cil_tmp266);
19678#line 1263
19679          eventfd_signal(__cil_tmp267, 1);
19680          }
19681        } else {
19682
19683        }
19684        }
19685#line 1263
19686        goto while_break___10;
19687      }
19688      while_break___10: /* CIL Label */ ;
19689      }
19690#line 1265
19691      return (-22);
19692    } else {
19693
19694    }
19695#line 1267
19696    found = found + 1U;
19697    {
19698#line 1267
19699    __cil_tmp268 = (unsigned long )vq;
19700#line 1267
19701    __cil_tmp269 = __cil_tmp268 + 80;
19702#line 1267
19703    __cil_tmp270 = *((unsigned int *)__cil_tmp269);
19704#line 1267
19705    if (found > __cil_tmp270) {
19706#line 1267
19707      tmp___24 = 1;
19708    } else {
19709#line 1267
19710      tmp___24 = 0;
19711    }
19712    }
19713    {
19714#line 1267
19715    __cil_tmp271 = (long )tmp___24;
19716#line 1267
19717    tmp___25 = __builtin_expect(__cil_tmp271, 0L);
19718    }
19719#line 1267
19720    if (tmp___25) {
19721      {
19722#line 1268
19723      while (1) {
19724        while_continue___12: /* CIL Label */ ;
19725        {
19726#line 1268
19727        while (1) {
19728          while_continue___13: /* CIL Label */ ;
19729          {
19730#line 1268
19731          __cil_tmp272 = & descriptor___12;
19732#line 1268
19733          __cil_tmp273 = __cil_tmp272->flags;
19734#line 1268
19735          __cil_tmp274 = __cil_tmp273 & 1U;
19736#line 1268
19737          __cil_tmp275 = ! __cil_tmp274;
19738#line 1268
19739          __cil_tmp276 = ! __cil_tmp275;
19740#line 1268
19741          __cil_tmp277 = (long )__cil_tmp276;
19742#line 1268
19743          tmp___23 = __builtin_expect(__cil_tmp277, 0L);
19744          }
19745#line 1268
19746          if (tmp___23) {
19747            {
19748#line 1268
19749            __cil_tmp278 = (unsigned long )vq;
19750#line 1268
19751            __cil_tmp279 = __cil_tmp278 + 80;
19752#line 1268
19753            __cil_tmp280 = *((unsigned int *)__cil_tmp279);
19754#line 1268
19755            __dynamic_pr_debug(& descriptor___12, "Loop detected: last one at %u vq size %u head %u\n",
19756                               i, __cil_tmp280, head);
19757            }
19758          } else {
19759
19760          }
19761#line 1268
19762          goto while_break___13;
19763        }
19764        while_break___13: /* CIL Label */ ;
19765        }
19766        {
19767#line 1268
19768        __cil_tmp281 = (unsigned long )vq;
19769#line 1268
19770        __cil_tmp282 = __cil_tmp281 + 144;
19771#line 1268
19772        if (*((struct eventfd_ctx **)__cil_tmp282)) {
19773          {
19774#line 1268
19775          __cil_tmp283 = (unsigned long )vq;
19776#line 1268
19777          __cil_tmp284 = __cil_tmp283 + 144;
19778#line 1268
19779          __cil_tmp285 = *((struct eventfd_ctx **)__cil_tmp284);
19780#line 1268
19781          eventfd_signal(__cil_tmp285, 1);
19782          }
19783        } else {
19784
19785        }
19786        }
19787#line 1268
19788        goto while_break___12;
19789      }
19790      while_break___12: /* CIL Label */ ;
19791      }
19792#line 1271
19793      return (-22);
19794    } else {
19795
19796    }
19797    {
19798#line 1273
19799    __cil_tmp286 = (void *)(& desc);
19800#line 1273
19801    __cil_tmp287 = (unsigned long )vq;
19802#line 1273
19803    __cil_tmp288 = __cil_tmp287 + 88;
19804#line 1273
19805    __cil_tmp289 = *((struct vring_desc **)__cil_tmp288);
19806#line 1273
19807    __cil_tmp290 = __cil_tmp289 + i;
19808#line 1273
19809    __cil_tmp291 = (void    *)__cil_tmp290;
19810#line 1273
19811    __cil_tmp292 = (unsigned int )16UL;
19812#line 1273
19813    ret = (int )__copy_from_user(__cil_tmp286, __cil_tmp291, __cil_tmp292);
19814#line 1274
19815    __cil_tmp293 = ! ret;
19816#line 1274
19817    __cil_tmp294 = ! __cil_tmp293;
19818#line 1274
19819    __cil_tmp295 = (long )__cil_tmp294;
19820#line 1274
19821    tmp___27 = __builtin_expect(__cil_tmp295, 0L);
19822    }
19823#line 1274
19824    if (tmp___27) {
19825      {
19826#line 1275
19827      while (1) {
19828        while_continue___14: /* CIL Label */ ;
19829        {
19830#line 1275
19831        while (1) {
19832          while_continue___15: /* CIL Label */ ;
19833          {
19834#line 1275
19835          __cil_tmp296 = & descriptor___13;
19836#line 1275
19837          __cil_tmp297 = __cil_tmp296->flags;
19838#line 1275
19839          __cil_tmp298 = __cil_tmp297 & 1U;
19840#line 1275
19841          __cil_tmp299 = ! __cil_tmp298;
19842#line 1275
19843          __cil_tmp300 = ! __cil_tmp299;
19844#line 1275
19845          __cil_tmp301 = (long )__cil_tmp300;
19846#line 1275
19847          tmp___26 = __builtin_expect(__cil_tmp301, 0L);
19848          }
19849#line 1275
19850          if (tmp___26) {
19851            {
19852#line 1275
19853            __cil_tmp302 = (unsigned long )vq;
19854#line 1275
19855            __cil_tmp303 = __cil_tmp302 + 88;
19856#line 1275
19857            __cil_tmp304 = *((struct vring_desc **)__cil_tmp303);
19858#line 1275
19859            __cil_tmp305 = __cil_tmp304 + i;
19860#line 1275
19861            __dynamic_pr_debug(& descriptor___13, "Failed to get descriptor: idx %d addr %p\n",
19862                               i, __cil_tmp305);
19863            }
19864          } else {
19865
19866          }
19867#line 1275
19868          goto while_break___15;
19869        }
19870        while_break___15: /* CIL Label */ ;
19871        }
19872        {
19873#line 1275
19874        __cil_tmp306 = (unsigned long )vq;
19875#line 1275
19876        __cil_tmp307 = __cil_tmp306 + 144;
19877#line 1275
19878        if (*((struct eventfd_ctx **)__cil_tmp307)) {
19879          {
19880#line 1275
19881          __cil_tmp308 = (unsigned long )vq;
19882#line 1275
19883          __cil_tmp309 = __cil_tmp308 + 144;
19884#line 1275
19885          __cil_tmp310 = *((struct eventfd_ctx **)__cil_tmp309);
19886#line 1275
19887          eventfd_signal(__cil_tmp310, 1);
19888          }
19889        } else {
19890
19891        }
19892        }
19893#line 1275
19894        goto while_break___14;
19895      }
19896      while_break___14: /* CIL Label */ ;
19897      }
19898#line 1277
19899      return (-14);
19900    } else {
19901
19902    }
19903    {
19904#line 1279
19905    __cil_tmp311 = (unsigned long )(& desc) + 12;
19906#line 1279
19907    __cil_tmp312 = *((__u16 *)__cil_tmp311);
19908#line 1279
19909    __cil_tmp313 = (int )__cil_tmp312;
19910#line 1279
19911    if (__cil_tmp313 & 4) {
19912      {
19913#line 1280
19914      ret = get_indirect(dev, vq, iov, iov_size, out_num, in_num, log, log_num, & desc);
19915#line 1283
19916      __cil_tmp314 = ret < 0;
19917#line 1283
19918      __cil_tmp315 = ! __cil_tmp314;
19919#line 1283
19920      __cil_tmp316 = ! __cil_tmp315;
19921#line 1283
19922      __cil_tmp317 = (long )__cil_tmp316;
19923#line 1283
19924      tmp___29 = __builtin_expect(__cil_tmp317, 0L);
19925      }
19926#line 1283
19927      if (tmp___29) {
19928        {
19929#line 1284
19930        while (1) {
19931          while_continue___16: /* CIL Label */ ;
19932          {
19933#line 1284
19934          while (1) {
19935            while_continue___17: /* CIL Label */ ;
19936            {
19937#line 1284
19938            __cil_tmp318 = & descriptor___14;
19939#line 1284
19940            __cil_tmp319 = __cil_tmp318->flags;
19941#line 1284
19942            __cil_tmp320 = __cil_tmp319 & 1U;
19943#line 1284
19944            __cil_tmp321 = ! __cil_tmp320;
19945#line 1284
19946            __cil_tmp322 = ! __cil_tmp321;
19947#line 1284
19948            __cil_tmp323 = (long )__cil_tmp322;
19949#line 1284
19950            tmp___28 = __builtin_expect(__cil_tmp323, 0L);
19951            }
19952#line 1284
19953            if (tmp___28) {
19954              {
19955#line 1284
19956              __dynamic_pr_debug(& descriptor___14, "Failure detected in indirect descriptor at idx %d\n",
19957                                 i);
19958              }
19959            } else {
19960
19961            }
19962#line 1284
19963            goto while_break___17;
19964          }
19965          while_break___17: /* CIL Label */ ;
19966          }
19967          {
19968#line 1284
19969          __cil_tmp324 = (unsigned long )vq;
19970#line 1284
19971          __cil_tmp325 = __cil_tmp324 + 144;
19972#line 1284
19973          if (*((struct eventfd_ctx **)__cil_tmp325)) {
19974            {
19975#line 1284
19976            __cil_tmp326 = (unsigned long )vq;
19977#line 1284
19978            __cil_tmp327 = __cil_tmp326 + 144;
19979#line 1284
19980            __cil_tmp328 = *((struct eventfd_ctx **)__cil_tmp327);
19981#line 1284
19982            eventfd_signal(__cil_tmp328, 1);
19983            }
19984          } else {
19985
19986          }
19987          }
19988#line 1284
19989          goto while_break___16;
19990        }
19991        while_break___16: /* CIL Label */ ;
19992        }
19993#line 1286
19994        return (ret);
19995      } else {
19996
19997      }
19998#line 1288
19999      goto __Cont;
20000    } else {
20001
20002    }
20003    }
20004    {
20005#line 1291
20006    __cil_tmp329 = & desc;
20007#line 1291
20008    __cil_tmp330 = *((__u64 *)__cil_tmp329);
20009#line 1291
20010    __cil_tmp331 = (unsigned long )(& desc) + 8;
20011#line 1291
20012    __cil_tmp332 = *((__u32 *)__cil_tmp331);
20013#line 1291
20014    __cil_tmp333 = iov + iov_count;
20015#line 1291
20016    __cil_tmp334 = iov_size - iov_count;
20017#line 1291
20018    __cil_tmp335 = (int )__cil_tmp334;
20019#line 1291
20020    ret = translate_desc(dev, __cil_tmp330, __cil_tmp332, __cil_tmp333, __cil_tmp335);
20021#line 1293
20022    __cil_tmp336 = ret < 0;
20023#line 1293
20024    __cil_tmp337 = ! __cil_tmp336;
20025#line 1293
20026    __cil_tmp338 = ! __cil_tmp337;
20027#line 1293
20028    __cil_tmp339 = (long )__cil_tmp338;
20029#line 1293
20030    tmp___31 = __builtin_expect(__cil_tmp339, 0L);
20031    }
20032#line 1293
20033    if (tmp___31) {
20034      {
20035#line 1294
20036      while (1) {
20037        while_continue___18: /* CIL Label */ ;
20038        {
20039#line 1294
20040        while (1) {
20041          while_continue___19: /* CIL Label */ ;
20042          {
20043#line 1294
20044          __cil_tmp340 = & descriptor___15;
20045#line 1294
20046          __cil_tmp341 = __cil_tmp340->flags;
20047#line 1294
20048          __cil_tmp342 = __cil_tmp341 & 1U;
20049#line 1294
20050          __cil_tmp343 = ! __cil_tmp342;
20051#line 1294
20052          __cil_tmp344 = ! __cil_tmp343;
20053#line 1294
20054          __cil_tmp345 = (long )__cil_tmp344;
20055#line 1294
20056          tmp___30 = __builtin_expect(__cil_tmp345, 0L);
20057          }
20058#line 1294
20059          if (tmp___30) {
20060            {
20061#line 1294
20062            __dynamic_pr_debug(& descriptor___15, "Translation failure %d descriptor idx %d\n",
20063                               ret, i);
20064            }
20065          } else {
20066
20067          }
20068#line 1294
20069          goto while_break___19;
20070        }
20071        while_break___19: /* CIL Label */ ;
20072        }
20073        {
20074#line 1294
20075        __cil_tmp346 = (unsigned long )vq;
20076#line 1294
20077        __cil_tmp347 = __cil_tmp346 + 144;
20078#line 1294
20079        if (*((struct eventfd_ctx **)__cil_tmp347)) {
20080          {
20081#line 1294
20082          __cil_tmp348 = (unsigned long )vq;
20083#line 1294
20084          __cil_tmp349 = __cil_tmp348 + 144;
20085#line 1294
20086          __cil_tmp350 = *((struct eventfd_ctx **)__cil_tmp349);
20087#line 1294
20088          eventfd_signal(__cil_tmp350, 1);
20089          }
20090        } else {
20091
20092        }
20093        }
20094#line 1294
20095        goto while_break___18;
20096      }
20097      while_break___18: /* CIL Label */ ;
20098      }
20099#line 1296
20100      return (ret);
20101    } else {
20102
20103    }
20104    {
20105#line 1298
20106    __cil_tmp351 = (unsigned long )(& desc) + 12;
20107#line 1298
20108    __cil_tmp352 = *((__u16 *)__cil_tmp351);
20109#line 1298
20110    __cil_tmp353 = (int )__cil_tmp352;
20111#line 1298
20112    if (__cil_tmp353 & 2) {
20113      {
20114#line 1301
20115      __cil_tmp354 = (unsigned int )ret;
20116#line 1301
20117      __cil_tmp355 = *in_num;
20118#line 1301
20119      *in_num = __cil_tmp355 + __cil_tmp354;
20120#line 1302
20121      __cil_tmp356 = ! log;
20122#line 1302
20123      __cil_tmp357 = ! __cil_tmp356;
20124#line 1302
20125      __cil_tmp358 = (long )__cil_tmp357;
20126#line 1302
20127      tmp___32 = __builtin_expect(__cil_tmp358, 0L);
20128      }
20129#line 1302
20130      if (tmp___32) {
20131#line 1303
20132        __cil_tmp359 = *log_num;
20133#line 1303
20134        __cil_tmp360 = log + __cil_tmp359;
20135#line 1303
20136        __cil_tmp361 = & desc;
20137#line 1303
20138        *((u64 *)__cil_tmp360) = *((__u64 *)__cil_tmp361);
20139#line 1304
20140        __cil_tmp362 = *log_num;
20141#line 1304
20142        __cil_tmp363 = log + __cil_tmp362;
20143#line 1304
20144        __cil_tmp364 = (unsigned long )__cil_tmp363;
20145#line 1304
20146        __cil_tmp365 = __cil_tmp364 + 8;
20147#line 1304
20148        __cil_tmp366 = (unsigned long )(& desc) + 8;
20149#line 1304
20150        __cil_tmp367 = *((__u32 *)__cil_tmp366);
20151#line 1304
20152        *((u64 *)__cil_tmp365) = (u64 )__cil_tmp367;
20153#line 1305
20154        __cil_tmp368 = *log_num;
20155#line 1305
20156        *log_num = __cil_tmp368 + 1U;
20157      } else {
20158
20159      }
20160    } else {
20161      {
20162#line 1310
20163      __cil_tmp369 = *in_num;
20164#line 1310
20165      __cil_tmp370 = ! __cil_tmp369;
20166#line 1310
20167      __cil_tmp371 = ! __cil_tmp370;
20168#line 1310
20169      __cil_tmp372 = (long )__cil_tmp371;
20170#line 1310
20171      tmp___34 = __builtin_expect(__cil_tmp372, 0L);
20172      }
20173#line 1310
20174      if (tmp___34) {
20175        {
20176#line 1311
20177        while (1) {
20178          while_continue___20: /* CIL Label */ ;
20179          {
20180#line 1311
20181          while (1) {
20182            while_continue___21: /* CIL Label */ ;
20183            {
20184#line 1311
20185            __cil_tmp373 = & descriptor___16;
20186#line 1311
20187            __cil_tmp374 = __cil_tmp373->flags;
20188#line 1311
20189            __cil_tmp375 = __cil_tmp374 & 1U;
20190#line 1311
20191            __cil_tmp376 = ! __cil_tmp375;
20192#line 1311
20193            __cil_tmp377 = ! __cil_tmp376;
20194#line 1311
20195            __cil_tmp378 = (long )__cil_tmp377;
20196#line 1311
20197            tmp___33 = __builtin_expect(__cil_tmp378, 0L);
20198            }
20199#line 1311
20200            if (tmp___33) {
20201              {
20202#line 1311
20203              __dynamic_pr_debug(& descriptor___16, "Descriptor has out after in: idx %d\n",
20204                                 i);
20205              }
20206            } else {
20207
20208            }
20209#line 1311
20210            goto while_break___21;
20211          }
20212          while_break___21: /* CIL Label */ ;
20213          }
20214          {
20215#line 1311
20216          __cil_tmp379 = (unsigned long )vq;
20217#line 1311
20218          __cil_tmp380 = __cil_tmp379 + 144;
20219#line 1311
20220          if (*((struct eventfd_ctx **)__cil_tmp380)) {
20221            {
20222#line 1311
20223            __cil_tmp381 = (unsigned long )vq;
20224#line 1311
20225            __cil_tmp382 = __cil_tmp381 + 144;
20226#line 1311
20227            __cil_tmp383 = *((struct eventfd_ctx **)__cil_tmp382);
20228#line 1311
20229            eventfd_signal(__cil_tmp383, 1);
20230            }
20231          } else {
20232
20233          }
20234          }
20235#line 1311
20236          goto while_break___20;
20237        }
20238        while_break___20: /* CIL Label */ ;
20239        }
20240#line 1313
20241        return (-22);
20242      } else {
20243
20244      }
20245#line 1315
20246      __cil_tmp384 = (unsigned int )ret;
20247#line 1315
20248      __cil_tmp385 = *out_num;
20249#line 1315
20250      *out_num = __cil_tmp385 + __cil_tmp384;
20251    }
20252    }
20253    __Cont: /* CIL Label */ 
20254    {
20255#line 1260
20256    i = next_desc(& desc);
20257    }
20258#line 1260
20259    if (i != 4294967295U) {
20260
20261    } else {
20262#line 1260
20263      goto while_break___9;
20264    }
20265  }
20266  while_break___9: /* CIL Label */ ;
20267  }
20268#line 1320
20269  __cil_tmp386 = (unsigned long )vq;
20270#line 1320
20271  __cil_tmp387 = __cil_tmp386 + 328;
20272#line 1320
20273  __cil_tmp388 = (unsigned long )vq;
20274#line 1320
20275  __cil_tmp389 = __cil_tmp388 + 328;
20276#line 1320
20277  __cil_tmp390 = *((u16 *)__cil_tmp389);
20278#line 1320
20279  __cil_tmp391 = (int )__cil_tmp390;
20280#line 1320
20281  __cil_tmp392 = __cil_tmp391 + 1;
20282#line 1320
20283  *((u16 *)__cil_tmp387) = (u16 )__cil_tmp392;
20284  {
20285#line 1324
20286  while (1) {
20287    while_continue___22: /* CIL Label */ ;
20288    {
20289#line 1324
20290    __cil_tmp393 = (unsigned long )vq;
20291#line 1324
20292    __cil_tmp394 = __cil_tmp393 + 334;
20293#line 1324
20294    __cil_tmp395 = *((u16 *)__cil_tmp394);
20295#line 1324
20296    __cil_tmp396 = (int )__cil_tmp395;
20297#line 1324
20298    __cil_tmp397 = __cil_tmp396 & 1;
20299#line 1324
20300    __cil_tmp398 = ! __cil_tmp397;
20301#line 1324
20302    __cil_tmp399 = ! __cil_tmp398;
20303#line 1324
20304    __cil_tmp400 = ! __cil_tmp399;
20305#line 1324
20306    __cil_tmp401 = (long )__cil_tmp400;
20307#line 1324
20308    tmp___35 = __builtin_expect(__cil_tmp401, 0L);
20309    }
20310#line 1324
20311    if (tmp___35) {
20312      {
20313#line 1324
20314      while (1) {
20315        while_continue___23: /* CIL Label */ ;
20316#line 1324
20317        __asm__  volatile   ("1:\tud2\n"
20318                             ".pushsection __bug_table,\"a\"\n"
20319                             "2:\t.long 1b - 2b, %c0 - 2b\n"
20320                             "\t.word %c1, 0\n"
20321                             "\t.org 2b+%c2\n"
20322                             ".popsection": : "i" ("/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"),
20323                             "i" (1324), "i" (12UL));
20324        {
20325#line 1324
20326        while (1) {
20327          while_continue___24: /* CIL Label */ ;
20328        }
20329        while_break___24: /* CIL Label */ ;
20330        }
20331#line 1324
20332        goto while_break___23;
20333      }
20334      while_break___23: /* CIL Label */ ;
20335      }
20336    } else {
20337
20338    }
20339#line 1324
20340    goto while_break___22;
20341  }
20342  while_break___22: /* CIL Label */ ;
20343  }
20344#line 1325
20345  return ((int )head);
20346}
20347}
20348#line 1329 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
20349void vhost_discard_vq_desc(struct vhost_virtqueue *vq , int n ) 
20350{ unsigned long __cil_tmp3 ;
20351  unsigned long __cil_tmp4 ;
20352  unsigned long __cil_tmp5 ;
20353  unsigned long __cil_tmp6 ;
20354  u16 __cil_tmp7 ;
20355  int __cil_tmp8 ;
20356  int __cil_tmp9 ;
20357
20358  {
20359#line 1331
20360  __cil_tmp3 = (unsigned long )vq;
20361#line 1331
20362  __cil_tmp4 = __cil_tmp3 + 328;
20363#line 1331
20364  __cil_tmp5 = (unsigned long )vq;
20365#line 1331
20366  __cil_tmp6 = __cil_tmp5 + 328;
20367#line 1331
20368  __cil_tmp7 = *((u16 *)__cil_tmp6);
20369#line 1331
20370  __cil_tmp8 = (int )__cil_tmp7;
20371#line 1331
20372  __cil_tmp9 = __cil_tmp8 - n;
20373#line 1331
20374  *((u16 *)__cil_tmp4) = (u16 )__cil_tmp9;
20375#line 1332
20376  return;
20377}
20378}
20379#line 1344 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
20380static struct _ddebug  __attribute__((__aligned__(8))) descriptor___17  __attribute__((__used__,
20381__section__("__verbose")))  =    {"vhost_net", "vhost_add_used", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
20382    "Failed to write used id", 1344U, 0U};
20383#line 1348 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
20384static struct _ddebug  __attribute__((__aligned__(8))) descriptor___18  __attribute__((__used__,
20385__section__("__verbose")))  =    {"vhost_net", "vhost_add_used", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
20386    "Failed to write used len", 1348U, 0U};
20387#line 1354 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
20388static struct _ddebug  __attribute__((__aligned__(8))) descriptor___19  __attribute__((__used__,
20389__section__("__verbose")))  =    {"vhost_net", "vhost_add_used", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
20390    "Failed to increment used idx", 1354U, 0U};
20391#line 1336 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
20392int vhost_add_used(struct vhost_virtqueue *vq , unsigned int head , int len ) 
20393{ struct vring_used_elem *used ;
20394  long tmp___7 ;
20395  int __pu_err ;
20396  long tmp___8 ;
20397  int __pu_err___0 ;
20398  long tmp___9 ;
20399  int __pu_err___1 ;
20400  long tmp___10 ;
20401  long tmp___11 ;
20402  unsigned long __cil_tmp13 ;
20403  unsigned long __cil_tmp14 ;
20404  unsigned int __cil_tmp15 ;
20405  unsigned long __cil_tmp16 ;
20406  unsigned long __cil_tmp17 ;
20407  u16 __cil_tmp18 ;
20408  unsigned int __cil_tmp19 ;
20409  unsigned int __cil_tmp20 ;
20410  unsigned long __cil_tmp21 ;
20411  unsigned long __cil_tmp22 ;
20412  unsigned long __cil_tmp23 ;
20413  unsigned long __cil_tmp24 ;
20414  struct vring_used *__cil_tmp25 ;
20415  unsigned long __cil_tmp26 ;
20416  unsigned long __cil_tmp27 ;
20417  __u32 *__cil_tmp28 ;
20418  struct __large_struct *__cil_tmp29 ;
20419  __u32 *__cil_tmp30 ;
20420  struct __large_struct *__cil_tmp31 ;
20421  __u32 *__cil_tmp32 ;
20422  struct __large_struct *__cil_tmp33 ;
20423  __u32 *__cil_tmp34 ;
20424  struct __large_struct *__cil_tmp35 ;
20425  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp36 ;
20426  unsigned int __cil_tmp37 ;
20427  unsigned int __cil_tmp38 ;
20428  int __cil_tmp39 ;
20429  int __cil_tmp40 ;
20430  long __cil_tmp41 ;
20431  unsigned long __cil_tmp42 ;
20432  unsigned long __cil_tmp43 ;
20433  unsigned long __cil_tmp44 ;
20434  unsigned long __cil_tmp45 ;
20435  struct eventfd_ctx *__cil_tmp46 ;
20436  unsigned long __cil_tmp47 ;
20437  unsigned long __cil_tmp48 ;
20438  __u32 *__cil_tmp49 ;
20439  struct __large_struct *__cil_tmp50 ;
20440  unsigned long __cil_tmp51 ;
20441  unsigned long __cil_tmp52 ;
20442  __u32 *__cil_tmp53 ;
20443  struct __large_struct *__cil_tmp54 ;
20444  unsigned long __cil_tmp55 ;
20445  unsigned long __cil_tmp56 ;
20446  __u32 *__cil_tmp57 ;
20447  struct __large_struct *__cil_tmp58 ;
20448  unsigned long __cil_tmp59 ;
20449  unsigned long __cil_tmp60 ;
20450  __u32 *__cil_tmp61 ;
20451  struct __large_struct *__cil_tmp62 ;
20452  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp63 ;
20453  unsigned int __cil_tmp64 ;
20454  unsigned int __cil_tmp65 ;
20455  int __cil_tmp66 ;
20456  int __cil_tmp67 ;
20457  long __cil_tmp68 ;
20458  unsigned long __cil_tmp69 ;
20459  unsigned long __cil_tmp70 ;
20460  unsigned long __cil_tmp71 ;
20461  unsigned long __cil_tmp72 ;
20462  struct eventfd_ctx *__cil_tmp73 ;
20463  unsigned long __cil_tmp74 ;
20464  unsigned long __cil_tmp75 ;
20465  u16 __cil_tmp76 ;
20466  int __cil_tmp77 ;
20467  int __cil_tmp78 ;
20468  unsigned long __cil_tmp79 ;
20469  unsigned long __cil_tmp80 ;
20470  struct vring_used *__cil_tmp81 ;
20471  unsigned long __cil_tmp82 ;
20472  unsigned long __cil_tmp83 ;
20473  __u16 *__cil_tmp84 ;
20474  struct __large_struct *__cil_tmp85 ;
20475  unsigned long __cil_tmp86 ;
20476  unsigned long __cil_tmp87 ;
20477  u16 __cil_tmp88 ;
20478  int __cil_tmp89 ;
20479  int __cil_tmp90 ;
20480  unsigned long __cil_tmp91 ;
20481  unsigned long __cil_tmp92 ;
20482  struct vring_used *__cil_tmp93 ;
20483  unsigned long __cil_tmp94 ;
20484  unsigned long __cil_tmp95 ;
20485  __u16 *__cil_tmp96 ;
20486  struct __large_struct *__cil_tmp97 ;
20487  unsigned long __cil_tmp98 ;
20488  unsigned long __cil_tmp99 ;
20489  u16 __cil_tmp100 ;
20490  int __cil_tmp101 ;
20491  int __cil_tmp102 ;
20492  unsigned long __cil_tmp103 ;
20493  unsigned long __cil_tmp104 ;
20494  struct vring_used *__cil_tmp105 ;
20495  unsigned long __cil_tmp106 ;
20496  unsigned long __cil_tmp107 ;
20497  __u16 *__cil_tmp108 ;
20498  struct __large_struct *__cil_tmp109 ;
20499  unsigned long __cil_tmp110 ;
20500  unsigned long __cil_tmp111 ;
20501  u16 __cil_tmp112 ;
20502  int __cil_tmp113 ;
20503  int __cil_tmp114 ;
20504  unsigned long __cil_tmp115 ;
20505  unsigned long __cil_tmp116 ;
20506  struct vring_used *__cil_tmp117 ;
20507  unsigned long __cil_tmp118 ;
20508  unsigned long __cil_tmp119 ;
20509  __u16 *__cil_tmp120 ;
20510  struct __large_struct *__cil_tmp121 ;
20511  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp122 ;
20512  unsigned int __cil_tmp123 ;
20513  unsigned int __cil_tmp124 ;
20514  int __cil_tmp125 ;
20515  int __cil_tmp126 ;
20516  long __cil_tmp127 ;
20517  unsigned long __cil_tmp128 ;
20518  unsigned long __cil_tmp129 ;
20519  unsigned long __cil_tmp130 ;
20520  unsigned long __cil_tmp131 ;
20521  struct eventfd_ctx *__cil_tmp132 ;
20522  unsigned long __cil_tmp133 ;
20523  unsigned long __cil_tmp134 ;
20524  bool __cil_tmp135 ;
20525  int __cil_tmp136 ;
20526  int __cil_tmp137 ;
20527  long __cil_tmp138 ;
20528  unsigned long __cil_tmp139 ;
20529  unsigned long __cil_tmp140 ;
20530  void *__cil_tmp141 ;
20531  unsigned long __cil_tmp142 ;
20532  unsigned long __cil_tmp143 ;
20533  struct vring_used *__cil_tmp144 ;
20534  void *__cil_tmp145 ;
20535  void *__cil_tmp146 ;
20536  int __cil_tmp147 ;
20537  u64 __cil_tmp148 ;
20538  unsigned long __cil_tmp149 ;
20539  unsigned long __cil_tmp150 ;
20540  u64 __cil_tmp151 ;
20541  u64 __cil_tmp152 ;
20542  u64 __cil_tmp153 ;
20543  unsigned long __cil_tmp154 ;
20544  unsigned long __cil_tmp155 ;
20545  void *__cil_tmp156 ;
20546  struct vring_used *__cil_tmp157 ;
20547  unsigned long __cil_tmp158 ;
20548  unsigned long __cil_tmp159 ;
20549  __u16 *__cil_tmp160 ;
20550  unsigned int __cil_tmp161 ;
20551  u64 __cil_tmp162 ;
20552  unsigned long __cil_tmp163 ;
20553  unsigned long __cil_tmp164 ;
20554  u64 __cil_tmp165 ;
20555  u64 __cil_tmp166 ;
20556  u64 __cil_tmp167 ;
20557  unsigned long __cil_tmp168 ;
20558  unsigned long __cil_tmp169 ;
20559  unsigned long __cil_tmp170 ;
20560  unsigned long __cil_tmp171 ;
20561  struct eventfd_ctx *__cil_tmp172 ;
20562  unsigned long __cil_tmp173 ;
20563  unsigned long __cil_tmp174 ;
20564  unsigned long __cil_tmp175 ;
20565  unsigned long __cil_tmp176 ;
20566  u16 __cil_tmp177 ;
20567  int __cil_tmp178 ;
20568  int __cil_tmp179 ;
20569  unsigned long __cil_tmp180 ;
20570  unsigned long __cil_tmp181 ;
20571  u16 __cil_tmp182 ;
20572  int __cil_tmp183 ;
20573  unsigned long __cil_tmp184 ;
20574  unsigned long __cil_tmp185 ;
20575  u16 __cil_tmp186 ;
20576  int __cil_tmp187 ;
20577  int __cil_tmp188 ;
20578  int __cil_tmp189 ;
20579  int __cil_tmp190 ;
20580  long __cil_tmp191 ;
20581  unsigned long __cil_tmp192 ;
20582  unsigned long __cil_tmp193 ;
20583
20584  {
20585#line 1342
20586  __cil_tmp13 = (unsigned long )vq;
20587#line 1342
20588  __cil_tmp14 = __cil_tmp13 + 80;
20589#line 1342
20590  __cil_tmp15 = *((unsigned int *)__cil_tmp14);
20591#line 1342
20592  __cil_tmp16 = (unsigned long )vq;
20593#line 1342
20594  __cil_tmp17 = __cil_tmp16 + 332;
20595#line 1342
20596  __cil_tmp18 = *((u16 *)__cil_tmp17);
20597#line 1342
20598  __cil_tmp19 = (unsigned int )__cil_tmp18;
20599#line 1342
20600  __cil_tmp20 = __cil_tmp19 % __cil_tmp15;
20601#line 1342
20602  __cil_tmp21 = __cil_tmp20 * 8UL;
20603#line 1342
20604  __cil_tmp22 = 4 + __cil_tmp21;
20605#line 1342
20606  __cil_tmp23 = (unsigned long )vq;
20607#line 1342
20608  __cil_tmp24 = __cil_tmp23 + 104;
20609#line 1342
20610  __cil_tmp25 = *((struct vring_used **)__cil_tmp24);
20611#line 1342
20612  __cil_tmp26 = (unsigned long )__cil_tmp25;
20613#line 1342
20614  __cil_tmp27 = __cil_tmp26 + __cil_tmp22;
20615#line 1342
20616  used = (struct vring_used_elem *)__cil_tmp27;
20617  {
20618#line 1343
20619  while (1) {
20620    while_continue: /* CIL Label */ ;
20621#line 1343
20622    __pu_err = 0;
20623#line 1343
20624    if ((int )4UL == 1) {
20625#line 1343
20626      goto case_1;
20627    } else
20628#line 1343
20629    if ((int )4UL == 2) {
20630#line 1343
20631      goto case_2;
20632    } else
20633#line 1343
20634    if ((int )4UL == 4) {
20635#line 1343
20636      goto case_4;
20637    } else
20638#line 1343
20639    if ((int )4UL == 8) {
20640#line 1343
20641      goto case_8;
20642    } else {
20643      {
20644#line 1343
20645      goto switch_default;
20646#line 1343
20647      if (0) {
20648        case_1: /* CIL Label */ 
20649#line 1343
20650        __cil_tmp28 = (__u32 *)used;
20651#line 1343
20652        __cil_tmp29 = (struct __large_struct *)__cil_tmp28;
20653#line 1343
20654        __asm__  volatile   ("1:\tmov"
20655                             "b"
20656                             " %"
20657                             "b"
20658                             "1,%2\n"
20659                             "2:\n"
20660                             ".section .fixup,\"ax\"\n"
20661                             "3:\tmov %3,%0\n"
20662                             "\tjmp 2b\n"
20663                             ".previous\n"
20664                             " .section __ex_table,\"a\"\n"
20665                             " "
20666                             ".balign 8"
20667                             " "
20668                             "\n"
20669                             " "
20670                             ".quad"
20671                             " "
20672                             "1b"
20673                             ","
20674                             "3b"
20675                             "\n"
20676                             " .previous\n": "=r" (__pu_err): "iq" (head), "m" (*__cil_tmp29),
20677                             "i" (-14), "0" (__pu_err));
20678#line 1343
20679        goto switch_break;
20680        case_2: /* CIL Label */ 
20681#line 1343
20682        __cil_tmp30 = (__u32 *)used;
20683#line 1343
20684        __cil_tmp31 = (struct __large_struct *)__cil_tmp30;
20685#line 1343
20686        __asm__  volatile   ("1:\tmov"
20687                             "w"
20688                             " %"
20689                             "w"
20690                             "1,%2\n"
20691                             "2:\n"
20692                             ".section .fixup,\"ax\"\n"
20693                             "3:\tmov %3,%0\n"
20694                             "\tjmp 2b\n"
20695                             ".previous\n"
20696                             " .section __ex_table,\"a\"\n"
20697                             " "
20698                             ".balign 8"
20699                             " "
20700                             "\n"
20701                             " "
20702                             ".quad"
20703                             " "
20704                             "1b"
20705                             ","
20706                             "3b"
20707                             "\n"
20708                             " .previous\n": "=r" (__pu_err): "ir" (head), "m" (*__cil_tmp31),
20709                             "i" (-14), "0" (__pu_err));
20710#line 1343
20711        goto switch_break;
20712        case_4: /* CIL Label */ 
20713#line 1343
20714        __cil_tmp32 = (__u32 *)used;
20715#line 1343
20716        __cil_tmp33 = (struct __large_struct *)__cil_tmp32;
20717#line 1343
20718        __asm__  volatile   ("1:\tmov"
20719                             "l"
20720                             " %"
20721                             "k"
20722                             "1,%2\n"
20723                             "2:\n"
20724                             ".section .fixup,\"ax\"\n"
20725                             "3:\tmov %3,%0\n"
20726                             "\tjmp 2b\n"
20727                             ".previous\n"
20728                             " .section __ex_table,\"a\"\n"
20729                             " "
20730                             ".balign 8"
20731                             " "
20732                             "\n"
20733                             " "
20734                             ".quad"
20735                             " "
20736                             "1b"
20737                             ","
20738                             "3b"
20739                             "\n"
20740                             " .previous\n": "=r" (__pu_err): "ir" (head), "m" (*__cil_tmp33),
20741                             "i" (-14), "0" (__pu_err));
20742#line 1343
20743        goto switch_break;
20744        case_8: /* CIL Label */ 
20745#line 1343
20746        __cil_tmp34 = (__u32 *)used;
20747#line 1343
20748        __cil_tmp35 = (struct __large_struct *)__cil_tmp34;
20749#line 1343
20750        __asm__  volatile   ("1:\tmov"
20751                             "q"
20752                             " %"
20753                             ""
20754                             "1,%2\n"
20755                             "2:\n"
20756                             ".section .fixup,\"ax\"\n"
20757                             "3:\tmov %3,%0\n"
20758                             "\tjmp 2b\n"
20759                             ".previous\n"
20760                             " .section __ex_table,\"a\"\n"
20761                             " "
20762                             ".balign 8"
20763                             " "
20764                             "\n"
20765                             " "
20766                             ".quad"
20767                             " "
20768                             "1b"
20769                             ","
20770                             "3b"
20771                             "\n"
20772                             " .previous\n": "=r" (__pu_err): "er" (head), "m" (*__cil_tmp35),
20773                             "i" (-14), "0" (__pu_err));
20774#line 1343
20775        goto switch_break;
20776        switch_default: /* CIL Label */ 
20777        {
20778#line 1343
20779        __put_user_bad();
20780        }
20781      } else {
20782        switch_break: /* CIL Label */ ;
20783      }
20784      }
20785    }
20786#line 1343
20787    goto while_break;
20788  }
20789  while_break: /* CIL Label */ ;
20790  }
20791#line 1343
20792  if (__pu_err) {
20793    {
20794#line 1344
20795    while (1) {
20796      while_continue___0: /* CIL Label */ ;
20797      {
20798#line 1344
20799      while (1) {
20800        while_continue___1: /* CIL Label */ ;
20801        {
20802#line 1344
20803        __cil_tmp36 = & descriptor___17;
20804#line 1344
20805        __cil_tmp37 = __cil_tmp36->flags;
20806#line 1344
20807        __cil_tmp38 = __cil_tmp37 & 1U;
20808#line 1344
20809        __cil_tmp39 = ! __cil_tmp38;
20810#line 1344
20811        __cil_tmp40 = ! __cil_tmp39;
20812#line 1344
20813        __cil_tmp41 = (long )__cil_tmp40;
20814#line 1344
20815        tmp___7 = __builtin_expect(__cil_tmp41, 0L);
20816        }
20817#line 1344
20818        if (tmp___7) {
20819          {
20820#line 1344
20821          __dynamic_pr_debug(& descriptor___17, "Failed to write used id");
20822          }
20823        } else {
20824
20825        }
20826#line 1344
20827        goto while_break___1;
20828      }
20829      while_break___1: /* CIL Label */ ;
20830      }
20831      {
20832#line 1344
20833      __cil_tmp42 = (unsigned long )vq;
20834#line 1344
20835      __cil_tmp43 = __cil_tmp42 + 144;
20836#line 1344
20837      if (*((struct eventfd_ctx **)__cil_tmp43)) {
20838        {
20839#line 1344
20840        __cil_tmp44 = (unsigned long )vq;
20841#line 1344
20842        __cil_tmp45 = __cil_tmp44 + 144;
20843#line 1344
20844        __cil_tmp46 = *((struct eventfd_ctx **)__cil_tmp45);
20845#line 1344
20846        eventfd_signal(__cil_tmp46, 1);
20847        }
20848      } else {
20849
20850      }
20851      }
20852#line 1344
20853      goto while_break___0;
20854    }
20855    while_break___0: /* CIL Label */ ;
20856    }
20857#line 1345
20858    return (-14);
20859  } else {
20860
20861  }
20862  {
20863#line 1347
20864  while (1) {
20865    while_continue___2: /* CIL Label */ ;
20866#line 1347
20867    __pu_err___0 = 0;
20868#line 1347
20869    if ((int )4UL == 1) {
20870#line 1347
20871      goto case_1___0;
20872    } else
20873#line 1347
20874    if ((int )4UL == 2) {
20875#line 1347
20876      goto case_2___0;
20877    } else
20878#line 1347
20879    if ((int )4UL == 4) {
20880#line 1347
20881      goto case_4___0;
20882    } else
20883#line 1347
20884    if ((int )4UL == 8) {
20885#line 1347
20886      goto case_8___0;
20887    } else {
20888      {
20889#line 1347
20890      goto switch_default___0;
20891#line 1347
20892      if (0) {
20893        case_1___0: /* CIL Label */ 
20894#line 1347
20895        __cil_tmp47 = (unsigned long )used;
20896#line 1347
20897        __cil_tmp48 = __cil_tmp47 + 4;
20898#line 1347
20899        __cil_tmp49 = (__u32 *)__cil_tmp48;
20900#line 1347
20901        __cil_tmp50 = (struct __large_struct *)__cil_tmp49;
20902#line 1347
20903        __asm__  volatile   ("1:\tmov"
20904                             "b"
20905                             " %"
20906                             "b"
20907                             "1,%2\n"
20908                             "2:\n"
20909                             ".section .fixup,\"ax\"\n"
20910                             "3:\tmov %3,%0\n"
20911                             "\tjmp 2b\n"
20912                             ".previous\n"
20913                             " .section __ex_table,\"a\"\n"
20914                             " "
20915                             ".balign 8"
20916                             " "
20917                             "\n"
20918                             " "
20919                             ".quad"
20920                             " "
20921                             "1b"
20922                             ","
20923                             "3b"
20924                             "\n"
20925                             " .previous\n": "=r" (__pu_err___0): "iq" ((__u32 )len),
20926                             "m" (*__cil_tmp50), "i" (-14), "0" (__pu_err___0));
20927#line 1347
20928        goto switch_break___0;
20929        case_2___0: /* CIL Label */ 
20930#line 1347
20931        __cil_tmp51 = (unsigned long )used;
20932#line 1347
20933        __cil_tmp52 = __cil_tmp51 + 4;
20934#line 1347
20935        __cil_tmp53 = (__u32 *)__cil_tmp52;
20936#line 1347
20937        __cil_tmp54 = (struct __large_struct *)__cil_tmp53;
20938#line 1347
20939        __asm__  volatile   ("1:\tmov"
20940                             "w"
20941                             " %"
20942                             "w"
20943                             "1,%2\n"
20944                             "2:\n"
20945                             ".section .fixup,\"ax\"\n"
20946                             "3:\tmov %3,%0\n"
20947                             "\tjmp 2b\n"
20948                             ".previous\n"
20949                             " .section __ex_table,\"a\"\n"
20950                             " "
20951                             ".balign 8"
20952                             " "
20953                             "\n"
20954                             " "
20955                             ".quad"
20956                             " "
20957                             "1b"
20958                             ","
20959                             "3b"
20960                             "\n"
20961                             " .previous\n": "=r" (__pu_err___0): "ir" ((__u32 )len),
20962                             "m" (*__cil_tmp54), "i" (-14), "0" (__pu_err___0));
20963#line 1347
20964        goto switch_break___0;
20965        case_4___0: /* CIL Label */ 
20966#line 1347
20967        __cil_tmp55 = (unsigned long )used;
20968#line 1347
20969        __cil_tmp56 = __cil_tmp55 + 4;
20970#line 1347
20971        __cil_tmp57 = (__u32 *)__cil_tmp56;
20972#line 1347
20973        __cil_tmp58 = (struct __large_struct *)__cil_tmp57;
20974#line 1347
20975        __asm__  volatile   ("1:\tmov"
20976                             "l"
20977                             " %"
20978                             "k"
20979                             "1,%2\n"
20980                             "2:\n"
20981                             ".section .fixup,\"ax\"\n"
20982                             "3:\tmov %3,%0\n"
20983                             "\tjmp 2b\n"
20984                             ".previous\n"
20985                             " .section __ex_table,\"a\"\n"
20986                             " "
20987                             ".balign 8"
20988                             " "
20989                             "\n"
20990                             " "
20991                             ".quad"
20992                             " "
20993                             "1b"
20994                             ","
20995                             "3b"
20996                             "\n"
20997                             " .previous\n": "=r" (__pu_err___0): "ir" ((__u32 )len),
20998                             "m" (*__cil_tmp58), "i" (-14), "0" (__pu_err___0));
20999#line 1347
21000        goto switch_break___0;
21001        case_8___0: /* CIL Label */ 
21002#line 1347
21003        __cil_tmp59 = (unsigned long )used;
21004#line 1347
21005        __cil_tmp60 = __cil_tmp59 + 4;
21006#line 1347
21007        __cil_tmp61 = (__u32 *)__cil_tmp60;
21008#line 1347
21009        __cil_tmp62 = (struct __large_struct *)__cil_tmp61;
21010#line 1347
21011        __asm__  volatile   ("1:\tmov"
21012                             "q"
21013                             " %"
21014                             ""
21015                             "1,%2\n"
21016                             "2:\n"
21017                             ".section .fixup,\"ax\"\n"
21018                             "3:\tmov %3,%0\n"
21019                             "\tjmp 2b\n"
21020                             ".previous\n"
21021                             " .section __ex_table,\"a\"\n"
21022                             " "
21023                             ".balign 8"
21024                             " "
21025                             "\n"
21026                             " "
21027                             ".quad"
21028                             " "
21029                             "1b"
21030                             ","
21031                             "3b"
21032                             "\n"
21033                             " .previous\n": "=r" (__pu_err___0): "er" ((__u32 )len),
21034                             "m" (*__cil_tmp62), "i" (-14), "0" (__pu_err___0));
21035#line 1347
21036        goto switch_break___0;
21037        switch_default___0: /* CIL Label */ 
21038        {
21039#line 1347
21040        __put_user_bad();
21041        }
21042      } else {
21043        switch_break___0: /* CIL Label */ ;
21044      }
21045      }
21046    }
21047#line 1347
21048    goto while_break___2;
21049  }
21050  while_break___2: /* CIL Label */ ;
21051  }
21052#line 1347
21053  if (__pu_err___0) {
21054    {
21055#line 1348
21056    while (1) {
21057      while_continue___3: /* CIL Label */ ;
21058      {
21059#line 1348
21060      while (1) {
21061        while_continue___4: /* CIL Label */ ;
21062        {
21063#line 1348
21064        __cil_tmp63 = & descriptor___18;
21065#line 1348
21066        __cil_tmp64 = __cil_tmp63->flags;
21067#line 1348
21068        __cil_tmp65 = __cil_tmp64 & 1U;
21069#line 1348
21070        __cil_tmp66 = ! __cil_tmp65;
21071#line 1348
21072        __cil_tmp67 = ! __cil_tmp66;
21073#line 1348
21074        __cil_tmp68 = (long )__cil_tmp67;
21075#line 1348
21076        tmp___8 = __builtin_expect(__cil_tmp68, 0L);
21077        }
21078#line 1348
21079        if (tmp___8) {
21080          {
21081#line 1348
21082          __dynamic_pr_debug(& descriptor___18, "Failed to write used len");
21083          }
21084        } else {
21085
21086        }
21087#line 1348
21088        goto while_break___4;
21089      }
21090      while_break___4: /* CIL Label */ ;
21091      }
21092      {
21093#line 1348
21094      __cil_tmp69 = (unsigned long )vq;
21095#line 1348
21096      __cil_tmp70 = __cil_tmp69 + 144;
21097#line 1348
21098      if (*((struct eventfd_ctx **)__cil_tmp70)) {
21099        {
21100#line 1348
21101        __cil_tmp71 = (unsigned long )vq;
21102#line 1348
21103        __cil_tmp72 = __cil_tmp71 + 144;
21104#line 1348
21105        __cil_tmp73 = *((struct eventfd_ctx **)__cil_tmp72);
21106#line 1348
21107        eventfd_signal(__cil_tmp73, 1);
21108        }
21109      } else {
21110
21111      }
21112      }
21113#line 1348
21114      goto while_break___3;
21115    }
21116    while_break___3: /* CIL Label */ ;
21117    }
21118#line 1349
21119    return (-14);
21120  } else {
21121
21122  }
21123#line 1352
21124  __asm__  volatile   ("": : : "memory");
21125  {
21126#line 1353
21127  while (1) {
21128    while_continue___5: /* CIL Label */ ;
21129#line 1353
21130    __pu_err___1 = 0;
21131#line 1353
21132    if ((int )2UL == 1) {
21133#line 1353
21134      goto case_1___1;
21135    } else
21136#line 1353
21137    if ((int )2UL == 2) {
21138#line 1353
21139      goto case_2___1;
21140    } else
21141#line 1353
21142    if ((int )2UL == 4) {
21143#line 1353
21144      goto case_4___1;
21145    } else
21146#line 1353
21147    if ((int )2UL == 8) {
21148#line 1353
21149      goto case_8___1;
21150    } else {
21151      {
21152#line 1353
21153      goto switch_default___1;
21154#line 1353
21155      if (0) {
21156        case_1___1: /* CIL Label */ 
21157#line 1353
21158        __cil_tmp74 = (unsigned long )vq;
21159#line 1353
21160        __cil_tmp75 = __cil_tmp74 + 332;
21161#line 1353
21162        __cil_tmp76 = *((u16 *)__cil_tmp75);
21163#line 1353
21164        __cil_tmp77 = (int )__cil_tmp76;
21165#line 1353
21166        __cil_tmp78 = __cil_tmp77 + 1;
21167#line 1353
21168        __cil_tmp79 = (unsigned long )vq;
21169#line 1353
21170        __cil_tmp80 = __cil_tmp79 + 104;
21171#line 1353
21172        __cil_tmp81 = *((struct vring_used **)__cil_tmp80);
21173#line 1353
21174        __cil_tmp82 = (unsigned long )__cil_tmp81;
21175#line 1353
21176        __cil_tmp83 = __cil_tmp82 + 2;
21177#line 1353
21178        __cil_tmp84 = (__u16 *)__cil_tmp83;
21179#line 1353
21180        __cil_tmp85 = (struct __large_struct *)__cil_tmp84;
21181#line 1353
21182        __asm__  volatile   ("1:\tmov"
21183                             "b"
21184                             " %"
21185                             "b"
21186                             "1,%2\n"
21187                             "2:\n"
21188                             ".section .fixup,\"ax\"\n"
21189                             "3:\tmov %3,%0\n"
21190                             "\tjmp 2b\n"
21191                             ".previous\n"
21192                             " .section __ex_table,\"a\"\n"
21193                             " "
21194                             ".balign 8"
21195                             " "
21196                             "\n"
21197                             " "
21198                             ".quad"
21199                             " "
21200                             "1b"
21201                             ","
21202                             "3b"
21203                             "\n"
21204                             " .previous\n": "=r" (__pu_err___1): "iq" ((__u16 )__cil_tmp78),
21205                             "m" (*__cil_tmp85), "i" (-14), "0" (__pu_err___1));
21206#line 1353
21207        goto switch_break___1;
21208        case_2___1: /* CIL Label */ 
21209#line 1353
21210        __cil_tmp86 = (unsigned long )vq;
21211#line 1353
21212        __cil_tmp87 = __cil_tmp86 + 332;
21213#line 1353
21214        __cil_tmp88 = *((u16 *)__cil_tmp87);
21215#line 1353
21216        __cil_tmp89 = (int )__cil_tmp88;
21217#line 1353
21218        __cil_tmp90 = __cil_tmp89 + 1;
21219#line 1353
21220        __cil_tmp91 = (unsigned long )vq;
21221#line 1353
21222        __cil_tmp92 = __cil_tmp91 + 104;
21223#line 1353
21224        __cil_tmp93 = *((struct vring_used **)__cil_tmp92);
21225#line 1353
21226        __cil_tmp94 = (unsigned long )__cil_tmp93;
21227#line 1353
21228        __cil_tmp95 = __cil_tmp94 + 2;
21229#line 1353
21230        __cil_tmp96 = (__u16 *)__cil_tmp95;
21231#line 1353
21232        __cil_tmp97 = (struct __large_struct *)__cil_tmp96;
21233#line 1353
21234        __asm__  volatile   ("1:\tmov"
21235                             "w"
21236                             " %"
21237                             "w"
21238                             "1,%2\n"
21239                             "2:\n"
21240                             ".section .fixup,\"ax\"\n"
21241                             "3:\tmov %3,%0\n"
21242                             "\tjmp 2b\n"
21243                             ".previous\n"
21244                             " .section __ex_table,\"a\"\n"
21245                             " "
21246                             ".balign 8"
21247                             " "
21248                             "\n"
21249                             " "
21250                             ".quad"
21251                             " "
21252                             "1b"
21253                             ","
21254                             "3b"
21255                             "\n"
21256                             " .previous\n": "=r" (__pu_err___1): "ir" ((__u16 )__cil_tmp90),
21257                             "m" (*__cil_tmp97), "i" (-14), "0" (__pu_err___1));
21258#line 1353
21259        goto switch_break___1;
21260        case_4___1: /* CIL Label */ 
21261#line 1353
21262        __cil_tmp98 = (unsigned long )vq;
21263#line 1353
21264        __cil_tmp99 = __cil_tmp98 + 332;
21265#line 1353
21266        __cil_tmp100 = *((u16 *)__cil_tmp99);
21267#line 1353
21268        __cil_tmp101 = (int )__cil_tmp100;
21269#line 1353
21270        __cil_tmp102 = __cil_tmp101 + 1;
21271#line 1353
21272        __cil_tmp103 = (unsigned long )vq;
21273#line 1353
21274        __cil_tmp104 = __cil_tmp103 + 104;
21275#line 1353
21276        __cil_tmp105 = *((struct vring_used **)__cil_tmp104);
21277#line 1353
21278        __cil_tmp106 = (unsigned long )__cil_tmp105;
21279#line 1353
21280        __cil_tmp107 = __cil_tmp106 + 2;
21281#line 1353
21282        __cil_tmp108 = (__u16 *)__cil_tmp107;
21283#line 1353
21284        __cil_tmp109 = (struct __large_struct *)__cil_tmp108;
21285#line 1353
21286        __asm__  volatile   ("1:\tmov"
21287                             "l"
21288                             " %"
21289                             "k"
21290                             "1,%2\n"
21291                             "2:\n"
21292                             ".section .fixup,\"ax\"\n"
21293                             "3:\tmov %3,%0\n"
21294                             "\tjmp 2b\n"
21295                             ".previous\n"
21296                             " .section __ex_table,\"a\"\n"
21297                             " "
21298                             ".balign 8"
21299                             " "
21300                             "\n"
21301                             " "
21302                             ".quad"
21303                             " "
21304                             "1b"
21305                             ","
21306                             "3b"
21307                             "\n"
21308                             " .previous\n": "=r" (__pu_err___1): "ir" ((__u16 )__cil_tmp102),
21309                             "m" (*__cil_tmp109), "i" (-14), "0" (__pu_err___1));
21310#line 1353
21311        goto switch_break___1;
21312        case_8___1: /* CIL Label */ 
21313#line 1353
21314        __cil_tmp110 = (unsigned long )vq;
21315#line 1353
21316        __cil_tmp111 = __cil_tmp110 + 332;
21317#line 1353
21318        __cil_tmp112 = *((u16 *)__cil_tmp111);
21319#line 1353
21320        __cil_tmp113 = (int )__cil_tmp112;
21321#line 1353
21322        __cil_tmp114 = __cil_tmp113 + 1;
21323#line 1353
21324        __cil_tmp115 = (unsigned long )vq;
21325#line 1353
21326        __cil_tmp116 = __cil_tmp115 + 104;
21327#line 1353
21328        __cil_tmp117 = *((struct vring_used **)__cil_tmp116);
21329#line 1353
21330        __cil_tmp118 = (unsigned long )__cil_tmp117;
21331#line 1353
21332        __cil_tmp119 = __cil_tmp118 + 2;
21333#line 1353
21334        __cil_tmp120 = (__u16 *)__cil_tmp119;
21335#line 1353
21336        __cil_tmp121 = (struct __large_struct *)__cil_tmp120;
21337#line 1353
21338        __asm__  volatile   ("1:\tmov"
21339                             "q"
21340                             " %"
21341                             ""
21342                             "1,%2\n"
21343                             "2:\n"
21344                             ".section .fixup,\"ax\"\n"
21345                             "3:\tmov %3,%0\n"
21346                             "\tjmp 2b\n"
21347                             ".previous\n"
21348                             " .section __ex_table,\"a\"\n"
21349                             " "
21350                             ".balign 8"
21351                             " "
21352                             "\n"
21353                             " "
21354                             ".quad"
21355                             " "
21356                             "1b"
21357                             ","
21358                             "3b"
21359                             "\n"
21360                             " .previous\n": "=r" (__pu_err___1): "er" ((__u16 )__cil_tmp114),
21361                             "m" (*__cil_tmp121), "i" (-14), "0" (__pu_err___1));
21362#line 1353
21363        goto switch_break___1;
21364        switch_default___1: /* CIL Label */ 
21365        {
21366#line 1353
21367        __put_user_bad();
21368        }
21369      } else {
21370        switch_break___1: /* CIL Label */ ;
21371      }
21372      }
21373    }
21374#line 1353
21375    goto while_break___5;
21376  }
21377  while_break___5: /* CIL Label */ ;
21378  }
21379#line 1353
21380  if (__pu_err___1) {
21381    {
21382#line 1354
21383    while (1) {
21384      while_continue___6: /* CIL Label */ ;
21385      {
21386#line 1354
21387      while (1) {
21388        while_continue___7: /* CIL Label */ ;
21389        {
21390#line 1354
21391        __cil_tmp122 = & descriptor___19;
21392#line 1354
21393        __cil_tmp123 = __cil_tmp122->flags;
21394#line 1354
21395        __cil_tmp124 = __cil_tmp123 & 1U;
21396#line 1354
21397        __cil_tmp125 = ! __cil_tmp124;
21398#line 1354
21399        __cil_tmp126 = ! __cil_tmp125;
21400#line 1354
21401        __cil_tmp127 = (long )__cil_tmp126;
21402#line 1354
21403        tmp___9 = __builtin_expect(__cil_tmp127, 0L);
21404        }
21405#line 1354
21406        if (tmp___9) {
21407          {
21408#line 1354
21409          __dynamic_pr_debug(& descriptor___19, "Failed to increment used idx");
21410          }
21411        } else {
21412
21413        }
21414#line 1354
21415        goto while_break___7;
21416      }
21417      while_break___7: /* CIL Label */ ;
21418      }
21419      {
21420#line 1354
21421      __cil_tmp128 = (unsigned long )vq;
21422#line 1354
21423      __cil_tmp129 = __cil_tmp128 + 144;
21424#line 1354
21425      if (*((struct eventfd_ctx **)__cil_tmp129)) {
21426        {
21427#line 1354
21428        __cil_tmp130 = (unsigned long )vq;
21429#line 1354
21430        __cil_tmp131 = __cil_tmp130 + 144;
21431#line 1354
21432        __cil_tmp132 = *((struct eventfd_ctx **)__cil_tmp131);
21433#line 1354
21434        eventfd_signal(__cil_tmp132, 1);
21435        }
21436      } else {
21437
21438      }
21439      }
21440#line 1354
21441      goto while_break___6;
21442    }
21443    while_break___6: /* CIL Label */ ;
21444    }
21445#line 1355
21446    return (-14);
21447  } else {
21448
21449  }
21450  {
21451#line 1357
21452  __cil_tmp133 = (unsigned long )vq;
21453#line 1357
21454  __cil_tmp134 = __cil_tmp133 + 339;
21455#line 1357
21456  __cil_tmp135 = *((bool *)__cil_tmp134);
21457#line 1357
21458  __cil_tmp136 = ! __cil_tmp135;
21459#line 1357
21460  __cil_tmp137 = ! __cil_tmp136;
21461#line 1357
21462  __cil_tmp138 = (long )__cil_tmp137;
21463#line 1357
21464  tmp___10 = __builtin_expect(__cil_tmp138, 0L);
21465  }
21466#line 1357
21467  if (tmp___10) {
21468    {
21469#line 1359
21470    __asm__  volatile   ("": : : "memory");
21471#line 1361
21472    __cil_tmp139 = (unsigned long )vq;
21473#line 1361
21474    __cil_tmp140 = __cil_tmp139 + 16968;
21475#line 1361
21476    __cil_tmp141 = *((void **)__cil_tmp140);
21477#line 1361
21478    __cil_tmp142 = (unsigned long )vq;
21479#line 1361
21480    __cil_tmp143 = __cil_tmp142 + 104;
21481#line 1361
21482    __cil_tmp144 = *((struct vring_used **)__cil_tmp143);
21483#line 1361
21484    __cil_tmp145 = (void *)__cil_tmp144;
21485#line 1361
21486    __cil_tmp146 = (void *)used;
21487#line 1361
21488    __cil_tmp147 = __cil_tmp146 - __cil_tmp145;
21489#line 1361
21490    __cil_tmp148 = (u64 )__cil_tmp147;
21491#line 1361
21492    __cil_tmp149 = (unsigned long )vq;
21493#line 1361
21494    __cil_tmp150 = __cil_tmp149 + 344;
21495#line 1361
21496    __cil_tmp151 = *((u64 *)__cil_tmp150);
21497#line 1361
21498    __cil_tmp152 = __cil_tmp151 + __cil_tmp148;
21499#line 1361
21500    __cil_tmp153 = (u64 )8UL;
21501#line 1361
21502    log_write(__cil_tmp141, __cil_tmp152, __cil_tmp153);
21503#line 1366
21504    __cil_tmp154 = (unsigned long )vq;
21505#line 1366
21506    __cil_tmp155 = __cil_tmp154 + 16968;
21507#line 1366
21508    __cil_tmp156 = *((void **)__cil_tmp155);
21509#line 1366
21510    __cil_tmp157 = (struct vring_used *)0;
21511#line 1366
21512    __cil_tmp158 = (unsigned long )__cil_tmp157;
21513#line 1366
21514    __cil_tmp159 = __cil_tmp158 + 2;
21515#line 1366
21516    __cil_tmp160 = (__u16 *)__cil_tmp159;
21517#line 1366
21518    __cil_tmp161 = (unsigned int )__cil_tmp160;
21519#line 1366
21520    __cil_tmp162 = (u64 )__cil_tmp161;
21521#line 1366
21522    __cil_tmp163 = (unsigned long )vq;
21523#line 1366
21524    __cil_tmp164 = __cil_tmp163 + 344;
21525#line 1366
21526    __cil_tmp165 = *((u64 *)__cil_tmp164);
21527#line 1366
21528    __cil_tmp166 = __cil_tmp165 + __cil_tmp162;
21529#line 1366
21530    __cil_tmp167 = (u64 )2UL;
21531#line 1366
21532    log_write(__cil_tmp156, __cil_tmp166, __cil_tmp167);
21533    }
21534    {
21535#line 1369
21536    __cil_tmp168 = (unsigned long )vq;
21537#line 1369
21538    __cil_tmp169 = __cil_tmp168 + 152;
21539#line 1369
21540    if (*((struct eventfd_ctx **)__cil_tmp169)) {
21541      {
21542#line 1370
21543      __cil_tmp170 = (unsigned long )vq;
21544#line 1370
21545      __cil_tmp171 = __cil_tmp170 + 152;
21546#line 1370
21547      __cil_tmp172 = *((struct eventfd_ctx **)__cil_tmp171);
21548#line 1370
21549      eventfd_signal(__cil_tmp172, 1);
21550      }
21551    } else {
21552
21553    }
21554    }
21555  } else {
21556
21557  }
21558  {
21559#line 1372
21560  __cil_tmp173 = (unsigned long )vq;
21561#line 1372
21562  __cil_tmp174 = __cil_tmp173 + 332;
21563#line 1372
21564  __cil_tmp175 = (unsigned long )vq;
21565#line 1372
21566  __cil_tmp176 = __cil_tmp175 + 332;
21567#line 1372
21568  __cil_tmp177 = *((u16 *)__cil_tmp176);
21569#line 1372
21570  __cil_tmp178 = (int )__cil_tmp177;
21571#line 1372
21572  __cil_tmp179 = __cil_tmp178 + 1;
21573#line 1372
21574  *((u16 *)__cil_tmp174) = (u16 )__cil_tmp179;
21575#line 1377
21576  __cil_tmp180 = (unsigned long )vq;
21577#line 1377
21578  __cil_tmp181 = __cil_tmp180 + 336;
21579#line 1377
21580  __cil_tmp182 = *((u16 *)__cil_tmp181);
21581#line 1377
21582  __cil_tmp183 = (int )__cil_tmp182;
21583#line 1377
21584  __cil_tmp184 = (unsigned long )vq;
21585#line 1377
21586  __cil_tmp185 = __cil_tmp184 + 332;
21587#line 1377
21588  __cil_tmp186 = *((u16 *)__cil_tmp185);
21589#line 1377
21590  __cil_tmp187 = (int )__cil_tmp186;
21591#line 1377
21592  __cil_tmp188 = __cil_tmp187 == __cil_tmp183;
21593#line 1377
21594  __cil_tmp189 = ! __cil_tmp188;
21595#line 1377
21596  __cil_tmp190 = ! __cil_tmp189;
21597#line 1377
21598  __cil_tmp191 = (long )__cil_tmp190;
21599#line 1377
21600  tmp___11 = __builtin_expect(__cil_tmp191, 0L);
21601  }
21602#line 1377
21603  if (tmp___11) {
21604#line 1378
21605    __cil_tmp192 = (unsigned long )vq;
21606#line 1378
21607    __cil_tmp193 = __cil_tmp192 + 338;
21608#line 1378
21609    *((bool *)__cil_tmp193) = (bool )0;
21610  } else {
21611
21612  }
21613#line 1379
21614  return (0);
21615}
21616}
21617#line 1393
21618static int __vhost_add_used_n(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
21619                              unsigned int count ) ;
21620#line 1393 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
21621static struct _ddebug  __attribute__((__aligned__(8))) descriptor___20  __attribute__((__used__,
21622__section__("__verbose")))  =    {"vhost_net", "__vhost_add_used_n", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
21623    "Failed to write used", 1393U, 0U};
21624#line 1382 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
21625static int __vhost_add_used_n(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
21626                              unsigned int count ) 
21627{ struct vring_used_elem *used ;
21628  u16 old ;
21629  u16 new ;
21630  int start ;
21631  long tmp___7 ;
21632  int tmp___8 ;
21633  long tmp___9 ;
21634  u16 tmp___10 ;
21635  long tmp___11 ;
21636  unsigned long __cil_tmp13 ;
21637  unsigned long __cil_tmp14 ;
21638  unsigned int __cil_tmp15 ;
21639  unsigned long __cil_tmp16 ;
21640  unsigned long __cil_tmp17 ;
21641  u16 __cil_tmp18 ;
21642  unsigned int __cil_tmp19 ;
21643  unsigned int __cil_tmp20 ;
21644  unsigned long __cil_tmp21 ;
21645  unsigned long __cil_tmp22 ;
21646  unsigned long __cil_tmp23 ;
21647  unsigned long __cil_tmp24 ;
21648  struct vring_used *__cil_tmp25 ;
21649  unsigned long __cil_tmp26 ;
21650  unsigned long __cil_tmp27 ;
21651  struct vring_used_elem *__cil_tmp28 ;
21652  void *__cil_tmp29 ;
21653  void    *__cil_tmp30 ;
21654  unsigned long __cil_tmp31 ;
21655  unsigned long __cil_tmp32 ;
21656  unsigned int __cil_tmp33 ;
21657  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp34 ;
21658  unsigned int __cil_tmp35 ;
21659  unsigned int __cil_tmp36 ;
21660  int __cil_tmp37 ;
21661  int __cil_tmp38 ;
21662  long __cil_tmp39 ;
21663  unsigned long __cil_tmp40 ;
21664  unsigned long __cil_tmp41 ;
21665  unsigned long __cil_tmp42 ;
21666  unsigned long __cil_tmp43 ;
21667  struct eventfd_ctx *__cil_tmp44 ;
21668  unsigned long __cil_tmp45 ;
21669  unsigned long __cil_tmp46 ;
21670  bool __cil_tmp47 ;
21671  int __cil_tmp48 ;
21672  int __cil_tmp49 ;
21673  long __cil_tmp50 ;
21674  unsigned long __cil_tmp51 ;
21675  unsigned long __cil_tmp52 ;
21676  void *__cil_tmp53 ;
21677  unsigned long __cil_tmp54 ;
21678  unsigned long __cil_tmp55 ;
21679  struct vring_used *__cil_tmp56 ;
21680  void *__cil_tmp57 ;
21681  void *__cil_tmp58 ;
21682  int __cil_tmp59 ;
21683  u64 __cil_tmp60 ;
21684  unsigned long __cil_tmp61 ;
21685  unsigned long __cil_tmp62 ;
21686  u64 __cil_tmp63 ;
21687  u64 __cil_tmp64 ;
21688  unsigned long __cil_tmp65 ;
21689  unsigned long __cil_tmp66 ;
21690  u64 __cil_tmp67 ;
21691  unsigned long __cil_tmp68 ;
21692  unsigned long __cil_tmp69 ;
21693  unsigned long __cil_tmp70 ;
21694  unsigned long __cil_tmp71 ;
21695  u16 __cil_tmp72 ;
21696  unsigned int __cil_tmp73 ;
21697  unsigned int __cil_tmp74 ;
21698  unsigned long __cil_tmp75 ;
21699  unsigned long __cil_tmp76 ;
21700  int __cil_tmp77 ;
21701  int __cil_tmp78 ;
21702  int __cil_tmp79 ;
21703  u16 __cil_tmp80 ;
21704  int __cil_tmp81 ;
21705  unsigned long __cil_tmp82 ;
21706  unsigned long __cil_tmp83 ;
21707  u16 __cil_tmp84 ;
21708  int __cil_tmp85 ;
21709  int __cil_tmp86 ;
21710  int __cil_tmp87 ;
21711  u16 __cil_tmp88 ;
21712  int __cil_tmp89 ;
21713  int __cil_tmp90 ;
21714  int __cil_tmp91 ;
21715  int __cil_tmp92 ;
21716  long __cil_tmp93 ;
21717  unsigned long __cil_tmp94 ;
21718  unsigned long __cil_tmp95 ;
21719
21720  {
21721  {
21722#line 1390
21723  __cil_tmp13 = (unsigned long )vq;
21724#line 1390
21725  __cil_tmp14 = __cil_tmp13 + 80;
21726#line 1390
21727  __cil_tmp15 = *((unsigned int *)__cil_tmp14);
21728#line 1390
21729  __cil_tmp16 = (unsigned long )vq;
21730#line 1390
21731  __cil_tmp17 = __cil_tmp16 + 332;
21732#line 1390
21733  __cil_tmp18 = *((u16 *)__cil_tmp17);
21734#line 1390
21735  __cil_tmp19 = (unsigned int )__cil_tmp18;
21736#line 1390
21737  __cil_tmp20 = __cil_tmp19 % __cil_tmp15;
21738#line 1390
21739  start = (int )__cil_tmp20;
21740#line 1391
21741  __cil_tmp21 = 0 * 8UL;
21742#line 1391
21743  __cil_tmp22 = 4 + __cil_tmp21;
21744#line 1391
21745  __cil_tmp23 = (unsigned long )vq;
21746#line 1391
21747  __cil_tmp24 = __cil_tmp23 + 104;
21748#line 1391
21749  __cil_tmp25 = *((struct vring_used **)__cil_tmp24);
21750#line 1391
21751  __cil_tmp26 = (unsigned long )__cil_tmp25;
21752#line 1391
21753  __cil_tmp27 = __cil_tmp26 + __cil_tmp22;
21754#line 1391
21755  __cil_tmp28 = (struct vring_used_elem *)__cil_tmp27;
21756#line 1391
21757  used = __cil_tmp28 + start;
21758#line 1392
21759  __cil_tmp29 = (void *)used;
21760#line 1392
21761  __cil_tmp30 = (void    *)heads;
21762#line 1392
21763  __cil_tmp31 = (unsigned long )count;
21764#line 1392
21765  __cil_tmp32 = __cil_tmp31 * 8UL;
21766#line 1392
21767  __cil_tmp33 = (unsigned int )__cil_tmp32;
21768#line 1392
21769  tmp___8 = (int )__copy_to_user(__cil_tmp29, __cil_tmp30, __cil_tmp33);
21770  }
21771#line 1392
21772  if (tmp___8) {
21773    {
21774#line 1393
21775    while (1) {
21776      while_continue: /* CIL Label */ ;
21777      {
21778#line 1393
21779      while (1) {
21780        while_continue___0: /* CIL Label */ ;
21781        {
21782#line 1393
21783        __cil_tmp34 = & descriptor___20;
21784#line 1393
21785        __cil_tmp35 = __cil_tmp34->flags;
21786#line 1393
21787        __cil_tmp36 = __cil_tmp35 & 1U;
21788#line 1393
21789        __cil_tmp37 = ! __cil_tmp36;
21790#line 1393
21791        __cil_tmp38 = ! __cil_tmp37;
21792#line 1393
21793        __cil_tmp39 = (long )__cil_tmp38;
21794#line 1393
21795        tmp___7 = __builtin_expect(__cil_tmp39, 0L);
21796        }
21797#line 1393
21798        if (tmp___7) {
21799          {
21800#line 1393
21801          __dynamic_pr_debug(& descriptor___20, "Failed to write used");
21802          }
21803        } else {
21804
21805        }
21806#line 1393
21807        goto while_break___0;
21808      }
21809      while_break___0: /* CIL Label */ ;
21810      }
21811      {
21812#line 1393
21813      __cil_tmp40 = (unsigned long )vq;
21814#line 1393
21815      __cil_tmp41 = __cil_tmp40 + 144;
21816#line 1393
21817      if (*((struct eventfd_ctx **)__cil_tmp41)) {
21818        {
21819#line 1393
21820        __cil_tmp42 = (unsigned long )vq;
21821#line 1393
21822        __cil_tmp43 = __cil_tmp42 + 144;
21823#line 1393
21824        __cil_tmp44 = *((struct eventfd_ctx **)__cil_tmp43);
21825#line 1393
21826        eventfd_signal(__cil_tmp44, 1);
21827        }
21828      } else {
21829
21830      }
21831      }
21832#line 1393
21833      goto while_break;
21834    }
21835    while_break: /* CIL Label */ ;
21836    }
21837#line 1394
21838    return (-14);
21839  } else {
21840
21841  }
21842  {
21843#line 1396
21844  __cil_tmp45 = (unsigned long )vq;
21845#line 1396
21846  __cil_tmp46 = __cil_tmp45 + 339;
21847#line 1396
21848  __cil_tmp47 = *((bool *)__cil_tmp46);
21849#line 1396
21850  __cil_tmp48 = ! __cil_tmp47;
21851#line 1396
21852  __cil_tmp49 = ! __cil_tmp48;
21853#line 1396
21854  __cil_tmp50 = (long )__cil_tmp49;
21855#line 1396
21856  tmp___9 = __builtin_expect(__cil_tmp50, 0L);
21857  }
21858#line 1396
21859  if (tmp___9) {
21860    {
21861#line 1398
21862    __asm__  volatile   ("": : : "memory");
21863#line 1400
21864    __cil_tmp51 = (unsigned long )vq;
21865#line 1400
21866    __cil_tmp52 = __cil_tmp51 + 16968;
21867#line 1400
21868    __cil_tmp53 = *((void **)__cil_tmp52);
21869#line 1400
21870    __cil_tmp54 = (unsigned long )vq;
21871#line 1400
21872    __cil_tmp55 = __cil_tmp54 + 104;
21873#line 1400
21874    __cil_tmp56 = *((struct vring_used **)__cil_tmp55);
21875#line 1400
21876    __cil_tmp57 = (void *)__cil_tmp56;
21877#line 1400
21878    __cil_tmp58 = (void *)used;
21879#line 1400
21880    __cil_tmp59 = __cil_tmp58 - __cil_tmp57;
21881#line 1400
21882    __cil_tmp60 = (u64 )__cil_tmp59;
21883#line 1400
21884    __cil_tmp61 = (unsigned long )vq;
21885#line 1400
21886    __cil_tmp62 = __cil_tmp61 + 344;
21887#line 1400
21888    __cil_tmp63 = *((u64 *)__cil_tmp62);
21889#line 1400
21890    __cil_tmp64 = __cil_tmp63 + __cil_tmp60;
21891#line 1400
21892    __cil_tmp65 = (unsigned long )count;
21893#line 1400
21894    __cil_tmp66 = __cil_tmp65 * 8UL;
21895#line 1400
21896    __cil_tmp67 = (u64 )__cil_tmp66;
21897#line 1400
21898    log_write(__cil_tmp53, __cil_tmp64, __cil_tmp67);
21899    }
21900  } else {
21901
21902  }
21903  {
21904#line 1405
21905  __cil_tmp68 = (unsigned long )vq;
21906#line 1405
21907  __cil_tmp69 = __cil_tmp68 + 332;
21908#line 1405
21909  old = *((u16 *)__cil_tmp69);
21910#line 1406
21911  __cil_tmp70 = (unsigned long )vq;
21912#line 1406
21913  __cil_tmp71 = __cil_tmp70 + 332;
21914#line 1406
21915  __cil_tmp72 = *((u16 *)__cil_tmp71);
21916#line 1406
21917  __cil_tmp73 = (unsigned int )__cil_tmp72;
21918#line 1406
21919  __cil_tmp74 = __cil_tmp73 + count;
21920#line 1406
21921  tmp___10 = (u16 )__cil_tmp74;
21922#line 1406
21923  __cil_tmp75 = (unsigned long )vq;
21924#line 1406
21925  __cil_tmp76 = __cil_tmp75 + 332;
21926#line 1406
21927  *((u16 *)__cil_tmp76) = tmp___10;
21928#line 1406
21929  new = tmp___10;
21930#line 1411
21931  __cil_tmp77 = (int )old;
21932#line 1411
21933  __cil_tmp78 = (int )new;
21934#line 1411
21935  __cil_tmp79 = __cil_tmp78 - __cil_tmp77;
21936#line 1411
21937  __cil_tmp80 = (u16 )__cil_tmp79;
21938#line 1411
21939  __cil_tmp81 = (int )__cil_tmp80;
21940#line 1411
21941  __cil_tmp82 = (unsigned long )vq;
21942#line 1411
21943  __cil_tmp83 = __cil_tmp82 + 336;
21944#line 1411
21945  __cil_tmp84 = *((u16 *)__cil_tmp83);
21946#line 1411
21947  __cil_tmp85 = (int )__cil_tmp84;
21948#line 1411
21949  __cil_tmp86 = (int )new;
21950#line 1411
21951  __cil_tmp87 = __cil_tmp86 - __cil_tmp85;
21952#line 1411
21953  __cil_tmp88 = (u16 )__cil_tmp87;
21954#line 1411
21955  __cil_tmp89 = (int )__cil_tmp88;
21956#line 1411
21957  __cil_tmp90 = __cil_tmp89 < __cil_tmp81;
21958#line 1411
21959  __cil_tmp91 = ! __cil_tmp90;
21960#line 1411
21961  __cil_tmp92 = ! __cil_tmp91;
21962#line 1411
21963  __cil_tmp93 = (long )__cil_tmp92;
21964#line 1411
21965  tmp___11 = __builtin_expect(__cil_tmp93, 0L);
21966  }
21967#line 1411
21968  if (tmp___11) {
21969#line 1412
21970    __cil_tmp94 = (unsigned long )vq;
21971#line 1412
21972    __cil_tmp95 = __cil_tmp94 + 338;
21973#line 1412
21974    *((bool *)__cil_tmp95) = (bool )0;
21975  } else {
21976
21977  }
21978#line 1413
21979  return (0);
21980}
21981}
21982#line 1437 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
21983static struct _ddebug  __attribute__((__aligned__(8))) descriptor___21  __attribute__((__used__,
21984__section__("__verbose")))  =    {"vhost_net", "vhost_add_used_n", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
21985    "Failed to increment used idx", 1437U, 0U};
21986#line 1418 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
21987int vhost_add_used_n(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
21988                     unsigned int count ) 
21989{ int start ;
21990  int n ;
21991  int r ;
21992  long tmp___7 ;
21993  int __ret_pu ;
21994  __u16 __pu_val ;
21995  long tmp___8 ;
21996  unsigned long __cil_tmp11 ;
21997  unsigned long __cil_tmp12 ;
21998  unsigned int __cil_tmp13 ;
21999  unsigned long __cil_tmp14 ;
22000  unsigned long __cil_tmp15 ;
22001  u16 __cil_tmp16 ;
22002  unsigned int __cil_tmp17 ;
22003  unsigned int __cil_tmp18 ;
22004  unsigned int __cil_tmp19 ;
22005  unsigned long __cil_tmp20 ;
22006  unsigned long __cil_tmp21 ;
22007  unsigned int __cil_tmp22 ;
22008  unsigned int __cil_tmp23 ;
22009  unsigned int __cil_tmp24 ;
22010  unsigned int __cil_tmp25 ;
22011  unsigned int __cil_tmp26 ;
22012  unsigned long __cil_tmp27 ;
22013  unsigned long __cil_tmp28 ;
22014  unsigned long __cil_tmp29 ;
22015  unsigned long __cil_tmp30 ;
22016  struct vring_used *__cil_tmp31 ;
22017  unsigned long __cil_tmp32 ;
22018  unsigned long __cil_tmp33 ;
22019  unsigned long __cil_tmp34 ;
22020  unsigned long __cil_tmp35 ;
22021  struct vring_used *__cil_tmp36 ;
22022  unsigned long __cil_tmp37 ;
22023  unsigned long __cil_tmp38 ;
22024  unsigned long __cil_tmp39 ;
22025  unsigned long __cil_tmp40 ;
22026  struct vring_used *__cil_tmp41 ;
22027  unsigned long __cil_tmp42 ;
22028  unsigned long __cil_tmp43 ;
22029  unsigned long __cil_tmp44 ;
22030  unsigned long __cil_tmp45 ;
22031  struct vring_used *__cil_tmp46 ;
22032  unsigned long __cil_tmp47 ;
22033  unsigned long __cil_tmp48 ;
22034  unsigned long __cil_tmp49 ;
22035  unsigned long __cil_tmp50 ;
22036  struct vring_used *__cil_tmp51 ;
22037  unsigned long __cil_tmp52 ;
22038  unsigned long __cil_tmp53 ;
22039  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp54 ;
22040  unsigned int __cil_tmp55 ;
22041  unsigned int __cil_tmp56 ;
22042  int __cil_tmp57 ;
22043  int __cil_tmp58 ;
22044  long __cil_tmp59 ;
22045  unsigned long __cil_tmp60 ;
22046  unsigned long __cil_tmp61 ;
22047  unsigned long __cil_tmp62 ;
22048  unsigned long __cil_tmp63 ;
22049  struct eventfd_ctx *__cil_tmp64 ;
22050  unsigned long __cil_tmp65 ;
22051  unsigned long __cil_tmp66 ;
22052  bool __cil_tmp67 ;
22053  int __cil_tmp68 ;
22054  int __cil_tmp69 ;
22055  long __cil_tmp70 ;
22056  unsigned long __cil_tmp71 ;
22057  unsigned long __cil_tmp72 ;
22058  void *__cil_tmp73 ;
22059  struct vring_used *__cil_tmp74 ;
22060  unsigned long __cil_tmp75 ;
22061  unsigned long __cil_tmp76 ;
22062  __u16 *__cil_tmp77 ;
22063  unsigned int __cil_tmp78 ;
22064  u64 __cil_tmp79 ;
22065  unsigned long __cil_tmp80 ;
22066  unsigned long __cil_tmp81 ;
22067  u64 __cil_tmp82 ;
22068  u64 __cil_tmp83 ;
22069  u64 __cil_tmp84 ;
22070  unsigned long __cil_tmp85 ;
22071  unsigned long __cil_tmp86 ;
22072  unsigned long __cil_tmp87 ;
22073  unsigned long __cil_tmp88 ;
22074  struct eventfd_ctx *__cil_tmp89 ;
22075
22076  {
22077#line 1423
22078  __cil_tmp11 = (unsigned long )vq;
22079#line 1423
22080  __cil_tmp12 = __cil_tmp11 + 80;
22081#line 1423
22082  __cil_tmp13 = *((unsigned int *)__cil_tmp12);
22083#line 1423
22084  __cil_tmp14 = (unsigned long )vq;
22085#line 1423
22086  __cil_tmp15 = __cil_tmp14 + 332;
22087#line 1423
22088  __cil_tmp16 = *((u16 *)__cil_tmp15);
22089#line 1423
22090  __cil_tmp17 = (unsigned int )__cil_tmp16;
22091#line 1423
22092  __cil_tmp18 = __cil_tmp17 % __cil_tmp13;
22093#line 1423
22094  start = (int )__cil_tmp18;
22095#line 1424
22096  __cil_tmp19 = (unsigned int )start;
22097#line 1424
22098  __cil_tmp20 = (unsigned long )vq;
22099#line 1424
22100  __cil_tmp21 = __cil_tmp20 + 80;
22101#line 1424
22102  __cil_tmp22 = *((unsigned int *)__cil_tmp21);
22103#line 1424
22104  __cil_tmp23 = __cil_tmp22 - __cil_tmp19;
22105#line 1424
22106  n = (int )__cil_tmp23;
22107  {
22108#line 1425
22109  __cil_tmp24 = (unsigned int )n;
22110#line 1425
22111  if (__cil_tmp24 < count) {
22112    {
22113#line 1426
22114    __cil_tmp25 = (unsigned int )n;
22115#line 1426
22116    r = __vhost_add_used_n(vq, heads, __cil_tmp25);
22117    }
22118#line 1427
22119    if (r < 0) {
22120#line 1428
22121      return (r);
22122    } else {
22123
22124    }
22125#line 1429
22126    heads = heads + n;
22127#line 1430
22128    __cil_tmp26 = (unsigned int )n;
22129#line 1430
22130    count = count - __cil_tmp26;
22131  } else {
22132
22133  }
22134  }
22135  {
22136#line 1432
22137  r = __vhost_add_used_n(vq, heads, count);
22138#line 1435
22139  __asm__  volatile   ("": : : "memory");
22140#line 1436
22141  might_fault();
22142#line 1436
22143  __cil_tmp27 = (unsigned long )vq;
22144#line 1436
22145  __cil_tmp28 = __cil_tmp27 + 332;
22146#line 1436
22147  __pu_val = *((u16 *)__cil_tmp28);
22148  }
22149#line 1436
22150  if ((int )2UL == 1) {
22151#line 1436
22152    goto case_1;
22153  } else
22154#line 1436
22155  if ((int )2UL == 2) {
22156#line 1436
22157    goto case_2;
22158  } else
22159#line 1436
22160  if ((int )2UL == 4) {
22161#line 1436
22162    goto case_4;
22163  } else
22164#line 1436
22165  if ((int )2UL == 8) {
22166#line 1436
22167    goto case_8;
22168  } else {
22169    {
22170#line 1436
22171    goto switch_default;
22172#line 1436
22173    if (0) {
22174      case_1: /* CIL Label */ 
22175#line 1436
22176      __cil_tmp29 = (unsigned long )vq;
22177#line 1436
22178      __cil_tmp30 = __cil_tmp29 + 104;
22179#line 1436
22180      __cil_tmp31 = *((struct vring_used **)__cil_tmp30);
22181#line 1436
22182      __cil_tmp32 = (unsigned long )__cil_tmp31;
22183#line 1436
22184      __cil_tmp33 = __cil_tmp32 + 2;
22185#line 1436
22186      __asm__  volatile   ("call __put_user_"
22187                           "1": "=a" (__ret_pu): "0" (__pu_val), "c" ((__u16 *)__cil_tmp33): "ebx");
22188#line 1436
22189      goto switch_break;
22190      case_2: /* CIL Label */ 
22191#line 1436
22192      __cil_tmp34 = (unsigned long )vq;
22193#line 1436
22194      __cil_tmp35 = __cil_tmp34 + 104;
22195#line 1436
22196      __cil_tmp36 = *((struct vring_used **)__cil_tmp35);
22197#line 1436
22198      __cil_tmp37 = (unsigned long )__cil_tmp36;
22199#line 1436
22200      __cil_tmp38 = __cil_tmp37 + 2;
22201#line 1436
22202      __asm__  volatile   ("call __put_user_"
22203                           "2": "=a" (__ret_pu): "0" (__pu_val), "c" ((__u16 *)__cil_tmp38): "ebx");
22204#line 1436
22205      goto switch_break;
22206      case_4: /* CIL Label */ 
22207#line 1436
22208      __cil_tmp39 = (unsigned long )vq;
22209#line 1436
22210      __cil_tmp40 = __cil_tmp39 + 104;
22211#line 1436
22212      __cil_tmp41 = *((struct vring_used **)__cil_tmp40);
22213#line 1436
22214      __cil_tmp42 = (unsigned long )__cil_tmp41;
22215#line 1436
22216      __cil_tmp43 = __cil_tmp42 + 2;
22217#line 1436
22218      __asm__  volatile   ("call __put_user_"
22219                           "4": "=a" (__ret_pu): "0" (__pu_val), "c" ((__u16 *)__cil_tmp43): "ebx");
22220#line 1436
22221      goto switch_break;
22222      case_8: /* CIL Label */ 
22223#line 1436
22224      __cil_tmp44 = (unsigned long )vq;
22225#line 1436
22226      __cil_tmp45 = __cil_tmp44 + 104;
22227#line 1436
22228      __cil_tmp46 = *((struct vring_used **)__cil_tmp45);
22229#line 1436
22230      __cil_tmp47 = (unsigned long )__cil_tmp46;
22231#line 1436
22232      __cil_tmp48 = __cil_tmp47 + 2;
22233#line 1436
22234      __asm__  volatile   ("call __put_user_"
22235                           "8": "=a" (__ret_pu): "0" (__pu_val), "c" ((__u16 *)__cil_tmp48): "ebx");
22236#line 1436
22237      goto switch_break;
22238      switch_default: /* CIL Label */ 
22239#line 1436
22240      __cil_tmp49 = (unsigned long )vq;
22241#line 1436
22242      __cil_tmp50 = __cil_tmp49 + 104;
22243#line 1436
22244      __cil_tmp51 = *((struct vring_used **)__cil_tmp50);
22245#line 1436
22246      __cil_tmp52 = (unsigned long )__cil_tmp51;
22247#line 1436
22248      __cil_tmp53 = __cil_tmp52 + 2;
22249#line 1436
22250      __asm__  volatile   ("call __put_user_"
22251                           "X": "=a" (__ret_pu): "0" (__pu_val), "c" ((__u16 *)__cil_tmp53): "ebx");
22252#line 1436
22253      goto switch_break;
22254    } else {
22255      switch_break: /* CIL Label */ ;
22256    }
22257    }
22258  }
22259#line 1436
22260  if (__ret_pu) {
22261    {
22262#line 1437
22263    while (1) {
22264      while_continue: /* CIL Label */ ;
22265      {
22266#line 1437
22267      while (1) {
22268        while_continue___0: /* CIL Label */ ;
22269        {
22270#line 1437
22271        __cil_tmp54 = & descriptor___21;
22272#line 1437
22273        __cil_tmp55 = __cil_tmp54->flags;
22274#line 1437
22275        __cil_tmp56 = __cil_tmp55 & 1U;
22276#line 1437
22277        __cil_tmp57 = ! __cil_tmp56;
22278#line 1437
22279        __cil_tmp58 = ! __cil_tmp57;
22280#line 1437
22281        __cil_tmp59 = (long )__cil_tmp58;
22282#line 1437
22283        tmp___7 = __builtin_expect(__cil_tmp59, 0L);
22284        }
22285#line 1437
22286        if (tmp___7) {
22287          {
22288#line 1437
22289          __dynamic_pr_debug(& descriptor___21, "Failed to increment used idx");
22290          }
22291        } else {
22292
22293        }
22294#line 1437
22295        goto while_break___0;
22296      }
22297      while_break___0: /* CIL Label */ ;
22298      }
22299      {
22300#line 1437
22301      __cil_tmp60 = (unsigned long )vq;
22302#line 1437
22303      __cil_tmp61 = __cil_tmp60 + 144;
22304#line 1437
22305      if (*((struct eventfd_ctx **)__cil_tmp61)) {
22306        {
22307#line 1437
22308        __cil_tmp62 = (unsigned long )vq;
22309#line 1437
22310        __cil_tmp63 = __cil_tmp62 + 144;
22311#line 1437
22312        __cil_tmp64 = *((struct eventfd_ctx **)__cil_tmp63);
22313#line 1437
22314        eventfd_signal(__cil_tmp64, 1);
22315        }
22316      } else {
22317
22318      }
22319      }
22320#line 1437
22321      goto while_break;
22322    }
22323    while_break: /* CIL Label */ ;
22324    }
22325#line 1438
22326    return (-14);
22327  } else {
22328
22329  }
22330  {
22331#line 1440
22332  __cil_tmp65 = (unsigned long )vq;
22333#line 1440
22334  __cil_tmp66 = __cil_tmp65 + 339;
22335#line 1440
22336  __cil_tmp67 = *((bool *)__cil_tmp66);
22337#line 1440
22338  __cil_tmp68 = ! __cil_tmp67;
22339#line 1440
22340  __cil_tmp69 = ! __cil_tmp68;
22341#line 1440
22342  __cil_tmp70 = (long )__cil_tmp69;
22343#line 1440
22344  tmp___8 = __builtin_expect(__cil_tmp70, 0L);
22345  }
22346#line 1440
22347  if (tmp___8) {
22348    {
22349#line 1442
22350    __cil_tmp71 = (unsigned long )vq;
22351#line 1442
22352    __cil_tmp72 = __cil_tmp71 + 16968;
22353#line 1442
22354    __cil_tmp73 = *((void **)__cil_tmp72);
22355#line 1442
22356    __cil_tmp74 = (struct vring_used *)0;
22357#line 1442
22358    __cil_tmp75 = (unsigned long )__cil_tmp74;
22359#line 1442
22360    __cil_tmp76 = __cil_tmp75 + 2;
22361#line 1442
22362    __cil_tmp77 = (__u16 *)__cil_tmp76;
22363#line 1442
22364    __cil_tmp78 = (unsigned int )__cil_tmp77;
22365#line 1442
22366    __cil_tmp79 = (u64 )__cil_tmp78;
22367#line 1442
22368    __cil_tmp80 = (unsigned long )vq;
22369#line 1442
22370    __cil_tmp81 = __cil_tmp80 + 344;
22371#line 1442
22372    __cil_tmp82 = *((u64 *)__cil_tmp81);
22373#line 1442
22374    __cil_tmp83 = __cil_tmp82 + __cil_tmp79;
22375#line 1442
22376    __cil_tmp84 = (u64 )2UL;
22377#line 1442
22378    log_write(__cil_tmp73, __cil_tmp83, __cil_tmp84);
22379    }
22380    {
22381#line 1445
22382    __cil_tmp85 = (unsigned long )vq;
22383#line 1445
22384    __cil_tmp86 = __cil_tmp85 + 152;
22385#line 1445
22386    if (*((struct eventfd_ctx **)__cil_tmp86)) {
22387      {
22388#line 1446
22389      __cil_tmp87 = (unsigned long )vq;
22390#line 1446
22391      __cil_tmp88 = __cil_tmp87 + 152;
22392#line 1446
22393      __cil_tmp89 = *((struct eventfd_ctx **)__cil_tmp88);
22394#line 1446
22395      eventfd_signal(__cil_tmp89, 1);
22396      }
22397    } else {
22398
22399    }
22400    }
22401  } else {
22402
22403  }
22404#line 1448
22405  return (r);
22406}
22407}
22408#line 1467
22409static bool vhost_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) ;
22410#line 1467 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
22411static struct _ddebug  __attribute__((__aligned__(8))) descriptor___22  __attribute__((__used__,
22412__section__("__verbose")))  =    {"vhost_net", "vhost_notify", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
22413    "Failed to get flags", 1467U, 0U};
22414#line 1481 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
22415static struct _ddebug  __attribute__((__aligned__(8))) descriptor___23  __attribute__((__used__,
22416__section__("__verbose")))  =    {"vhost_net", "vhost_notify", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
22417    "Failed to get used event idx", 1481U, 0U};
22418#line 1451 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
22419static bool vhost_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) 
22420{ __u16 old ;
22421  __u16 new ;
22422  __u16 event ;
22423  bool v ;
22424  int tmp___7 ;
22425  long tmp___8 ;
22426  __u16 flags ;
22427  long tmp___9 ;
22428  int __gu_err ;
22429  unsigned long __gu_val ;
22430  int tmp___10 ;
22431  int tmp___11 ;
22432  u16 tmp___12 ;
22433  long tmp___13 ;
22434  long tmp___14 ;
22435  int __ret_gu ;
22436  unsigned long __val_gu ;
22437  int tmp___15 ;
22438  unsigned long __cil_tmp21 ;
22439  unsigned long __cil_tmp22 ;
22440  u16 __cil_tmp23 ;
22441  int __cil_tmp24 ;
22442  unsigned long __cil_tmp25 ;
22443  unsigned long __cil_tmp26 ;
22444  u16 __cil_tmp27 ;
22445  int __cil_tmp28 ;
22446  int __cil_tmp29 ;
22447  int __cil_tmp30 ;
22448  int __cil_tmp31 ;
22449  long __cil_tmp32 ;
22450  unsigned long __cil_tmp33 ;
22451  unsigned long __cil_tmp34 ;
22452  struct vring_avail *__cil_tmp35 ;
22453  __u16 *__cil_tmp36 ;
22454  struct __large_struct *__cil_tmp37 ;
22455  unsigned long __cil_tmp38 ;
22456  unsigned long __cil_tmp39 ;
22457  struct vring_avail *__cil_tmp40 ;
22458  __u16 *__cil_tmp41 ;
22459  struct __large_struct *__cil_tmp42 ;
22460  unsigned long __cil_tmp43 ;
22461  unsigned long __cil_tmp44 ;
22462  struct vring_avail *__cil_tmp45 ;
22463  __u16 *__cil_tmp46 ;
22464  struct __large_struct *__cil_tmp47 ;
22465  unsigned long __cil_tmp48 ;
22466  unsigned long __cil_tmp49 ;
22467  struct vring_avail *__cil_tmp50 ;
22468  __u16 *__cil_tmp51 ;
22469  struct __large_struct *__cil_tmp52 ;
22470  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp53 ;
22471  unsigned int __cil_tmp54 ;
22472  unsigned int __cil_tmp55 ;
22473  int __cil_tmp56 ;
22474  int __cil_tmp57 ;
22475  long __cil_tmp58 ;
22476  unsigned long __cil_tmp59 ;
22477  unsigned long __cil_tmp60 ;
22478  unsigned long __cil_tmp61 ;
22479  unsigned long __cil_tmp62 ;
22480  struct eventfd_ctx *__cil_tmp63 ;
22481  int __cil_tmp64 ;
22482  int __cil_tmp65 ;
22483  int __cil_tmp66 ;
22484  unsigned long __cil_tmp67 ;
22485  unsigned long __cil_tmp68 ;
22486  unsigned long __cil_tmp69 ;
22487  unsigned long __cil_tmp70 ;
22488  unsigned long __cil_tmp71 ;
22489  unsigned long __cil_tmp72 ;
22490  unsigned long __cil_tmp73 ;
22491  unsigned long __cil_tmp74 ;
22492  unsigned long __cil_tmp75 ;
22493  unsigned long __cil_tmp76 ;
22494  int __cil_tmp77 ;
22495  int __cil_tmp78 ;
22496  int __cil_tmp79 ;
22497  long __cil_tmp80 ;
22498  unsigned long __cil_tmp81 ;
22499  unsigned long __cil_tmp82 ;
22500  unsigned int __cil_tmp83 ;
22501  unsigned long __cil_tmp84 ;
22502  unsigned long __cil_tmp85 ;
22503  unsigned long __cil_tmp86 ;
22504  unsigned long __cil_tmp87 ;
22505  struct vring_avail *__cil_tmp88 ;
22506  unsigned long __cil_tmp89 ;
22507  unsigned long __cil_tmp90 ;
22508  unsigned long __cil_tmp91 ;
22509  unsigned long __cil_tmp92 ;
22510  unsigned int __cil_tmp93 ;
22511  unsigned long __cil_tmp94 ;
22512  unsigned long __cil_tmp95 ;
22513  unsigned long __cil_tmp96 ;
22514  unsigned long __cil_tmp97 ;
22515  struct vring_avail *__cil_tmp98 ;
22516  unsigned long __cil_tmp99 ;
22517  unsigned long __cil_tmp100 ;
22518  unsigned long __cil_tmp101 ;
22519  unsigned long __cil_tmp102 ;
22520  unsigned int __cil_tmp103 ;
22521  unsigned long __cil_tmp104 ;
22522  unsigned long __cil_tmp105 ;
22523  unsigned long __cil_tmp106 ;
22524  unsigned long __cil_tmp107 ;
22525  struct vring_avail *__cil_tmp108 ;
22526  unsigned long __cil_tmp109 ;
22527  unsigned long __cil_tmp110 ;
22528  unsigned long __cil_tmp111 ;
22529  unsigned long __cil_tmp112 ;
22530  unsigned int __cil_tmp113 ;
22531  unsigned long __cil_tmp114 ;
22532  unsigned long __cil_tmp115 ;
22533  unsigned long __cil_tmp116 ;
22534  unsigned long __cil_tmp117 ;
22535  struct vring_avail *__cil_tmp118 ;
22536  unsigned long __cil_tmp119 ;
22537  unsigned long __cil_tmp120 ;
22538  unsigned long __cil_tmp121 ;
22539  unsigned long __cil_tmp122 ;
22540  unsigned int __cil_tmp123 ;
22541  unsigned long __cil_tmp124 ;
22542  unsigned long __cil_tmp125 ;
22543  unsigned long __cil_tmp126 ;
22544  unsigned long __cil_tmp127 ;
22545  struct vring_avail *__cil_tmp128 ;
22546  unsigned long __cil_tmp129 ;
22547  unsigned long __cil_tmp130 ;
22548  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp131 ;
22549  unsigned int __cil_tmp132 ;
22550  unsigned int __cil_tmp133 ;
22551  int __cil_tmp134 ;
22552  int __cil_tmp135 ;
22553  long __cil_tmp136 ;
22554  unsigned long __cil_tmp137 ;
22555  unsigned long __cil_tmp138 ;
22556  unsigned long __cil_tmp139 ;
22557  unsigned long __cil_tmp140 ;
22558  struct eventfd_ctx *__cil_tmp141 ;
22559
22560  {
22561  {
22562#line 1458
22563  __asm__  volatile   ("mfence": : : "memory");
22564#line 1460
22565  tmp___7 = vhost_has_feature(dev, 24);
22566  }
22567#line 1460
22568  if (tmp___7) {
22569    {
22570#line 1460
22571    __cil_tmp21 = (unsigned long )vq;
22572#line 1460
22573    __cil_tmp22 = __cil_tmp21 + 328;
22574#line 1460
22575    __cil_tmp23 = *((u16 *)__cil_tmp22);
22576#line 1460
22577    __cil_tmp24 = (int )__cil_tmp23;
22578#line 1460
22579    __cil_tmp25 = (unsigned long )vq;
22580#line 1460
22581    __cil_tmp26 = __cil_tmp25 + 330;
22582#line 1460
22583    __cil_tmp27 = *((u16 *)__cil_tmp26);
22584#line 1460
22585    __cil_tmp28 = (int )__cil_tmp27;
22586#line 1460
22587    __cil_tmp29 = __cil_tmp28 == __cil_tmp24;
22588#line 1460
22589    __cil_tmp30 = ! __cil_tmp29;
22590#line 1460
22591    __cil_tmp31 = ! __cil_tmp30;
22592#line 1460
22593    __cil_tmp32 = (long )__cil_tmp31;
22594#line 1460
22595    tmp___8 = __builtin_expect(__cil_tmp32, 0L);
22596    }
22597#line 1460
22598    if (tmp___8) {
22599#line 1462
22600      return ((bool )1);
22601    } else {
22602
22603    }
22604  } else {
22605
22606  }
22607  {
22608#line 1464
22609  tmp___11 = vhost_has_feature(dev, 29);
22610  }
22611#line 1464
22612  if (tmp___11) {
22613
22614  } else {
22615    {
22616#line 1466
22617    while (1) {
22618      while_continue: /* CIL Label */ ;
22619#line 1466
22620      __gu_err = 0;
22621#line 1466
22622      if ((int )2UL == 1) {
22623#line 1466
22624        goto case_1;
22625      } else
22626#line 1466
22627      if ((int )2UL == 2) {
22628#line 1466
22629        goto case_2;
22630      } else
22631#line 1466
22632      if ((int )2UL == 4) {
22633#line 1466
22634        goto case_4;
22635      } else
22636#line 1466
22637      if ((int )2UL == 8) {
22638#line 1466
22639        goto case_8;
22640      } else {
22641        {
22642#line 1466
22643        goto switch_default;
22644#line 1466
22645        if (0) {
22646          case_1: /* CIL Label */ 
22647#line 1466
22648          __cil_tmp33 = (unsigned long )vq;
22649#line 1466
22650          __cil_tmp34 = __cil_tmp33 + 96;
22651#line 1466
22652          __cil_tmp35 = *((struct vring_avail **)__cil_tmp34);
22653#line 1466
22654          __cil_tmp36 = (__u16 *)__cil_tmp35;
22655#line 1466
22656          __cil_tmp37 = (struct __large_struct *)__cil_tmp36;
22657#line 1466
22658          __asm__  volatile   ("1:\tmov"
22659                               "b"
22660                               " %2,%"
22661                               "b"
22662                               "1\n"
22663                               "2:\n"
22664                               ".section .fixup,\"ax\"\n"
22665                               "3:\tmov %3,%0\n"
22666                               "\txor"
22667                               "b"
22668                               " %"
22669                               "b"
22670                               "1,%"
22671                               "b"
22672                               "1\n"
22673                               "\tjmp 2b\n"
22674                               ".previous\n"
22675                               " .section __ex_table,\"a\"\n"
22676                               " "
22677                               ".balign 8"
22678                               " "
22679                               "\n"
22680                               " "
22681                               ".quad"
22682                               " "
22683                               "1b"
22684                               ","
22685                               "3b"
22686                               "\n"
22687                               " .previous\n": "=r" (__gu_err), "=q" (__gu_val): "m" (*__cil_tmp37),
22688                               "i" (-14), "0" (__gu_err));
22689#line 1466
22690          goto switch_break;
22691          case_2: /* CIL Label */ 
22692#line 1466
22693          __cil_tmp38 = (unsigned long )vq;
22694#line 1466
22695          __cil_tmp39 = __cil_tmp38 + 96;
22696#line 1466
22697          __cil_tmp40 = *((struct vring_avail **)__cil_tmp39);
22698#line 1466
22699          __cil_tmp41 = (__u16 *)__cil_tmp40;
22700#line 1466
22701          __cil_tmp42 = (struct __large_struct *)__cil_tmp41;
22702#line 1466
22703          __asm__  volatile   ("1:\tmov"
22704                               "w"
22705                               " %2,%"
22706                               "w"
22707                               "1\n"
22708                               "2:\n"
22709                               ".section .fixup,\"ax\"\n"
22710                               "3:\tmov %3,%0\n"
22711                               "\txor"
22712                               "w"
22713                               " %"
22714                               "w"
22715                               "1,%"
22716                               "w"
22717                               "1\n"
22718                               "\tjmp 2b\n"
22719                               ".previous\n"
22720                               " .section __ex_table,\"a\"\n"
22721                               " "
22722                               ".balign 8"
22723                               " "
22724                               "\n"
22725                               " "
22726                               ".quad"
22727                               " "
22728                               "1b"
22729                               ","
22730                               "3b"
22731                               "\n"
22732                               " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp42),
22733                               "i" (-14), "0" (__gu_err));
22734#line 1466
22735          goto switch_break;
22736          case_4: /* CIL Label */ 
22737#line 1466
22738          __cil_tmp43 = (unsigned long )vq;
22739#line 1466
22740          __cil_tmp44 = __cil_tmp43 + 96;
22741#line 1466
22742          __cil_tmp45 = *((struct vring_avail **)__cil_tmp44);
22743#line 1466
22744          __cil_tmp46 = (__u16 *)__cil_tmp45;
22745#line 1466
22746          __cil_tmp47 = (struct __large_struct *)__cil_tmp46;
22747#line 1466
22748          __asm__  volatile   ("1:\tmov"
22749                               "l"
22750                               " %2,%"
22751                               "k"
22752                               "1\n"
22753                               "2:\n"
22754                               ".section .fixup,\"ax\"\n"
22755                               "3:\tmov %3,%0\n"
22756                               "\txor"
22757                               "l"
22758                               " %"
22759                               "k"
22760                               "1,%"
22761                               "k"
22762                               "1\n"
22763                               "\tjmp 2b\n"
22764                               ".previous\n"
22765                               " .section __ex_table,\"a\"\n"
22766                               " "
22767                               ".balign 8"
22768                               " "
22769                               "\n"
22770                               " "
22771                               ".quad"
22772                               " "
22773                               "1b"
22774                               ","
22775                               "3b"
22776                               "\n"
22777                               " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp47),
22778                               "i" (-14), "0" (__gu_err));
22779#line 1466
22780          goto switch_break;
22781          case_8: /* CIL Label */ 
22782#line 1466
22783          __cil_tmp48 = (unsigned long )vq;
22784#line 1466
22785          __cil_tmp49 = __cil_tmp48 + 96;
22786#line 1466
22787          __cil_tmp50 = *((struct vring_avail **)__cil_tmp49);
22788#line 1466
22789          __cil_tmp51 = (__u16 *)__cil_tmp50;
22790#line 1466
22791          __cil_tmp52 = (struct __large_struct *)__cil_tmp51;
22792#line 1466
22793          __asm__  volatile   ("1:\tmov"
22794                               "q"
22795                               " %2,%"
22796                               ""
22797                               "1\n"
22798                               "2:\n"
22799                               ".section .fixup,\"ax\"\n"
22800                               "3:\tmov %3,%0\n"
22801                               "\txor"
22802                               "q"
22803                               " %"
22804                               ""
22805                               "1,%"
22806                               ""
22807                               "1\n"
22808                               "\tjmp 2b\n"
22809                               ".previous\n"
22810                               " .section __ex_table,\"a\"\n"
22811                               " "
22812                               ".balign 8"
22813                               " "
22814                               "\n"
22815                               " "
22816                               ".quad"
22817                               " "
22818                               "1b"
22819                               ","
22820                               "3b"
22821                               "\n"
22822                               " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp52),
22823                               "i" (-14), "0" (__gu_err));
22824#line 1466
22825          goto switch_break;
22826          switch_default: /* CIL Label */ 
22827          {
22828#line 1466
22829          tmp___10 = __get_user_bad();
22830#line 1466
22831          __gu_val = (unsigned long )tmp___10;
22832          }
22833        } else {
22834          switch_break: /* CIL Label */ ;
22835        }
22836        }
22837      }
22838#line 1466
22839      goto while_break;
22840    }
22841    while_break: /* CIL Label */ ;
22842    }
22843#line 1466
22844    flags = (__u16 )__gu_val;
22845#line 1466
22846    if (__gu_err) {
22847      {
22848#line 1467
22849      while (1) {
22850        while_continue___0: /* CIL Label */ ;
22851        {
22852#line 1467
22853        while (1) {
22854          while_continue___1: /* CIL Label */ ;
22855          {
22856#line 1467
22857          __cil_tmp53 = & descriptor___22;
22858#line 1467
22859          __cil_tmp54 = __cil_tmp53->flags;
22860#line 1467
22861          __cil_tmp55 = __cil_tmp54 & 1U;
22862#line 1467
22863          __cil_tmp56 = ! __cil_tmp55;
22864#line 1467
22865          __cil_tmp57 = ! __cil_tmp56;
22866#line 1467
22867          __cil_tmp58 = (long )__cil_tmp57;
22868#line 1467
22869          tmp___9 = __builtin_expect(__cil_tmp58, 0L);
22870          }
22871#line 1467
22872          if (tmp___9) {
22873            {
22874#line 1467
22875            __dynamic_pr_debug(& descriptor___22, "Failed to get flags");
22876            }
22877          } else {
22878
22879          }
22880#line 1467
22881          goto while_break___1;
22882        }
22883        while_break___1: /* CIL Label */ ;
22884        }
22885        {
22886#line 1467
22887        __cil_tmp59 = (unsigned long )vq;
22888#line 1467
22889        __cil_tmp60 = __cil_tmp59 + 144;
22890#line 1467
22891        if (*((struct eventfd_ctx **)__cil_tmp60)) {
22892          {
22893#line 1467
22894          __cil_tmp61 = (unsigned long )vq;
22895#line 1467
22896          __cil_tmp62 = __cil_tmp61 + 144;
22897#line 1467
22898          __cil_tmp63 = *((struct eventfd_ctx **)__cil_tmp62);
22899#line 1467
22900          eventfd_signal(__cil_tmp63, 1);
22901          }
22902        } else {
22903
22904        }
22905        }
22906#line 1467
22907        goto while_break___0;
22908      }
22909      while_break___0: /* CIL Label */ ;
22910      }
22911#line 1468
22912      return ((bool )1);
22913    } else {
22914
22915    }
22916    {
22917#line 1470
22918    __cil_tmp64 = (int )flags;
22919#line 1470
22920    __cil_tmp65 = __cil_tmp64 & 1;
22921#line 1470
22922    __cil_tmp66 = ! __cil_tmp65;
22923#line 1470
22924    return ((bool )__cil_tmp66);
22925    }
22926  }
22927  {
22928#line 1472
22929  __cil_tmp67 = (unsigned long )vq;
22930#line 1472
22931  __cil_tmp68 = __cil_tmp67 + 336;
22932#line 1472
22933  old = *((u16 *)__cil_tmp68);
22934#line 1473
22935  __cil_tmp69 = (unsigned long )vq;
22936#line 1473
22937  __cil_tmp70 = __cil_tmp69 + 338;
22938#line 1473
22939  v = *((bool *)__cil_tmp70);
22940#line 1474
22941  __cil_tmp71 = (unsigned long )vq;
22942#line 1474
22943  __cil_tmp72 = __cil_tmp71 + 332;
22944#line 1474
22945  tmp___12 = *((u16 *)__cil_tmp72);
22946#line 1474
22947  __cil_tmp73 = (unsigned long )vq;
22948#line 1474
22949  __cil_tmp74 = __cil_tmp73 + 336;
22950#line 1474
22951  *((u16 *)__cil_tmp74) = tmp___12;
22952#line 1474
22953  new = tmp___12;
22954#line 1475
22955  __cil_tmp75 = (unsigned long )vq;
22956#line 1475
22957  __cil_tmp76 = __cil_tmp75 + 338;
22958#line 1475
22959  *((bool *)__cil_tmp76) = (bool )1;
22960#line 1477
22961  __cil_tmp77 = ! v;
22962#line 1477
22963  __cil_tmp78 = ! __cil_tmp77;
22964#line 1477
22965  __cil_tmp79 = ! __cil_tmp78;
22966#line 1477
22967  __cil_tmp80 = (long )__cil_tmp79;
22968#line 1477
22969  tmp___13 = __builtin_expect(__cil_tmp80, 0L);
22970  }
22971#line 1477
22972  if (tmp___13) {
22973#line 1478
22974    return ((bool )1);
22975  } else {
22976
22977  }
22978  {
22979#line 1480
22980  might_fault();
22981  }
22982#line 1480
22983  if ((int )2UL == 1) {
22984#line 1480
22985    goto case_1___0;
22986  } else
22987#line 1480
22988  if ((int )2UL == 2) {
22989#line 1480
22990    goto case_2___0;
22991  } else
22992#line 1480
22993  if ((int )2UL == 4) {
22994#line 1480
22995    goto case_4___0;
22996  } else
22997#line 1480
22998  if ((int )2UL == 8) {
22999#line 1480
23000    goto case_8___0;
23001  } else {
23002    {
23003#line 1480
23004    goto switch_default___0;
23005#line 1480
23006    if (0) {
23007      case_1___0: /* CIL Label */ 
23008#line 1480
23009      __cil_tmp81 = (unsigned long )vq;
23010#line 1480
23011      __cil_tmp82 = __cil_tmp81 + 80;
23012#line 1480
23013      __cil_tmp83 = *((unsigned int *)__cil_tmp82);
23014#line 1480
23015      __cil_tmp84 = __cil_tmp83 * 2UL;
23016#line 1480
23017      __cil_tmp85 = 4 + __cil_tmp84;
23018#line 1480
23019      __cil_tmp86 = (unsigned long )vq;
23020#line 1480
23021      __cil_tmp87 = __cil_tmp86 + 96;
23022#line 1480
23023      __cil_tmp88 = *((struct vring_avail **)__cil_tmp87);
23024#line 1480
23025      __cil_tmp89 = (unsigned long )__cil_tmp88;
23026#line 1480
23027      __cil_tmp90 = __cil_tmp89 + __cil_tmp85;
23028#line 1480
23029      __asm__  volatile   ("call __get_user_"
23030                           "1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((__u16 *)__cil_tmp90));
23031#line 1480
23032      goto switch_break___0;
23033      case_2___0: /* CIL Label */ 
23034#line 1480
23035      __cil_tmp91 = (unsigned long )vq;
23036#line 1480
23037      __cil_tmp92 = __cil_tmp91 + 80;
23038#line 1480
23039      __cil_tmp93 = *((unsigned int *)__cil_tmp92);
23040#line 1480
23041      __cil_tmp94 = __cil_tmp93 * 2UL;
23042#line 1480
23043      __cil_tmp95 = 4 + __cil_tmp94;
23044#line 1480
23045      __cil_tmp96 = (unsigned long )vq;
23046#line 1480
23047      __cil_tmp97 = __cil_tmp96 + 96;
23048#line 1480
23049      __cil_tmp98 = *((struct vring_avail **)__cil_tmp97);
23050#line 1480
23051      __cil_tmp99 = (unsigned long )__cil_tmp98;
23052#line 1480
23053      __cil_tmp100 = __cil_tmp99 + __cil_tmp95;
23054#line 1480
23055      __asm__  volatile   ("call __get_user_"
23056                           "2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((__u16 *)__cil_tmp100));
23057#line 1480
23058      goto switch_break___0;
23059      case_4___0: /* CIL Label */ 
23060#line 1480
23061      __cil_tmp101 = (unsigned long )vq;
23062#line 1480
23063      __cil_tmp102 = __cil_tmp101 + 80;
23064#line 1480
23065      __cil_tmp103 = *((unsigned int *)__cil_tmp102);
23066#line 1480
23067      __cil_tmp104 = __cil_tmp103 * 2UL;
23068#line 1480
23069      __cil_tmp105 = 4 + __cil_tmp104;
23070#line 1480
23071      __cil_tmp106 = (unsigned long )vq;
23072#line 1480
23073      __cil_tmp107 = __cil_tmp106 + 96;
23074#line 1480
23075      __cil_tmp108 = *((struct vring_avail **)__cil_tmp107);
23076#line 1480
23077      __cil_tmp109 = (unsigned long )__cil_tmp108;
23078#line 1480
23079      __cil_tmp110 = __cil_tmp109 + __cil_tmp105;
23080#line 1480
23081      __asm__  volatile   ("call __get_user_"
23082                           "4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((__u16 *)__cil_tmp110));
23083#line 1480
23084      goto switch_break___0;
23085      case_8___0: /* CIL Label */ 
23086#line 1480
23087      __cil_tmp111 = (unsigned long )vq;
23088#line 1480
23089      __cil_tmp112 = __cil_tmp111 + 80;
23090#line 1480
23091      __cil_tmp113 = *((unsigned int *)__cil_tmp112);
23092#line 1480
23093      __cil_tmp114 = __cil_tmp113 * 2UL;
23094#line 1480
23095      __cil_tmp115 = 4 + __cil_tmp114;
23096#line 1480
23097      __cil_tmp116 = (unsigned long )vq;
23098#line 1480
23099      __cil_tmp117 = __cil_tmp116 + 96;
23100#line 1480
23101      __cil_tmp118 = *((struct vring_avail **)__cil_tmp117);
23102#line 1480
23103      __cil_tmp119 = (unsigned long )__cil_tmp118;
23104#line 1480
23105      __cil_tmp120 = __cil_tmp119 + __cil_tmp115;
23106#line 1480
23107      __asm__  volatile   ("call __get_user_"
23108                           "8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((__u16 *)__cil_tmp120));
23109#line 1480
23110      goto switch_break___0;
23111      switch_default___0: /* CIL Label */ 
23112#line 1480
23113      __cil_tmp121 = (unsigned long )vq;
23114#line 1480
23115      __cil_tmp122 = __cil_tmp121 + 80;
23116#line 1480
23117      __cil_tmp123 = *((unsigned int *)__cil_tmp122);
23118#line 1480
23119      __cil_tmp124 = __cil_tmp123 * 2UL;
23120#line 1480
23121      __cil_tmp125 = 4 + __cil_tmp124;
23122#line 1480
23123      __cil_tmp126 = (unsigned long )vq;
23124#line 1480
23125      __cil_tmp127 = __cil_tmp126 + 96;
23126#line 1480
23127      __cil_tmp128 = *((struct vring_avail **)__cil_tmp127);
23128#line 1480
23129      __cil_tmp129 = (unsigned long )__cil_tmp128;
23130#line 1480
23131      __cil_tmp130 = __cil_tmp129 + __cil_tmp125;
23132#line 1480
23133      __asm__  volatile   ("call __get_user_"
23134                           "X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((__u16 *)__cil_tmp130));
23135#line 1480
23136      goto switch_break___0;
23137    } else {
23138      switch_break___0: /* CIL Label */ ;
23139    }
23140    }
23141  }
23142#line 1480
23143  event = (u16 )__val_gu;
23144#line 1480
23145  if (__ret_gu) {
23146    {
23147#line 1481
23148    while (1) {
23149      while_continue___2: /* CIL Label */ ;
23150      {
23151#line 1481
23152      while (1) {
23153        while_continue___3: /* CIL Label */ ;
23154        {
23155#line 1481
23156        __cil_tmp131 = & descriptor___23;
23157#line 1481
23158        __cil_tmp132 = __cil_tmp131->flags;
23159#line 1481
23160        __cil_tmp133 = __cil_tmp132 & 1U;
23161#line 1481
23162        __cil_tmp134 = ! __cil_tmp133;
23163#line 1481
23164        __cil_tmp135 = ! __cil_tmp134;
23165#line 1481
23166        __cil_tmp136 = (long )__cil_tmp135;
23167#line 1481
23168        tmp___14 = __builtin_expect(__cil_tmp136, 0L);
23169        }
23170#line 1481
23171        if (tmp___14) {
23172          {
23173#line 1481
23174          __dynamic_pr_debug(& descriptor___23, "Failed to get used event idx");
23175          }
23176        } else {
23177
23178        }
23179#line 1481
23180        goto while_break___3;
23181      }
23182      while_break___3: /* CIL Label */ ;
23183      }
23184      {
23185#line 1481
23186      __cil_tmp137 = (unsigned long )vq;
23187#line 1481
23188      __cil_tmp138 = __cil_tmp137 + 144;
23189#line 1481
23190      if (*((struct eventfd_ctx **)__cil_tmp138)) {
23191        {
23192#line 1481
23193        __cil_tmp139 = (unsigned long )vq;
23194#line 1481
23195        __cil_tmp140 = __cil_tmp139 + 144;
23196#line 1481
23197        __cil_tmp141 = *((struct eventfd_ctx **)__cil_tmp140);
23198#line 1481
23199        eventfd_signal(__cil_tmp141, 1);
23200        }
23201      } else {
23202
23203      }
23204      }
23205#line 1481
23206      goto while_break___2;
23207    }
23208    while_break___2: /* CIL Label */ ;
23209    }
23210#line 1482
23211    return ((bool )1);
23212  } else {
23213
23214  }
23215  {
23216#line 1484
23217  tmp___15 = vring_need_event(event, new, old);
23218  }
23219#line 1484
23220  return ((bool )tmp___15);
23221}
23222}
23223#line 1488 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
23224void vhost_signal(struct vhost_dev *dev , struct vhost_virtqueue *vq ) 
23225{ bool tmp___7 ;
23226  unsigned long __cil_tmp4 ;
23227  unsigned long __cil_tmp5 ;
23228  unsigned long __cil_tmp6 ;
23229  unsigned long __cil_tmp7 ;
23230  struct eventfd_ctx *__cil_tmp8 ;
23231
23232  {
23233  {
23234#line 1491
23235  __cil_tmp4 = (unsigned long )vq;
23236#line 1491
23237  __cil_tmp5 = __cil_tmp4 + 136;
23238#line 1491
23239  if (*((struct eventfd_ctx **)__cil_tmp5)) {
23240    {
23241#line 1491
23242    tmp___7 = vhost_notify(dev, vq);
23243    }
23244#line 1491
23245    if (tmp___7) {
23246      {
23247#line 1492
23248      __cil_tmp6 = (unsigned long )vq;
23249#line 1492
23250      __cil_tmp7 = __cil_tmp6 + 136;
23251#line 1492
23252      __cil_tmp8 = *((struct eventfd_ctx **)__cil_tmp7);
23253#line 1492
23254      eventfd_signal(__cil_tmp8, 1);
23255      }
23256    } else {
23257
23258    }
23259  } else {
23260
23261  }
23262  }
23263#line 1493
23264  return;
23265}
23266}
23267#line 1496 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
23268void vhost_add_used_and_signal(struct vhost_dev *dev , struct vhost_virtqueue *vq ,
23269                               unsigned int head , int len ) 
23270{ 
23271
23272  {
23273  {
23274#line 1500
23275  vhost_add_used(vq, head, len);
23276#line 1501
23277  vhost_signal(dev, vq);
23278  }
23279#line 1502
23280  return;
23281}
23282}
23283#line 1505 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
23284void vhost_add_used_and_signal_n(struct vhost_dev *dev , struct vhost_virtqueue *vq ,
23285                                 struct vring_used_elem *heads , unsigned int count ) 
23286{ 
23287
23288  {
23289  {
23290#line 1509
23291  vhost_add_used_n(vq, heads, count);
23292#line 1510
23293  vhost_signal(dev, vq);
23294  }
23295#line 1511
23296  return;
23297}
23298}
23299#line 1525 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
23300static struct _ddebug  __attribute__((__aligned__(8))) descriptor___24  __attribute__((__used__,
23301__section__("__verbose")))  =    {"vhost_net", "vhost_enable_notify", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
23302    "Failed to enable notification at %p: %d\n", 1526U, 0U};
23303#line 1532 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
23304static struct _ddebug  __attribute__((__aligned__(8))) descriptor___25  __attribute__((__used__,
23305__section__("__verbose")))  =    {"vhost_net", "vhost_enable_notify", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
23306    "Failed to update avail event index at %p: %d\n", 1533U, 0U};
23307#line 1542 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
23308static struct _ddebug  __attribute__((__aligned__(8))) descriptor___26  __attribute__((__used__,
23309__section__("__verbose")))  =    {"vhost_net", "vhost_enable_notify", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
23310    "Failed to check avail idx at %p: %d\n", 1543U, 0U};
23311#line 1514 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
23312bool vhost_enable_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) 
23313{ u16 avail_idx ;
23314  int r ;
23315  long tmp___7 ;
23316  long tmp___8 ;
23317  int tmp___9 ;
23318  int __gu_err ;
23319  unsigned long __gu_val ;
23320  int tmp___10 ;
23321  long tmp___11 ;
23322  unsigned long __cil_tmp12 ;
23323  unsigned long __cil_tmp13 ;
23324  u16 __cil_tmp14 ;
23325  int __cil_tmp15 ;
23326  int __cil_tmp16 ;
23327  unsigned long __cil_tmp17 ;
23328  unsigned long __cil_tmp18 ;
23329  unsigned long __cil_tmp19 ;
23330  unsigned long __cil_tmp20 ;
23331  u16 __cil_tmp21 ;
23332  int __cil_tmp22 ;
23333  int __cil_tmp23 ;
23334  unsigned long __cil_tmp24 ;
23335  unsigned long __cil_tmp25 ;
23336  u16 __cil_tmp26 ;
23337  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp27 ;
23338  unsigned int __cil_tmp28 ;
23339  unsigned int __cil_tmp29 ;
23340  int __cil_tmp30 ;
23341  int __cil_tmp31 ;
23342  long __cil_tmp32 ;
23343  unsigned long __cil_tmp33 ;
23344  unsigned long __cil_tmp34 ;
23345  unsigned int __cil_tmp35 ;
23346  unsigned long __cil_tmp36 ;
23347  unsigned long __cil_tmp37 ;
23348  unsigned long __cil_tmp38 ;
23349  unsigned long __cil_tmp39 ;
23350  struct vring_used *__cil_tmp40 ;
23351  unsigned long __cil_tmp41 ;
23352  unsigned long __cil_tmp42 ;
23353  struct vring_used_elem *__cil_tmp43 ;
23354  u16 *__cil_tmp44 ;
23355  unsigned long __cil_tmp45 ;
23356  unsigned long __cil_tmp46 ;
23357  unsigned long __cil_tmp47 ;
23358  unsigned long __cil_tmp48 ;
23359  struct eventfd_ctx *__cil_tmp49 ;
23360  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp50 ;
23361  unsigned int __cil_tmp51 ;
23362  unsigned int __cil_tmp52 ;
23363  int __cil_tmp53 ;
23364  int __cil_tmp54 ;
23365  long __cil_tmp55 ;
23366  unsigned long __cil_tmp56 ;
23367  unsigned long __cil_tmp57 ;
23368  struct vring_used *__cil_tmp58 ;
23369  __u16 *__cil_tmp59 ;
23370  unsigned long __cil_tmp60 ;
23371  unsigned long __cil_tmp61 ;
23372  unsigned long __cil_tmp62 ;
23373  unsigned long __cil_tmp63 ;
23374  struct eventfd_ctx *__cil_tmp64 ;
23375  unsigned long __cil_tmp65 ;
23376  unsigned long __cil_tmp66 ;
23377  struct vring_avail *__cil_tmp67 ;
23378  unsigned long __cil_tmp68 ;
23379  unsigned long __cil_tmp69 ;
23380  __u16 *__cil_tmp70 ;
23381  struct __large_struct *__cil_tmp71 ;
23382  unsigned long __cil_tmp72 ;
23383  unsigned long __cil_tmp73 ;
23384  struct vring_avail *__cil_tmp74 ;
23385  unsigned long __cil_tmp75 ;
23386  unsigned long __cil_tmp76 ;
23387  __u16 *__cil_tmp77 ;
23388  struct __large_struct *__cil_tmp78 ;
23389  unsigned long __cil_tmp79 ;
23390  unsigned long __cil_tmp80 ;
23391  struct vring_avail *__cil_tmp81 ;
23392  unsigned long __cil_tmp82 ;
23393  unsigned long __cil_tmp83 ;
23394  __u16 *__cil_tmp84 ;
23395  struct __large_struct *__cil_tmp85 ;
23396  unsigned long __cil_tmp86 ;
23397  unsigned long __cil_tmp87 ;
23398  struct vring_avail *__cil_tmp88 ;
23399  unsigned long __cil_tmp89 ;
23400  unsigned long __cil_tmp90 ;
23401  __u16 *__cil_tmp91 ;
23402  struct __large_struct *__cil_tmp92 ;
23403  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp93 ;
23404  unsigned int __cil_tmp94 ;
23405  unsigned int __cil_tmp95 ;
23406  int __cil_tmp96 ;
23407  int __cil_tmp97 ;
23408  long __cil_tmp98 ;
23409  unsigned long __cil_tmp99 ;
23410  unsigned long __cil_tmp100 ;
23411  struct vring_avail *__cil_tmp101 ;
23412  unsigned long __cil_tmp102 ;
23413  unsigned long __cil_tmp103 ;
23414  __u16 *__cil_tmp104 ;
23415  unsigned long __cil_tmp105 ;
23416  unsigned long __cil_tmp106 ;
23417  unsigned long __cil_tmp107 ;
23418  unsigned long __cil_tmp108 ;
23419  struct eventfd_ctx *__cil_tmp109 ;
23420  unsigned long __cil_tmp110 ;
23421  unsigned long __cil_tmp111 ;
23422  u16 __cil_tmp112 ;
23423  int __cil_tmp113 ;
23424  int __cil_tmp114 ;
23425  int __cil_tmp115 ;
23426
23427  {
23428  {
23429#line 1519
23430  __cil_tmp12 = (unsigned long )vq;
23431#line 1519
23432  __cil_tmp13 = __cil_tmp12 + 334;
23433#line 1519
23434  __cil_tmp14 = *((u16 *)__cil_tmp13);
23435#line 1519
23436  __cil_tmp15 = (int )__cil_tmp14;
23437#line 1519
23438  __cil_tmp16 = __cil_tmp15 & 1;
23439#line 1519
23440  if (! __cil_tmp16) {
23441#line 1520
23442    return ((bool )0);
23443  } else {
23444
23445  }
23446  }
23447  {
23448#line 1521
23449  __cil_tmp17 = (unsigned long )vq;
23450#line 1521
23451  __cil_tmp18 = __cil_tmp17 + 334;
23452#line 1521
23453  __cil_tmp19 = (unsigned long )vq;
23454#line 1521
23455  __cil_tmp20 = __cil_tmp19 + 334;
23456#line 1521
23457  __cil_tmp21 = *((u16 *)__cil_tmp20);
23458#line 1521
23459  __cil_tmp22 = (int )__cil_tmp21;
23460#line 1521
23461  __cil_tmp23 = __cil_tmp22 & -2;
23462#line 1521
23463  *((u16 *)__cil_tmp18) = (u16 )__cil_tmp23;
23464#line 1522
23465  tmp___9 = vhost_has_feature(dev, 29);
23466  }
23467#line 1522
23468  if (tmp___9) {
23469    {
23470#line 1530
23471    __cil_tmp24 = (unsigned long )vq;
23472#line 1530
23473    __cil_tmp25 = __cil_tmp24 + 330;
23474#line 1530
23475    __cil_tmp26 = *((u16 *)__cil_tmp25);
23476#line 1530
23477    r = vhost_update_avail_event(vq, __cil_tmp26);
23478    }
23479#line 1531
23480    if (r) {
23481      {
23482#line 1532
23483      while (1) {
23484        while_continue: /* CIL Label */ ;
23485        {
23486#line 1532
23487        while (1) {
23488          while_continue___0: /* CIL Label */ ;
23489          {
23490#line 1532
23491          __cil_tmp27 = & descriptor___25;
23492#line 1532
23493          __cil_tmp28 = __cil_tmp27->flags;
23494#line 1532
23495          __cil_tmp29 = __cil_tmp28 & 1U;
23496#line 1532
23497          __cil_tmp30 = ! __cil_tmp29;
23498#line 1532
23499          __cil_tmp31 = ! __cil_tmp30;
23500#line 1532
23501          __cil_tmp32 = (long )__cil_tmp31;
23502#line 1532
23503          tmp___8 = __builtin_expect(__cil_tmp32, 0L);
23504          }
23505#line 1532
23506          if (tmp___8) {
23507            {
23508#line 1532
23509            __cil_tmp33 = (unsigned long )vq;
23510#line 1532
23511            __cil_tmp34 = __cil_tmp33 + 80;
23512#line 1532
23513            __cil_tmp35 = *((unsigned int *)__cil_tmp34);
23514#line 1532
23515            __cil_tmp36 = __cil_tmp35 * 8UL;
23516#line 1532
23517            __cil_tmp37 = 4 + __cil_tmp36;
23518#line 1532
23519            __cil_tmp38 = (unsigned long )vq;
23520#line 1532
23521            __cil_tmp39 = __cil_tmp38 + 104;
23522#line 1532
23523            __cil_tmp40 = *((struct vring_used **)__cil_tmp39);
23524#line 1532
23525            __cil_tmp41 = (unsigned long )__cil_tmp40;
23526#line 1532
23527            __cil_tmp42 = __cil_tmp41 + __cil_tmp37;
23528#line 1532
23529            __cil_tmp43 = (struct vring_used_elem *)__cil_tmp42;
23530#line 1532
23531            __cil_tmp44 = (u16 *)__cil_tmp43;
23532#line 1532
23533            __dynamic_pr_debug(& descriptor___25, "Failed to update avail event index at %p: %d\n",
23534                               __cil_tmp44, r);
23535            }
23536          } else {
23537
23538          }
23539#line 1532
23540          goto while_break___0;
23541        }
23542        while_break___0: /* CIL Label */ ;
23543        }
23544        {
23545#line 1532
23546        __cil_tmp45 = (unsigned long )vq;
23547#line 1532
23548        __cil_tmp46 = __cil_tmp45 + 144;
23549#line 1532
23550        if (*((struct eventfd_ctx **)__cil_tmp46)) {
23551          {
23552#line 1532
23553          __cil_tmp47 = (unsigned long )vq;
23554#line 1532
23555          __cil_tmp48 = __cil_tmp47 + 144;
23556#line 1532
23557          __cil_tmp49 = *((struct eventfd_ctx **)__cil_tmp48);
23558#line 1532
23559          eventfd_signal(__cil_tmp49, 1);
23560          }
23561        } else {
23562
23563        }
23564        }
23565#line 1532
23566        goto while_break;
23567      }
23568      while_break: /* CIL Label */ ;
23569      }
23570#line 1534
23571      return ((bool )0);
23572    } else {
23573
23574    }
23575  } else {
23576    {
23577#line 1523
23578    r = vhost_update_used_flags(vq);
23579    }
23580#line 1524
23581    if (r) {
23582      {
23583#line 1525
23584      while (1) {
23585        while_continue___1: /* CIL Label */ ;
23586        {
23587#line 1525
23588        while (1) {
23589          while_continue___2: /* CIL Label */ ;
23590          {
23591#line 1525
23592          __cil_tmp50 = & descriptor___24;
23593#line 1525
23594          __cil_tmp51 = __cil_tmp50->flags;
23595#line 1525
23596          __cil_tmp52 = __cil_tmp51 & 1U;
23597#line 1525
23598          __cil_tmp53 = ! __cil_tmp52;
23599#line 1525
23600          __cil_tmp54 = ! __cil_tmp53;
23601#line 1525
23602          __cil_tmp55 = (long )__cil_tmp54;
23603#line 1525
23604          tmp___7 = __builtin_expect(__cil_tmp55, 0L);
23605          }
23606#line 1525
23607          if (tmp___7) {
23608            {
23609#line 1525
23610            __cil_tmp56 = (unsigned long )vq;
23611#line 1525
23612            __cil_tmp57 = __cil_tmp56 + 104;
23613#line 1525
23614            __cil_tmp58 = *((struct vring_used **)__cil_tmp57);
23615#line 1525
23616            __cil_tmp59 = (__u16 *)__cil_tmp58;
23617#line 1525
23618            __dynamic_pr_debug(& descriptor___24, "Failed to enable notification at %p: %d\n",
23619                               __cil_tmp59, r);
23620            }
23621          } else {
23622
23623          }
23624#line 1525
23625          goto while_break___2;
23626        }
23627        while_break___2: /* CIL Label */ ;
23628        }
23629        {
23630#line 1525
23631        __cil_tmp60 = (unsigned long )vq;
23632#line 1525
23633        __cil_tmp61 = __cil_tmp60 + 144;
23634#line 1525
23635        if (*((struct eventfd_ctx **)__cil_tmp61)) {
23636          {
23637#line 1525
23638          __cil_tmp62 = (unsigned long )vq;
23639#line 1525
23640          __cil_tmp63 = __cil_tmp62 + 144;
23641#line 1525
23642          __cil_tmp64 = *((struct eventfd_ctx **)__cil_tmp63);
23643#line 1525
23644          eventfd_signal(__cil_tmp64, 1);
23645          }
23646        } else {
23647
23648        }
23649        }
23650#line 1525
23651        goto while_break___1;
23652      }
23653      while_break___1: /* CIL Label */ ;
23654      }
23655#line 1527
23656      return ((bool )0);
23657    } else {
23658
23659    }
23660  }
23661#line 1539
23662  __asm__  volatile   ("mfence": : : "memory");
23663  {
23664#line 1540
23665  while (1) {
23666    while_continue___3: /* CIL Label */ ;
23667#line 1540
23668    __gu_err = 0;
23669#line 1540
23670    if ((int )2UL == 1) {
23671#line 1540
23672      goto case_1;
23673    } else
23674#line 1540
23675    if ((int )2UL == 2) {
23676#line 1540
23677      goto case_2;
23678    } else
23679#line 1540
23680    if ((int )2UL == 4) {
23681#line 1540
23682      goto case_4;
23683    } else
23684#line 1540
23685    if ((int )2UL == 8) {
23686#line 1540
23687      goto case_8;
23688    } else {
23689      {
23690#line 1540
23691      goto switch_default;
23692#line 1540
23693      if (0) {
23694        case_1: /* CIL Label */ 
23695#line 1540
23696        __cil_tmp65 = (unsigned long )vq;
23697#line 1540
23698        __cil_tmp66 = __cil_tmp65 + 96;
23699#line 1540
23700        __cil_tmp67 = *((struct vring_avail **)__cil_tmp66);
23701#line 1540
23702        __cil_tmp68 = (unsigned long )__cil_tmp67;
23703#line 1540
23704        __cil_tmp69 = __cil_tmp68 + 2;
23705#line 1540
23706        __cil_tmp70 = (__u16 *)__cil_tmp69;
23707#line 1540
23708        __cil_tmp71 = (struct __large_struct *)__cil_tmp70;
23709#line 1540
23710        __asm__  volatile   ("1:\tmov"
23711                             "b"
23712                             " %2,%"
23713                             "b"
23714                             "1\n"
23715                             "2:\n"
23716                             ".section .fixup,\"ax\"\n"
23717                             "3:\tmov %3,%0\n"
23718                             "\txor"
23719                             "b"
23720                             " %"
23721                             "b"
23722                             "1,%"
23723                             "b"
23724                             "1\n"
23725                             "\tjmp 2b\n"
23726                             ".previous\n"
23727                             " .section __ex_table,\"a\"\n"
23728                             " "
23729                             ".balign 8"
23730                             " "
23731                             "\n"
23732                             " "
23733                             ".quad"
23734                             " "
23735                             "1b"
23736                             ","
23737                             "3b"
23738                             "\n"
23739                             " .previous\n": "=r" (__gu_err), "=q" (__gu_val): "m" (*__cil_tmp71),
23740                             "i" (-14), "0" (__gu_err));
23741#line 1540
23742        goto switch_break;
23743        case_2: /* CIL Label */ 
23744#line 1540
23745        __cil_tmp72 = (unsigned long )vq;
23746#line 1540
23747        __cil_tmp73 = __cil_tmp72 + 96;
23748#line 1540
23749        __cil_tmp74 = *((struct vring_avail **)__cil_tmp73);
23750#line 1540
23751        __cil_tmp75 = (unsigned long )__cil_tmp74;
23752#line 1540
23753        __cil_tmp76 = __cil_tmp75 + 2;
23754#line 1540
23755        __cil_tmp77 = (__u16 *)__cil_tmp76;
23756#line 1540
23757        __cil_tmp78 = (struct __large_struct *)__cil_tmp77;
23758#line 1540
23759        __asm__  volatile   ("1:\tmov"
23760                             "w"
23761                             " %2,%"
23762                             "w"
23763                             "1\n"
23764                             "2:\n"
23765                             ".section .fixup,\"ax\"\n"
23766                             "3:\tmov %3,%0\n"
23767                             "\txor"
23768                             "w"
23769                             " %"
23770                             "w"
23771                             "1,%"
23772                             "w"
23773                             "1\n"
23774                             "\tjmp 2b\n"
23775                             ".previous\n"
23776                             " .section __ex_table,\"a\"\n"
23777                             " "
23778                             ".balign 8"
23779                             " "
23780                             "\n"
23781                             " "
23782                             ".quad"
23783                             " "
23784                             "1b"
23785                             ","
23786                             "3b"
23787                             "\n"
23788                             " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp78),
23789                             "i" (-14), "0" (__gu_err));
23790#line 1540
23791        goto switch_break;
23792        case_4: /* CIL Label */ 
23793#line 1540
23794        __cil_tmp79 = (unsigned long )vq;
23795#line 1540
23796        __cil_tmp80 = __cil_tmp79 + 96;
23797#line 1540
23798        __cil_tmp81 = *((struct vring_avail **)__cil_tmp80);
23799#line 1540
23800        __cil_tmp82 = (unsigned long )__cil_tmp81;
23801#line 1540
23802        __cil_tmp83 = __cil_tmp82 + 2;
23803#line 1540
23804        __cil_tmp84 = (__u16 *)__cil_tmp83;
23805#line 1540
23806        __cil_tmp85 = (struct __large_struct *)__cil_tmp84;
23807#line 1540
23808        __asm__  volatile   ("1:\tmov"
23809                             "l"
23810                             " %2,%"
23811                             "k"
23812                             "1\n"
23813                             "2:\n"
23814                             ".section .fixup,\"ax\"\n"
23815                             "3:\tmov %3,%0\n"
23816                             "\txor"
23817                             "l"
23818                             " %"
23819                             "k"
23820                             "1,%"
23821                             "k"
23822                             "1\n"
23823                             "\tjmp 2b\n"
23824                             ".previous\n"
23825                             " .section __ex_table,\"a\"\n"
23826                             " "
23827                             ".balign 8"
23828                             " "
23829                             "\n"
23830                             " "
23831                             ".quad"
23832                             " "
23833                             "1b"
23834                             ","
23835                             "3b"
23836                             "\n"
23837                             " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp85),
23838                             "i" (-14), "0" (__gu_err));
23839#line 1540
23840        goto switch_break;
23841        case_8: /* CIL Label */ 
23842#line 1540
23843        __cil_tmp86 = (unsigned long )vq;
23844#line 1540
23845        __cil_tmp87 = __cil_tmp86 + 96;
23846#line 1540
23847        __cil_tmp88 = *((struct vring_avail **)__cil_tmp87);
23848#line 1540
23849        __cil_tmp89 = (unsigned long )__cil_tmp88;
23850#line 1540
23851        __cil_tmp90 = __cil_tmp89 + 2;
23852#line 1540
23853        __cil_tmp91 = (__u16 *)__cil_tmp90;
23854#line 1540
23855        __cil_tmp92 = (struct __large_struct *)__cil_tmp91;
23856#line 1540
23857        __asm__  volatile   ("1:\tmov"
23858                             "q"
23859                             " %2,%"
23860                             ""
23861                             "1\n"
23862                             "2:\n"
23863                             ".section .fixup,\"ax\"\n"
23864                             "3:\tmov %3,%0\n"
23865                             "\txor"
23866                             "q"
23867                             " %"
23868                             ""
23869                             "1,%"
23870                             ""
23871                             "1\n"
23872                             "\tjmp 2b\n"
23873                             ".previous\n"
23874                             " .section __ex_table,\"a\"\n"
23875                             " "
23876                             ".balign 8"
23877                             " "
23878                             "\n"
23879                             " "
23880                             ".quad"
23881                             " "
23882                             "1b"
23883                             ","
23884                             "3b"
23885                             "\n"
23886                             " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp92),
23887                             "i" (-14), "0" (__gu_err));
23888#line 1540
23889        goto switch_break;
23890        switch_default: /* CIL Label */ 
23891        {
23892#line 1540
23893        tmp___10 = __get_user_bad();
23894#line 1540
23895        __gu_val = (unsigned long )tmp___10;
23896        }
23897      } else {
23898        switch_break: /* CIL Label */ ;
23899      }
23900      }
23901    }
23902#line 1540
23903    goto while_break___3;
23904  }
23905  while_break___3: /* CIL Label */ ;
23906  }
23907#line 1540
23908  avail_idx = (__u16 )__gu_val;
23909#line 1540
23910  r = __gu_err;
23911#line 1541
23912  if (r) {
23913    {
23914#line 1542
23915    while (1) {
23916      while_continue___4: /* CIL Label */ ;
23917      {
23918#line 1542
23919      while (1) {
23920        while_continue___5: /* CIL Label */ ;
23921        {
23922#line 1542
23923        __cil_tmp93 = & descriptor___26;
23924#line 1542
23925        __cil_tmp94 = __cil_tmp93->flags;
23926#line 1542
23927        __cil_tmp95 = __cil_tmp94 & 1U;
23928#line 1542
23929        __cil_tmp96 = ! __cil_tmp95;
23930#line 1542
23931        __cil_tmp97 = ! __cil_tmp96;
23932#line 1542
23933        __cil_tmp98 = (long )__cil_tmp97;
23934#line 1542
23935        tmp___11 = __builtin_expect(__cil_tmp98, 0L);
23936        }
23937#line 1542
23938        if (tmp___11) {
23939          {
23940#line 1542
23941          __cil_tmp99 = (unsigned long )vq;
23942#line 1542
23943          __cil_tmp100 = __cil_tmp99 + 96;
23944#line 1542
23945          __cil_tmp101 = *((struct vring_avail **)__cil_tmp100);
23946#line 1542
23947          __cil_tmp102 = (unsigned long )__cil_tmp101;
23948#line 1542
23949          __cil_tmp103 = __cil_tmp102 + 2;
23950#line 1542
23951          __cil_tmp104 = (__u16 *)__cil_tmp103;
23952#line 1542
23953          __dynamic_pr_debug(& descriptor___26, "Failed to check avail idx at %p: %d\n",
23954                             __cil_tmp104, r);
23955          }
23956        } else {
23957
23958        }
23959#line 1542
23960        goto while_break___5;
23961      }
23962      while_break___5: /* CIL Label */ ;
23963      }
23964      {
23965#line 1542
23966      __cil_tmp105 = (unsigned long )vq;
23967#line 1542
23968      __cil_tmp106 = __cil_tmp105 + 144;
23969#line 1542
23970      if (*((struct eventfd_ctx **)__cil_tmp106)) {
23971        {
23972#line 1542
23973        __cil_tmp107 = (unsigned long )vq;
23974#line 1542
23975        __cil_tmp108 = __cil_tmp107 + 144;
23976#line 1542
23977        __cil_tmp109 = *((struct eventfd_ctx **)__cil_tmp108);
23978#line 1542
23979        eventfd_signal(__cil_tmp109, 1);
23980        }
23981      } else {
23982
23983      }
23984      }
23985#line 1542
23986      goto while_break___4;
23987    }
23988    while_break___4: /* CIL Label */ ;
23989    }
23990#line 1544
23991    return ((bool )0);
23992  } else {
23993
23994  }
23995  {
23996#line 1547
23997  __cil_tmp110 = (unsigned long )vq;
23998#line 1547
23999  __cil_tmp111 = __cil_tmp110 + 330;
24000#line 1547
24001  __cil_tmp112 = *((u16 *)__cil_tmp111);
24002#line 1547
24003  __cil_tmp113 = (int )__cil_tmp112;
24004#line 1547
24005  __cil_tmp114 = (int )avail_idx;
24006#line 1547
24007  __cil_tmp115 = __cil_tmp114 != __cil_tmp113;
24008#line 1547
24009  return ((bool )__cil_tmp115);
24010  }
24011}
24012}
24013#line 1561 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
24014static struct _ddebug  __attribute__((__aligned__(8))) descriptor___27  __attribute__((__used__,
24015__section__("__verbose")))  =    {"vhost_net", "vhost_disable_notify", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c",
24016    "Failed to enable notification at %p: %d\n", 1562U, 0U};
24017#line 1551 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
24018void vhost_disable_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) 
24019{ int r ;
24020  long tmp___7 ;
24021  int tmp___8 ;
24022  unsigned long __cil_tmp6 ;
24023  unsigned long __cil_tmp7 ;
24024  u16 __cil_tmp8 ;
24025  int __cil_tmp9 ;
24026  unsigned long __cil_tmp10 ;
24027  unsigned long __cil_tmp11 ;
24028  unsigned long __cil_tmp12 ;
24029  unsigned long __cil_tmp13 ;
24030  u16 __cil_tmp14 ;
24031  int __cil_tmp15 ;
24032  int __cil_tmp16 ;
24033  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp17 ;
24034  unsigned int __cil_tmp18 ;
24035  unsigned int __cil_tmp19 ;
24036  int __cil_tmp20 ;
24037  int __cil_tmp21 ;
24038  long __cil_tmp22 ;
24039  unsigned long __cil_tmp23 ;
24040  unsigned long __cil_tmp24 ;
24041  struct vring_used *__cil_tmp25 ;
24042  __u16 *__cil_tmp26 ;
24043  unsigned long __cil_tmp27 ;
24044  unsigned long __cil_tmp28 ;
24045  unsigned long __cil_tmp29 ;
24046  unsigned long __cil_tmp30 ;
24047  struct eventfd_ctx *__cil_tmp31 ;
24048
24049  {
24050  {
24051#line 1555
24052  __cil_tmp6 = (unsigned long )vq;
24053#line 1555
24054  __cil_tmp7 = __cil_tmp6 + 334;
24055#line 1555
24056  __cil_tmp8 = *((u16 *)__cil_tmp7);
24057#line 1555
24058  __cil_tmp9 = (int )__cil_tmp8;
24059#line 1555
24060  if (__cil_tmp9 & 1) {
24061#line 1556
24062    return;
24063  } else {
24064
24065  }
24066  }
24067  {
24068#line 1557
24069  __cil_tmp10 = (unsigned long )vq;
24070#line 1557
24071  __cil_tmp11 = __cil_tmp10 + 334;
24072#line 1557
24073  __cil_tmp12 = (unsigned long )vq;
24074#line 1557
24075  __cil_tmp13 = __cil_tmp12 + 334;
24076#line 1557
24077  __cil_tmp14 = *((u16 *)__cil_tmp13);
24078#line 1557
24079  __cil_tmp15 = (int )__cil_tmp14;
24080#line 1557
24081  __cil_tmp16 = __cil_tmp15 | 1;
24082#line 1557
24083  *((u16 *)__cil_tmp11) = (u16 )__cil_tmp16;
24084#line 1558
24085  tmp___8 = vhost_has_feature(dev, 29);
24086  }
24087#line 1558
24088  if (tmp___8) {
24089
24090  } else {
24091    {
24092#line 1559
24093    r = vhost_update_used_flags(vq);
24094    }
24095#line 1560
24096    if (r) {
24097      {
24098#line 1561
24099      while (1) {
24100        while_continue: /* CIL Label */ ;
24101        {
24102#line 1561
24103        while (1) {
24104          while_continue___0: /* CIL Label */ ;
24105          {
24106#line 1561
24107          __cil_tmp17 = & descriptor___27;
24108#line 1561
24109          __cil_tmp18 = __cil_tmp17->flags;
24110#line 1561
24111          __cil_tmp19 = __cil_tmp18 & 1U;
24112#line 1561
24113          __cil_tmp20 = ! __cil_tmp19;
24114#line 1561
24115          __cil_tmp21 = ! __cil_tmp20;
24116#line 1561
24117          __cil_tmp22 = (long )__cil_tmp21;
24118#line 1561
24119          tmp___7 = __builtin_expect(__cil_tmp22, 0L);
24120          }
24121#line 1561
24122          if (tmp___7) {
24123            {
24124#line 1561
24125            __cil_tmp23 = (unsigned long )vq;
24126#line 1561
24127            __cil_tmp24 = __cil_tmp23 + 104;
24128#line 1561
24129            __cil_tmp25 = *((struct vring_used **)__cil_tmp24);
24130#line 1561
24131            __cil_tmp26 = (__u16 *)__cil_tmp25;
24132#line 1561
24133            __dynamic_pr_debug(& descriptor___27, "Failed to enable notification at %p: %d\n",
24134                               __cil_tmp26, r);
24135            }
24136          } else {
24137
24138          }
24139#line 1561
24140          goto while_break___0;
24141        }
24142        while_break___0: /* CIL Label */ ;
24143        }
24144        {
24145#line 1561
24146        __cil_tmp27 = (unsigned long )vq;
24147#line 1561
24148        __cil_tmp28 = __cil_tmp27 + 144;
24149#line 1561
24150        if (*((struct eventfd_ctx **)__cil_tmp28)) {
24151          {
24152#line 1561
24153          __cil_tmp29 = (unsigned long )vq;
24154#line 1561
24155          __cil_tmp30 = __cil_tmp29 + 144;
24156#line 1561
24157          __cil_tmp31 = *((struct eventfd_ctx **)__cil_tmp30);
24158#line 1561
24159          eventfd_signal(__cil_tmp31, 1);
24160          }
24161        } else {
24162
24163        }
24164        }
24165#line 1561
24166        goto while_break;
24167      }
24168      while_break: /* CIL Label */ ;
24169      }
24170    } else {
24171
24172    }
24173  }
24174#line 1564
24175  return;
24176}
24177}
24178#line 1566 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
24179static void vhost_zerocopy_done_signal(struct kref *kref ) 
24180{ struct vhost_ubuf_ref *ubufs ;
24181  struct kref    *__mptr ;
24182  struct vhost_ubuf_ref *__cil_tmp4 ;
24183  struct kref *__cil_tmp5 ;
24184  unsigned int __cil_tmp6 ;
24185  char *__cil_tmp7 ;
24186  char *__cil_tmp8 ;
24187  unsigned long __cil_tmp9 ;
24188  unsigned long __cil_tmp10 ;
24189  wait_queue_head_t *__cil_tmp11 ;
24190  void *__cil_tmp12 ;
24191
24192  {
24193  {
24194#line 1568
24195  __mptr = (struct kref    *)kref;
24196#line 1568
24197  __cil_tmp4 = (struct vhost_ubuf_ref *)0;
24198#line 1568
24199  __cil_tmp5 = (struct kref *)__cil_tmp4;
24200#line 1568
24201  __cil_tmp6 = (unsigned int )__cil_tmp5;
24202#line 1568
24203  __cil_tmp7 = (char *)__mptr;
24204#line 1568
24205  __cil_tmp8 = __cil_tmp7 - __cil_tmp6;
24206#line 1568
24207  ubufs = (struct vhost_ubuf_ref *)__cil_tmp8;
24208#line 1570
24209  __cil_tmp9 = (unsigned long )ubufs;
24210#line 1570
24211  __cil_tmp10 = __cil_tmp9 + 8;
24212#line 1570
24213  __cil_tmp11 = (wait_queue_head_t *)__cil_tmp10;
24214#line 1570
24215  __cil_tmp12 = (void *)0;
24216#line 1570
24217  __wake_up(__cil_tmp11, 3U, 1, __cil_tmp12);
24218  }
24219#line 1571
24220  return;
24221}
24222}
24223#line 1584 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
24224static struct lock_class_key __key___10  ;
24225#line 1573 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
24226struct vhost_ubuf_ref *vhost_ubuf_alloc(struct vhost_virtqueue *vq , bool zcopy ) 
24227{ struct vhost_ubuf_ref *ubufs ;
24228  void *tmp___7 ;
24229  void *tmp___8 ;
24230  void *__cil_tmp6 ;
24231  struct kref *__cil_tmp7 ;
24232  unsigned long __cil_tmp8 ;
24233  unsigned long __cil_tmp9 ;
24234  wait_queue_head_t *__cil_tmp10 ;
24235  unsigned long __cil_tmp11 ;
24236  unsigned long __cil_tmp12 ;
24237
24238  {
24239#line 1578
24240  if (! zcopy) {
24241    {
24242#line 1579
24243    __cil_tmp6 = (void *)0;
24244#line 1579
24245    return ((struct vhost_ubuf_ref *)__cil_tmp6);
24246    }
24247  } else {
24248
24249  }
24250  {
24251#line 1580
24252  tmp___7 = kmalloc(56UL, 208U);
24253#line 1580
24254  ubufs = (struct vhost_ubuf_ref *)tmp___7;
24255  }
24256#line 1581
24257  if (! ubufs) {
24258    {
24259#line 1582
24260    tmp___8 = (void *)ERR_PTR(-12L);
24261    }
24262#line 1582
24263    return ((struct vhost_ubuf_ref *)tmp___8);
24264  } else {
24265
24266  }
24267  {
24268#line 1583
24269  __cil_tmp7 = (struct kref *)ubufs;
24270#line 1583
24271  kref_init(__cil_tmp7);
24272  }
24273  {
24274#line 1584
24275  while (1) {
24276    while_continue: /* CIL Label */ ;
24277    {
24278#line 1584
24279    __cil_tmp8 = (unsigned long )ubufs;
24280#line 1584
24281    __cil_tmp9 = __cil_tmp8 + 8;
24282#line 1584
24283    __cil_tmp10 = (wait_queue_head_t *)__cil_tmp9;
24284#line 1584
24285    __init_waitqueue_head(__cil_tmp10, "&ubufs->wait", & __key___10);
24286    }
24287#line 1584
24288    goto while_break;
24289  }
24290  while_break: /* CIL Label */ ;
24291  }
24292#line 1585
24293  __cil_tmp11 = (unsigned long )ubufs;
24294#line 1585
24295  __cil_tmp12 = __cil_tmp11 + 48;
24296#line 1585
24297  *((struct vhost_virtqueue **)__cil_tmp12) = vq;
24298#line 1586
24299  return (ubufs);
24300}
24301}
24302#line 1589 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
24303void vhost_ubuf_put(struct vhost_ubuf_ref *ubufs ) 
24304{ struct kref *__cil_tmp2 ;
24305
24306  {
24307  {
24308#line 1591
24309  __cil_tmp2 = (struct kref *)ubufs;
24310#line 1591
24311  kref_put(__cil_tmp2, & vhost_zerocopy_done_signal);
24312  }
24313#line 1592
24314  return;
24315}
24316}
24317#line 1594 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
24318void vhost_ubuf_put_and_wait(struct vhost_ubuf_ref *ubufs ) 
24319{ int tmp___7 ;
24320  wait_queue_t __wait ;
24321  struct task_struct *tmp___8 ;
24322  int tmp___9 ;
24323  struct kref *__cil_tmp6 ;
24324  atomic_t *__cil_tmp7 ;
24325  atomic_t    *__cil_tmp8 ;
24326  wait_queue_t *__cil_tmp9 ;
24327  unsigned long __cil_tmp10 ;
24328  unsigned long __cil_tmp11 ;
24329  unsigned long __cil_tmp12 ;
24330  unsigned long __cil_tmp13 ;
24331  unsigned long __cil_tmp14 ;
24332  unsigned long __cil_tmp15 ;
24333  unsigned long __cil_tmp16 ;
24334  unsigned long __cil_tmp17 ;
24335  unsigned long __cil_tmp18 ;
24336  wait_queue_head_t *__cil_tmp19 ;
24337  atomic_t *__cil_tmp20 ;
24338  atomic_t    *__cil_tmp21 ;
24339  unsigned long __cil_tmp22 ;
24340  unsigned long __cil_tmp23 ;
24341  wait_queue_head_t *__cil_tmp24 ;
24342  void    *__cil_tmp25 ;
24343
24344  {
24345  {
24346#line 1596
24347  __cil_tmp6 = (struct kref *)ubufs;
24348#line 1596
24349  kref_put(__cil_tmp6, & vhost_zerocopy_done_signal);
24350  }
24351  {
24352#line 1597
24353  while (1) {
24354    while_continue: /* CIL Label */ ;
24355    {
24356#line 1597
24357    __cil_tmp7 = (atomic_t *)ubufs;
24358#line 1597
24359    __cil_tmp8 = (atomic_t    *)__cil_tmp7;
24360#line 1597
24361    tmp___7 = atomic_read(__cil_tmp8);
24362    }
24363#line 1597
24364    if (tmp___7) {
24365
24366    } else {
24367#line 1597
24368      goto while_break;
24369    }
24370    {
24371#line 1597
24372    while (1) {
24373      while_continue___0: /* CIL Label */ ;
24374      {
24375#line 1597
24376      tmp___8 = get_current();
24377#line 1597
24378      __cil_tmp9 = & __wait;
24379#line 1597
24380      *((unsigned int *)__cil_tmp9) = 0U;
24381#line 1597
24382      __cil_tmp10 = (unsigned long )(& __wait) + 8;
24383#line 1597
24384      *((void **)__cil_tmp10) = (void *)tmp___8;
24385#line 1597
24386      __cil_tmp11 = (unsigned long )(& __wait) + 16;
24387#line 1597
24388      *((int (**)(wait_queue_t *wait , unsigned int mode , int flags , void *key ))__cil_tmp11) = & autoremove_wake_function;
24389#line 1597
24390      __cil_tmp12 = (unsigned long )(& __wait) + 24;
24391#line 1597
24392      __cil_tmp13 = (unsigned long )(& __wait) + 24;
24393#line 1597
24394      *((struct list_head **)__cil_tmp12) = (struct list_head *)__cil_tmp13;
24395#line 1597
24396      __cil_tmp14 = 24 + 8;
24397#line 1597
24398      __cil_tmp15 = (unsigned long )(& __wait) + __cil_tmp14;
24399#line 1597
24400      __cil_tmp16 = (unsigned long )(& __wait) + 24;
24401#line 1597
24402      *((struct list_head **)__cil_tmp15) = (struct list_head *)__cil_tmp16;
24403      }
24404      {
24405#line 1597
24406      while (1) {
24407        while_continue___1: /* CIL Label */ ;
24408        {
24409#line 1597
24410        __cil_tmp17 = (unsigned long )ubufs;
24411#line 1597
24412        __cil_tmp18 = __cil_tmp17 + 8;
24413#line 1597
24414        __cil_tmp19 = (wait_queue_head_t *)__cil_tmp18;
24415#line 1597
24416        prepare_to_wait(__cil_tmp19, & __wait, 2);
24417#line 1597
24418        __cil_tmp20 = (atomic_t *)ubufs;
24419#line 1597
24420        __cil_tmp21 = (atomic_t    *)__cil_tmp20;
24421#line 1597
24422        tmp___9 = atomic_read(__cil_tmp21);
24423        }
24424#line 1597
24425        if (tmp___9) {
24426
24427        } else {
24428#line 1597
24429          goto while_break___1;
24430        }
24431        {
24432#line 1597
24433        schedule();
24434        }
24435      }
24436      while_break___1: /* CIL Label */ ;
24437      }
24438      {
24439#line 1597
24440      __cil_tmp22 = (unsigned long )ubufs;
24441#line 1597
24442      __cil_tmp23 = __cil_tmp22 + 8;
24443#line 1597
24444      __cil_tmp24 = (wait_queue_head_t *)__cil_tmp23;
24445#line 1597
24446      finish_wait(__cil_tmp24, & __wait);
24447      }
24448#line 1597
24449      goto while_break___0;
24450    }
24451    while_break___0: /* CIL Label */ ;
24452    }
24453#line 1597
24454    goto while_break;
24455  }
24456  while_break: /* CIL Label */ ;
24457  }
24458  {
24459#line 1598
24460  __cil_tmp25 = (void    *)ubufs;
24461#line 1598
24462  kfree(__cil_tmp25);
24463  }
24464#line 1599
24465  return;
24466}
24467}
24468#line 1601 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
24469void vhost_zerocopy_callback(struct ubuf_info *ubuf ) 
24470{ struct vhost_ubuf_ref *ubufs ;
24471  struct vhost_virtqueue *vq ;
24472  unsigned long __cil_tmp4 ;
24473  unsigned long __cil_tmp5 ;
24474  void *__cil_tmp6 ;
24475  unsigned long __cil_tmp7 ;
24476  unsigned long __cil_tmp8 ;
24477  unsigned long __cil_tmp9 ;
24478  unsigned long __cil_tmp10 ;
24479  unsigned long __cil_tmp11 ;
24480  unsigned long __cil_tmp12 ;
24481  unsigned long __cil_tmp13 ;
24482  struct vring_used_elem *__cil_tmp14 ;
24483  struct vring_used_elem *__cil_tmp15 ;
24484  unsigned long __cil_tmp16 ;
24485  unsigned long __cil_tmp17 ;
24486  struct kref *__cil_tmp18 ;
24487
24488  {
24489  {
24490#line 1603
24491  __cil_tmp4 = (unsigned long )ubuf;
24492#line 1603
24493  __cil_tmp5 = __cil_tmp4 + 8;
24494#line 1603
24495  __cil_tmp6 = *((void **)__cil_tmp5);
24496#line 1603
24497  ubufs = (struct vhost_ubuf_ref *)__cil_tmp6;
24498#line 1604
24499  __cil_tmp7 = (unsigned long )ubufs;
24500#line 1604
24501  __cil_tmp8 = __cil_tmp7 + 48;
24502#line 1604
24503  vq = *((struct vhost_virtqueue **)__cil_tmp8);
24504#line 1607
24505  __cil_tmp9 = (unsigned long )ubuf;
24506#line 1607
24507  __cil_tmp10 = __cil_tmp9 + 16;
24508#line 1607
24509  __cil_tmp11 = *((unsigned long *)__cil_tmp10);
24510#line 1607
24511  __cil_tmp12 = (unsigned long )vq;
24512#line 1607
24513  __cil_tmp13 = __cil_tmp12 + 16952;
24514#line 1607
24515  __cil_tmp14 = *((struct vring_used_elem **)__cil_tmp13);
24516#line 1607
24517  __cil_tmp15 = __cil_tmp14 + __cil_tmp11;
24518#line 1607
24519  __cil_tmp16 = (unsigned long )__cil_tmp15;
24520#line 1607
24521  __cil_tmp17 = __cil_tmp16 + 4;
24522#line 1607
24523  *((__u32 *)__cil_tmp17) = (__u32 )1;
24524#line 1608
24525  __cil_tmp18 = (struct kref *)ubufs;
24526#line 1608
24527  kref_put(__cil_tmp18, & vhost_zerocopy_done_signal);
24528  }
24529#line 1609
24530  return;
24531}
24532}
24533#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/engine-blast-assert.h"
24534void ldv_blast_assert(void) 
24535{ 
24536
24537  {
24538  ERROR: 
24539#line 6
24540  goto ERROR;
24541}
24542}
24543#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/engine-blast.h"
24544extern int __VERIFIER_nondet_int(void) ;
24545#line 19 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
24546int ldv_mutex  =    1;
24547#line 22 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
24548int __attribute__((__warn_unused_result__))  mutex_lock_interruptible(struct mutex *lock ) 
24549{ int nondetermined ;
24550
24551  {
24552#line 29
24553  if (ldv_mutex == 1) {
24554
24555  } else {
24556    {
24557#line 29
24558    ldv_blast_assert();
24559    }
24560  }
24561  {
24562#line 32
24563  nondetermined = __VERIFIER_nondet_int();
24564  }
24565#line 35
24566  if (nondetermined) {
24567#line 38
24568    ldv_mutex = 2;
24569#line 40
24570    return (0);
24571  } else {
24572#line 45
24573    return (-4);
24574  }
24575}
24576}
24577#line 50 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
24578int __attribute__((__warn_unused_result__))  mutex_lock_killable(struct mutex *lock ) 
24579{ int nondetermined ;
24580
24581  {
24582#line 57
24583  if (ldv_mutex == 1) {
24584
24585  } else {
24586    {
24587#line 57
24588    ldv_blast_assert();
24589    }
24590  }
24591  {
24592#line 60
24593  nondetermined = __VERIFIER_nondet_int();
24594  }
24595#line 63
24596  if (nondetermined) {
24597#line 66
24598    ldv_mutex = 2;
24599#line 68
24600    return (0);
24601  } else {
24602#line 73
24603    return (-4);
24604  }
24605}
24606}
24607#line 78 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
24608int atomic_dec_and_mutex_lock(atomic_t *cnt , struct mutex *lock ) 
24609{ int atomic_value_after_dec ;
24610
24611  {
24612#line 83
24613  if (ldv_mutex == 1) {
24614
24615  } else {
24616    {
24617#line 83
24618    ldv_blast_assert();
24619    }
24620  }
24621  {
24622#line 86
24623  atomic_value_after_dec = __VERIFIER_nondet_int();
24624  }
24625#line 89
24626  if (atomic_value_after_dec == 0) {
24627#line 92
24628    ldv_mutex = 2;
24629#line 94
24630    return (1);
24631  } else {
24632
24633  }
24634#line 98
24635  return (0);
24636}
24637}
24638#line 103 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
24639void mutex_lock(struct mutex *lock ) 
24640{ 
24641
24642  {
24643#line 108
24644  if (ldv_mutex == 1) {
24645
24646  } else {
24647    {
24648#line 108
24649    ldv_blast_assert();
24650    }
24651  }
24652#line 110
24653  ldv_mutex = 2;
24654#line 111
24655  return;
24656}
24657}
24658#line 114 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
24659int mutex_trylock(struct mutex *lock ) 
24660{ int nondetermined ;
24661
24662  {
24663#line 121
24664  if (ldv_mutex == 1) {
24665
24666  } else {
24667    {
24668#line 121
24669    ldv_blast_assert();
24670    }
24671  }
24672  {
24673#line 124
24674  nondetermined = __VERIFIER_nondet_int();
24675  }
24676#line 127
24677  if (nondetermined) {
24678#line 130
24679    ldv_mutex = 2;
24680#line 132
24681    return (1);
24682  } else {
24683#line 137
24684    return (0);
24685  }
24686}
24687}
24688#line 142 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
24689void mutex_unlock(struct mutex *lock ) 
24690{ 
24691
24692  {
24693#line 147
24694  if (ldv_mutex == 2) {
24695
24696  } else {
24697    {
24698#line 147
24699    ldv_blast_assert();
24700    }
24701  }
24702#line 149
24703  ldv_mutex = 1;
24704#line 150
24705  return;
24706}
24707}
24708#line 153 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/kernel-rules/files/model0032.c"
24709void ldv_check_final_state(void) 
24710{ 
24711
24712  {
24713#line 156
24714  if (ldv_mutex == 1) {
24715
24716  } else {
24717    {
24718#line 156
24719    ldv_blast_assert();
24720    }
24721  }
24722#line 157
24723  return;
24724}
24725}
24726#line 1613 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/vhost.c.common.c"
24727long s__builtin_expect(long val , long res ) 
24728{ 
24729
24730  {
24731#line 1614
24732  return (val);
24733}
24734}
24735#line 93 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/atomic.h"
24736__inline static void atomic_inc(atomic_t *v )  __attribute__((__no_instrument_function__)) ;
24737#line 93 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/atomic.h"
24738__inline static void atomic_inc(atomic_t *v ) 
24739{ 
24740
24741  {
24742#line 95
24743  __asm__  volatile   (".section .smp_locks,\"a\"\n"
24744                       ".balign 4\n"
24745                       ".long 671f - .\n"
24746                       ".previous\n"
24747                       "671:"
24748                       "\n\tlock; "
24749                       "incl %0": "+m" (*((int *)v)));
24750#line 97
24751  return;
24752}
24753}
24754#line 43 "include/linux/uio.h"
24755__inline static size_t iov_length(struct iovec    *iov , unsigned long nr_segs )  __attribute__((__no_instrument_function__)) ;
24756#line 43 "include/linux/uio.h"
24757__inline static size_t iov_length(struct iovec    *iov , unsigned long nr_segs ) 
24758{ unsigned long seg ;
24759  size_t ret ;
24760  struct iovec    *__cil_tmp5 ;
24761  unsigned long __cil_tmp6 ;
24762  unsigned long __cil_tmp7 ;
24763  __kernel_size_t    __cil_tmp8 ;
24764  size_t __cil_tmp9 ;
24765
24766  {
24767#line 46
24768  ret = (size_t )0;
24769#line 48
24770  seg = 0UL;
24771  {
24772#line 48
24773  while (1) {
24774    while_continue: /* CIL Label */ ;
24775#line 48
24776    if (seg < nr_segs) {
24777
24778    } else {
24779#line 48
24780      goto while_break;
24781    }
24782#line 49
24783    __cil_tmp5 = iov + seg;
24784#line 49
24785    __cil_tmp6 = (unsigned long )__cil_tmp5;
24786#line 49
24787    __cil_tmp7 = __cil_tmp6 + 8;
24788#line 49
24789    __cil_tmp8 = *((__kernel_size_t    *)__cil_tmp7);
24790#line 49
24791    __cil_tmp9 = (size_t )__cil_tmp8;
24792#line 49
24793    ret = ret + __cil_tmp9;
24794#line 48
24795    seg = seg + 1UL;
24796  }
24797  while_break: /* CIL Label */ ;
24798  }
24799#line 50
24800  return (ret);
24801}
24802}
24803#line 331 "include/linux/socket.h"
24804extern int memcpy_toiovecend(struct iovec    *v , unsigned char *kdata , int offset ,
24805                             int len ) ;
24806#line 2401 "include/linux/fs.h"
24807extern loff_t noop_llseek(struct file *file , loff_t offset , int origin ) ;
24808#line 214 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/compat.h"
24809__inline static void *compat_ptr(compat_uptr_t uptr )  __attribute__((__no_instrument_function__)) ;
24810#line 214 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/compat.h"
24811__inline static void *compat_ptr(compat_uptr_t uptr ) 
24812{ unsigned long __cil_tmp2 ;
24813
24814  {
24815  {
24816#line 216
24817  __cil_tmp2 = (unsigned long )uptr;
24818#line 216
24819  return ((void *)__cil_tmp2);
24820  }
24821}
24822}
24823#line 29 "include/linux/file.h"
24824extern struct file *fget(unsigned int fd ) ;
24825#line 39 "include/linux/kref.h"
24826__inline static void kref_get(struct kref *kref )  __attribute__((__no_instrument_function__)) ;
24827#line 39 "include/linux/kref.h"
24828__inline static void kref_get(struct kref *kref ) 
24829{ int __ret_warn_on ;
24830  int tmp___7 ;
24831  int tmp___8 ;
24832  long tmp___9 ;
24833  atomic_t *__cil_tmp6 ;
24834  atomic_t    *__cil_tmp7 ;
24835  int __cil_tmp8 ;
24836  int __cil_tmp9 ;
24837  long __cil_tmp10 ;
24838  int    __cil_tmp11 ;
24839  int __cil_tmp12 ;
24840  int __cil_tmp13 ;
24841  long __cil_tmp14 ;
24842  atomic_t *__cil_tmp15 ;
24843
24844  {
24845  {
24846#line 41
24847  __cil_tmp6 = (atomic_t *)kref;
24848#line 41
24849  __cil_tmp7 = (atomic_t    *)__cil_tmp6;
24850#line 41
24851  tmp___7 = atomic_read(__cil_tmp7);
24852  }
24853#line 41
24854  if (tmp___7) {
24855#line 41
24856    tmp___8 = 0;
24857  } else {
24858#line 41
24859    tmp___8 = 1;
24860  }
24861  {
24862#line 41
24863  __ret_warn_on = tmp___8;
24864#line 41
24865  __cil_tmp8 = ! __ret_warn_on;
24866#line 41
24867  __cil_tmp9 = ! __cil_tmp8;
24868#line 41
24869  __cil_tmp10 = (long )__cil_tmp9;
24870#line 41
24871  tmp___9 = __builtin_expect(__cil_tmp10, 0L);
24872  }
24873#line 41
24874  if (tmp___9) {
24875    {
24876#line 41
24877    __cil_tmp11 = (int    )41;
24878#line 41
24879    warn_slowpath_null("include/linux/kref.h", __cil_tmp11);
24880    }
24881  } else {
24882
24883  }
24884  {
24885#line 41
24886  __cil_tmp12 = ! __ret_warn_on;
24887#line 41
24888  __cil_tmp13 = ! __cil_tmp12;
24889#line 41
24890  __cil_tmp14 = (long )__cil_tmp13;
24891#line 41
24892  __builtin_expect(__cil_tmp14, 0L);
24893#line 42
24894  __cil_tmp15 = (atomic_t *)kref;
24895#line 42
24896  atomic_inc(__cil_tmp15);
24897  }
24898#line 43
24899  return;
24900}
24901}
24902#line 249 "include/linux/net.h"
24903extern struct socket *sockfd_lookup(int fd , int *err ) ;
24904#line 882 "include/linux/skbuff.h"
24905__inline static struct sk_buff *skb_peek(struct sk_buff_head    *list_ )  __attribute__((__no_instrument_function__)) ;
24906#line 882 "include/linux/skbuff.h"
24907__inline static struct sk_buff *skb_peek(struct sk_buff_head    *list_ ) 
24908{ struct sk_buff *list ;
24909  struct sk_buff    *__cil_tmp3 ;
24910  struct sk_buff *   __cil_tmp4 ;
24911  struct sk_buff *__cil_tmp5 ;
24912  unsigned long __cil_tmp6 ;
24913  unsigned long __cil_tmp7 ;
24914  void *__cil_tmp8 ;
24915
24916  {
24917#line 884
24918  __cil_tmp3 = (struct sk_buff    *)list_;
24919#line 884
24920  __cil_tmp4 = *((struct sk_buff *   *)__cil_tmp3);
24921#line 884
24922  list = (struct sk_buff *)__cil_tmp4;
24923  {
24924#line 885
24925  __cil_tmp5 = (struct sk_buff *)list_;
24926#line 885
24927  __cil_tmp6 = (unsigned long )__cil_tmp5;
24928#line 885
24929  __cil_tmp7 = (unsigned long )list;
24930#line 885
24931  if (__cil_tmp7 == __cil_tmp6) {
24932#line 886
24933    __cil_tmp8 = (void *)0;
24934#line 886
24935    list = (struct sk_buff *)__cil_tmp8;
24936  } else {
24937
24938  }
24939  }
24940#line 887
24941  return (list);
24942}
24943}
24944#line 61 "include/linux/miscdevice.h"
24945extern int misc_register(struct miscdevice *misc ) ;
24946#line 62
24947extern int misc_deregister(struct miscdevice *misc ) ;
24948#line 356 "include/linux/moduleparam.h"
24949extern struct kernel_param_ops param_ops_int ;
24950#line 26 "include/linux/export.h"
24951extern struct module __this_module ;
24952#line 67 "include/linux/module.h"
24953int init_module(void) ;
24954#line 68
24955void cleanup_module(void) ;
24956#line 96 "include/linux/if_tun.h"
24957extern struct socket *tun_get_socket(struct file * ) ;
24958#line 12 "include/linux/if_macvlan.h"
24959extern struct socket *macvtap_get_socket(struct file * ) ;
24960#line 642 "include/net/sock.h"
24961__inline static int sock_flag(struct sock *sk , enum sock_flags flag )  __attribute__((__no_instrument_function__)) ;
24962#line 642 "include/net/sock.h"
24963__inline static int sock_flag(struct sock *sk , enum sock_flags flag ) 
24964{ int tmp___8 ;
24965  int __cil_tmp5 ;
24966  unsigned long __cil_tmp6 ;
24967  unsigned long __cil_tmp7 ;
24968  unsigned long *__cil_tmp8 ;
24969  unsigned long  volatile   *__cil_tmp9 ;
24970
24971  {
24972  {
24973#line 644
24974  __cil_tmp5 = (int )flag;
24975#line 644
24976  __cil_tmp6 = (unsigned long )sk;
24977#line 644
24978  __cil_tmp7 = __cil_tmp6 + 320;
24979#line 644
24980  __cil_tmp8 = (unsigned long *)__cil_tmp7;
24981#line 644
24982  __cil_tmp9 = (unsigned long  volatile   *)__cil_tmp8;
24983#line 644
24984  tmp___8 = variable_test_bit(__cil_tmp5, __cil_tmp9);
24985  }
24986#line 644
24987  return (tmp___8);
24988}
24989}
24990#line 34 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
24991static int experimental_zcopytx  ;
24992#line 35 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
24993static char    __param_str_experimental_zcopytx[21]  = 
24994#line 35
24995  {      (char    )'e',      (char    )'x',      (char const   )'p',      (char const   )'e', 
24996        (char    )'r',      (char    )'i',      (char const   )'m',      (char const   )'e', 
24997        (char    )'n',      (char    )'t',      (char const   )'a',      (char const   )'l', 
24998        (char    )'_',      (char    )'z',      (char const   )'c',      (char const   )'o', 
24999        (char    )'p',      (char    )'y',      (char const   )'t',      (char const   )'x', 
25000        (char    )'\000'};
25001#line 35 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
25002static struct kernel_param    __param_experimental_zcopytx  __attribute__((__used__,
25003__unused__, __section__("__param"), __aligned__(sizeof(void *))))  =    {__param_str_experimental_zcopytx, (struct kernel_param_ops    *)(& param_ops_int),
25004    (u16 )292, (s16 )0, {(void *)(& experimental_zcopytx)}};
25005#line 35 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
25006static char    __mod_experimental_zcopytxtype35[34]  __attribute__((__used__,
25007__unused__, __section__(".modinfo"), __aligned__(1)))  = 
25008#line 35
25009  {      (char    )'p',      (char    )'a',      (char const   )'r',      (char const   )'m', 
25010        (char    )'t',      (char    )'y',      (char const   )'p',      (char const   )'e', 
25011        (char    )'=',      (char    )'e',      (char const   )'x',      (char const   )'p', 
25012        (char    )'e',      (char    )'r',      (char const   )'i',      (char const   )'m', 
25013        (char    )'e',      (char    )'n',      (char const   )'t',      (char const   )'a', 
25014        (char    )'l',      (char    )'_',      (char const   )'z',      (char const   )'c', 
25015        (char    )'o',      (char    )'p',      (char const   )'y',      (char const   )'t', 
25016        (char    )'x',      (char    )':',      (char const   )'i',      (char const   )'n', 
25017        (char    )'t',      (char    )'\000'};
25018#line 36 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
25019static char    __mod_experimental_zcopytx36[59]  __attribute__((__used__, __unused__,
25020__section__(".modinfo"), __aligned__(1)))  = 
25021#line 36
25022  {      (char    )'p',      (char    )'a',      (char const   )'r',      (char const   )'m', 
25023        (char    )'=',      (char    )'e',      (char const   )'x',      (char const   )'p', 
25024        (char    )'e',      (char    )'r',      (char const   )'i',      (char const   )'m', 
25025        (char    )'e',      (char    )'n',      (char const   )'t',      (char const   )'a', 
25026        (char    )'l',      (char    )'_',      (char const   )'z',      (char const   )'c', 
25027        (char    )'o',      (char    )'p',      (char const   )'y',      (char const   )'t', 
25028        (char    )'x',      (char    )':',      (char const   )'E',      (char const   )'n', 
25029        (char    )'a',      (char    )'b',      (char const   )'l',      (char const   )'e', 
25030        (char    )' ',      (char    )'E',      (char const   )'x',      (char const   )'p', 
25031        (char    )'e',      (char    )'r',      (char const   )'i',      (char const   )'m', 
25032        (char    )'e',      (char    )'n',      (char const   )'t',      (char const   )'a', 
25033        (char    )'l',      (char    )' ',      (char const   )'Z',      (char const   )'e', 
25034        (char    )'r',      (char    )'o',      (char const   )' ',      (char const   )'C', 
25035        (char    )'o',      (char    )'p',      (char const   )'y',      (char const   )' ', 
25036        (char    )'T',      (char    )'X',      (char const   )'\000'};
25037#line 68 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
25038static bool vhost_sock_zcopy(struct socket *sock ) 
25039{ long tmp___7 ;
25040  int tmp___8 ;
25041  int tmp___9 ;
25042  int *__cil_tmp5 ;
25043  int __cil_tmp6 ;
25044  int __cil_tmp7 ;
25045  int __cil_tmp8 ;
25046  long __cil_tmp9 ;
25047  unsigned long __cil_tmp10 ;
25048  unsigned long __cil_tmp11 ;
25049  struct sock *__cil_tmp12 ;
25050  enum sock_flags __cil_tmp13 ;
25051
25052  {
25053  {
25054#line 70
25055  __cil_tmp5 = & experimental_zcopytx;
25056#line 70
25057  __cil_tmp6 = *__cil_tmp5;
25058#line 70
25059  __cil_tmp7 = ! __cil_tmp6;
25060#line 70
25061  __cil_tmp8 = ! __cil_tmp7;
25062#line 70
25063  __cil_tmp9 = (long )__cil_tmp8;
25064#line 70
25065  tmp___7 = __builtin_expect(__cil_tmp9, 0L);
25066  }
25067#line 70
25068  if (tmp___7) {
25069    {
25070#line 70
25071    __cil_tmp10 = (unsigned long )sock;
25072#line 70
25073    __cil_tmp11 = __cil_tmp10 + 32;
25074#line 70
25075    __cil_tmp12 = *((struct sock **)__cil_tmp11);
25076#line 70
25077    __cil_tmp13 = (enum sock_flags )24;
25078#line 70
25079    tmp___8 = sock_flag(__cil_tmp12, __cil_tmp13);
25080    }
25081#line 70
25082    if (tmp___8) {
25083#line 70
25084      tmp___9 = 1;
25085    } else {
25086#line 70
25087      tmp___9 = 0;
25088    }
25089  } else {
25090#line 70
25091    tmp___9 = 0;
25092  }
25093#line 70
25094  return ((bool )tmp___9);
25095}
25096}
25097#line 75 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
25098static int move_iovec_hdr(struct iovec *from , struct iovec *to , size_t len , int iov_count ) 
25099{ int seg ;
25100  size_t size ;
25101  __kernel_size_t _min1 ;
25102  size_t _min2 ;
25103  __kernel_size_t tmp___7 ;
25104  __kernel_size_t *__cil_tmp10 ;
25105  unsigned long __cil_tmp11 ;
25106  unsigned long __cil_tmp12 ;
25107  size_t *__cil_tmp13 ;
25108  size_t *__cil_tmp14 ;
25109  size_t __cil_tmp15 ;
25110  __kernel_size_t *__cil_tmp16 ;
25111  __kernel_size_t __cil_tmp17 ;
25112  __kernel_size_t *__cil_tmp18 ;
25113  size_t *__cil_tmp19 ;
25114  unsigned long __cil_tmp20 ;
25115  unsigned long __cil_tmp21 ;
25116  unsigned long __cil_tmp22 ;
25117  unsigned long __cil_tmp23 ;
25118  unsigned long __cil_tmp24 ;
25119  unsigned long __cil_tmp25 ;
25120  __kernel_size_t __cil_tmp26 ;
25121  void *__cil_tmp27 ;
25122
25123  {
25124#line 78
25125  seg = 0;
25126  {
25127#line 81
25128  while (1) {
25129    while_continue: /* CIL Label */ ;
25130#line 81
25131    if (len) {
25132#line 81
25133      if (seg < iov_count) {
25134
25135      } else {
25136#line 81
25137        goto while_break;
25138      }
25139    } else {
25140#line 81
25141      goto while_break;
25142    }
25143#line 82
25144    __cil_tmp10 = & _min1;
25145#line 82
25146    __cil_tmp11 = (unsigned long )from;
25147#line 82
25148    __cil_tmp12 = __cil_tmp11 + 8;
25149#line 82
25150    *__cil_tmp10 = *((__kernel_size_t *)__cil_tmp12);
25151#line 82
25152    __cil_tmp13 = & _min2;
25153#line 82
25154    *__cil_tmp13 = len;
25155    {
25156#line 82
25157    __cil_tmp14 = & _min2;
25158#line 82
25159    __cil_tmp15 = *__cil_tmp14;
25160#line 82
25161    __cil_tmp16 = & _min1;
25162#line 82
25163    __cil_tmp17 = *__cil_tmp16;
25164#line 82
25165    if (__cil_tmp17 < __cil_tmp15) {
25166#line 82
25167      __cil_tmp18 = & _min1;
25168#line 82
25169      tmp___7 = *__cil_tmp18;
25170    } else {
25171#line 82
25172      __cil_tmp19 = & _min2;
25173#line 82
25174      tmp___7 = *__cil_tmp19;
25175    }
25176    }
25177#line 82
25178    size = tmp___7;
25179#line 83
25180    *((void **)to) = *((void **)from);
25181#line 84
25182    __cil_tmp20 = (unsigned long )to;
25183#line 84
25184    __cil_tmp21 = __cil_tmp20 + 8;
25185#line 84
25186    *((__kernel_size_t *)__cil_tmp21) = size;
25187#line 85
25188    __cil_tmp22 = (unsigned long )from;
25189#line 85
25190    __cil_tmp23 = __cil_tmp22 + 8;
25191#line 85
25192    __cil_tmp24 = (unsigned long )from;
25193#line 85
25194    __cil_tmp25 = __cil_tmp24 + 8;
25195#line 85
25196    __cil_tmp26 = *((__kernel_size_t *)__cil_tmp25);
25197#line 85
25198    *((__kernel_size_t *)__cil_tmp23) = __cil_tmp26 - size;
25199#line 86
25200    __cil_tmp27 = *((void **)from);
25201#line 86
25202    *((void **)from) = __cil_tmp27 + size;
25203#line 87
25204    len = len - size;
25205#line 88
25206    from = from + 1;
25207#line 89
25208    to = to + 1;
25209#line 90
25210    seg = seg + 1;
25211  }
25212  while_break: /* CIL Label */ ;
25213  }
25214#line 92
25215  return (seg);
25216}
25217}
25218#line 95 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
25219static void copy_iovec_hdr(struct iovec    *from , struct iovec *to , size_t len ,
25220                           int iovcount ) 
25221{ int seg ;
25222  size_t size ;
25223  __kernel_size_t _min1 ;
25224  size_t _min2 ;
25225  __kernel_size_t tmp___7 ;
25226  __kernel_size_t *__cil_tmp10 ;
25227  unsigned long __cil_tmp11 ;
25228  unsigned long __cil_tmp12 ;
25229  __kernel_size_t    __cil_tmp13 ;
25230  size_t *__cil_tmp14 ;
25231  size_t *__cil_tmp15 ;
25232  size_t __cil_tmp16 ;
25233  __kernel_size_t *__cil_tmp17 ;
25234  __kernel_size_t __cil_tmp18 ;
25235  __kernel_size_t *__cil_tmp19 ;
25236  size_t *__cil_tmp20 ;
25237  void *   __cil_tmp21 ;
25238  unsigned long __cil_tmp22 ;
25239  unsigned long __cil_tmp23 ;
25240
25241  {
25242#line 98
25243  seg = 0;
25244  {
25245#line 101
25246  while (1) {
25247    while_continue: /* CIL Label */ ;
25248#line 101
25249    if (len) {
25250#line 101
25251      if (seg < iovcount) {
25252
25253      } else {
25254#line 101
25255        goto while_break;
25256      }
25257    } else {
25258#line 101
25259      goto while_break;
25260    }
25261#line 102
25262    __cil_tmp10 = & _min1;
25263#line 102
25264    __cil_tmp11 = (unsigned long )from;
25265#line 102
25266    __cil_tmp12 = __cil_tmp11 + 8;
25267#line 102
25268    __cil_tmp13 = *((__kernel_size_t    *)__cil_tmp12);
25269#line 102
25270    *__cil_tmp10 = (__kernel_size_t )__cil_tmp13;
25271#line 102
25272    __cil_tmp14 = & _min2;
25273#line 102
25274    *__cil_tmp14 = len;
25275    {
25276#line 102
25277    __cil_tmp15 = & _min2;
25278#line 102
25279    __cil_tmp16 = *__cil_tmp15;
25280#line 102
25281    __cil_tmp17 = & _min1;
25282#line 102
25283    __cil_tmp18 = *__cil_tmp17;
25284#line 102
25285    if (__cil_tmp18 < __cil_tmp16) {
25286#line 102
25287      __cil_tmp19 = & _min1;
25288#line 102
25289      tmp___7 = *__cil_tmp19;
25290    } else {
25291#line 102
25292      __cil_tmp20 = & _min2;
25293#line 102
25294      tmp___7 = *__cil_tmp20;
25295    }
25296    }
25297#line 102
25298    size = tmp___7;
25299#line 103
25300    __cil_tmp21 = *((void *   *)from);
25301#line 103
25302    *((void **)to) = (void *)__cil_tmp21;
25303#line 104
25304    __cil_tmp22 = (unsigned long )to;
25305#line 104
25306    __cil_tmp23 = __cil_tmp22 + 8;
25307#line 104
25308    *((__kernel_size_t *)__cil_tmp23) = size;
25309#line 105
25310    len = len - size;
25311#line 106
25312    from = from + 1;
25313#line 107
25314    to = to + 1;
25315#line 108
25316    seg = seg + 1;
25317  }
25318  while_break: /* CIL Label */ ;
25319  }
25320#line 110
25321  return;
25322}
25323}
25324#line 113 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
25325static void tx_poll_stop(struct vhost_net *net ) 
25326{ long tmp___7 ;
25327  unsigned long __cil_tmp3 ;
25328  unsigned long __cil_tmp4 ;
25329  enum vhost_net_poll_state __cil_tmp5 ;
25330  unsigned int __cil_tmp6 ;
25331  int __cil_tmp7 ;
25332  int __cil_tmp8 ;
25333  int __cil_tmp9 ;
25334  long __cil_tmp10 ;
25335  unsigned long __cil_tmp11 ;
25336  unsigned long __cil_tmp12 ;
25337  unsigned long __cil_tmp13 ;
25338  unsigned long __cil_tmp14 ;
25339  struct vhost_poll *__cil_tmp15 ;
25340  struct vhost_poll *__cil_tmp16 ;
25341  unsigned long __cil_tmp17 ;
25342  unsigned long __cil_tmp18 ;
25343
25344  {
25345  {
25346#line 115
25347  __cil_tmp3 = (unsigned long )net;
25348#line 115
25349  __cil_tmp4 = __cil_tmp3 + 34512;
25350#line 115
25351  __cil_tmp5 = *((enum vhost_net_poll_state *)__cil_tmp4);
25352#line 115
25353  __cil_tmp6 = (unsigned int )__cil_tmp5;
25354#line 115
25355  __cil_tmp7 = __cil_tmp6 != 1U;
25356#line 115
25357  __cil_tmp8 = ! __cil_tmp7;
25358#line 115
25359  __cil_tmp9 = ! __cil_tmp8;
25360#line 115
25361  __cil_tmp10 = (long )__cil_tmp9;
25362#line 115
25363  tmp___7 = __builtin_expect(__cil_tmp10, 1L);
25364  }
25365#line 115
25366  if (tmp___7) {
25367#line 116
25368    return;
25369  } else {
25370
25371  }
25372  {
25373#line 117
25374  __cil_tmp11 = 0 * 160UL;
25375#line 117
25376  __cil_tmp12 = 34192 + __cil_tmp11;
25377#line 117
25378  __cil_tmp13 = (unsigned long )net;
25379#line 117
25380  __cil_tmp14 = __cil_tmp13 + __cil_tmp12;
25381#line 117
25382  __cil_tmp15 = (struct vhost_poll *)__cil_tmp14;
25383#line 117
25384  __cil_tmp16 = __cil_tmp15 + 1;
25385#line 117
25386  vhost_poll_stop(__cil_tmp16);
25387#line 118
25388  __cil_tmp17 = (unsigned long )net;
25389#line 118
25390  __cil_tmp18 = __cil_tmp17 + 34512;
25391#line 118
25392  *((enum vhost_net_poll_state *)__cil_tmp18) = (enum vhost_net_poll_state )2;
25393  }
25394#line 119
25395  return;
25396}
25397}
25398#line 122 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
25399static void tx_poll_start(struct vhost_net *net , struct socket *sock ) 
25400{ long tmp___7 ;
25401  unsigned long __cil_tmp4 ;
25402  unsigned long __cil_tmp5 ;
25403  enum vhost_net_poll_state __cil_tmp6 ;
25404  unsigned int __cil_tmp7 ;
25405  int __cil_tmp8 ;
25406  int __cil_tmp9 ;
25407  int __cil_tmp10 ;
25408  long __cil_tmp11 ;
25409  unsigned long __cil_tmp12 ;
25410  unsigned long __cil_tmp13 ;
25411  unsigned long __cil_tmp14 ;
25412  unsigned long __cil_tmp15 ;
25413  struct vhost_poll *__cil_tmp16 ;
25414  struct vhost_poll *__cil_tmp17 ;
25415  unsigned long __cil_tmp18 ;
25416  unsigned long __cil_tmp19 ;
25417  struct file *__cil_tmp20 ;
25418  unsigned long __cil_tmp21 ;
25419  unsigned long __cil_tmp22 ;
25420
25421  {
25422  {
25423#line 124
25424  __cil_tmp4 = (unsigned long )net;
25425#line 124
25426  __cil_tmp5 = __cil_tmp4 + 34512;
25427#line 124
25428  __cil_tmp6 = *((enum vhost_net_poll_state *)__cil_tmp5);
25429#line 124
25430  __cil_tmp7 = (unsigned int )__cil_tmp6;
25431#line 124
25432  __cil_tmp8 = __cil_tmp7 != 2U;
25433#line 124
25434  __cil_tmp9 = ! __cil_tmp8;
25435#line 124
25436  __cil_tmp10 = ! __cil_tmp9;
25437#line 124
25438  __cil_tmp11 = (long )__cil_tmp10;
25439#line 124
25440  tmp___7 = __builtin_expect(__cil_tmp11, 0L);
25441  }
25442#line 124
25443  if (tmp___7) {
25444#line 125
25445    return;
25446  } else {
25447
25448  }
25449  {
25450#line 126
25451  __cil_tmp12 = 0 * 160UL;
25452#line 126
25453  __cil_tmp13 = 34192 + __cil_tmp12;
25454#line 126
25455  __cil_tmp14 = (unsigned long )net;
25456#line 126
25457  __cil_tmp15 = __cil_tmp14 + __cil_tmp13;
25458#line 126
25459  __cil_tmp16 = (struct vhost_poll *)__cil_tmp15;
25460#line 126
25461  __cil_tmp17 = __cil_tmp16 + 1;
25462#line 126
25463  __cil_tmp18 = (unsigned long )sock;
25464#line 126
25465  __cil_tmp19 = __cil_tmp18 + 24;
25466#line 126
25467  __cil_tmp20 = *((struct file **)__cil_tmp19);
25468#line 126
25469  vhost_poll_start(__cil_tmp17, __cil_tmp20);
25470#line 127
25471  __cil_tmp21 = (unsigned long )net;
25472#line 127
25473  __cil_tmp22 = __cil_tmp21 + 34512;
25474#line 127
25475  *((enum vhost_net_poll_state *)__cil_tmp22) = (enum vhost_net_poll_state )1;
25476  }
25477#line 128
25478  return;
25479}
25480}
25481#line 213
25482static void handle_tx(struct vhost_net *net ) ;
25483#line 213 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
25484static struct _ddebug  __attribute__((__aligned__(8))) descriptor___28  __attribute__((__used__,
25485__section__("__verbose")))  =    {"vhost_net", "handle_tx", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c",
25486    "Unexpected descriptor format for TX: out %d, int %d\n", 214U, 0U};
25487#line 223 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
25488static struct _ddebug  __attribute__((__aligned__(8))) descriptor___29  __attribute__((__used__,
25489__section__("__verbose")))  =    {"vhost_net", "handle_tx", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c",
25490    "Unexpected header len for TX: %zd expected %zd\n", 225U, 0U};
25491#line 266 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
25492static struct _ddebug  __attribute__((__aligned__(8))) descriptor___30  __attribute__((__used__,
25493__section__("__verbose")))  =    {"vhost_net", "handle_tx", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c",
25494    "Truncated TX packet:  len %d != %zd\n", 267U, 0U};
25495#line 132 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
25496static void handle_tx(struct vhost_net *net ) 
25497{ struct vhost_virtqueue *vq ;
25498  unsigned int out ;
25499  unsigned int in ;
25500  unsigned int s ;
25501  int head ;
25502  struct msghdr msg ;
25503  size_t len ;
25504  size_t total_len ;
25505  int err ;
25506  int wmem ;
25507  size_t hdr_size ;
25508  struct socket *sock ;
25509  struct vhost_ubuf_ref *ubufs ;
25510  bool zcopy ;
25511  void *_________p1 ;
25512  long tmp___7 ;
25513  int num_pends ;
25514  long tmp___9 ;
25515  long tmp___10 ;
25516  bool tmp___11 ;
25517  int tmp___12 ;
25518  long tmp___13 ;
25519  long tmp___14 ;
25520  int tmp___15 ;
25521  size_t tmp___16 ;
25522  long tmp___17 ;
25523  struct ubuf_info *ubuf ;
25524  long tmp___18 ;
25525  long tmp___19 ;
25526  long tmp___20 ;
25527  unsigned long __cil_tmp33 ;
25528  unsigned long __cil_tmp34 ;
25529  unsigned long __cil_tmp35 ;
25530  struct vhost_virtqueue *__cil_tmp36 ;
25531  struct msghdr *__cil_tmp37 ;
25532  unsigned long __cil_tmp38 ;
25533  unsigned long __cil_tmp39 ;
25534  unsigned long __cil_tmp40 ;
25535  unsigned long __cil_tmp41 ;
25536  unsigned long __cil_tmp42 ;
25537  unsigned long __cil_tmp43 ;
25538  unsigned long __cil_tmp44 ;
25539  unsigned long __cil_tmp45 ;
25540  unsigned long __cil_tmp46 ;
25541  unsigned long __cil_tmp47 ;
25542  unsigned long __cil_tmp48 ;
25543  unsigned long __cil_tmp49 ;
25544  void **__cil_tmp50 ;
25545  void * volatile  *__cil_tmp51 ;
25546  void * volatile  __cil_tmp52 ;
25547  unsigned long __cil_tmp53 ;
25548  unsigned long __cil_tmp54 ;
25549  struct sock *__cil_tmp55 ;
25550  unsigned long __cil_tmp56 ;
25551  unsigned long __cil_tmp57 ;
25552  atomic_t *__cil_tmp58 ;
25553  atomic_t    *__cil_tmp59 ;
25554  unsigned long __cil_tmp60 ;
25555  unsigned long __cil_tmp61 ;
25556  struct sock *__cil_tmp62 ;
25557  unsigned long __cil_tmp63 ;
25558  unsigned long __cil_tmp64 ;
25559  int __cil_tmp65 ;
25560  unsigned long __cil_tmp66 ;
25561  unsigned long __cil_tmp67 ;
25562  struct mutex *__cil_tmp68 ;
25563  unsigned long __cil_tmp69 ;
25564  unsigned long __cil_tmp70 ;
25565  struct mutex *__cil_tmp71 ;
25566  unsigned long __cil_tmp72 ;
25567  unsigned long __cil_tmp73 ;
25568  struct mutex *__cil_tmp74 ;
25569  struct vhost_dev *__cil_tmp75 ;
25570  unsigned long __cil_tmp76 ;
25571  unsigned long __cil_tmp77 ;
25572  struct sock *__cil_tmp78 ;
25573  unsigned long __cil_tmp79 ;
25574  unsigned long __cil_tmp80 ;
25575  int __cil_tmp81 ;
25576  int __cil_tmp82 ;
25577  unsigned long __cil_tmp83 ;
25578  unsigned long __cil_tmp84 ;
25579  struct vhost_dev *__cil_tmp85 ;
25580  unsigned long __cil_tmp86 ;
25581  unsigned long __cil_tmp87 ;
25582  unsigned long __cil_tmp88 ;
25583  unsigned long __cil_tmp89 ;
25584  struct iovec *__cil_tmp90 ;
25585  unsigned long __cil_tmp91 ;
25586  unsigned long __cil_tmp92 ;
25587  unsigned int __cil_tmp93 ;
25588  void *__cil_tmp94 ;
25589  struct vhost_log *__cil_tmp95 ;
25590  void *__cil_tmp96 ;
25591  unsigned int *__cil_tmp97 ;
25592  int __cil_tmp98 ;
25593  int __cil_tmp99 ;
25594  int __cil_tmp100 ;
25595  long __cil_tmp101 ;
25596  unsigned long __cil_tmp102 ;
25597  unsigned long __cil_tmp103 ;
25598  unsigned int __cil_tmp104 ;
25599  unsigned int __cil_tmp105 ;
25600  unsigned long __cil_tmp106 ;
25601  unsigned long __cil_tmp107 ;
25602  struct sock *__cil_tmp108 ;
25603  unsigned long __cil_tmp109 ;
25604  unsigned long __cil_tmp110 ;
25605  atomic_t *__cil_tmp111 ;
25606  atomic_t    *__cil_tmp112 ;
25607  unsigned long __cil_tmp113 ;
25608  unsigned long __cil_tmp114 ;
25609  struct sock *__cil_tmp115 ;
25610  unsigned long __cil_tmp116 ;
25611  unsigned long __cil_tmp117 ;
25612  int __cil_tmp118 ;
25613  int __cil_tmp119 ;
25614  int __cil_tmp120 ;
25615  unsigned long __cil_tmp121 ;
25616  unsigned long __cil_tmp122 ;
25617  unsigned long *__cil_tmp123 ;
25618  unsigned long volatile   *__cil_tmp124 ;
25619  unsigned long __cil_tmp125 ;
25620  unsigned long __cil_tmp126 ;
25621  int __cil_tmp127 ;
25622  unsigned long __cil_tmp128 ;
25623  unsigned long __cil_tmp129 ;
25624  int __cil_tmp130 ;
25625  int __cil_tmp131 ;
25626  int __cil_tmp132 ;
25627  int __cil_tmp133 ;
25628  long __cil_tmp134 ;
25629  unsigned long __cil_tmp135 ;
25630  unsigned long __cil_tmp136 ;
25631  int __cil_tmp137 ;
25632  unsigned long __cil_tmp138 ;
25633  unsigned long __cil_tmp139 ;
25634  int __cil_tmp140 ;
25635  unsigned long __cil_tmp141 ;
25636  unsigned long __cil_tmp142 ;
25637  int __cil_tmp143 ;
25638  unsigned long __cil_tmp144 ;
25639  unsigned long __cil_tmp145 ;
25640  int __cil_tmp146 ;
25641  int __cil_tmp147 ;
25642  int __cil_tmp148 ;
25643  int __cil_tmp149 ;
25644  int __cil_tmp150 ;
25645  long __cil_tmp151 ;
25646  unsigned long __cil_tmp152 ;
25647  unsigned long __cil_tmp153 ;
25648  unsigned long *__cil_tmp154 ;
25649  unsigned long volatile   *__cil_tmp155 ;
25650  struct vhost_dev *__cil_tmp156 ;
25651  long __cil_tmp157 ;
25652  struct vhost_dev *__cil_tmp158 ;
25653  unsigned int *__cil_tmp159 ;
25654  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp160 ;
25655  unsigned int __cil_tmp161 ;
25656  unsigned int __cil_tmp162 ;
25657  int __cil_tmp163 ;
25658  int __cil_tmp164 ;
25659  long __cil_tmp165 ;
25660  unsigned int *__cil_tmp166 ;
25661  unsigned int __cil_tmp167 ;
25662  unsigned int *__cil_tmp168 ;
25663  unsigned int __cil_tmp169 ;
25664  unsigned long __cil_tmp170 ;
25665  unsigned long __cil_tmp171 ;
25666  unsigned long __cil_tmp172 ;
25667  unsigned long __cil_tmp173 ;
25668  struct eventfd_ctx *__cil_tmp174 ;
25669  unsigned long __cil_tmp175 ;
25670  unsigned long __cil_tmp176 ;
25671  unsigned long __cil_tmp177 ;
25672  unsigned long __cil_tmp178 ;
25673  struct iovec *__cil_tmp179 ;
25674  unsigned long __cil_tmp180 ;
25675  unsigned long __cil_tmp181 ;
25676  unsigned long __cil_tmp182 ;
25677  unsigned long __cil_tmp183 ;
25678  struct iovec *__cil_tmp184 ;
25679  unsigned int *__cil_tmp185 ;
25680  unsigned int __cil_tmp186 ;
25681  int __cil_tmp187 ;
25682  unsigned long __cil_tmp188 ;
25683  unsigned int *__cil_tmp189 ;
25684  unsigned int __cil_tmp190 ;
25685  unsigned long __cil_tmp191 ;
25686  unsigned long __cil_tmp192 ;
25687  unsigned long __cil_tmp193 ;
25688  unsigned long __cil_tmp194 ;
25689  struct iovec *__cil_tmp195 ;
25690  struct iovec    *__cil_tmp196 ;
25691  unsigned int *__cil_tmp197 ;
25692  unsigned int __cil_tmp198 ;
25693  unsigned long __cil_tmp199 ;
25694  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp200 ;
25695  unsigned int __cil_tmp201 ;
25696  unsigned int __cil_tmp202 ;
25697  int __cil_tmp203 ;
25698  int __cil_tmp204 ;
25699  long __cil_tmp205 ;
25700  unsigned long __cil_tmp206 ;
25701  unsigned long __cil_tmp207 ;
25702  unsigned long __cil_tmp208 ;
25703  unsigned long __cil_tmp209 ;
25704  struct iovec *__cil_tmp210 ;
25705  struct iovec    *__cil_tmp211 ;
25706  unsigned long __cil_tmp212 ;
25707  unsigned long __cil_tmp213 ;
25708  unsigned long __cil_tmp214 ;
25709  unsigned long __cil_tmp215 ;
25710  unsigned long __cil_tmp216 ;
25711  struct eventfd_ctx *__cil_tmp217 ;
25712  unsigned long __cil_tmp218 ;
25713  unsigned long __cil_tmp219 ;
25714  int __cil_tmp220 ;
25715  unsigned long __cil_tmp221 ;
25716  unsigned long __cil_tmp222 ;
25717  struct vring_used_elem *__cil_tmp223 ;
25718  struct vring_used_elem *__cil_tmp224 ;
25719  unsigned long __cil_tmp225 ;
25720  unsigned long __cil_tmp226 ;
25721  int __cil_tmp227 ;
25722  unsigned long __cil_tmp228 ;
25723  unsigned long __cil_tmp229 ;
25724  struct vring_used_elem *__cil_tmp230 ;
25725  struct vring_used_elem *__cil_tmp231 ;
25726  unsigned long __cil_tmp232 ;
25727  unsigned long __cil_tmp233 ;
25728  unsigned long __cil_tmp234 ;
25729  unsigned long __cil_tmp235 ;
25730  void *__cil_tmp236 ;
25731  unsigned long __cil_tmp237 ;
25732  unsigned long __cil_tmp238 ;
25733  struct ubuf_info *__cil_tmp239 ;
25734  unsigned long __cil_tmp240 ;
25735  unsigned long __cil_tmp241 ;
25736  int __cil_tmp242 ;
25737  unsigned long __cil_tmp243 ;
25738  unsigned long __cil_tmp244 ;
25739  struct vring_used_elem *__cil_tmp245 ;
25740  struct vring_used_elem *__cil_tmp246 ;
25741  unsigned long __cil_tmp247 ;
25742  unsigned long __cil_tmp248 ;
25743  unsigned long __cil_tmp249 ;
25744  unsigned long __cil_tmp250 ;
25745  unsigned long __cil_tmp251 ;
25746  unsigned long __cil_tmp252 ;
25747  struct vhost_ubuf_ref *__cil_tmp253 ;
25748  unsigned long __cil_tmp254 ;
25749  unsigned long __cil_tmp255 ;
25750  unsigned long __cil_tmp256 ;
25751  unsigned long __cil_tmp257 ;
25752  int __cil_tmp258 ;
25753  unsigned long __cil_tmp259 ;
25754  unsigned long __cil_tmp260 ;
25755  unsigned long __cil_tmp261 ;
25756  unsigned long __cil_tmp262 ;
25757  struct kref *__cil_tmp263 ;
25758  unsigned long __cil_tmp264 ;
25759  unsigned long __cil_tmp265 ;
25760  unsigned long __cil_tmp266 ;
25761  unsigned long __cil_tmp267 ;
25762  int __cil_tmp268 ;
25763  int __cil_tmp269 ;
25764  unsigned long __cil_tmp270 ;
25765  unsigned long __cil_tmp271 ;
25766  struct proto_ops    *__cil_tmp272 ;
25767  unsigned long __cil_tmp273 ;
25768  unsigned long __cil_tmp274 ;
25769  int (*   __cil_tmp275)(struct kiocb *iocb , struct socket *sock , struct msghdr *m ,
25770                              size_t total_len ) ;
25771  int (*__cil_tmp276)(struct kiocb *iocb , struct socket *sock , struct msghdr *m ,
25772                      size_t total_len ) ;
25773  void *__cil_tmp277 ;
25774  struct kiocb *__cil_tmp278 ;
25775  int __cil_tmp279 ;
25776  int __cil_tmp280 ;
25777  int __cil_tmp281 ;
25778  long __cil_tmp282 ;
25779  unsigned long __cil_tmp283 ;
25780  unsigned long __cil_tmp284 ;
25781  unsigned long __cil_tmp285 ;
25782  unsigned long __cil_tmp286 ;
25783  int __cil_tmp287 ;
25784  unsigned int __cil_tmp288 ;
25785  unsigned int __cil_tmp289 ;
25786  unsigned int __cil_tmp290 ;
25787  size_t __cil_tmp291 ;
25788  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp292 ;
25789  unsigned int __cil_tmp293 ;
25790  unsigned int __cil_tmp294 ;
25791  int __cil_tmp295 ;
25792  int __cil_tmp296 ;
25793  long __cil_tmp297 ;
25794  struct vhost_dev *__cil_tmp298 ;
25795  unsigned int __cil_tmp299 ;
25796  int __cil_tmp300 ;
25797  int __cil_tmp301 ;
25798  int __cil_tmp302 ;
25799  long __cil_tmp303 ;
25800  unsigned long __cil_tmp304 ;
25801  unsigned long __cil_tmp305 ;
25802  struct vhost_poll *__cil_tmp306 ;
25803  unsigned long __cil_tmp307 ;
25804  unsigned long __cil_tmp308 ;
25805  struct mutex *__cil_tmp309 ;
25806
25807  {
25808#line 134
25809  __cil_tmp33 = 0 + 96;
25810#line 134
25811  __cil_tmp34 = (unsigned long )net;
25812#line 134
25813  __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
25814#line 134
25815  __cil_tmp36 = *((struct vhost_virtqueue **)__cil_tmp35);
25816#line 134
25817  vq = __cil_tmp36 + 1;
25818#line 137
25819  __cil_tmp37 = & msg;
25820#line 137
25821  *((void **)__cil_tmp37) = (void *)0;
25822#line 137
25823  __cil_tmp38 = (unsigned long )(& msg) + 8;
25824#line 137
25825  *((int *)__cil_tmp38) = 0;
25826#line 137
25827  __cil_tmp39 = (unsigned long )(& msg) + 16;
25828#line 137
25829  __cil_tmp40 = 0 * 16UL;
25830#line 137
25831  __cil_tmp41 = 352 + __cil_tmp40;
25832#line 137
25833  __cil_tmp42 = (unsigned long )vq;
25834#line 137
25835  __cil_tmp43 = __cil_tmp42 + __cil_tmp41;
25836#line 137
25837  *((struct iovec **)__cil_tmp39) = (struct iovec *)__cil_tmp43;
25838#line 137
25839  __cil_tmp44 = (unsigned long )(& msg) + 24;
25840#line 137
25841  *((__kernel_size_t *)__cil_tmp44) = 0UL;
25842#line 137
25843  __cil_tmp45 = (unsigned long )(& msg) + 32;
25844#line 137
25845  *((void **)__cil_tmp45) = (void *)0;
25846#line 137
25847  __cil_tmp46 = (unsigned long )(& msg) + 40;
25848#line 137
25849  *((__kernel_size_t *)__cil_tmp46) = (__kernel_size_t )0;
25850#line 137
25851  __cil_tmp47 = (unsigned long )(& msg) + 48;
25852#line 137
25853  *((unsigned int *)__cil_tmp47) = 64U;
25854#line 145
25855  total_len = (size_t )0;
25856#line 149
25857  ubufs = ubufs;
25858#line 153
25859  __cil_tmp48 = (unsigned long )vq;
25860#line 153
25861  __cil_tmp49 = __cil_tmp48 + 16960;
25862#line 153
25863  __cil_tmp50 = (void **)__cil_tmp49;
25864#line 153
25865  __cil_tmp51 = (void * volatile  *)__cil_tmp50;
25866#line 153
25867  __cil_tmp52 = *__cil_tmp51;
25868#line 153
25869  _________p1 = (void *)__cil_tmp52;
25870  {
25871#line 153
25872  while (1) {
25873    while_continue: /* CIL Label */ ;
25874#line 153
25875    goto while_break;
25876  }
25877  while_break: /* CIL Label */ ;
25878  }
25879  {
25880#line 153
25881  while (1) {
25882    while_continue___0: /* CIL Label */ ;
25883#line 153
25884    goto while_break___0;
25885  }
25886  while_break___0: /* CIL Label */ ;
25887  }
25888#line 153
25889  sock = (struct socket *)_________p1;
25890#line 154
25891  if (! sock) {
25892#line 155
25893    return;
25894  } else {
25895
25896  }
25897  {
25898#line 157
25899  __cil_tmp53 = (unsigned long )sock;
25900#line 157
25901  __cil_tmp54 = __cil_tmp53 + 32;
25902#line 157
25903  __cil_tmp55 = *((struct sock **)__cil_tmp54);
25904#line 157
25905  __cil_tmp56 = (unsigned long )__cil_tmp55;
25906#line 157
25907  __cil_tmp57 = __cil_tmp56 + 360;
25908#line 157
25909  __cil_tmp58 = (atomic_t *)__cil_tmp57;
25910#line 157
25911  __cil_tmp59 = (atomic_t    *)__cil_tmp58;
25912#line 157
25913  wmem = atomic_read(__cil_tmp59);
25914  }
25915  {
25916#line 158
25917  __cil_tmp60 = (unsigned long )sock;
25918#line 158
25919  __cil_tmp61 = __cil_tmp60 + 32;
25920#line 158
25921  __cil_tmp62 = *((struct sock **)__cil_tmp61);
25922#line 158
25923  __cil_tmp63 = (unsigned long )__cil_tmp62;
25924#line 158
25925  __cil_tmp64 = __cil_tmp63 + 368;
25926#line 158
25927  __cil_tmp65 = *((int *)__cil_tmp64);
25928#line 158
25929  if (wmem >= __cil_tmp65) {
25930    {
25931#line 159
25932    __cil_tmp66 = (unsigned long )vq;
25933#line 159
25934    __cil_tmp67 = __cil_tmp66 + 8;
25935#line 159
25936    __cil_tmp68 = (struct mutex *)__cil_tmp67;
25937#line 159
25938    mutex_lock(__cil_tmp68);
25939#line 160
25940    tx_poll_start(net, sock);
25941#line 161
25942    __cil_tmp69 = (unsigned long )vq;
25943#line 161
25944    __cil_tmp70 = __cil_tmp69 + 8;
25945#line 161
25946    __cil_tmp71 = (struct mutex *)__cil_tmp70;
25947#line 161
25948    mutex_unlock(__cil_tmp71);
25949    }
25950#line 162
25951    return;
25952  } else {
25953
25954  }
25955  }
25956  {
25957#line 165
25958  __cil_tmp72 = (unsigned long )vq;
25959#line 165
25960  __cil_tmp73 = __cil_tmp72 + 8;
25961#line 165
25962  __cil_tmp74 = (struct mutex *)__cil_tmp73;
25963#line 165
25964  mutex_lock(__cil_tmp74);
25965#line 166
25966  __cil_tmp75 = (struct vhost_dev *)net;
25967#line 166
25968  vhost_disable_notify(__cil_tmp75, vq);
25969  }
25970  {
25971#line 168
25972  __cil_tmp76 = (unsigned long )sock;
25973#line 168
25974  __cil_tmp77 = __cil_tmp76 + 32;
25975#line 168
25976  __cil_tmp78 = *((struct sock **)__cil_tmp77);
25977#line 168
25978  __cil_tmp79 = (unsigned long )__cil_tmp78;
25979#line 168
25980  __cil_tmp80 = __cil_tmp79 + 368;
25981#line 168
25982  __cil_tmp81 = *((int *)__cil_tmp80);
25983#line 168
25984  __cil_tmp82 = __cil_tmp81 / 2;
25985#line 168
25986  if (wmem < __cil_tmp82) {
25987    {
25988#line 169
25989    tx_poll_stop(net);
25990    }
25991  } else {
25992
25993  }
25994  }
25995  {
25996#line 170
25997  __cil_tmp83 = (unsigned long )vq;
25998#line 170
25999  __cil_tmp84 = __cil_tmp83 + 16936;
26000#line 170
26001  hdr_size = *((size_t *)__cil_tmp84);
26002#line 171
26003  zcopy = vhost_sock_zcopy(sock);
26004  }
26005  {
26006#line 173
26007  while (1) {
26008    while_continue___1: /* CIL Label */ ;
26009#line 175
26010    if (zcopy) {
26011      {
26012#line 176
26013      vhost_zerocopy_signal_used(vq);
26014      }
26015    } else {
26016
26017    }
26018    {
26019#line 178
26020    __cil_tmp85 = (struct vhost_dev *)net;
26021#line 178
26022    __cil_tmp86 = 0 * 16UL;
26023#line 178
26024    __cil_tmp87 = 352 + __cil_tmp86;
26025#line 178
26026    __cil_tmp88 = (unsigned long )vq;
26027#line 178
26028    __cil_tmp89 = __cil_tmp88 + __cil_tmp87;
26029#line 178
26030    __cil_tmp90 = (struct iovec *)__cil_tmp89;
26031#line 178
26032    __cil_tmp91 = 16384UL / 16UL;
26033#line 178
26034    __cil_tmp92 = __cil_tmp91 + 0UL;
26035#line 178
26036    __cil_tmp93 = (unsigned int )__cil_tmp92;
26037#line 178
26038    __cil_tmp94 = (void *)0;
26039#line 178
26040    __cil_tmp95 = (struct vhost_log *)__cil_tmp94;
26041#line 178
26042    __cil_tmp96 = (void *)0;
26043#line 178
26044    __cil_tmp97 = (unsigned int *)__cil_tmp96;
26045#line 178
26046    head = vhost_get_vq_desc(__cil_tmp85, vq, __cil_tmp90, __cil_tmp93, & out, & in,
26047                             __cil_tmp95, __cil_tmp97);
26048#line 183
26049    __cil_tmp98 = head < 0;
26050#line 183
26051    __cil_tmp99 = ! __cil_tmp98;
26052#line 183
26053    __cil_tmp100 = ! __cil_tmp99;
26054#line 183
26055    __cil_tmp101 = (long )__cil_tmp100;
26056#line 183
26057    tmp___7 = __builtin_expect(__cil_tmp101, 0L);
26058    }
26059#line 183
26060    if (tmp___7) {
26061#line 184
26062      goto while_break___1;
26063    } else {
26064
26065    }
26066    {
26067#line 186
26068    __cil_tmp102 = (unsigned long )vq;
26069#line 186
26070    __cil_tmp103 = __cil_tmp102 + 80;
26071#line 186
26072    __cil_tmp104 = *((unsigned int *)__cil_tmp103);
26073#line 186
26074    __cil_tmp105 = (unsigned int )head;
26075#line 186
26076    if (__cil_tmp105 == __cil_tmp104) {
26077      {
26078#line 189
26079      __cil_tmp106 = (unsigned long )sock;
26080#line 189
26081      __cil_tmp107 = __cil_tmp106 + 32;
26082#line 189
26083      __cil_tmp108 = *((struct sock **)__cil_tmp107);
26084#line 189
26085      __cil_tmp109 = (unsigned long )__cil_tmp108;
26086#line 189
26087      __cil_tmp110 = __cil_tmp109 + 360;
26088#line 189
26089      __cil_tmp111 = (atomic_t *)__cil_tmp110;
26090#line 189
26091      __cil_tmp112 = (atomic_t    *)__cil_tmp111;
26092#line 189
26093      wmem = atomic_read(__cil_tmp112);
26094      }
26095      {
26096#line 190
26097      __cil_tmp113 = (unsigned long )sock;
26098#line 190
26099      __cil_tmp114 = __cil_tmp113 + 32;
26100#line 190
26101      __cil_tmp115 = *((struct sock **)__cil_tmp114);
26102#line 190
26103      __cil_tmp116 = (unsigned long )__cil_tmp115;
26104#line 190
26105      __cil_tmp117 = __cil_tmp116 + 368;
26106#line 190
26107      __cil_tmp118 = *((int *)__cil_tmp117);
26108#line 190
26109      __cil_tmp119 = __cil_tmp118 * 3;
26110#line 190
26111      __cil_tmp120 = __cil_tmp119 / 4;
26112#line 190
26113      if (wmem >= __cil_tmp120) {
26114        {
26115#line 191
26116        tx_poll_start(net, sock);
26117#line 192
26118        __cil_tmp121 = (unsigned long )sock;
26119#line 192
26120        __cil_tmp122 = __cil_tmp121 + 8;
26121#line 192
26122        __cil_tmp123 = (unsigned long *)__cil_tmp122;
26123#line 192
26124        __cil_tmp124 = (unsigned long volatile   *)__cil_tmp123;
26125#line 192
26126        set_bit(0U, __cil_tmp124);
26127        }
26128#line 193
26129        goto while_break___1;
26130      } else {
26131
26132      }
26133      }
26134      {
26135#line 198
26136      __cil_tmp125 = (unsigned long )vq;
26137#line 198
26138      __cil_tmp126 = __cil_tmp125 + 16988;
26139#line 198
26140      __cil_tmp127 = *((int *)__cil_tmp126);
26141#line 198
26142      __cil_tmp128 = (unsigned long )vq;
26143#line 198
26144      __cil_tmp129 = __cil_tmp128 + 16984;
26145#line 198
26146      __cil_tmp130 = *((int *)__cil_tmp129);
26147#line 198
26148      __cil_tmp131 = __cil_tmp130 >= __cil_tmp127;
26149#line 198
26150      __cil_tmp132 = ! __cil_tmp131;
26151#line 198
26152      __cil_tmp133 = ! __cil_tmp132;
26153#line 198
26154      __cil_tmp134 = (long )__cil_tmp133;
26155#line 198
26156      tmp___9 = __builtin_expect(__cil_tmp134, 1L);
26157      }
26158#line 198
26159      if (tmp___9) {
26160#line 198
26161        __cil_tmp135 = (unsigned long )vq;
26162#line 198
26163        __cil_tmp136 = __cil_tmp135 + 16988;
26164#line 198
26165        __cil_tmp137 = *((int *)__cil_tmp136);
26166#line 198
26167        __cil_tmp138 = (unsigned long )vq;
26168#line 198
26169        __cil_tmp139 = __cil_tmp138 + 16984;
26170#line 198
26171        __cil_tmp140 = *((int *)__cil_tmp139);
26172#line 198
26173        num_pends = __cil_tmp140 - __cil_tmp137;
26174      } else {
26175#line 198
26176        __cil_tmp141 = (unsigned long )vq;
26177#line 198
26178        __cil_tmp142 = __cil_tmp141 + 16988;
26179#line 198
26180        __cil_tmp143 = *((int *)__cil_tmp142);
26181#line 198
26182        __cil_tmp144 = (unsigned long )vq;
26183#line 198
26184        __cil_tmp145 = __cil_tmp144 + 16984;
26185#line 198
26186        __cil_tmp146 = *((int *)__cil_tmp145);
26187#line 198
26188        __cil_tmp147 = __cil_tmp146 + 1024;
26189#line 198
26190        num_pends = __cil_tmp147 - __cil_tmp143;
26191      }
26192      {
26193#line 201
26194      __cil_tmp148 = num_pends > 128;
26195#line 201
26196      __cil_tmp149 = ! __cil_tmp148;
26197#line 201
26198      __cil_tmp150 = ! __cil_tmp149;
26199#line 201
26200      __cil_tmp151 = (long )__cil_tmp150;
26201#line 201
26202      tmp___10 = __builtin_expect(__cil_tmp151, 0L);
26203      }
26204#line 201
26205      if (tmp___10) {
26206        {
26207#line 202
26208        tx_poll_start(net, sock);
26209#line 203
26210        __cil_tmp152 = (unsigned long )sock;
26211#line 203
26212        __cil_tmp153 = __cil_tmp152 + 8;
26213#line 203
26214        __cil_tmp154 = (unsigned long *)__cil_tmp153;
26215#line 203
26216        __cil_tmp155 = (unsigned long volatile   *)__cil_tmp154;
26217#line 203
26218        set_bit(0U, __cil_tmp155);
26219        }
26220#line 204
26221        goto while_break___1;
26222      } else {
26223
26224      }
26225      {
26226#line 206
26227      __cil_tmp156 = (struct vhost_dev *)net;
26228#line 206
26229      tmp___11 = vhost_enable_notify(__cil_tmp156, vq);
26230      }
26231#line 206
26232      if (tmp___11) {
26233#line 206
26234        tmp___12 = 1;
26235      } else {
26236#line 206
26237        tmp___12 = 0;
26238      }
26239      {
26240#line 206
26241      __cil_tmp157 = (long )tmp___12;
26242#line 206
26243      tmp___13 = __builtin_expect(__cil_tmp157, 0L);
26244      }
26245#line 206
26246      if (tmp___13) {
26247        {
26248#line 207
26249        __cil_tmp158 = (struct vhost_dev *)net;
26250#line 207
26251        vhost_disable_notify(__cil_tmp158, vq);
26252        }
26253#line 208
26254        goto __Cont;
26255      } else {
26256
26257      }
26258#line 210
26259      goto while_break___1;
26260    } else {
26261
26262    }
26263    }
26264    {
26265#line 212
26266    __cil_tmp159 = & in;
26267#line 212
26268    if (*__cil_tmp159) {
26269      {
26270#line 213
26271      while (1) {
26272        while_continue___2: /* CIL Label */ ;
26273        {
26274#line 213
26275        while (1) {
26276          while_continue___3: /* CIL Label */ ;
26277          {
26278#line 213
26279          __cil_tmp160 = & descriptor___28;
26280#line 213
26281          __cil_tmp161 = __cil_tmp160->flags;
26282#line 213
26283          __cil_tmp162 = __cil_tmp161 & 1U;
26284#line 213
26285          __cil_tmp163 = ! __cil_tmp162;
26286#line 213
26287          __cil_tmp164 = ! __cil_tmp163;
26288#line 213
26289          __cil_tmp165 = (long )__cil_tmp164;
26290#line 213
26291          tmp___14 = __builtin_expect(__cil_tmp165, 0L);
26292          }
26293#line 213
26294          if (tmp___14) {
26295            {
26296#line 213
26297            __cil_tmp166 = & out;
26298#line 213
26299            __cil_tmp167 = *__cil_tmp166;
26300#line 213
26301            __cil_tmp168 = & in;
26302#line 213
26303            __cil_tmp169 = *__cil_tmp168;
26304#line 213
26305            __dynamic_pr_debug(& descriptor___28, "Unexpected descriptor format for TX: out %d, int %d\n",
26306                               __cil_tmp167, __cil_tmp169);
26307            }
26308          } else {
26309
26310          }
26311#line 213
26312          goto while_break___3;
26313        }
26314        while_break___3: /* CIL Label */ ;
26315        }
26316        {
26317#line 213
26318        __cil_tmp170 = (unsigned long )vq;
26319#line 213
26320        __cil_tmp171 = __cil_tmp170 + 144;
26321#line 213
26322        if (*((struct eventfd_ctx **)__cil_tmp171)) {
26323          {
26324#line 213
26325          __cil_tmp172 = (unsigned long )vq;
26326#line 213
26327          __cil_tmp173 = __cil_tmp172 + 144;
26328#line 213
26329          __cil_tmp174 = *((struct eventfd_ctx **)__cil_tmp173);
26330#line 213
26331          eventfd_signal(__cil_tmp174, 1);
26332          }
26333        } else {
26334
26335        }
26336        }
26337#line 213
26338        goto while_break___2;
26339      }
26340      while_break___2: /* CIL Label */ ;
26341      }
26342#line 215
26343      goto while_break___1;
26344    } else {
26345
26346    }
26347    }
26348    {
26349#line 218
26350    __cil_tmp175 = 0 * 16UL;
26351#line 218
26352    __cil_tmp176 = 352 + __cil_tmp175;
26353#line 218
26354    __cil_tmp177 = (unsigned long )vq;
26355#line 218
26356    __cil_tmp178 = __cil_tmp177 + __cil_tmp176;
26357#line 218
26358    __cil_tmp179 = (struct iovec *)__cil_tmp178;
26359#line 218
26360    __cil_tmp180 = 0 * 16UL;
26361#line 218
26362    __cil_tmp181 = 16736 + __cil_tmp180;
26363#line 218
26364    __cil_tmp182 = (unsigned long )vq;
26365#line 218
26366    __cil_tmp183 = __cil_tmp182 + __cil_tmp181;
26367#line 218
26368    __cil_tmp184 = (struct iovec *)__cil_tmp183;
26369#line 218
26370    __cil_tmp185 = & out;
26371#line 218
26372    __cil_tmp186 = *__cil_tmp185;
26373#line 218
26374    __cil_tmp187 = (int )__cil_tmp186;
26375#line 218
26376    tmp___15 = move_iovec_hdr(__cil_tmp179, __cil_tmp184, hdr_size, __cil_tmp187);
26377#line 218
26378    s = (unsigned int )tmp___15;
26379#line 219
26380    __cil_tmp188 = (unsigned long )(& msg) + 24;
26381#line 219
26382    __cil_tmp189 = & out;
26383#line 219
26384    __cil_tmp190 = *__cil_tmp189;
26385#line 219
26386    *((__kernel_size_t *)__cil_tmp188) = (__kernel_size_t )__cil_tmp190;
26387#line 220
26388    __cil_tmp191 = 0 * 16UL;
26389#line 220
26390    __cil_tmp192 = 352 + __cil_tmp191;
26391#line 220
26392    __cil_tmp193 = (unsigned long )vq;
26393#line 220
26394    __cil_tmp194 = __cil_tmp193 + __cil_tmp192;
26395#line 220
26396    __cil_tmp195 = (struct iovec *)__cil_tmp194;
26397#line 220
26398    __cil_tmp196 = (struct iovec    *)__cil_tmp195;
26399#line 220
26400    __cil_tmp197 = & out;
26401#line 220
26402    __cil_tmp198 = *__cil_tmp197;
26403#line 220
26404    __cil_tmp199 = (unsigned long )__cil_tmp198;
26405#line 220
26406    len = iov_length(__cil_tmp196, __cil_tmp199);
26407    }
26408#line 222
26409    if (! len) {
26410      {
26411#line 223
26412      while (1) {
26413        while_continue___4: /* CIL Label */ ;
26414        {
26415#line 223
26416        while (1) {
26417          while_continue___5: /* CIL Label */ ;
26418          {
26419#line 223
26420          __cil_tmp200 = & descriptor___29;
26421#line 223
26422          __cil_tmp201 = __cil_tmp200->flags;
26423#line 223
26424          __cil_tmp202 = __cil_tmp201 & 1U;
26425#line 223
26426          __cil_tmp203 = ! __cil_tmp202;
26427#line 223
26428          __cil_tmp204 = ! __cil_tmp203;
26429#line 223
26430          __cil_tmp205 = (long )__cil_tmp204;
26431#line 223
26432          tmp___17 = __builtin_expect(__cil_tmp205, 0L);
26433          }
26434#line 223
26435          if (tmp___17) {
26436            {
26437#line 223
26438            __cil_tmp206 = 0 * 16UL;
26439#line 223
26440            __cil_tmp207 = 16736 + __cil_tmp206;
26441#line 223
26442            __cil_tmp208 = (unsigned long )vq;
26443#line 223
26444            __cil_tmp209 = __cil_tmp208 + __cil_tmp207;
26445#line 223
26446            __cil_tmp210 = (struct iovec *)__cil_tmp209;
26447#line 223
26448            __cil_tmp211 = (struct iovec    *)__cil_tmp210;
26449#line 223
26450            __cil_tmp212 = (unsigned long )s;
26451#line 223
26452            tmp___16 = iov_length(__cil_tmp211, __cil_tmp212);
26453#line 223
26454            __dynamic_pr_debug(& descriptor___29, "Unexpected header len for TX: %zd expected %zd\n",
26455                               tmp___16, hdr_size);
26456            }
26457          } else {
26458
26459          }
26460#line 223
26461          goto while_break___5;
26462        }
26463        while_break___5: /* CIL Label */ ;
26464        }
26465        {
26466#line 223
26467        __cil_tmp213 = (unsigned long )vq;
26468#line 223
26469        __cil_tmp214 = __cil_tmp213 + 144;
26470#line 223
26471        if (*((struct eventfd_ctx **)__cil_tmp214)) {
26472          {
26473#line 223
26474          __cil_tmp215 = (unsigned long )vq;
26475#line 223
26476          __cil_tmp216 = __cil_tmp215 + 144;
26477#line 223
26478          __cil_tmp217 = *((struct eventfd_ctx **)__cil_tmp216);
26479#line 223
26480          eventfd_signal(__cil_tmp217, 1);
26481          }
26482        } else {
26483
26484        }
26485        }
26486#line 223
26487        goto while_break___4;
26488      }
26489      while_break___4: /* CIL Label */ ;
26490      }
26491#line 226
26492      goto while_break___1;
26493    } else {
26494
26495    }
26496#line 229
26497    if (zcopy) {
26498#line 230
26499      __cil_tmp218 = (unsigned long )vq;
26500#line 230
26501      __cil_tmp219 = __cil_tmp218 + 16984;
26502#line 230
26503      __cil_tmp220 = *((int *)__cil_tmp219);
26504#line 230
26505      __cil_tmp221 = (unsigned long )vq;
26506#line 230
26507      __cil_tmp222 = __cil_tmp221 + 16952;
26508#line 230
26509      __cil_tmp223 = *((struct vring_used_elem **)__cil_tmp222);
26510#line 230
26511      __cil_tmp224 = __cil_tmp223 + __cil_tmp220;
26512#line 230
26513      *((__u32 *)__cil_tmp224) = (__u32 )head;
26514#line 231
26515      if (len < 256UL) {
26516#line 233
26517        __cil_tmp225 = (unsigned long )vq;
26518#line 233
26519        __cil_tmp226 = __cil_tmp225 + 16984;
26520#line 233
26521        __cil_tmp227 = *((int *)__cil_tmp226);
26522#line 233
26523        __cil_tmp228 = (unsigned long )vq;
26524#line 233
26525        __cil_tmp229 = __cil_tmp228 + 16952;
26526#line 233
26527        __cil_tmp230 = *((struct vring_used_elem **)__cil_tmp229);
26528#line 233
26529        __cil_tmp231 = __cil_tmp230 + __cil_tmp227;
26530#line 233
26531        __cil_tmp232 = (unsigned long )__cil_tmp231;
26532#line 233
26533        __cil_tmp233 = __cil_tmp232 + 4;
26534#line 233
26535        *((__u32 *)__cil_tmp233) = (__u32 )1;
26536#line 235
26537        __cil_tmp234 = (unsigned long )(& msg) + 32;
26538#line 235
26539        *((void **)__cil_tmp234) = (void *)0;
26540#line 236
26541        __cil_tmp235 = (unsigned long )(& msg) + 40;
26542#line 236
26543        *((__kernel_size_t *)__cil_tmp235) = (__kernel_size_t )0;
26544#line 237
26545        __cil_tmp236 = (void *)0;
26546#line 237
26547        ubufs = (struct vhost_ubuf_ref *)__cil_tmp236;
26548      } else {
26549        {
26550#line 239
26551        __cil_tmp237 = (unsigned long )vq;
26552#line 239
26553        __cil_tmp238 = __cil_tmp237 + 16992;
26554#line 239
26555        __cil_tmp239 = *((struct ubuf_info **)__cil_tmp238);
26556#line 239
26557        ubuf = __cil_tmp239 + head;
26558#line 241
26559        __cil_tmp240 = (unsigned long )vq;
26560#line 241
26561        __cil_tmp241 = __cil_tmp240 + 16984;
26562#line 241
26563        __cil_tmp242 = *((int *)__cil_tmp241);
26564#line 241
26565        __cil_tmp243 = (unsigned long )vq;
26566#line 241
26567        __cil_tmp244 = __cil_tmp243 + 16952;
26568#line 241
26569        __cil_tmp245 = *((struct vring_used_elem **)__cil_tmp244);
26570#line 241
26571        __cil_tmp246 = __cil_tmp245 + __cil_tmp242;
26572#line 241
26573        __cil_tmp247 = (unsigned long )__cil_tmp246;
26574#line 241
26575        __cil_tmp248 = __cil_tmp247 + 4;
26576#line 241
26577        *((__u32 *)__cil_tmp248) = (__u32 )len;
26578#line 242
26579        *((void (**)(struct ubuf_info * ))ubuf) = & vhost_zerocopy_callback;
26580#line 243
26581        __cil_tmp249 = (unsigned long )ubuf;
26582#line 243
26583        __cil_tmp250 = __cil_tmp249 + 8;
26584#line 243
26585        __cil_tmp251 = (unsigned long )vq;
26586#line 243
26587        __cil_tmp252 = __cil_tmp251 + 17000;
26588#line 243
26589        __cil_tmp253 = *((struct vhost_ubuf_ref **)__cil_tmp252);
26590#line 243
26591        *((void **)__cil_tmp250) = (void *)__cil_tmp253;
26592#line 244
26593        __cil_tmp254 = (unsigned long )ubuf;
26594#line 244
26595        __cil_tmp255 = __cil_tmp254 + 16;
26596#line 244
26597        __cil_tmp256 = (unsigned long )vq;
26598#line 244
26599        __cil_tmp257 = __cil_tmp256 + 16984;
26600#line 244
26601        __cil_tmp258 = *((int *)__cil_tmp257);
26602#line 244
26603        *((unsigned long *)__cil_tmp255) = (unsigned long )__cil_tmp258;
26604#line 245
26605        __cil_tmp259 = (unsigned long )(& msg) + 32;
26606#line 245
26607        *((void **)__cil_tmp259) = (void *)ubuf;
26608#line 246
26609        __cil_tmp260 = (unsigned long )(& msg) + 40;
26610#line 246
26611        *((__kernel_size_t *)__cil_tmp260) = 8UL;
26612#line 247
26613        __cil_tmp261 = (unsigned long )vq;
26614#line 247
26615        __cil_tmp262 = __cil_tmp261 + 17000;
26616#line 247
26617        ubufs = *((struct vhost_ubuf_ref **)__cil_tmp262);
26618#line 248
26619        __cil_tmp263 = (struct kref *)ubufs;
26620#line 248
26621        kref_get(__cil_tmp263);
26622        }
26623      }
26624#line 250
26625      __cil_tmp264 = (unsigned long )vq;
26626#line 250
26627      __cil_tmp265 = __cil_tmp264 + 16984;
26628#line 250
26629      __cil_tmp266 = (unsigned long )vq;
26630#line 250
26631      __cil_tmp267 = __cil_tmp266 + 16984;
26632#line 250
26633      __cil_tmp268 = *((int *)__cil_tmp267);
26634#line 250
26635      __cil_tmp269 = __cil_tmp268 + 1;
26636#line 250
26637      *((int *)__cil_tmp265) = __cil_tmp269 % 1024;
26638    } else {
26639
26640    }
26641    {
26642#line 253
26643    __cil_tmp270 = (unsigned long )sock;
26644#line 253
26645    __cil_tmp271 = __cil_tmp270 + 40;
26646#line 253
26647    __cil_tmp272 = *((struct proto_ops    **)__cil_tmp271);
26648#line 253
26649    __cil_tmp273 = (unsigned long )__cil_tmp272;
26650#line 253
26651    __cil_tmp274 = __cil_tmp273 + 136;
26652#line 253
26653    __cil_tmp275 = *((int (*   *)(struct kiocb *iocb , struct socket *sock ,
26654                                       struct msghdr *m , size_t total_len ))__cil_tmp274);
26655#line 253
26656    __cil_tmp276 = (int (*)(struct kiocb *iocb , struct socket *sock , struct msghdr *m ,
26657                            size_t total_len ))__cil_tmp275;
26658#line 253
26659    __cil_tmp277 = (void *)0;
26660#line 253
26661    __cil_tmp278 = (struct kiocb *)__cil_tmp277;
26662#line 253
26663    err = (*__cil_tmp276)(__cil_tmp278, sock, & msg, len);
26664#line 254
26665    __cil_tmp279 = err < 0;
26666#line 254
26667    __cil_tmp280 = ! __cil_tmp279;
26668#line 254
26669    __cil_tmp281 = ! __cil_tmp280;
26670#line 254
26671    __cil_tmp282 = (long )__cil_tmp281;
26672#line 254
26673    tmp___18 = __builtin_expect(__cil_tmp282, 0L);
26674    }
26675#line 254
26676    if (tmp___18) {
26677#line 255
26678      if (zcopy) {
26679#line 256
26680        if (ubufs) {
26681          {
26682#line 257
26683          vhost_ubuf_put(ubufs);
26684          }
26685        } else {
26686
26687        }
26688#line 258
26689        __cil_tmp283 = (unsigned long )vq;
26690#line 258
26691        __cil_tmp284 = __cil_tmp283 + 16984;
26692#line 258
26693        __cil_tmp285 = (unsigned long )vq;
26694#line 258
26695        __cil_tmp286 = __cil_tmp285 + 16984;
26696#line 258
26697        __cil_tmp287 = *((int *)__cil_tmp286);
26698#line 258
26699        __cil_tmp288 = (unsigned int )__cil_tmp287;
26700#line 258
26701        __cil_tmp289 = __cil_tmp288 - 1U;
26702#line 258
26703        __cil_tmp290 = __cil_tmp289 % 1024U;
26704#line 258
26705        *((int *)__cil_tmp284) = (int )__cil_tmp290;
26706      } else {
26707
26708      }
26709      {
26710#line 261
26711      vhost_discard_vq_desc(vq, 1);
26712#line 262
26713      tx_poll_start(net, sock);
26714      }
26715#line 263
26716      goto while_break___1;
26717    } else {
26718
26719    }
26720    {
26721#line 265
26722    __cil_tmp291 = (size_t )err;
26723#line 265
26724    if (__cil_tmp291 != len) {
26725      {
26726#line 266
26727      while (1) {
26728        while_continue___6: /* CIL Label */ ;
26729        {
26730#line 266
26731        __cil_tmp292 = & descriptor___30;
26732#line 266
26733        __cil_tmp293 = __cil_tmp292->flags;
26734#line 266
26735        __cil_tmp294 = __cil_tmp293 & 1U;
26736#line 266
26737        __cil_tmp295 = ! __cil_tmp294;
26738#line 266
26739        __cil_tmp296 = ! __cil_tmp295;
26740#line 266
26741        __cil_tmp297 = (long )__cil_tmp296;
26742#line 266
26743        tmp___19 = __builtin_expect(__cil_tmp297, 0L);
26744        }
26745#line 266
26746        if (tmp___19) {
26747          {
26748#line 266
26749          __dynamic_pr_debug(& descriptor___30, "Truncated TX packet:  len %d != %zd\n",
26750                             err, len);
26751          }
26752        } else {
26753
26754        }
26755#line 266
26756        goto while_break___6;
26757      }
26758      while_break___6: /* CIL Label */ ;
26759      }
26760    } else {
26761
26762    }
26763    }
26764#line 268
26765    if (! zcopy) {
26766      {
26767#line 269
26768      __cil_tmp298 = (struct vhost_dev *)net;
26769#line 269
26770      __cil_tmp299 = (unsigned int )head;
26771#line 269
26772      vhost_add_used_and_signal(__cil_tmp298, vq, __cil_tmp299, 0);
26773      }
26774    } else {
26775
26776    }
26777    {
26778#line 270
26779    total_len = total_len + len;
26780#line 271
26781    __cil_tmp300 = total_len >= 524288UL;
26782#line 271
26783    __cil_tmp301 = ! __cil_tmp300;
26784#line 271
26785    __cil_tmp302 = ! __cil_tmp301;
26786#line 271
26787    __cil_tmp303 = (long )__cil_tmp302;
26788#line 271
26789    tmp___20 = __builtin_expect(__cil_tmp303, 0L);
26790    }
26791#line 271
26792    if (tmp___20) {
26793      {
26794#line 272
26795      __cil_tmp304 = (unsigned long )vq;
26796#line 272
26797      __cil_tmp305 = __cil_tmp304 + 160;
26798#line 272
26799      __cil_tmp306 = (struct vhost_poll *)__cil_tmp305;
26800#line 272
26801      vhost_poll_queue(__cil_tmp306);
26802      }
26803#line 273
26804      goto while_break___1;
26805    } else {
26806
26807    }
26808    __Cont: /* CIL Label */ ;
26809  }
26810  while_break___1: /* CIL Label */ ;
26811  }
26812  {
26813#line 277
26814  __cil_tmp307 = (unsigned long )vq;
26815#line 277
26816  __cil_tmp308 = __cil_tmp307 + 8;
26817#line 277
26818  __cil_tmp309 = (struct mutex *)__cil_tmp308;
26819#line 277
26820  mutex_unlock(__cil_tmp309);
26821  }
26822#line 278
26823  return;
26824}
26825}
26826#line 280 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
26827static int peek_head_len(struct sock *sk ) 
26828{ struct sk_buff *head ;
26829  int len ;
26830  unsigned long flags ;
26831  raw_spinlock_t *tmp___7 ;
26832  long tmp___8 ;
26833  unsigned long __cil_tmp9 ;
26834  unsigned long __cil_tmp10 ;
26835  unsigned long __cil_tmp11 ;
26836  spinlock_t *__cil_tmp12 ;
26837  unsigned long __cil_tmp13 ;
26838  unsigned long __cil_tmp14 ;
26839  struct sk_buff_head *__cil_tmp15 ;
26840  struct sk_buff_head    *__cil_tmp16 ;
26841  int __cil_tmp17 ;
26842  int __cil_tmp18 ;
26843  long __cil_tmp19 ;
26844  unsigned long __cil_tmp20 ;
26845  unsigned long __cil_tmp21 ;
26846  unsigned int __cil_tmp22 ;
26847  unsigned long __cil_tmp23 ;
26848  unsigned long __cil_tmp24 ;
26849  __u16 __cil_tmp25 ;
26850  int __cil_tmp26 ;
26851  unsigned long __cil_tmp27 ;
26852  unsigned long __cil_tmp28 ;
26853  unsigned long __cil_tmp29 ;
26854  spinlock_t *__cil_tmp30 ;
26855
26856  {
26857#line 283
26858  len = 0;
26859  {
26860#line 286
26861  while (1) {
26862    while_continue: /* CIL Label */ ;
26863    {
26864#line 286
26865    while (1) {
26866      while_continue___0: /* CIL Label */ ;
26867      {
26868#line 286
26869      __cil_tmp9 = 152 + 24;
26870#line 286
26871      __cil_tmp10 = (unsigned long )sk;
26872#line 286
26873      __cil_tmp11 = __cil_tmp10 + __cil_tmp9;
26874#line 286
26875      __cil_tmp12 = (spinlock_t *)__cil_tmp11;
26876#line 286
26877      tmp___7 = spinlock_check(__cil_tmp12);
26878#line 286
26879      flags = _raw_spin_lock_irqsave(tmp___7);
26880      }
26881#line 286
26882      goto while_break___0;
26883    }
26884    while_break___0: /* CIL Label */ ;
26885    }
26886#line 286
26887    goto while_break;
26888  }
26889  while_break: /* CIL Label */ ;
26890  }
26891  {
26892#line 287
26893  __cil_tmp13 = (unsigned long )sk;
26894#line 287
26895  __cil_tmp14 = __cil_tmp13 + 152;
26896#line 287
26897  __cil_tmp15 = (struct sk_buff_head *)__cil_tmp14;
26898#line 287
26899  __cil_tmp16 = (struct sk_buff_head    *)__cil_tmp15;
26900#line 287
26901  head = skb_peek(__cil_tmp16);
26902#line 288
26903  __cil_tmp17 = ! head;
26904#line 288
26905  __cil_tmp18 = ! __cil_tmp17;
26906#line 288
26907  __cil_tmp19 = (long )__cil_tmp18;
26908#line 288
26909  tmp___8 = __builtin_expect(__cil_tmp19, 1L);
26910  }
26911#line 288
26912  if (tmp___8) {
26913#line 289
26914    __cil_tmp20 = (unsigned long )head;
26915#line 289
26916    __cil_tmp21 = __cil_tmp20 + 104;
26917#line 289
26918    __cil_tmp22 = *((unsigned int *)__cil_tmp21);
26919#line 289
26920    len = (int )__cil_tmp22;
26921    {
26922#line 290
26923    __cil_tmp23 = (unsigned long )head;
26924#line 290
26925    __cil_tmp24 = __cil_tmp23 + 168;
26926#line 290
26927    __cil_tmp25 = *((__u16 *)__cil_tmp24);
26928#line 290
26929    __cil_tmp26 = (int )__cil_tmp25;
26930#line 290
26931    if (__cil_tmp26 & 4096) {
26932#line 291
26933      len = len + 4;
26934    } else {
26935
26936    }
26937    }
26938  } else {
26939
26940  }
26941  {
26942#line 294
26943  __cil_tmp27 = 152 + 24;
26944#line 294
26945  __cil_tmp28 = (unsigned long )sk;
26946#line 294
26947  __cil_tmp29 = __cil_tmp28 + __cil_tmp27;
26948#line 294
26949  __cil_tmp30 = (spinlock_t *)__cil_tmp29;
26950#line 294
26951  spin_unlock_irqrestore(__cil_tmp30, flags);
26952  }
26953#line 295
26954  return (len);
26955}
26956}
26957#line 335
26958static int get_rx_bufs(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
26959                       int datalen , unsigned int *iovcount , struct vhost_log *log ,
26960                       unsigned int *log_num , unsigned int quota ) ;
26961#line 335 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
26962static struct _ddebug  __attribute__((__aligned__(8))) descriptor___31  __attribute__((__used__,
26963__section__("__verbose")))  =    {"vhost_net", "get_rx_bufs", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c",
26964    "unexpected descriptor format for RX: out %d, in %d\n", 336U, 0U};
26965#line 308 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
26966static int get_rx_bufs(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
26967                       int datalen , unsigned int *iovcount , struct vhost_log *log ,
26968                       unsigned int *log_num , unsigned int quota ) 
26969{ unsigned int out ;
26970  unsigned int in ;
26971  int seg ;
26972  int headcount ;
26973  unsigned int d ;
26974  int r ;
26975  int nlogs ;
26976  long tmp___7 ;
26977  int tmp___8 ;
26978  long tmp___9 ;
26979  int tmp___10 ;
26980  long tmp___11 ;
26981  long tmp___12 ;
26982  size_t tmp___13 ;
26983  long tmp___14 ;
26984  unsigned int __cil_tmp23 ;
26985  int __cil_tmp24 ;
26986  int __cil_tmp25 ;
26987  int __cil_tmp26 ;
26988  long __cil_tmp27 ;
26989  struct vhost_dev *__cil_tmp28 ;
26990  unsigned long __cil_tmp29 ;
26991  unsigned long __cil_tmp30 ;
26992  unsigned long __cil_tmp31 ;
26993  unsigned long __cil_tmp32 ;
26994  struct iovec *__cil_tmp33 ;
26995  struct iovec *__cil_tmp34 ;
26996  unsigned long __cil_tmp35 ;
26997  unsigned long __cil_tmp36 ;
26998  unsigned long __cil_tmp37 ;
26999  unsigned long __cil_tmp38 ;
27000  unsigned int __cil_tmp39 ;
27001  unsigned long __cil_tmp40 ;
27002  unsigned long __cil_tmp41 ;
27003  unsigned int __cil_tmp42 ;
27004  unsigned int *__cil_tmp43 ;
27005  unsigned int *__cil_tmp44 ;
27006  unsigned int __cil_tmp45 ;
27007  long __cil_tmp46 ;
27008  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp47 ;
27009  unsigned int __cil_tmp48 ;
27010  unsigned int __cil_tmp49 ;
27011  int __cil_tmp50 ;
27012  int __cil_tmp51 ;
27013  long __cil_tmp52 ;
27014  unsigned int *__cil_tmp53 ;
27015  unsigned int __cil_tmp54 ;
27016  unsigned int *__cil_tmp55 ;
27017  unsigned int __cil_tmp56 ;
27018  unsigned long __cil_tmp57 ;
27019  unsigned long __cil_tmp58 ;
27020  unsigned long __cil_tmp59 ;
27021  unsigned long __cil_tmp60 ;
27022  struct eventfd_ctx *__cil_tmp61 ;
27023  int __cil_tmp62 ;
27024  int __cil_tmp63 ;
27025  long __cil_tmp64 ;
27026  unsigned int __cil_tmp65 ;
27027  unsigned int __cil_tmp66 ;
27028  unsigned int __cil_tmp67 ;
27029  unsigned int __cil_tmp68 ;
27030  struct vring_used_elem *__cil_tmp69 ;
27031  unsigned long __cil_tmp70 ;
27032  unsigned long __cil_tmp71 ;
27033  unsigned long __cil_tmp72 ;
27034  unsigned long __cil_tmp73 ;
27035  struct iovec *__cil_tmp74 ;
27036  struct iovec *__cil_tmp75 ;
27037  struct iovec    *__cil_tmp76 ;
27038  unsigned int *__cil_tmp77 ;
27039  unsigned int __cil_tmp78 ;
27040  unsigned long __cil_tmp79 ;
27041  struct vring_used_elem *__cil_tmp80 ;
27042  unsigned long __cil_tmp81 ;
27043  unsigned long __cil_tmp82 ;
27044  struct vring_used_elem *__cil_tmp83 ;
27045  unsigned long __cil_tmp84 ;
27046  unsigned long __cil_tmp85 ;
27047  __u32 __cil_tmp86 ;
27048  __u32 __cil_tmp87 ;
27049  __u32 __cil_tmp88 ;
27050  unsigned int *__cil_tmp89 ;
27051  unsigned int __cil_tmp90 ;
27052  unsigned int __cil_tmp91 ;
27053  unsigned int __cil_tmp92 ;
27054  int __cil_tmp93 ;
27055  struct vring_used_elem *__cil_tmp94 ;
27056  unsigned long __cil_tmp95 ;
27057  unsigned long __cil_tmp96 ;
27058  __u32 __cil_tmp97 ;
27059  int __cil_tmp98 ;
27060  struct vring_used_elem *__cil_tmp99 ;
27061  unsigned long __cil_tmp100 ;
27062  unsigned long __cil_tmp101 ;
27063  __u32 __cil_tmp102 ;
27064  int __cil_tmp103 ;
27065  int __cil_tmp104 ;
27066  long __cil_tmp105 ;
27067
27068  {
27069#line 317
27070  seg = 0;
27071#line 318
27072  headcount = 0;
27073#line 320
27074  nlogs = 0;
27075  {
27076#line 322
27077  while (1) {
27078    while_continue: /* CIL Label */ ;
27079#line 322
27080    if (datalen > 0) {
27081      {
27082#line 322
27083      __cil_tmp23 = (unsigned int )headcount;
27084#line 322
27085      if (__cil_tmp23 < quota) {
27086
27087      } else {
27088#line 322
27089        goto while_break;
27090      }
27091      }
27092    } else {
27093#line 322
27094      goto while_break;
27095    }
27096    {
27097#line 323
27098    __cil_tmp24 = seg >= 1024;
27099#line 323
27100    __cil_tmp25 = ! __cil_tmp24;
27101#line 323
27102    __cil_tmp26 = ! __cil_tmp25;
27103#line 323
27104    __cil_tmp27 = (long )__cil_tmp26;
27105#line 323
27106    tmp___7 = __builtin_expect(__cil_tmp27, 0L);
27107    }
27108#line 323
27109    if (tmp___7) {
27110#line 324
27111      r = -105;
27112#line 325
27113      goto err;
27114    } else {
27115
27116    }
27117    {
27118#line 327
27119    __cil_tmp28 = *((struct vhost_dev **)vq);
27120#line 327
27121    __cil_tmp29 = 0 * 16UL;
27122#line 327
27123    __cil_tmp30 = 352 + __cil_tmp29;
27124#line 327
27125    __cil_tmp31 = (unsigned long )vq;
27126#line 327
27127    __cil_tmp32 = __cil_tmp31 + __cil_tmp30;
27128#line 327
27129    __cil_tmp33 = (struct iovec *)__cil_tmp32;
27130#line 327
27131    __cil_tmp34 = __cil_tmp33 + seg;
27132#line 327
27133    __cil_tmp35 = (unsigned long )seg;
27134#line 327
27135    __cil_tmp36 = 16384UL / 16UL;
27136#line 327
27137    __cil_tmp37 = __cil_tmp36 + 0UL;
27138#line 327
27139    __cil_tmp38 = __cil_tmp37 - __cil_tmp35;
27140#line 327
27141    __cil_tmp39 = (unsigned int )__cil_tmp38;
27142#line 327
27143    tmp___8 = vhost_get_vq_desc(__cil_tmp28, vq, __cil_tmp34, __cil_tmp39, & out,
27144                                & in, log, log_num);
27145#line 327
27146    d = (unsigned int )tmp___8;
27147    }
27148    {
27149#line 330
27150    __cil_tmp40 = (unsigned long )vq;
27151#line 330
27152    __cil_tmp41 = __cil_tmp40 + 80;
27153#line 330
27154    __cil_tmp42 = *((unsigned int *)__cil_tmp41);
27155#line 330
27156    if (d == __cil_tmp42) {
27157#line 331
27158      r = 0;
27159#line 332
27160      goto err;
27161    } else {
27162
27163    }
27164    }
27165    {
27166#line 334
27167    __cil_tmp43 = & out;
27168#line 334
27169    if (*__cil_tmp43) {
27170#line 334
27171      tmp___10 = 1;
27172    } else {
27173      {
27174#line 334
27175      __cil_tmp44 = & in;
27176#line 334
27177      __cil_tmp45 = *__cil_tmp44;
27178#line 334
27179      if (__cil_tmp45 <= 0U) {
27180#line 334
27181        tmp___10 = 1;
27182      } else {
27183#line 334
27184        tmp___10 = 0;
27185      }
27186      }
27187    }
27188    }
27189    {
27190#line 334
27191    __cil_tmp46 = (long )tmp___10;
27192#line 334
27193    tmp___11 = __builtin_expect(__cil_tmp46, 0L);
27194    }
27195#line 334
27196    if (tmp___11) {
27197      {
27198#line 335
27199      while (1) {
27200        while_continue___0: /* CIL Label */ ;
27201        {
27202#line 335
27203        while (1) {
27204          while_continue___1: /* CIL Label */ ;
27205          {
27206#line 335
27207          __cil_tmp47 = & descriptor___31;
27208#line 335
27209          __cil_tmp48 = __cil_tmp47->flags;
27210#line 335
27211          __cil_tmp49 = __cil_tmp48 & 1U;
27212#line 335
27213          __cil_tmp50 = ! __cil_tmp49;
27214#line 335
27215          __cil_tmp51 = ! __cil_tmp50;
27216#line 335
27217          __cil_tmp52 = (long )__cil_tmp51;
27218#line 335
27219          tmp___9 = __builtin_expect(__cil_tmp52, 0L);
27220          }
27221#line 335
27222          if (tmp___9) {
27223            {
27224#line 335
27225            __cil_tmp53 = & out;
27226#line 335
27227            __cil_tmp54 = *__cil_tmp53;
27228#line 335
27229            __cil_tmp55 = & in;
27230#line 335
27231            __cil_tmp56 = *__cil_tmp55;
27232#line 335
27233            __dynamic_pr_debug(& descriptor___31, "unexpected descriptor format for RX: out %d, in %d\n",
27234                               __cil_tmp54, __cil_tmp56);
27235            }
27236          } else {
27237
27238          }
27239#line 335
27240          goto while_break___1;
27241        }
27242        while_break___1: /* CIL Label */ ;
27243        }
27244        {
27245#line 335
27246        __cil_tmp57 = (unsigned long )vq;
27247#line 335
27248        __cil_tmp58 = __cil_tmp57 + 144;
27249#line 335
27250        if (*((struct eventfd_ctx **)__cil_tmp58)) {
27251          {
27252#line 335
27253          __cil_tmp59 = (unsigned long )vq;
27254#line 335
27255          __cil_tmp60 = __cil_tmp59 + 144;
27256#line 335
27257          __cil_tmp61 = *((struct eventfd_ctx **)__cil_tmp60);
27258#line 335
27259          eventfd_signal(__cil_tmp61, 1);
27260          }
27261        } else {
27262
27263        }
27264        }
27265#line 335
27266        goto while_break___0;
27267      }
27268      while_break___0: /* CIL Label */ ;
27269      }
27270#line 337
27271      r = -22;
27272#line 338
27273      goto err;
27274    } else {
27275
27276    }
27277    {
27278#line 340
27279    __cil_tmp62 = ! log;
27280#line 340
27281    __cil_tmp63 = ! __cil_tmp62;
27282#line 340
27283    __cil_tmp64 = (long )__cil_tmp63;
27284#line 340
27285    tmp___12 = __builtin_expect(__cil_tmp64, 0L);
27286    }
27287#line 340
27288    if (tmp___12) {
27289#line 341
27290      __cil_tmp65 = *log_num;
27291#line 341
27292      __cil_tmp66 = (unsigned int )nlogs;
27293#line 341
27294      __cil_tmp67 = __cil_tmp66 + __cil_tmp65;
27295#line 341
27296      nlogs = (int )__cil_tmp67;
27297#line 342
27298      __cil_tmp68 = *log_num;
27299#line 342
27300      log = log + __cil_tmp68;
27301    } else {
27302
27303    }
27304    {
27305#line 344
27306    __cil_tmp69 = heads + headcount;
27307#line 344
27308    *((__u32 *)__cil_tmp69) = d;
27309#line 345
27310    __cil_tmp70 = 0 * 16UL;
27311#line 345
27312    __cil_tmp71 = 352 + __cil_tmp70;
27313#line 345
27314    __cil_tmp72 = (unsigned long )vq;
27315#line 345
27316    __cil_tmp73 = __cil_tmp72 + __cil_tmp71;
27317#line 345
27318    __cil_tmp74 = (struct iovec *)__cil_tmp73;
27319#line 345
27320    __cil_tmp75 = __cil_tmp74 + seg;
27321#line 345
27322    __cil_tmp76 = (struct iovec    *)__cil_tmp75;
27323#line 345
27324    __cil_tmp77 = & in;
27325#line 345
27326    __cil_tmp78 = *__cil_tmp77;
27327#line 345
27328    __cil_tmp79 = (unsigned long )__cil_tmp78;
27329#line 345
27330    tmp___13 = iov_length(__cil_tmp76, __cil_tmp79);
27331#line 345
27332    __cil_tmp80 = heads + headcount;
27333#line 345
27334    __cil_tmp81 = (unsigned long )__cil_tmp80;
27335#line 345
27336    __cil_tmp82 = __cil_tmp81 + 4;
27337#line 345
27338    *((__u32 *)__cil_tmp82) = (__u32 )tmp___13;
27339#line 346
27340    __cil_tmp83 = heads + headcount;
27341#line 346
27342    __cil_tmp84 = (unsigned long )__cil_tmp83;
27343#line 346
27344    __cil_tmp85 = __cil_tmp84 + 4;
27345#line 346
27346    __cil_tmp86 = *((__u32 *)__cil_tmp85);
27347#line 346
27348    __cil_tmp87 = (__u32 )datalen;
27349#line 346
27350    __cil_tmp88 = __cil_tmp87 - __cil_tmp86;
27351#line 346
27352    datalen = (int )__cil_tmp88;
27353#line 347
27354    headcount = headcount + 1;
27355#line 348
27356    __cil_tmp89 = & in;
27357#line 348
27358    __cil_tmp90 = *__cil_tmp89;
27359#line 348
27360    __cil_tmp91 = (unsigned int )seg;
27361#line 348
27362    __cil_tmp92 = __cil_tmp91 + __cil_tmp90;
27363#line 348
27364    seg = (int )__cil_tmp92;
27365    }
27366  }
27367  while_break: /* CIL Label */ ;
27368  }
27369  {
27370#line 350
27371  __cil_tmp93 = headcount - 1;
27372#line 350
27373  __cil_tmp94 = heads + __cil_tmp93;
27374#line 350
27375  __cil_tmp95 = (unsigned long )__cil_tmp94;
27376#line 350
27377  __cil_tmp96 = __cil_tmp95 + 4;
27378#line 350
27379  __cil_tmp97 = (__u32 )datalen;
27380#line 350
27381  __cil_tmp98 = headcount - 1;
27382#line 350
27383  __cil_tmp99 = heads + __cil_tmp98;
27384#line 350
27385  __cil_tmp100 = (unsigned long )__cil_tmp99;
27386#line 350
27387  __cil_tmp101 = __cil_tmp100 + 4;
27388#line 350
27389  __cil_tmp102 = *((__u32 *)__cil_tmp101);
27390#line 350
27391  *((__u32 *)__cil_tmp96) = __cil_tmp102 + __cil_tmp97;
27392#line 351
27393  *iovcount = (unsigned int )seg;
27394#line 352
27395  __cil_tmp103 = ! log;
27396#line 352
27397  __cil_tmp104 = ! __cil_tmp103;
27398#line 352
27399  __cil_tmp105 = (long )__cil_tmp104;
27400#line 352
27401  tmp___14 = __builtin_expect(__cil_tmp105, 0L);
27402  }
27403#line 352
27404  if (tmp___14) {
27405#line 353
27406    *log_num = (unsigned int )nlogs;
27407  } else {
27408
27409  }
27410#line 354
27411  return (headcount);
27412  err: 
27413  {
27414#line 356
27415  vhost_discard_vq_desc(vq, headcount);
27416  }
27417#line 357
27418  return (r);
27419}
27420}
27421#line 434
27422static void handle_rx(struct vhost_net *net ) ;
27423#line 434 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
27424static struct _ddebug  __attribute__((__aligned__(8))) descriptor___32  __attribute__((__used__,
27425__section__("__verbose")))  =    {"vhost_net", "handle_rx", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c",
27426    "Discarded rx packet:  len %d, expected %zd\n", 435U, 0U};
27427#line 442 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
27428static struct _ddebug  __attribute__((__aligned__(8))) descriptor___33  __attribute__((__used__,
27429__section__("__verbose")))  =    {"vhost_net", "handle_rx", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c",
27430    "Unable to write vnet_hdr at addr %p\n", 443U, 0U};
27431#line 451 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
27432static struct _ddebug  __attribute__((__aligned__(8))) descriptor___34  __attribute__((__used__,
27433__section__("__verbose")))  =    {"vhost_net", "handle_rx", "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c",
27434    "Failed num_buffers write", 451U, 0U};
27435#line 362 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
27436static void handle_rx(struct vhost_net *net ) 
27437{ struct vhost_virtqueue *vq ;
27438  unsigned int in ;
27439  unsigned int log ;
27440  struct vhost_log *vq_log ;
27441  struct msghdr msg ;
27442  struct virtio_net_hdr_mrg_rxbuf hdr ;
27443  size_t total_len ;
27444  int err ;
27445  int headcount ;
27446  int mergeable ;
27447  size_t vhost_hlen ;
27448  size_t sock_hlen ;
27449  size_t vhost_len ;
27450  size_t sock_len ;
27451  struct socket *sock ;
27452  void *_________p1 ;
27453  int tmp___10 ;
27454  int tmp___11 ;
27455  long tmp___12 ;
27456  int tmp___14 ;
27457  long tmp___15 ;
27458  long tmp___16 ;
27459  bool tmp___17 ;
27460  int tmp___18 ;
27461  long tmp___19 ;
27462  long tmp___20 ;
27463  long tmp___21 ;
27464  long tmp___22 ;
27465  long tmp___23 ;
27466  long tmp___24 ;
27467  int tmp___25 ;
27468  long tmp___26 ;
27469  long tmp___27 ;
27470  int tmp___28 ;
27471  long tmp___29 ;
27472  long tmp___30 ;
27473  int tmp___31 ;
27474  unsigned long __cil_tmp43 ;
27475  unsigned long __cil_tmp44 ;
27476  unsigned long __cil_tmp45 ;
27477  struct vhost_virtqueue *__cil_tmp46 ;
27478  unsigned int *__cil_tmp47 ;
27479  unsigned int *__cil_tmp48 ;
27480  struct msghdr *__cil_tmp49 ;
27481  unsigned long __cil_tmp50 ;
27482  unsigned long __cil_tmp51 ;
27483  unsigned long __cil_tmp52 ;
27484  unsigned long __cil_tmp53 ;
27485  unsigned long __cil_tmp54 ;
27486  unsigned long __cil_tmp55 ;
27487  unsigned long __cil_tmp56 ;
27488  unsigned long __cil_tmp57 ;
27489  unsigned long __cil_tmp58 ;
27490  unsigned long __cil_tmp59 ;
27491  struct virtio_net_hdr_mrg_rxbuf *__cil_tmp60 ;
27492  unsigned long __cil_tmp61 ;
27493  unsigned long __cil_tmp62 ;
27494  unsigned long __cil_tmp63 ;
27495  unsigned long __cil_tmp64 ;
27496  unsigned long __cil_tmp65 ;
27497  unsigned long __cil_tmp66 ;
27498  unsigned long __cil_tmp67 ;
27499  unsigned long __cil_tmp68 ;
27500  unsigned long __cil_tmp69 ;
27501  unsigned long __cil_tmp70 ;
27502  unsigned long __cil_tmp71 ;
27503  unsigned long __cil_tmp72 ;
27504  unsigned long __cil_tmp73 ;
27505  void **__cil_tmp74 ;
27506  void * volatile  *__cil_tmp75 ;
27507  void * volatile  __cil_tmp76 ;
27508  unsigned long __cil_tmp77 ;
27509  unsigned long __cil_tmp78 ;
27510  struct mutex *__cil_tmp79 ;
27511  struct vhost_dev *__cil_tmp80 ;
27512  unsigned long __cil_tmp81 ;
27513  unsigned long __cil_tmp82 ;
27514  unsigned long __cil_tmp83 ;
27515  unsigned long __cil_tmp84 ;
27516  struct vhost_dev *__cil_tmp85 ;
27517  long __cil_tmp86 ;
27518  unsigned long __cil_tmp87 ;
27519  unsigned long __cil_tmp88 ;
27520  void *__cil_tmp89 ;
27521  struct vhost_dev *__cil_tmp90 ;
27522  unsigned long __cil_tmp91 ;
27523  unsigned long __cil_tmp92 ;
27524  struct sock *__cil_tmp93 ;
27525  int __cil_tmp94 ;
27526  int __cil_tmp95 ;
27527  long __cil_tmp96 ;
27528  int *__cil_tmp97 ;
27529  unsigned long __cil_tmp98 ;
27530  unsigned long __cil_tmp99 ;
27531  struct vring_used_elem *__cil_tmp100 ;
27532  int __cil_tmp101 ;
27533  unsigned int __cil_tmp102 ;
27534  int *__cil_tmp103 ;
27535  int __cil_tmp104 ;
27536  int __cil_tmp105 ;
27537  int __cil_tmp106 ;
27538  int __cil_tmp107 ;
27539  long __cil_tmp108 ;
27540  int *__cil_tmp109 ;
27541  int __cil_tmp110 ;
27542  struct vhost_dev *__cil_tmp111 ;
27543  long __cil_tmp112 ;
27544  struct vhost_dev *__cil_tmp113 ;
27545  int __cil_tmp114 ;
27546  int __cil_tmp115 ;
27547  long __cil_tmp116 ;
27548  unsigned long __cil_tmp117 ;
27549  unsigned long __cil_tmp118 ;
27550  unsigned long __cil_tmp119 ;
27551  unsigned long __cil_tmp120 ;
27552  struct iovec *__cil_tmp121 ;
27553  unsigned long __cil_tmp122 ;
27554  unsigned long __cil_tmp123 ;
27555  unsigned long __cil_tmp124 ;
27556  unsigned long __cil_tmp125 ;
27557  struct iovec *__cil_tmp126 ;
27558  unsigned int *__cil_tmp127 ;
27559  unsigned int __cil_tmp128 ;
27560  int __cil_tmp129 ;
27561  unsigned long __cil_tmp130 ;
27562  unsigned long __cil_tmp131 ;
27563  unsigned long __cil_tmp132 ;
27564  unsigned long __cil_tmp133 ;
27565  struct iovec *__cil_tmp134 ;
27566  struct iovec    *__cil_tmp135 ;
27567  unsigned long __cil_tmp136 ;
27568  unsigned long __cil_tmp137 ;
27569  unsigned long __cil_tmp138 ;
27570  unsigned long __cil_tmp139 ;
27571  struct iovec *__cil_tmp140 ;
27572  unsigned int *__cil_tmp141 ;
27573  unsigned int __cil_tmp142 ;
27574  int __cil_tmp143 ;
27575  unsigned long __cil_tmp144 ;
27576  unsigned int *__cil_tmp145 ;
27577  unsigned int __cil_tmp146 ;
27578  unsigned long __cil_tmp147 ;
27579  unsigned long __cil_tmp148 ;
27580  struct proto_ops    *__cil_tmp149 ;
27581  unsigned long __cil_tmp150 ;
27582  unsigned long __cil_tmp151 ;
27583  int (*   __cil_tmp152)(struct kiocb *iocb , struct socket *sock , struct msghdr *m ,
27584                              size_t total_len , int flags ) ;
27585  int (*__cil_tmp153)(struct kiocb *iocb , struct socket *sock , struct msghdr *m ,
27586                      size_t total_len , int flags ) ;
27587  void *__cil_tmp154 ;
27588  struct kiocb *__cil_tmp155 ;
27589  size_t __cil_tmp156 ;
27590  int __cil_tmp157 ;
27591  int __cil_tmp158 ;
27592  int __cil_tmp159 ;
27593  long __cil_tmp160 ;
27594  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp161 ;
27595  unsigned int __cil_tmp162 ;
27596  unsigned int __cil_tmp163 ;
27597  int __cil_tmp164 ;
27598  int __cil_tmp165 ;
27599  long __cil_tmp166 ;
27600  int *__cil_tmp167 ;
27601  int __cil_tmp168 ;
27602  int __cil_tmp169 ;
27603  int __cil_tmp170 ;
27604  long __cil_tmp171 ;
27605  unsigned long __cil_tmp172 ;
27606  unsigned long __cil_tmp173 ;
27607  unsigned long __cil_tmp174 ;
27608  unsigned long __cil_tmp175 ;
27609  struct iovec *__cil_tmp176 ;
27610  struct iovec    *__cil_tmp177 ;
27611  unsigned char *__cil_tmp178 ;
27612  int __cil_tmp179 ;
27613  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp180 ;
27614  unsigned int __cil_tmp181 ;
27615  unsigned int __cil_tmp182 ;
27616  int __cil_tmp183 ;
27617  int __cil_tmp184 ;
27618  long __cil_tmp185 ;
27619  unsigned long __cil_tmp186 ;
27620  unsigned long __cil_tmp187 ;
27621  unsigned long __cil_tmp188 ;
27622  unsigned long __cil_tmp189 ;
27623  void *__cil_tmp190 ;
27624  unsigned long __cil_tmp191 ;
27625  unsigned long __cil_tmp192 ;
27626  unsigned long __cil_tmp193 ;
27627  unsigned long __cil_tmp194 ;
27628  struct eventfd_ctx *__cil_tmp195 ;
27629  int __cil_tmp196 ;
27630  int __cil_tmp197 ;
27631  long __cil_tmp198 ;
27632  unsigned long __cil_tmp199 ;
27633  unsigned long __cil_tmp200 ;
27634  unsigned long __cil_tmp201 ;
27635  unsigned long __cil_tmp202 ;
27636  struct iovec *__cil_tmp203 ;
27637  struct iovec    *__cil_tmp204 ;
27638  unsigned char *__cil_tmp205 ;
27639  struct virtio_net_hdr_mrg_rxbuf *__cil_tmp206 ;
27640  unsigned long __cil_tmp207 ;
27641  unsigned long __cil_tmp208 ;
27642  __u16 *__cil_tmp209 ;
27643  unsigned int __cil_tmp210 ;
27644  int __cil_tmp211 ;
27645  int __cil_tmp212 ;
27646  struct _ddebug  __attribute__((__aligned__(8))) *__cil_tmp213 ;
27647  unsigned int __cil_tmp214 ;
27648  unsigned int __cil_tmp215 ;
27649  int __cil_tmp216 ;
27650  int __cil_tmp217 ;
27651  long __cil_tmp218 ;
27652  unsigned long __cil_tmp219 ;
27653  unsigned long __cil_tmp220 ;
27654  unsigned long __cil_tmp221 ;
27655  unsigned long __cil_tmp222 ;
27656  struct eventfd_ctx *__cil_tmp223 ;
27657  int *__cil_tmp224 ;
27658  int __cil_tmp225 ;
27659  struct vhost_dev *__cil_tmp226 ;
27660  unsigned long __cil_tmp227 ;
27661  unsigned long __cil_tmp228 ;
27662  struct vring_used_elem *__cil_tmp229 ;
27663  int *__cil_tmp230 ;
27664  int __cil_tmp231 ;
27665  unsigned int __cil_tmp232 ;
27666  int __cil_tmp233 ;
27667  int __cil_tmp234 ;
27668  long __cil_tmp235 ;
27669  unsigned int *__cil_tmp236 ;
27670  unsigned int __cil_tmp237 ;
27671  u64 __cil_tmp238 ;
27672  int __cil_tmp239 ;
27673  int __cil_tmp240 ;
27674  int __cil_tmp241 ;
27675  long __cil_tmp242 ;
27676  unsigned long __cil_tmp243 ;
27677  unsigned long __cil_tmp244 ;
27678  struct vhost_poll *__cil_tmp245 ;
27679  unsigned long __cil_tmp246 ;
27680  unsigned long __cil_tmp247 ;
27681  struct mutex *__cil_tmp248 ;
27682
27683  {
27684#line 364
27685  __cil_tmp43 = 0 + 96;
27686#line 364
27687  __cil_tmp44 = (unsigned long )net;
27688#line 364
27689  __cil_tmp45 = __cil_tmp44 + __cil_tmp43;
27690#line 364
27691  __cil_tmp46 = *((struct vhost_virtqueue **)__cil_tmp45);
27692#line 364
27693  vq = __cil_tmp46 + 0;
27694#line 365
27695  __cil_tmp47 = & in;
27696#line 365
27697  __cil_tmp48 = & in;
27698#line 365
27699  *__cil_tmp47 = *__cil_tmp48;
27700#line 367
27701  __cil_tmp49 = & msg;
27702#line 367
27703  *((void **)__cil_tmp49) = (void *)0;
27704#line 367
27705  __cil_tmp50 = (unsigned long )(& msg) + 8;
27706#line 367
27707  *((int *)__cil_tmp50) = 0;
27708#line 367
27709  __cil_tmp51 = (unsigned long )(& msg) + 16;
27710#line 367
27711  __cil_tmp52 = 0 * 16UL;
27712#line 367
27713  __cil_tmp53 = 352 + __cil_tmp52;
27714#line 367
27715  __cil_tmp54 = (unsigned long )vq;
27716#line 367
27717  __cil_tmp55 = __cil_tmp54 + __cil_tmp53;
27718#line 367
27719  *((struct iovec **)__cil_tmp51) = (struct iovec *)__cil_tmp55;
27720#line 367
27721  __cil_tmp56 = (unsigned long )(& msg) + 24;
27722#line 367
27723  *((__kernel_size_t *)__cil_tmp56) = 0UL;
27724#line 367
27725  __cil_tmp57 = (unsigned long )(& msg) + 32;
27726#line 367
27727  *((void **)__cil_tmp57) = (void *)0;
27728#line 367
27729  __cil_tmp58 = (unsigned long )(& msg) + 40;
27730#line 367
27731  *((__kernel_size_t *)__cil_tmp58) = (__kernel_size_t )0;
27732#line 367
27733  __cil_tmp59 = (unsigned long )(& msg) + 48;
27734#line 367
27735  *((unsigned int *)__cil_tmp59) = 64U;
27736#line 375
27737  __cil_tmp60 = & hdr;
27738#line 375
27739  *((__u8 *)__cil_tmp60) = (__u8 )0;
27740#line 375
27741  __cil_tmp61 = 0 + 1;
27742#line 375
27743  __cil_tmp62 = (unsigned long )(& hdr) + __cil_tmp61;
27744#line 375
27745  *((__u8 *)__cil_tmp62) = (__u8 )0;
27746#line 375
27747  __cil_tmp63 = 0 + 2;
27748#line 375
27749  __cil_tmp64 = (unsigned long )(& hdr) + __cil_tmp63;
27750#line 375
27751  *((__u16 *)__cil_tmp64) = (unsigned short)0;
27752#line 375
27753  __cil_tmp65 = 0 + 4;
27754#line 375
27755  __cil_tmp66 = (unsigned long )(& hdr) + __cil_tmp65;
27756#line 375
27757  *((__u16 *)__cil_tmp66) = (unsigned short)0;
27758#line 375
27759  __cil_tmp67 = 0 + 6;
27760#line 375
27761  __cil_tmp68 = (unsigned long )(& hdr) + __cil_tmp67;
27762#line 375
27763  *((__u16 *)__cil_tmp68) = (unsigned short)0;
27764#line 375
27765  __cil_tmp69 = 0 + 8;
27766#line 375
27767  __cil_tmp70 = (unsigned long )(& hdr) + __cil_tmp69;
27768#line 375
27769  *((__u16 *)__cil_tmp70) = (unsigned short)0;
27770#line 375
27771  __cil_tmp71 = (unsigned long )(& hdr) + 10;
27772#line 375
27773  *((__u16 *)__cil_tmp71) = (unsigned short)0;
27774#line 379
27775  total_len = (size_t )0;
27776#line 384
27777  __cil_tmp72 = (unsigned long )vq;
27778#line 384
27779  __cil_tmp73 = __cil_tmp72 + 16960;
27780#line 384
27781  __cil_tmp74 = (void **)__cil_tmp73;
27782#line 384
27783  __cil_tmp75 = (void * volatile  *)__cil_tmp74;
27784#line 384
27785  __cil_tmp76 = *__cil_tmp75;
27786#line 384
27787  _________p1 = (void *)__cil_tmp76;
27788  {
27789#line 384
27790  while (1) {
27791    while_continue: /* CIL Label */ ;
27792#line 384
27793    goto while_break;
27794  }
27795  while_break: /* CIL Label */ ;
27796  }
27797  {
27798#line 384
27799  while (1) {
27800    while_continue___0: /* CIL Label */ ;
27801#line 384
27802    goto while_break___0;
27803  }
27804  while_break___0: /* CIL Label */ ;
27805  }
27806#line 384
27807  sock = (struct socket *)_________p1;
27808#line 386
27809  if (! sock) {
27810#line 387
27811    return;
27812  } else {
27813
27814  }
27815  {
27816#line 389
27817  __cil_tmp77 = (unsigned long )vq;
27818#line 389
27819  __cil_tmp78 = __cil_tmp77 + 8;
27820#line 389
27821  __cil_tmp79 = (struct mutex *)__cil_tmp78;
27822#line 389
27823  mutex_lock(__cil_tmp79);
27824#line 390
27825  __cil_tmp80 = (struct vhost_dev *)net;
27826#line 390
27827  vhost_disable_notify(__cil_tmp80, vq);
27828#line 391
27829  __cil_tmp81 = (unsigned long )vq;
27830#line 391
27831  __cil_tmp82 = __cil_tmp81 + 16936;
27832#line 391
27833  vhost_hlen = *((size_t *)__cil_tmp82);
27834#line 392
27835  __cil_tmp83 = (unsigned long )vq;
27836#line 392
27837  __cil_tmp84 = __cil_tmp83 + 16944;
27838#line 392
27839  sock_hlen = *((size_t *)__cil_tmp84);
27840#line 394
27841  __cil_tmp85 = (struct vhost_dev *)net;
27842#line 394
27843  tmp___10 = vhost_has_feature(__cil_tmp85, 26);
27844  }
27845#line 394
27846  if (tmp___10) {
27847#line 394
27848    tmp___11 = 1;
27849  } else {
27850#line 394
27851    tmp___11 = 0;
27852  }
27853  {
27854#line 394
27855  __cil_tmp86 = (long )tmp___11;
27856#line 394
27857  tmp___12 = __builtin_expect(__cil_tmp86, 0L);
27858  }
27859#line 394
27860  if (tmp___12) {
27861#line 394
27862    __cil_tmp87 = (unsigned long )vq;
27863#line 394
27864    __cil_tmp88 = __cil_tmp87 + 16976;
27865#line 394
27866    vq_log = *((struct vhost_log **)__cil_tmp88);
27867  } else {
27868#line 394
27869    __cil_tmp89 = (void *)0;
27870#line 394
27871    vq_log = (struct vhost_log *)__cil_tmp89;
27872  }
27873  {
27874#line 396
27875  __cil_tmp90 = (struct vhost_dev *)net;
27876#line 396
27877  mergeable = vhost_has_feature(__cil_tmp90, 15);
27878  }
27879  {
27880#line 398
27881  while (1) {
27882    while_continue___1: /* CIL Label */ ;
27883    {
27884#line 398
27885    __cil_tmp91 = (unsigned long )sock;
27886#line 398
27887    __cil_tmp92 = __cil_tmp91 + 32;
27888#line 398
27889    __cil_tmp93 = *((struct sock **)__cil_tmp92);
27890#line 398
27891    tmp___31 = peek_head_len(__cil_tmp93);
27892#line 398
27893    sock_len = (size_t )tmp___31;
27894    }
27895#line 398
27896    if (sock_len) {
27897
27898    } else {
27899#line 398
27900      goto while_break___1;
27901    }
27902    {
27903#line 399
27904    sock_len = sock_len + sock_hlen;
27905#line 400
27906    vhost_len = sock_len + vhost_hlen;
27907#line 401
27908    __cil_tmp94 = ! mergeable;
27909#line 401
27910    __cil_tmp95 = ! __cil_tmp94;
27911#line 401
27912    __cil_tmp96 = (long )__cil_tmp95;
27913#line 401
27914    tmp___15 = __builtin_expect(__cil_tmp96, 1L);
27915    }
27916#line 401
27917    if (tmp___15) {
27918#line 401
27919      tmp___14 = 1024;
27920    } else {
27921#line 401
27922      tmp___14 = 1;
27923    }
27924    {
27925#line 401
27926    __cil_tmp97 = & headcount;
27927#line 401
27928    __cil_tmp98 = (unsigned long )vq;
27929#line 401
27930    __cil_tmp99 = __cil_tmp98 + 16952;
27931#line 401
27932    __cil_tmp100 = *((struct vring_used_elem **)__cil_tmp99);
27933#line 401
27934    __cil_tmp101 = (int )vhost_len;
27935#line 401
27936    __cil_tmp102 = (unsigned int )tmp___14;
27937#line 401
27938    *__cil_tmp97 = get_rx_bufs(vq, __cil_tmp100, __cil_tmp101, & in, vq_log, & log,
27939                               __cil_tmp102);
27940#line 405
27941    __cil_tmp103 = & headcount;
27942#line 405
27943    __cil_tmp104 = *__cil_tmp103;
27944#line 405
27945    __cil_tmp105 = __cil_tmp104 < 0;
27946#line 405
27947    __cil_tmp106 = ! __cil_tmp105;
27948#line 405
27949    __cil_tmp107 = ! __cil_tmp106;
27950#line 405
27951    __cil_tmp108 = (long )__cil_tmp107;
27952#line 405
27953    tmp___16 = __builtin_expect(__cil_tmp108, 0L);
27954    }
27955#line 405
27956    if (tmp___16) {
27957#line 406
27958      goto while_break___1;
27959    } else {
27960
27961    }
27962    {
27963#line 408
27964    __cil_tmp109 = & headcount;
27965#line 408
27966    __cil_tmp110 = *__cil_tmp109;
27967#line 408
27968    if (! __cil_tmp110) {
27969      {
27970#line 409
27971      __cil_tmp111 = (struct vhost_dev *)net;
27972#line 409
27973      tmp___17 = vhost_enable_notify(__cil_tmp111, vq);
27974      }
27975#line 409
27976      if (tmp___17) {
27977#line 409
27978        tmp___18 = 1;
27979      } else {
27980#line 409
27981        tmp___18 = 0;
27982      }
27983      {
27984#line 409
27985      __cil_tmp112 = (long )tmp___18;
27986#line 409
27987      tmp___19 = __builtin_expect(__cil_tmp112, 0L);
27988      }
27989#line 409
27990      if (tmp___19) {
27991        {
27992#line 412
27993        __cil_tmp113 = (struct vhost_dev *)net;
27994#line 412
27995        vhost_disable_notify(__cil_tmp113, vq);
27996        }
27997#line 413
27998        goto while_continue___1;
27999      } else {
28000
28001      }
28002#line 417
28003      goto while_break___1;
28004    } else {
28005
28006    }
28007    }
28008    {
28009#line 420
28010    __cil_tmp114 = ! vhost_hlen;
28011#line 420
28012    __cil_tmp115 = ! __cil_tmp114;
28013#line 420
28014    __cil_tmp116 = (long )__cil_tmp115;
28015#line 420
28016    tmp___20 = __builtin_expect(__cil_tmp116, 0L);
28017    }
28018#line 420
28019    if (tmp___20) {
28020      {
28021#line 422
28022      __cil_tmp117 = 0 * 16UL;
28023#line 422
28024      __cil_tmp118 = 352 + __cil_tmp117;
28025#line 422
28026      __cil_tmp119 = (unsigned long )vq;
28027#line 422
28028      __cil_tmp120 = __cil_tmp119 + __cil_tmp118;
28029#line 422
28030      __cil_tmp121 = (struct iovec *)__cil_tmp120;
28031#line 422
28032      __cil_tmp122 = 0 * 16UL;
28033#line 422
28034      __cil_tmp123 = 16736 + __cil_tmp122;
28035#line 422
28036      __cil_tmp124 = (unsigned long )vq;
28037#line 422
28038      __cil_tmp125 = __cil_tmp124 + __cil_tmp123;
28039#line 422
28040      __cil_tmp126 = (struct iovec *)__cil_tmp125;
28041#line 422
28042      __cil_tmp127 = & in;
28043#line 422
28044      __cil_tmp128 = *__cil_tmp127;
28045#line 422
28046      __cil_tmp129 = (int )__cil_tmp128;
28047#line 422
28048      move_iovec_hdr(__cil_tmp121, __cil_tmp126, vhost_hlen, __cil_tmp129);
28049      }
28050    } else {
28051      {
28052#line 426
28053      __cil_tmp130 = 0 * 16UL;
28054#line 426
28055      __cil_tmp131 = 352 + __cil_tmp130;
28056#line 426
28057      __cil_tmp132 = (unsigned long )vq;
28058#line 426
28059      __cil_tmp133 = __cil_tmp132 + __cil_tmp131;
28060#line 426
28061      __cil_tmp134 = (struct iovec *)__cil_tmp133;
28062#line 426
28063      __cil_tmp135 = (struct iovec    *)__cil_tmp134;
28064#line 426
28065      __cil_tmp136 = 0 * 16UL;
28066#line 426
28067      __cil_tmp137 = 16736 + __cil_tmp136;
28068#line 426
28069      __cil_tmp138 = (unsigned long )vq;
28070#line 426
28071      __cil_tmp139 = __cil_tmp138 + __cil_tmp137;
28072#line 426
28073      __cil_tmp140 = (struct iovec *)__cil_tmp139;
28074#line 426
28075      __cil_tmp141 = & in;
28076#line 426
28077      __cil_tmp142 = *__cil_tmp141;
28078#line 426
28079      __cil_tmp143 = (int )__cil_tmp142;
28080#line 426
28081      copy_iovec_hdr(__cil_tmp135, __cil_tmp140, sock_hlen, __cil_tmp143);
28082      }
28083    }
28084    {
28085#line 427
28086    __cil_tmp144 = (unsigned long )(& msg) + 24;
28087#line 427
28088    __cil_tmp145 = & in;
28089#line 427
28090    __cil_tmp146 = *__cil_tmp145;
28091#line 427
28092    *((__kernel_size_t *)__cil_tmp144) = (__kernel_size_t )__cil_tmp146;
28093#line 428
28094    __cil_tmp147 = (unsigned long )sock;
28095#line 428
28096    __cil_tmp148 = __cil_tmp147 + 40;
28097#line 428
28098    __cil_tmp149 = *((struct proto_ops    **)__cil_tmp148);
28099#line 428
28100    __cil_tmp150 = (unsigned long )__cil_tmp149;
28101#line 428
28102    __cil_tmp151 = __cil_tmp150 + 144;
28103#line 428
28104    __cil_tmp152 = *((int (*   *)(struct kiocb *iocb , struct socket *sock ,
28105                                       struct msghdr *m , size_t total_len , int flags ))__cil_tmp151);
28106#line 428
28107    __cil_tmp153 = (int (*)(struct kiocb *iocb , struct socket *sock , struct msghdr *m ,
28108                            size_t total_len , int flags ))__cil_tmp152;
28109#line 428
28110    __cil_tmp154 = (void *)0;
28111#line 428
28112    __cil_tmp155 = (struct kiocb *)__cil_tmp154;
28113#line 428
28114    err = (*__cil_tmp153)(__cil_tmp155, sock, & msg, sock_len, 96);
28115#line 433
28116    __cil_tmp156 = (size_t )err;
28117#line 433
28118    __cil_tmp157 = __cil_tmp156 != sock_len;
28119#line 433
28120    __cil_tmp158 = ! __cil_tmp157;
28121#line 433
28122    __cil_tmp159 = ! __cil_tmp158;
28123#line 433
28124    __cil_tmp160 = (long )__cil_tmp159;
28125#line 433
28126    tmp___22 = __builtin_expect(__cil_tmp160, 0L);
28127    }
28128#line 433
28129    if (tmp___22) {
28130      {
28131#line 434
28132      while (1) {
28133        while_continue___2: /* CIL Label */ ;
28134        {
28135#line 434
28136        __cil_tmp161 = & descriptor___32;
28137#line 434
28138        __cil_tmp162 = __cil_tmp161->flags;
28139#line 434
28140        __cil_tmp163 = __cil_tmp162 & 1U;
28141#line 434
28142        __cil_tmp164 = ! __cil_tmp163;
28143#line 434
28144        __cil_tmp165 = ! __cil_tmp164;
28145#line 434
28146        __cil_tmp166 = (long )__cil_tmp165;
28147#line 434
28148        tmp___21 = __builtin_expect(__cil_tmp166, 0L);
28149        }
28150#line 434
28151        if (tmp___21) {
28152          {
28153#line 434
28154          __dynamic_pr_debug(& descriptor___32, "Discarded rx packet:  len %d, expected %zd\n",
28155                             err, sock_len);
28156          }
28157        } else {
28158
28159        }
28160#line 434
28161        goto while_break___2;
28162      }
28163      while_break___2: /* CIL Label */ ;
28164      }
28165      {
28166#line 436
28167      __cil_tmp167 = & headcount;
28168#line 436
28169      __cil_tmp168 = *__cil_tmp167;
28170#line 436
28171      vhost_discard_vq_desc(vq, __cil_tmp168);
28172      }
28173#line 437
28174      goto while_continue___1;
28175    } else {
28176
28177    }
28178    {
28179#line 439
28180    __cil_tmp169 = ! vhost_hlen;
28181#line 439
28182    __cil_tmp170 = ! __cil_tmp169;
28183#line 439
28184    __cil_tmp171 = (long )__cil_tmp170;
28185#line 439
28186    tmp___24 = __builtin_expect(__cil_tmp171, 0L);
28187    }
28188#line 439
28189    if (tmp___24) {
28190      {
28191#line 439
28192      __cil_tmp172 = 0 * 16UL;
28193#line 439
28194      __cil_tmp173 = 16736 + __cil_tmp172;
28195#line 439
28196      __cil_tmp174 = (unsigned long )vq;
28197#line 439
28198      __cil_tmp175 = __cil_tmp174 + __cil_tmp173;
28199#line 439
28200      __cil_tmp176 = (struct iovec *)__cil_tmp175;
28201#line 439
28202      __cil_tmp177 = (struct iovec    *)__cil_tmp176;
28203#line 439
28204      __cil_tmp178 = (unsigned char *)(& hdr);
28205#line 439
28206      __cil_tmp179 = (int )vhost_hlen;
28207#line 439
28208      tmp___25 = memcpy_toiovecend(__cil_tmp177, __cil_tmp178, 0, __cil_tmp179);
28209      }
28210#line 439
28211      if (tmp___25) {
28212        {
28213#line 442
28214        while (1) {
28215          while_continue___3: /* CIL Label */ ;
28216          {
28217#line 442
28218          while (1) {
28219            while_continue___4: /* CIL Label */ ;
28220            {
28221#line 442
28222            __cil_tmp180 = & descriptor___33;
28223#line 442
28224            __cil_tmp181 = __cil_tmp180->flags;
28225#line 442
28226            __cil_tmp182 = __cil_tmp181 & 1U;
28227#line 442
28228            __cil_tmp183 = ! __cil_tmp182;
28229#line 442
28230            __cil_tmp184 = ! __cil_tmp183;
28231#line 442
28232            __cil_tmp185 = (long )__cil_tmp184;
28233#line 442
28234            tmp___23 = __builtin_expect(__cil_tmp185, 0L);
28235            }
28236#line 442
28237            if (tmp___23) {
28238              {
28239#line 442
28240              __cil_tmp186 = 0 * 16UL;
28241#line 442
28242              __cil_tmp187 = 352 + __cil_tmp186;
28243#line 442
28244              __cil_tmp188 = (unsigned long )vq;
28245#line 442
28246              __cil_tmp189 = __cil_tmp188 + __cil_tmp187;
28247#line 442
28248              __cil_tmp190 = *((void **)__cil_tmp189);
28249#line 442
28250              __dynamic_pr_debug(& descriptor___33, "Unable to write vnet_hdr at addr %p\n",
28251                                 __cil_tmp190);
28252              }
28253            } else {
28254
28255            }
28256#line 442
28257            goto while_break___4;
28258          }
28259          while_break___4: /* CIL Label */ ;
28260          }
28261          {
28262#line 442
28263          __cil_tmp191 = (unsigned long )vq;
28264#line 442
28265          __cil_tmp192 = __cil_tmp191 + 144;
28266#line 442
28267          if (*((struct eventfd_ctx **)__cil_tmp192)) {
28268            {
28269#line 442
28270            __cil_tmp193 = (unsigned long )vq;
28271#line 442
28272            __cil_tmp194 = __cil_tmp193 + 144;
28273#line 442
28274            __cil_tmp195 = *((struct eventfd_ctx **)__cil_tmp194);
28275#line 442
28276            eventfd_signal(__cil_tmp195, 1);
28277            }
28278          } else {
28279
28280          }
28281          }
28282#line 442
28283          goto while_break___3;
28284        }
28285        while_break___3: /* CIL Label */ ;
28286        }
28287#line 444
28288        goto while_break___1;
28289      } else {
28290
28291      }
28292    } else {
28293
28294    }
28295    {
28296#line 447
28297    __cil_tmp196 = ! mergeable;
28298#line 447
28299    __cil_tmp197 = ! __cil_tmp196;
28300#line 447
28301    __cil_tmp198 = (long )__cil_tmp197;
28302#line 447
28303    tmp___27 = __builtin_expect(__cil_tmp198, 1L);
28304    }
28305#line 447
28306    if (tmp___27) {
28307      {
28308#line 447
28309      __cil_tmp199 = 0 * 16UL;
28310#line 447
28311      __cil_tmp200 = 16736 + __cil_tmp199;
28312#line 447
28313      __cil_tmp201 = (unsigned long )vq;
28314#line 447
28315      __cil_tmp202 = __cil_tmp201 + __cil_tmp200;
28316#line 447
28317      __cil_tmp203 = (struct iovec *)__cil_tmp202;
28318#line 447
28319      __cil_tmp204 = (struct iovec    *)__cil_tmp203;
28320#line 447
28321      __cil_tmp205 = (unsigned char *)(& headcount);
28322#line 447
28323      __cil_tmp206 = (struct virtio_net_hdr_mrg_rxbuf *)0;
28324#line 447
28325      __cil_tmp207 = (unsigned long )__cil_tmp206;
28326#line 447
28327      __cil_tmp208 = __cil_tmp207 + 10;
28328#line 447
28329      __cil_tmp209 = (__u16 *)__cil_tmp208;
28330#line 447
28331      __cil_tmp210 = (unsigned int )__cil_tmp209;
28332#line 447
28333      __cil_tmp211 = (int )__cil_tmp210;
28334#line 447
28335      __cil_tmp212 = (int )2UL;
28336#line 447
28337      tmp___28 = memcpy_toiovecend(__cil_tmp204, __cil_tmp205, __cil_tmp211, __cil_tmp212);
28338      }
28339#line 447
28340      if (tmp___28) {
28341        {
28342#line 451
28343        while (1) {
28344          while_continue___5: /* CIL Label */ ;
28345          {
28346#line 451
28347          while (1) {
28348            while_continue___6: /* CIL Label */ ;
28349            {
28350#line 451
28351            __cil_tmp213 = & descriptor___34;
28352#line 451
28353            __cil_tmp214 = __cil_tmp213->flags;
28354#line 451
28355            __cil_tmp215 = __cil_tmp214 & 1U;
28356#line 451
28357            __cil_tmp216 = ! __cil_tmp215;
28358#line 451
28359            __cil_tmp217 = ! __cil_tmp216;
28360#line 451
28361            __cil_tmp218 = (long )__cil_tmp217;
28362#line 451
28363            tmp___26 = __builtin_expect(__cil_tmp218, 0L);
28364            }
28365#line 451
28366            if (tmp___26) {
28367              {
28368#line 451
28369              __dynamic_pr_debug(& descriptor___34, "Failed num_buffers write");
28370              }
28371            } else {
28372
28373            }
28374#line 451
28375            goto while_break___6;
28376          }
28377          while_break___6: /* CIL Label */ ;
28378          }
28379          {
28380#line 451
28381          __cil_tmp219 = (unsigned long )vq;
28382#line 451
28383          __cil_tmp220 = __cil_tmp219 + 144;
28384#line 451
28385          if (*((struct eventfd_ctx **)__cil_tmp220)) {
28386            {
28387#line 451
28388            __cil_tmp221 = (unsigned long )vq;
28389#line 451
28390            __cil_tmp222 = __cil_tmp221 + 144;
28391#line 451
28392            __cil_tmp223 = *((struct eventfd_ctx **)__cil_tmp222);
28393#line 451
28394            eventfd_signal(__cil_tmp223, 1);
28395            }
28396          } else {
28397
28398          }
28399          }
28400#line 451
28401          goto while_break___5;
28402        }
28403        while_break___5: /* CIL Label */ ;
28404        }
28405        {
28406#line 452
28407        __cil_tmp224 = & headcount;
28408#line 452
28409        __cil_tmp225 = *__cil_tmp224;
28410#line 452
28411        vhost_discard_vq_desc(vq, __cil_tmp225);
28412        }
28413#line 453
28414        goto while_break___1;
28415      } else {
28416
28417      }
28418    } else {
28419
28420    }
28421    {
28422#line 455
28423    __cil_tmp226 = (struct vhost_dev *)net;
28424#line 455
28425    __cil_tmp227 = (unsigned long )vq;
28426#line 455
28427    __cil_tmp228 = __cil_tmp227 + 16952;
28428#line 455
28429    __cil_tmp229 = *((struct vring_used_elem **)__cil_tmp228);
28430#line 455
28431    __cil_tmp230 = & headcount;
28432#line 455
28433    __cil_tmp231 = *__cil_tmp230;
28434#line 455
28435    __cil_tmp232 = (unsigned int )__cil_tmp231;
28436#line 455
28437    vhost_add_used_and_signal_n(__cil_tmp226, vq, __cil_tmp229, __cil_tmp232);
28438#line 457
28439    __cil_tmp233 = ! vq_log;
28440#line 457
28441    __cil_tmp234 = ! __cil_tmp233;
28442#line 457
28443    __cil_tmp235 = (long )__cil_tmp234;
28444#line 457
28445    tmp___29 = __builtin_expect(__cil_tmp235, 0L);
28446    }
28447#line 457
28448    if (tmp___29) {
28449      {
28450#line 458
28451      __cil_tmp236 = & log;
28452#line 458
28453      __cil_tmp237 = *__cil_tmp236;
28454#line 458
28455      __cil_tmp238 = (u64 )vhost_len;
28456#line 458
28457      vhost_log_write(vq, vq_log, __cil_tmp237, __cil_tmp238);
28458      }
28459    } else {
28460
28461    }
28462    {
28463#line 459
28464    total_len = total_len + vhost_len;
28465#line 460
28466    __cil_tmp239 = total_len >= 524288UL;
28467#line 460
28468    __cil_tmp240 = ! __cil_tmp239;
28469#line 460
28470    __cil_tmp241 = ! __cil_tmp240;
28471#line 460
28472    __cil_tmp242 = (long )__cil_tmp241;
28473#line 460
28474    tmp___30 = __builtin_expect(__cil_tmp242, 0L);
28475    }
28476#line 460
28477    if (tmp___30) {
28478      {
28479#line 461
28480      __cil_tmp243 = (unsigned long )vq;
28481#line 461
28482      __cil_tmp244 = __cil_tmp243 + 160;
28483#line 461
28484      __cil_tmp245 = (struct vhost_poll *)__cil_tmp244;
28485#line 461
28486      vhost_poll_queue(__cil_tmp245);
28487      }
28488#line 462
28489      goto while_break___1;
28490    } else {
28491
28492    }
28493  }
28494  while_break___1: /* CIL Label */ ;
28495  }
28496  {
28497#line 466
28498  __cil_tmp246 = (unsigned long )vq;
28499#line 466
28500  __cil_tmp247 = __cil_tmp246 + 8;
28501#line 466
28502  __cil_tmp248 = (struct mutex *)__cil_tmp247;
28503#line 466
28504  mutex_unlock(__cil_tmp248);
28505  }
28506#line 467
28507  return;
28508}
28509}
28510#line 469 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
28511static void handle_tx_kick(struct vhost_work *work ) 
28512{ struct vhost_virtqueue *vq ;
28513  struct vhost_work    *__mptr ;
28514  struct vhost_net *net ;
28515  struct vhost_dev    *__mptr___0 ;
28516  unsigned long __cil_tmp6 ;
28517  struct vhost_virtqueue *__cil_tmp7 ;
28518  unsigned long __cil_tmp8 ;
28519  unsigned long __cil_tmp9 ;
28520  struct vhost_work *__cil_tmp10 ;
28521  unsigned int __cil_tmp11 ;
28522  char *__cil_tmp12 ;
28523  char *__cil_tmp13 ;
28524  struct vhost_dev *__cil_tmp14 ;
28525  struct vhost_net *__cil_tmp15 ;
28526  struct vhost_dev *__cil_tmp16 ;
28527  unsigned int __cil_tmp17 ;
28528  char *__cil_tmp18 ;
28529  char *__cil_tmp19 ;
28530
28531  {
28532  {
28533#line 471
28534  __mptr = (struct vhost_work    *)work;
28535#line 471
28536  __cil_tmp6 = 160 + 64;
28537#line 471
28538  __cil_tmp7 = (struct vhost_virtqueue *)0;
28539#line 471
28540  __cil_tmp8 = (unsigned long )__cil_tmp7;
28541#line 471
28542  __cil_tmp9 = __cil_tmp8 + __cil_tmp6;
28543#line 471
28544  __cil_tmp10 = (struct vhost_work *)__cil_tmp9;
28545#line 471
28546  __cil_tmp11 = (unsigned int )__cil_tmp10;
28547#line 471
28548  __cil_tmp12 = (char *)__mptr;
28549#line 471
28550  __cil_tmp13 = __cil_tmp12 - __cil_tmp11;
28551#line 471
28552  vq = (struct vhost_virtqueue *)__cil_tmp13;
28553#line 473
28554  __cil_tmp14 = *((struct vhost_dev **)vq);
28555#line 473
28556  __mptr___0 = (struct vhost_dev    *)__cil_tmp14;
28557#line 473
28558  __cil_tmp15 = (struct vhost_net *)0;
28559#line 473
28560  __cil_tmp16 = (struct vhost_dev *)__cil_tmp15;
28561#line 473
28562  __cil_tmp17 = (unsigned int )__cil_tmp16;
28563#line 473
28564  __cil_tmp18 = (char *)__mptr___0;
28565#line 473
28566  __cil_tmp19 = __cil_tmp18 - __cil_tmp17;
28567#line 473
28568  net = (struct vhost_net *)__cil_tmp19;
28569#line 475
28570  handle_tx(net);
28571  }
28572#line 476
28573  return;
28574}
28575}
28576#line 478 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
28577static void handle_rx_kick(struct vhost_work *work ) 
28578{ struct vhost_virtqueue *vq ;
28579  struct vhost_work    *__mptr ;
28580  struct vhost_net *net ;
28581  struct vhost_dev    *__mptr___0 ;
28582  unsigned long __cil_tmp6 ;
28583  struct vhost_virtqueue *__cil_tmp7 ;
28584  unsigned long __cil_tmp8 ;
28585  unsigned long __cil_tmp9 ;
28586  struct vhost_work *__cil_tmp10 ;
28587  unsigned int __cil_tmp11 ;
28588  char *__cil_tmp12 ;
28589  char *__cil_tmp13 ;
28590  struct vhost_dev *__cil_tmp14 ;
28591  struct vhost_net *__cil_tmp15 ;
28592  struct vhost_dev *__cil_tmp16 ;
28593  unsigned int __cil_tmp17 ;
28594  char *__cil_tmp18 ;
28595  char *__cil_tmp19 ;
28596
28597  {
28598  {
28599#line 480
28600  __mptr = (struct vhost_work    *)work;
28601#line 480
28602  __cil_tmp6 = 160 + 64;
28603#line 480
28604  __cil_tmp7 = (struct vhost_virtqueue *)0;
28605#line 480
28606  __cil_tmp8 = (unsigned long )__cil_tmp7;
28607#line 480
28608  __cil_tmp9 = __cil_tmp8 + __cil_tmp6;
28609#line 480
28610  __cil_tmp10 = (struct vhost_work *)__cil_tmp9;
28611#line 480
28612  __cil_tmp11 = (unsigned int )__cil_tmp10;
28613#line 480
28614  __cil_tmp12 = (char *)__mptr;
28615#line 480
28616  __cil_tmp13 = __cil_tmp12 - __cil_tmp11;
28617#line 480
28618  vq = (struct vhost_virtqueue *)__cil_tmp13;
28619#line 482
28620  __cil_tmp14 = *((struct vhost_dev **)vq);
28621#line 482
28622  __mptr___0 = (struct vhost_dev    *)__cil_tmp14;
28623#line 482
28624  __cil_tmp15 = (struct vhost_net *)0;
28625#line 482
28626  __cil_tmp16 = (struct vhost_dev *)__cil_tmp15;
28627#line 482
28628  __cil_tmp17 = (unsigned int )__cil_tmp16;
28629#line 482
28630  __cil_tmp18 = (char *)__mptr___0;
28631#line 482
28632  __cil_tmp19 = __cil_tmp18 - __cil_tmp17;
28633#line 482
28634  net = (struct vhost_net *)__cil_tmp19;
28635#line 484
28636  handle_rx(net);
28637  }
28638#line 485
28639  return;
28640}
28641}
28642#line 487 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
28643static void handle_tx_net(struct vhost_work *work ) 
28644{ struct vhost_net *net ;
28645  struct vhost_work    *__mptr ;
28646  unsigned long __cil_tmp4 ;
28647  unsigned long __cil_tmp5 ;
28648  unsigned long __cil_tmp6 ;
28649  struct vhost_net *__cil_tmp7 ;
28650  unsigned long __cil_tmp8 ;
28651  unsigned long __cil_tmp9 ;
28652  struct vhost_work *__cil_tmp10 ;
28653  unsigned int __cil_tmp11 ;
28654  char *__cil_tmp12 ;
28655  char *__cil_tmp13 ;
28656
28657  {
28658  {
28659#line 489
28660  __mptr = (struct vhost_work    *)work;
28661#line 489
28662  __cil_tmp4 = 1 * 160UL;
28663#line 489
28664  __cil_tmp5 = __cil_tmp4 + 64;
28665#line 489
28666  __cil_tmp6 = 34192 + __cil_tmp5;
28667#line 489
28668  __cil_tmp7 = (struct vhost_net *)0;
28669#line 489
28670  __cil_tmp8 = (unsigned long )__cil_tmp7;
28671#line 489
28672  __cil_tmp9 = __cil_tmp8 + __cil_tmp6;
28673#line 489
28674  __cil_tmp10 = (struct vhost_work *)__cil_tmp9;
28675#line 489
28676  __cil_tmp11 = (unsigned int )__cil_tmp10;
28677#line 489
28678  __cil_tmp12 = (char *)__mptr;
28679#line 489
28680  __cil_tmp13 = __cil_tmp12 - __cil_tmp11;
28681#line 489
28682  net = (struct vhost_net *)__cil_tmp13;
28683#line 491
28684  handle_tx(net);
28685  }
28686#line 492
28687  return;
28688}
28689}
28690#line 494 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
28691static void handle_rx_net(struct vhost_work *work ) 
28692{ struct vhost_net *net ;
28693  struct vhost_work    *__mptr ;
28694  unsigned long __cil_tmp4 ;
28695  unsigned long __cil_tmp5 ;
28696  unsigned long __cil_tmp6 ;
28697  struct vhost_net *__cil_tmp7 ;
28698  unsigned long __cil_tmp8 ;
28699  unsigned long __cil_tmp9 ;
28700  struct vhost_work *__cil_tmp10 ;
28701  unsigned int __cil_tmp11 ;
28702  char *__cil_tmp12 ;
28703  char *__cil_tmp13 ;
28704
28705  {
28706  {
28707#line 496
28708  __mptr = (struct vhost_work    *)work;
28709#line 496
28710  __cil_tmp4 = 0 * 160UL;
28711#line 496
28712  __cil_tmp5 = __cil_tmp4 + 64;
28713#line 496
28714  __cil_tmp6 = 34192 + __cil_tmp5;
28715#line 496
28716  __cil_tmp7 = (struct vhost_net *)0;
28717#line 496
28718  __cil_tmp8 = (unsigned long )__cil_tmp7;
28719#line 496
28720  __cil_tmp9 = __cil_tmp8 + __cil_tmp6;
28721#line 496
28722  __cil_tmp10 = (struct vhost_work *)__cil_tmp9;
28723#line 496
28724  __cil_tmp11 = (unsigned int )__cil_tmp10;
28725#line 496
28726  __cil_tmp12 = (char *)__mptr;
28727#line 496
28728  __cil_tmp13 = __cil_tmp12 - __cil_tmp11;
28729#line 496
28730  net = (struct vhost_net *)__cil_tmp13;
28731#line 498
28732  handle_rx(net);
28733  }
28734#line 499
28735  return;
28736}
28737}
28738#line 501 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
28739static int vhost_net_open(struct inode *inode , struct file *f ) 
28740{ struct vhost_net *n ;
28741  void *tmp___7 ;
28742  struct vhost_dev *dev ;
28743  int r ;
28744  long tmp___8 ;
28745  unsigned long __cil_tmp8 ;
28746  unsigned long __cil_tmp9 ;
28747  unsigned long __cil_tmp10 ;
28748  unsigned long __cil_tmp11 ;
28749  unsigned long __cil_tmp12 ;
28750  unsigned long __cil_tmp13 ;
28751  unsigned long __cil_tmp14 ;
28752  unsigned long __cil_tmp15 ;
28753  unsigned long __cil_tmp16 ;
28754  unsigned long __cil_tmp17 ;
28755  unsigned long __cil_tmp18 ;
28756  unsigned long __cil_tmp19 ;
28757  unsigned long __cil_tmp20 ;
28758  unsigned long __cil_tmp21 ;
28759  struct vhost_virtqueue *__cil_tmp22 ;
28760  void    *__cil_tmp23 ;
28761  unsigned long __cil_tmp24 ;
28762  unsigned long __cil_tmp25 ;
28763  unsigned long __cil_tmp26 ;
28764  unsigned long __cil_tmp27 ;
28765  struct vhost_poll *__cil_tmp28 ;
28766  struct vhost_poll *__cil_tmp29 ;
28767  unsigned long __cil_tmp30 ;
28768  unsigned long __cil_tmp31 ;
28769  unsigned long __cil_tmp32 ;
28770  unsigned long __cil_tmp33 ;
28771  struct vhost_poll *__cil_tmp34 ;
28772  struct vhost_poll *__cil_tmp35 ;
28773  unsigned long __cil_tmp36 ;
28774  unsigned long __cil_tmp37 ;
28775  unsigned long __cil_tmp38 ;
28776  unsigned long __cil_tmp39 ;
28777
28778  {
28779  {
28780#line 503
28781  tmp___7 = kmalloc(34520UL, 208U);
28782#line 503
28783  n = (struct vhost_net *)tmp___7;
28784  }
28785#line 507
28786  if (! n) {
28787#line 508
28788    return (-12);
28789  } else {
28790
28791  }
28792  {
28793#line 510
28794  dev = (struct vhost_dev *)n;
28795#line 511
28796  __cil_tmp8 = 1 * 17008UL;
28797#line 511
28798  __cil_tmp9 = __cil_tmp8 + 320;
28799#line 511
28800  __cil_tmp10 = 176 + __cil_tmp9;
28801#line 511
28802  __cil_tmp11 = (unsigned long )n;
28803#line 511
28804  __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
28805#line 511
28806  *((void (**)(struct vhost_work *work ))__cil_tmp12) = & handle_tx_kick;
28807#line 512
28808  __cil_tmp13 = 0 * 17008UL;
28809#line 512
28810  __cil_tmp14 = __cil_tmp13 + 320;
28811#line 512
28812  __cil_tmp15 = 176 + __cil_tmp14;
28813#line 512
28814  __cil_tmp16 = (unsigned long )n;
28815#line 512
28816  __cil_tmp17 = __cil_tmp16 + __cil_tmp15;
28817#line 512
28818  *((void (**)(struct vhost_work *work ))__cil_tmp17) = & handle_rx_kick;
28819#line 513
28820  __cil_tmp18 = 0 * 17008UL;
28821#line 513
28822  __cil_tmp19 = 176 + __cil_tmp18;
28823#line 513
28824  __cil_tmp20 = (unsigned long )n;
28825#line 513
28826  __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
28827#line 513
28828  __cil_tmp22 = (struct vhost_virtqueue *)__cil_tmp21;
28829#line 513
28830  tmp___8 = vhost_dev_init(dev, __cil_tmp22, 2);
28831#line 513
28832  r = (int )tmp___8;
28833  }
28834#line 514
28835  if (r < 0) {
28836    {
28837#line 515
28838    __cil_tmp23 = (void    *)n;
28839#line 515
28840    kfree(__cil_tmp23);
28841    }
28842#line 516
28843    return (r);
28844  } else {
28845
28846  }
28847  {
28848#line 519
28849  __cil_tmp24 = 0 * 160UL;
28850#line 519
28851  __cil_tmp25 = 34192 + __cil_tmp24;
28852#line 519
28853  __cil_tmp26 = (unsigned long )n;
28854#line 519
28855  __cil_tmp27 = __cil_tmp26 + __cil_tmp25;
28856#line 519
28857  __cil_tmp28 = (struct vhost_poll *)__cil_tmp27;
28858#line 519
28859  __cil_tmp29 = __cil_tmp28 + 1;
28860#line 519
28861  vhost_poll_init(__cil_tmp29, & handle_tx_net, 4UL, dev);
28862#line 520
28863  __cil_tmp30 = 0 * 160UL;
28864#line 520
28865  __cil_tmp31 = 34192 + __cil_tmp30;
28866#line 520
28867  __cil_tmp32 = (unsigned long )n;
28868#line 520
28869  __cil_tmp33 = __cil_tmp32 + __cil_tmp31;
28870#line 520
28871  __cil_tmp34 = (struct vhost_poll *)__cil_tmp33;
28872#line 520
28873  __cil_tmp35 = __cil_tmp34 + 0;
28874#line 520
28875  vhost_poll_init(__cil_tmp35, & handle_rx_net, 1UL, dev);
28876#line 521
28877  __cil_tmp36 = (unsigned long )n;
28878#line 521
28879  __cil_tmp37 = __cil_tmp36 + 34512;
28880#line 521
28881  *((enum vhost_net_poll_state *)__cil_tmp37) = (enum vhost_net_poll_state )0;
28882#line 523
28883  __cil_tmp38 = (unsigned long )f;
28884#line 523
28885  __cil_tmp39 = __cil_tmp38 + 200;
28886#line 523
28887  *((void **)__cil_tmp39) = (void *)n;
28888  }
28889#line 525
28890  return (0);
28891}
28892}
28893#line 528 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
28894static void vhost_net_disable_vq(struct vhost_net *n , struct vhost_virtqueue *vq ) 
28895{ unsigned long __cil_tmp3 ;
28896  unsigned long __cil_tmp4 ;
28897  void *__cil_tmp5 ;
28898  unsigned long __cil_tmp6 ;
28899  unsigned long __cil_tmp7 ;
28900  unsigned long __cil_tmp8 ;
28901  unsigned long __cil_tmp9 ;
28902  struct vhost_virtqueue *__cil_tmp10 ;
28903  struct vhost_virtqueue *__cil_tmp11 ;
28904  unsigned long __cil_tmp12 ;
28905  unsigned long __cil_tmp13 ;
28906  unsigned long __cil_tmp14 ;
28907  unsigned long __cil_tmp15 ;
28908  unsigned long __cil_tmp16 ;
28909  unsigned long __cil_tmp17 ;
28910  unsigned long __cil_tmp18 ;
28911  unsigned long __cil_tmp19 ;
28912  struct vhost_poll *__cil_tmp20 ;
28913  struct vhost_poll *__cil_tmp21 ;
28914
28915  {
28916  {
28917#line 531
28918  __cil_tmp3 = (unsigned long )vq;
28919#line 531
28920  __cil_tmp4 = __cil_tmp3 + 16960;
28921#line 531
28922  __cil_tmp5 = *((void **)__cil_tmp4);
28923#line 531
28924  if (! __cil_tmp5) {
28925#line 532
28926    return;
28927  } else {
28928
28929  }
28930  }
28931  {
28932#line 533
28933  __cil_tmp6 = 0 * 17008UL;
28934#line 533
28935  __cil_tmp7 = 176 + __cil_tmp6;
28936#line 533
28937  __cil_tmp8 = (unsigned long )n;
28938#line 533
28939  __cil_tmp9 = __cil_tmp8 + __cil_tmp7;
28940#line 533
28941  __cil_tmp10 = (struct vhost_virtqueue *)__cil_tmp9;
28942#line 533
28943  __cil_tmp11 = __cil_tmp10 + 1;
28944#line 533
28945  __cil_tmp12 = (unsigned long )__cil_tmp11;
28946#line 533
28947  __cil_tmp13 = (unsigned long )vq;
28948#line 533
28949  if (__cil_tmp13 == __cil_tmp12) {
28950    {
28951#line 534
28952    tx_poll_stop(n);
28953#line 535
28954    __cil_tmp14 = (unsigned long )n;
28955#line 535
28956    __cil_tmp15 = __cil_tmp14 + 34512;
28957#line 535
28958    *((enum vhost_net_poll_state *)__cil_tmp15) = (enum vhost_net_poll_state )0;
28959    }
28960  } else {
28961    {
28962#line 537
28963    __cil_tmp16 = 0 * 160UL;
28964#line 537
28965    __cil_tmp17 = 34192 + __cil_tmp16;
28966#line 537
28967    __cil_tmp18 = (unsigned long )n;
28968#line 537
28969    __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
28970#line 537
28971    __cil_tmp20 = (struct vhost_poll *)__cil_tmp19;
28972#line 537
28973    __cil_tmp21 = __cil_tmp20 + 0;
28974#line 537
28975    vhost_poll_stop(__cil_tmp21);
28976    }
28977  }
28978  }
28979#line 538
28980  return;
28981}
28982}
28983#line 540 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
28984static void vhost_net_enable_vq(struct vhost_net *n , struct vhost_virtqueue *vq ) 
28985{ struct socket *sock ;
28986  unsigned long __cil_tmp4 ;
28987  unsigned long __cil_tmp5 ;
28988  void *__cil_tmp6 ;
28989  unsigned long __cil_tmp7 ;
28990  unsigned long __cil_tmp8 ;
28991  unsigned long __cil_tmp9 ;
28992  unsigned long __cil_tmp10 ;
28993  struct vhost_virtqueue *__cil_tmp11 ;
28994  struct vhost_virtqueue *__cil_tmp12 ;
28995  unsigned long __cil_tmp13 ;
28996  unsigned long __cil_tmp14 ;
28997  unsigned long __cil_tmp15 ;
28998  unsigned long __cil_tmp16 ;
28999  unsigned long __cil_tmp17 ;
29000  unsigned long __cil_tmp18 ;
29001  unsigned long __cil_tmp19 ;
29002  unsigned long __cil_tmp20 ;
29003  struct vhost_poll *__cil_tmp21 ;
29004  struct vhost_poll *__cil_tmp22 ;
29005  unsigned long __cil_tmp23 ;
29006  unsigned long __cil_tmp24 ;
29007  struct file *__cil_tmp25 ;
29008
29009  {
29010  {
29011#line 545
29012  while (1) {
29013    while_continue: /* CIL Label */ ;
29014#line 545
29015    goto while_break;
29016  }
29017  while_break: /* CIL Label */ ;
29018  }
29019#line 545
29020  __cil_tmp4 = (unsigned long )vq;
29021#line 545
29022  __cil_tmp5 = __cil_tmp4 + 16960;
29023#line 545
29024  __cil_tmp6 = *((void **)__cil_tmp5);
29025#line 545
29026  sock = (struct socket *)__cil_tmp6;
29027#line 547
29028  if (! sock) {
29029#line 548
29030    return;
29031  } else {
29032
29033  }
29034  {
29035#line 549
29036  __cil_tmp7 = 0 * 17008UL;
29037#line 549
29038  __cil_tmp8 = 176 + __cil_tmp7;
29039#line 549
29040  __cil_tmp9 = (unsigned long )n;
29041#line 549
29042  __cil_tmp10 = __cil_tmp9 + __cil_tmp8;
29043#line 549
29044  __cil_tmp11 = (struct vhost_virtqueue *)__cil_tmp10;
29045#line 549
29046  __cil_tmp12 = __cil_tmp11 + 1;
29047#line 549
29048  __cil_tmp13 = (unsigned long )__cil_tmp12;
29049#line 549
29050  __cil_tmp14 = (unsigned long )vq;
29051#line 549
29052  if (__cil_tmp14 == __cil_tmp13) {
29053    {
29054#line 550
29055    __cil_tmp15 = (unsigned long )n;
29056#line 550
29057    __cil_tmp16 = __cil_tmp15 + 34512;
29058#line 550
29059    *((enum vhost_net_poll_state *)__cil_tmp16) = (enum vhost_net_poll_state )2;
29060#line 551
29061    tx_poll_start(n, sock);
29062    }
29063  } else {
29064    {
29065#line 553
29066    __cil_tmp17 = 0 * 160UL;
29067#line 553
29068    __cil_tmp18 = 34192 + __cil_tmp17;
29069#line 553
29070    __cil_tmp19 = (unsigned long )n;
29071#line 553
29072    __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
29073#line 553
29074    __cil_tmp21 = (struct vhost_poll *)__cil_tmp20;
29075#line 553
29076    __cil_tmp22 = __cil_tmp21 + 0;
29077#line 553
29078    __cil_tmp23 = (unsigned long )sock;
29079#line 553
29080    __cil_tmp24 = __cil_tmp23 + 24;
29081#line 553
29082    __cil_tmp25 = *((struct file **)__cil_tmp24);
29083#line 553
29084    vhost_poll_start(__cil_tmp22, __cil_tmp25);
29085    }
29086  }
29087  }
29088#line 554
29089  return;
29090}
29091}
29092#line 556 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
29093static struct socket *vhost_net_stop_vq(struct vhost_net *n , struct vhost_virtqueue *vq ) 
29094{ struct socket *sock ;
29095  unsigned long __cil_tmp4 ;
29096  unsigned long __cil_tmp5 ;
29097  struct mutex *__cil_tmp6 ;
29098  unsigned long __cil_tmp7 ;
29099  unsigned long __cil_tmp8 ;
29100  void *__cil_tmp9 ;
29101  unsigned long __cil_tmp10 ;
29102  unsigned long __cil_tmp11 ;
29103  unsigned long __cil_tmp12 ;
29104  unsigned long __cil_tmp13 ;
29105  struct mutex *__cil_tmp14 ;
29106
29107  {
29108  {
29109#line 561
29110  __cil_tmp4 = (unsigned long )vq;
29111#line 561
29112  __cil_tmp5 = __cil_tmp4 + 8;
29113#line 561
29114  __cil_tmp6 = (struct mutex *)__cil_tmp5;
29115#line 561
29116  mutex_lock(__cil_tmp6);
29117  }
29118  {
29119#line 562
29120  while (1) {
29121    while_continue: /* CIL Label */ ;
29122#line 562
29123    goto while_break;
29124  }
29125  while_break: /* CIL Label */ ;
29126  }
29127  {
29128#line 562
29129  __cil_tmp7 = (unsigned long )vq;
29130#line 562
29131  __cil_tmp8 = __cil_tmp7 + 16960;
29132#line 562
29133  __cil_tmp9 = *((void **)__cil_tmp8);
29134#line 562
29135  sock = (struct socket *)__cil_tmp9;
29136#line 564
29137  vhost_net_disable_vq(n, vq);
29138#line 565
29139  __asm__  volatile   ("": : : "memory");
29140#line 565
29141  __cil_tmp10 = (unsigned long )vq;
29142#line 565
29143  __cil_tmp11 = __cil_tmp10 + 16960;
29144#line 565
29145  *((void **)__cil_tmp11) = (void *)0;
29146#line 566
29147  __cil_tmp12 = (unsigned long )vq;
29148#line 566
29149  __cil_tmp13 = __cil_tmp12 + 8;
29150#line 566
29151  __cil_tmp14 = (struct mutex *)__cil_tmp13;
29152#line 566
29153  mutex_unlock(__cil_tmp14);
29154  }
29155#line 567
29156  return (sock);
29157}
29158}
29159#line 570 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
29160static void vhost_net_stop(struct vhost_net *n , struct socket **tx_sock , struct socket **rx_sock ) 
29161{ unsigned long __cil_tmp4 ;
29162  unsigned long __cil_tmp5 ;
29163  unsigned long __cil_tmp6 ;
29164  unsigned long __cil_tmp7 ;
29165  struct vhost_virtqueue *__cil_tmp8 ;
29166  struct vhost_virtqueue *__cil_tmp9 ;
29167  unsigned long __cil_tmp10 ;
29168  unsigned long __cil_tmp11 ;
29169  unsigned long __cil_tmp12 ;
29170  unsigned long __cil_tmp13 ;
29171  struct vhost_virtqueue *__cil_tmp14 ;
29172  struct vhost_virtqueue *__cil_tmp15 ;
29173
29174  {
29175  {
29176#line 573
29177  __cil_tmp4 = 0 * 17008UL;
29178#line 573
29179  __cil_tmp5 = 176 + __cil_tmp4;
29180#line 573
29181  __cil_tmp6 = (unsigned long )n;
29182#line 573
29183  __cil_tmp7 = __cil_tmp6 + __cil_tmp5;
29184#line 573
29185  __cil_tmp8 = (struct vhost_virtqueue *)__cil_tmp7;
29186#line 573
29187  __cil_tmp9 = __cil_tmp8 + 1;
29188#line 573
29189  *tx_sock = vhost_net_stop_vq(n, __cil_tmp9);
29190#line 574
29191  __cil_tmp10 = 0 * 17008UL;
29192#line 574
29193  __cil_tmp11 = 176 + __cil_tmp10;
29194#line 574
29195  __cil_tmp12 = (unsigned long )n;
29196#line 574
29197  __cil_tmp13 = __cil_tmp12 + __cil_tmp11;
29198#line 574
29199  __cil_tmp14 = (struct vhost_virtqueue *)__cil_tmp13;
29200#line 574
29201  __cil_tmp15 = __cil_tmp14 + 0;
29202#line 574
29203  *rx_sock = vhost_net_stop_vq(n, __cil_tmp15);
29204  }
29205#line 575
29206  return;
29207}
29208}
29209#line 577 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
29210static void vhost_net_flush_vq(struct vhost_net *n , int index ) 
29211{ unsigned long __cil_tmp3 ;
29212  unsigned long __cil_tmp4 ;
29213  unsigned long __cil_tmp5 ;
29214  unsigned long __cil_tmp6 ;
29215  struct vhost_poll *__cil_tmp7 ;
29216  struct vhost_poll *__cil_tmp8 ;
29217  unsigned long __cil_tmp9 ;
29218  unsigned long __cil_tmp10 ;
29219  unsigned long __cil_tmp11 ;
29220  struct vhost_virtqueue *__cil_tmp12 ;
29221  struct vhost_virtqueue *__cil_tmp13 ;
29222  unsigned long __cil_tmp14 ;
29223  unsigned long __cil_tmp15 ;
29224  struct vhost_poll *__cil_tmp16 ;
29225
29226  {
29227  {
29228#line 579
29229  __cil_tmp3 = 0 * 160UL;
29230#line 579
29231  __cil_tmp4 = 34192 + __cil_tmp3;
29232#line 579
29233  __cil_tmp5 = (unsigned long )n;
29234#line 579
29235  __cil_tmp6 = __cil_tmp5 + __cil_tmp4;
29236#line 579
29237  __cil_tmp7 = (struct vhost_poll *)__cil_tmp6;
29238#line 579
29239  __cil_tmp8 = __cil_tmp7 + index;
29240#line 579
29241  vhost_poll_flush(__cil_tmp8);
29242#line 580
29243  __cil_tmp9 = 0 + 96;
29244#line 580
29245  __cil_tmp10 = (unsigned long )n;
29246#line 580
29247  __cil_tmp11 = __cil_tmp10 + __cil_tmp9;
29248#line 580
29249  __cil_tmp12 = *((struct vhost_virtqueue **)__cil_tmp11);
29250#line 580
29251  __cil_tmp13 = __cil_tmp12 + index;
29252#line 580
29253  __cil_tmp14 = (unsigned long )__cil_tmp13;
29254#line 580
29255  __cil_tmp15 = __cil_tmp14 + 160;
29256#line 580
29257  __cil_tmp16 = (struct vhost_poll *)__cil_tmp15;
29258#line 580
29259  vhost_poll_flush(__cil_tmp16);
29260  }
29261#line 581
29262  return;
29263}
29264}
29265#line 583 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
29266static void vhost_net_flush(struct vhost_net *n ) 
29267{ 
29268
29269  {
29270  {
29271#line 585
29272  vhost_net_flush_vq(n, 1);
29273#line 586
29274  vhost_net_flush_vq(n, 0);
29275  }
29276#line 587
29277  return;
29278}
29279}
29280#line 589 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
29281static int vhost_net_release(struct inode *inode , struct file *f ) 
29282{ struct vhost_net *n ;
29283  struct socket *tx_sock ;
29284  struct socket *rx_sock ;
29285  unsigned long __cil_tmp6 ;
29286  unsigned long __cil_tmp7 ;
29287  void *__cil_tmp8 ;
29288  struct vhost_dev *__cil_tmp9 ;
29289  bool __cil_tmp10 ;
29290  struct socket **__cil_tmp11 ;
29291  struct socket **__cil_tmp12 ;
29292  struct socket *__cil_tmp13 ;
29293  unsigned long __cil_tmp14 ;
29294  unsigned long __cil_tmp15 ;
29295  struct file *__cil_tmp16 ;
29296  struct socket **__cil_tmp17 ;
29297  struct socket **__cil_tmp18 ;
29298  struct socket *__cil_tmp19 ;
29299  unsigned long __cil_tmp20 ;
29300  unsigned long __cil_tmp21 ;
29301  struct file *__cil_tmp22 ;
29302  void    *__cil_tmp23 ;
29303
29304  {
29305  {
29306#line 591
29307  __cil_tmp6 = (unsigned long )f;
29308#line 591
29309  __cil_tmp7 = __cil_tmp6 + 200;
29310#line 591
29311  __cil_tmp8 = *((void **)__cil_tmp7);
29312#line 591
29313  n = (struct vhost_net *)__cil_tmp8;
29314#line 595
29315  vhost_net_stop(n, & tx_sock, & rx_sock);
29316#line 596
29317  vhost_net_flush(n);
29318#line 597
29319  __cil_tmp9 = (struct vhost_dev *)n;
29320#line 597
29321  __cil_tmp10 = (bool )0;
29322#line 597
29323  vhost_dev_cleanup(__cil_tmp9, __cil_tmp10);
29324  }
29325  {
29326#line 598
29327  __cil_tmp11 = & tx_sock;
29328#line 598
29329  if (*__cil_tmp11) {
29330    {
29331#line 599
29332    __cil_tmp12 = & tx_sock;
29333#line 599
29334    __cil_tmp13 = *__cil_tmp12;
29335#line 599
29336    __cil_tmp14 = (unsigned long )__cil_tmp13;
29337#line 599
29338    __cil_tmp15 = __cil_tmp14 + 24;
29339#line 599
29340    __cil_tmp16 = *((struct file **)__cil_tmp15);
29341#line 599
29342    fput(__cil_tmp16);
29343    }
29344  } else {
29345
29346  }
29347  }
29348  {
29349#line 600
29350  __cil_tmp17 = & rx_sock;
29351#line 600
29352  if (*__cil_tmp17) {
29353    {
29354#line 601
29355    __cil_tmp18 = & rx_sock;
29356#line 601
29357    __cil_tmp19 = *__cil_tmp18;
29358#line 601
29359    __cil_tmp20 = (unsigned long )__cil_tmp19;
29360#line 601
29361    __cil_tmp21 = __cil_tmp20 + 24;
29362#line 601
29363    __cil_tmp22 = *((struct file **)__cil_tmp21);
29364#line 601
29365    fput(__cil_tmp22);
29366    }
29367  } else {
29368
29369  }
29370  }
29371  {
29372#line 604
29373  vhost_net_flush(n);
29374#line 605
29375  __cil_tmp23 = (void    *)n;
29376#line 605
29377  kfree(__cil_tmp23);
29378  }
29379#line 606
29380  return (0);
29381}
29382}
29383#line 609 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
29384static struct socket *get_raw_socket(int fd ) 
29385{ struct __anonstruct_uaddr_369 uaddr ;
29386  int uaddr_len ;
29387  int r ;
29388  struct socket *sock ;
29389  struct socket *tmp___7 ;
29390  void *tmp___8 ;
29391  void *tmp___9 ;
29392  int *__cil_tmp9 ;
29393  unsigned long __cil_tmp10 ;
29394  unsigned long __cil_tmp11 ;
29395  struct sock *__cil_tmp12 ;
29396  unsigned long __cil_tmp13 ;
29397  unsigned long __cil_tmp14 ;
29398  unsigned int __cil_tmp15 ;
29399  int *__cil_tmp16 ;
29400  int *__cil_tmp17 ;
29401  unsigned long __cil_tmp18 ;
29402  unsigned long __cil_tmp19 ;
29403  struct proto_ops    *__cil_tmp20 ;
29404  unsigned long __cil_tmp21 ;
29405  unsigned long __cil_tmp22 ;
29406  int (*   __cil_tmp23)(struct socket *sock , struct sockaddr *addr , int *sockaddr_len ,
29407                             int peer ) ;
29408  int (*__cil_tmp24)(struct socket *sock , struct sockaddr *addr , int *sockaddr_len ,
29409                     int peer ) ;
29410  struct __anonstruct_uaddr_369 *__cil_tmp25 ;
29411  struct sockaddr_ll *__cil_tmp26 ;
29412  struct sockaddr *__cil_tmp27 ;
29413  int *__cil_tmp28 ;
29414  struct __anonstruct_uaddr_369 *__cil_tmp29 ;
29415  unsigned short __cil_tmp30 ;
29416  int __cil_tmp31 ;
29417  int *__cil_tmp32 ;
29418  unsigned long __cil_tmp33 ;
29419  unsigned long __cil_tmp34 ;
29420  struct file *__cil_tmp35 ;
29421  int *__cil_tmp36 ;
29422  int __cil_tmp37 ;
29423  long __cil_tmp38 ;
29424
29425  {
29426  {
29427#line 615
29428  __cil_tmp9 = & uaddr_len;
29429#line 615
29430  *__cil_tmp9 = (int )52UL;
29431#line 616
29432  tmp___7 = sockfd_lookup(fd, & r);
29433#line 616
29434  sock = tmp___7;
29435  }
29436#line 618
29437  if (! sock) {
29438    {
29439#line 619
29440    tmp___8 = (void *)ERR_PTR(-88L);
29441    }
29442#line 619
29443    return ((struct socket *)tmp___8);
29444  } else {
29445
29446  }
29447  {
29448#line 622
29449  __cil_tmp10 = (unsigned long )sock;
29450#line 622
29451  __cil_tmp11 = __cil_tmp10 + 32;
29452#line 622
29453  __cil_tmp12 = *((struct sock **)__cil_tmp11);
29454#line 622
29455  __cil_tmp13 = (unsigned long )__cil_tmp12;
29456#line 622
29457  __cil_tmp14 = __cil_tmp13 + 426;
29458#line 622
29459  __cil_tmp15 = *((unsigned int *)__cil_tmp14);
29460#line 622
29461  if (__cil_tmp15 != 3U) {
29462#line 623
29463    __cil_tmp16 = & r;
29464#line 623
29465    *__cil_tmp16 = -94;
29466#line 624
29467    goto err;
29468  } else {
29469
29470  }
29471  }
29472  {
29473#line 627
29474  __cil_tmp17 = & r;
29475#line 627
29476  __cil_tmp18 = (unsigned long )sock;
29477#line 627
29478  __cil_tmp19 = __cil_tmp18 + 40;
29479#line 627
29480  __cil_tmp20 = *((struct proto_ops    **)__cil_tmp19);
29481#line 627
29482  __cil_tmp21 = (unsigned long )__cil_tmp20;
29483#line 627
29484  __cil_tmp22 = __cil_tmp21 + 56;
29485#line 627
29486  __cil_tmp23 = *((int (*   *)(struct socket *sock , struct sockaddr *addr ,
29487                                    int *sockaddr_len , int peer ))__cil_tmp22);
29488#line 627
29489  __cil_tmp24 = (int (*)(struct socket *sock , struct sockaddr *addr , int *sockaddr_len ,
29490                         int peer ))__cil_tmp23;
29491#line 627
29492  __cil_tmp25 = & uaddr;
29493#line 627
29494  __cil_tmp26 = (struct sockaddr_ll *)__cil_tmp25;
29495#line 627
29496  __cil_tmp27 = (struct sockaddr *)__cil_tmp26;
29497#line 627
29498  *__cil_tmp17 = (*__cil_tmp24)(sock, __cil_tmp27, & uaddr_len, 0);
29499  }
29500  {
29501#line 629
29502  __cil_tmp28 = & r;
29503#line 629
29504  if (*__cil_tmp28) {
29505#line 630
29506    goto err;
29507  } else {
29508
29509  }
29510  }
29511  {
29512#line 632
29513  __cil_tmp29 = & uaddr;
29514#line 632
29515  __cil_tmp30 = *((unsigned short *)__cil_tmp29);
29516#line 632
29517  __cil_tmp31 = (int )__cil_tmp30;
29518#line 632
29519  if (__cil_tmp31 != 17) {
29520#line 633
29521    __cil_tmp32 = & r;
29522#line 633
29523    *__cil_tmp32 = -96;
29524#line 634
29525    goto err;
29526  } else {
29527
29528  }
29529  }
29530#line 636
29531  return (sock);
29532  err: 
29533  {
29534#line 638
29535  __cil_tmp33 = (unsigned long )sock;
29536#line 638
29537  __cil_tmp34 = __cil_tmp33 + 24;
29538#line 638
29539  __cil_tmp35 = *((struct file **)__cil_tmp34);
29540#line 638
29541  fput(__cil_tmp35);
29542#line 639
29543  __cil_tmp36 = & r;
29544#line 639
29545  __cil_tmp37 = *__cil_tmp36;
29546#line 639
29547  __cil_tmp38 = (long )__cil_tmp37;
29548#line 639
29549  tmp___9 = (void *)ERR_PTR(__cil_tmp38);
29550  }
29551#line 639
29552  return ((struct socket *)tmp___9);
29553}
29554}
29555#line 642 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
29556static struct socket *get_tap_socket(int fd ) 
29557{ struct file *file ;
29558  struct file *tmp___7 ;
29559  struct socket *sock ;
29560  void *tmp___8 ;
29561  long tmp___9 ;
29562  long tmp___10 ;
29563  unsigned int __cil_tmp8 ;
29564  void    *__cil_tmp9 ;
29565  void    *__cil_tmp10 ;
29566
29567  {
29568  {
29569#line 644
29570  __cil_tmp8 = (unsigned int )fd;
29571#line 644
29572  tmp___7 = fget(__cil_tmp8);
29573#line 644
29574  file = tmp___7;
29575  }
29576#line 647
29577  if (! file) {
29578    {
29579#line 648
29580    tmp___8 = (void *)ERR_PTR(-9L);
29581    }
29582#line 648
29583    return ((struct socket *)tmp___8);
29584  } else {
29585
29586  }
29587  {
29588#line 649
29589  sock = tun_get_socket(file);
29590#line 650
29591  __cil_tmp9 = (void    *)sock;
29592#line 650
29593  tmp___9 = (long )IS_ERR(__cil_tmp9);
29594  }
29595#line 650
29596  if (tmp___9) {
29597
29598  } else {
29599#line 651
29600    return (sock);
29601  }
29602  {
29603#line 652
29604  sock = macvtap_get_socket(file);
29605#line 653
29606  __cil_tmp10 = (void    *)sock;
29607#line 653
29608  tmp___10 = (long )IS_ERR(__cil_tmp10);
29609  }
29610#line 653
29611  if (tmp___10) {
29612    {
29613#line 654
29614    fput(file);
29615    }
29616  } else {
29617
29618  }
29619#line 655
29620  return (sock);
29621}
29622}
29623#line 658 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
29624static struct socket *get_socket(int fd ) 
29625{ struct socket *sock ;
29626  long tmp___7 ;
29627  long tmp___8 ;
29628  void *tmp___9 ;
29629  void *__cil_tmp6 ;
29630  void    *__cil_tmp7 ;
29631  void    *__cil_tmp8 ;
29632
29633  {
29634#line 663
29635  if (fd == -1) {
29636    {
29637#line 664
29638    __cil_tmp6 = (void *)0;
29639#line 664
29640    return ((struct socket *)__cil_tmp6);
29641    }
29642  } else {
29643
29644  }
29645  {
29646#line 665
29647  sock = get_raw_socket(fd);
29648#line 666
29649  __cil_tmp7 = (void    *)sock;
29650#line 666
29651  tmp___7 = (long )IS_ERR(__cil_tmp7);
29652  }
29653#line 666
29654  if (tmp___7) {
29655
29656  } else {
29657#line 667
29658    return (sock);
29659  }
29660  {
29661#line 668
29662  sock = get_tap_socket(fd);
29663#line 669
29664  __cil_tmp8 = (void    *)sock;
29665#line 669
29666  tmp___8 = (long )IS_ERR(__cil_tmp8);
29667  }
29668#line 669
29669  if (tmp___8) {
29670
29671  } else {
29672#line 670
29673    return (sock);
29674  }
29675  {
29676#line 671
29677  tmp___9 = (void *)ERR_PTR(-88L);
29678  }
29679#line 671
29680  return ((struct socket *)tmp___9);
29681}
29682}
29683#line 674 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
29684static long vhost_net_set_backend(struct vhost_net *n , unsigned int index , int fd ) 
29685{ struct socket *sock ;
29686  struct socket *oldsock ;
29687  struct vhost_virtqueue *vq ;
29688  struct vhost_ubuf_ref *ubufs ;
29689  struct vhost_ubuf_ref *oldubufs ;
29690  int r ;
29691  long tmp___7 ;
29692  int tmp___8 ;
29693  long tmp___9 ;
29694  long tmp___10 ;
29695  bool tmp___11 ;
29696  int tmp___12 ;
29697  long tmp___13 ;
29698  long tmp___14 ;
29699  void *__cil_tmp18 ;
29700  unsigned long __cil_tmp19 ;
29701  unsigned long __cil_tmp20 ;
29702  unsigned long __cil_tmp21 ;
29703  struct mutex *__cil_tmp22 ;
29704  struct vhost_dev *__cil_tmp23 ;
29705  unsigned long __cil_tmp24 ;
29706  unsigned long __cil_tmp25 ;
29707  unsigned long __cil_tmp26 ;
29708  unsigned long __cil_tmp27 ;
29709  struct vhost_virtqueue *__cil_tmp28 ;
29710  unsigned long __cil_tmp29 ;
29711  unsigned long __cil_tmp30 ;
29712  struct mutex *__cil_tmp31 ;
29713  void    *__cil_tmp32 ;
29714  void    *__cil_tmp33 ;
29715  unsigned long __cil_tmp34 ;
29716  unsigned long __cil_tmp35 ;
29717  void *__cil_tmp36 ;
29718  unsigned long __cil_tmp37 ;
29719  unsigned long __cil_tmp38 ;
29720  bool __cil_tmp39 ;
29721  void    *__cil_tmp40 ;
29722  void    *__cil_tmp41 ;
29723  unsigned long __cil_tmp42 ;
29724  unsigned long __cil_tmp43 ;
29725  unsigned long __cil_tmp44 ;
29726  unsigned long __cil_tmp45 ;
29727  unsigned long __cil_tmp46 ;
29728  unsigned long __cil_tmp47 ;
29729  unsigned long __cil_tmp48 ;
29730  unsigned long __cil_tmp49 ;
29731  struct mutex *__cil_tmp50 ;
29732  unsigned long __cil_tmp51 ;
29733  unsigned long __cil_tmp52 ;
29734  struct mutex *__cil_tmp53 ;
29735  unsigned long __cil_tmp54 ;
29736  unsigned long __cil_tmp55 ;
29737  struct mutex *__cil_tmp56 ;
29738  int __cil_tmp57 ;
29739  unsigned long __cil_tmp58 ;
29740  unsigned long __cil_tmp59 ;
29741  struct file *__cil_tmp60 ;
29742  unsigned long __cil_tmp61 ;
29743  unsigned long __cil_tmp62 ;
29744  unsigned long __cil_tmp63 ;
29745  struct mutex *__cil_tmp64 ;
29746  unsigned long __cil_tmp65 ;
29747  unsigned long __cil_tmp66 ;
29748  struct file *__cil_tmp67 ;
29749  unsigned long __cil_tmp68 ;
29750  unsigned long __cil_tmp69 ;
29751  struct mutex *__cil_tmp70 ;
29752  unsigned long __cil_tmp71 ;
29753  unsigned long __cil_tmp72 ;
29754  unsigned long __cil_tmp73 ;
29755  struct mutex *__cil_tmp74 ;
29756
29757  {
29758  {
29759#line 678
29760  __cil_tmp18 = (void *)0;
29761#line 678
29762  oldubufs = (struct vhost_ubuf_ref *)__cil_tmp18;
29763#line 681
29764  __cil_tmp19 = 0 + 16;
29765#line 681
29766  __cil_tmp20 = (unsigned long )n;
29767#line 681
29768  __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
29769#line 681
29770  __cil_tmp22 = (struct mutex *)__cil_tmp21;
29771#line 681
29772  mutex_lock(__cil_tmp22);
29773#line 682
29774  __cil_tmp23 = (struct vhost_dev *)n;
29775#line 682
29776  tmp___7 = vhost_dev_check_owner(__cil_tmp23);
29777#line 682
29778  r = (int )tmp___7;
29779  }
29780#line 683
29781  if (r) {
29782#line 684
29783    goto err;
29784  } else {
29785
29786  }
29787#line 686
29788  if (index >= 2U) {
29789#line 687
29790    r = -105;
29791#line 688
29792    goto err;
29793  } else {
29794
29795  }
29796  {
29797#line 690
29798  __cil_tmp24 = 0 * 17008UL;
29799#line 690
29800  __cil_tmp25 = 176 + __cil_tmp24;
29801#line 690
29802  __cil_tmp26 = (unsigned long )n;
29803#line 690
29804  __cil_tmp27 = __cil_tmp26 + __cil_tmp25;
29805#line 690
29806  __cil_tmp28 = (struct vhost_virtqueue *)__cil_tmp27;
29807#line 690
29808  vq = __cil_tmp28 + index;
29809#line 691
29810  __cil_tmp29 = (unsigned long )vq;
29811#line 691
29812  __cil_tmp30 = __cil_tmp29 + 8;
29813#line 691
29814  __cil_tmp31 = (struct mutex *)__cil_tmp30;
29815#line 691
29816  mutex_lock(__cil_tmp31);
29817#line 694
29818  tmp___8 = vhost_vq_access_ok(vq);
29819  }
29820#line 694
29821  if (tmp___8) {
29822
29823  } else {
29824#line 695
29825    r = -14;
29826#line 696
29827    goto err_vq;
29828  }
29829  {
29830#line 698
29831  sock = get_socket(fd);
29832#line 699
29833  __cil_tmp32 = (void    *)sock;
29834#line 699
29835  tmp___10 = (long )IS_ERR(__cil_tmp32);
29836  }
29837#line 699
29838  if (tmp___10) {
29839    {
29840#line 700
29841    __cil_tmp33 = (void    *)sock;
29842#line 700
29843    tmp___9 = (long )PTR_ERR(__cil_tmp33);
29844#line 700
29845    r = (int )tmp___9;
29846    }
29847#line 701
29848    goto err_vq;
29849  } else {
29850
29851  }
29852  {
29853#line 705
29854  while (1) {
29855    while_continue: /* CIL Label */ ;
29856#line 705
29857    goto while_break;
29858  }
29859  while_break: /* CIL Label */ ;
29860  }
29861#line 705
29862  __cil_tmp34 = (unsigned long )vq;
29863#line 705
29864  __cil_tmp35 = __cil_tmp34 + 16960;
29865#line 705
29866  __cil_tmp36 = *((void **)__cil_tmp35);
29867#line 705
29868  oldsock = (struct socket *)__cil_tmp36;
29869  {
29870#line 707
29871  __cil_tmp37 = (unsigned long )oldsock;
29872#line 707
29873  __cil_tmp38 = (unsigned long )sock;
29874#line 707
29875  if (__cil_tmp38 != __cil_tmp37) {
29876#line 708
29877    if (sock) {
29878      {
29879#line 708
29880      tmp___11 = vhost_sock_zcopy(sock);
29881      }
29882#line 708
29883      if (tmp___11) {
29884#line 708
29885        tmp___12 = 1;
29886      } else {
29887#line 708
29888        tmp___12 = 0;
29889      }
29890    } else {
29891#line 708
29892      tmp___12 = 0;
29893    }
29894    {
29895#line 708
29896    __cil_tmp39 = (bool )tmp___12;
29897#line 708
29898    ubufs = vhost_ubuf_alloc(vq, __cil_tmp39);
29899#line 709
29900    __cil_tmp40 = (void    *)ubufs;
29901#line 709
29902    tmp___14 = (long )IS_ERR(__cil_tmp40);
29903    }
29904#line 709
29905    if (tmp___14) {
29906      {
29907#line 710
29908      __cil_tmp41 = (void    *)ubufs;
29909#line 710
29910      tmp___13 = (long )PTR_ERR(__cil_tmp41);
29911#line 710
29912      r = (int )tmp___13;
29913      }
29914#line 711
29915      goto err_ubufs;
29916    } else {
29917
29918    }
29919    {
29920#line 713
29921    __cil_tmp42 = (unsigned long )vq;
29922#line 713
29923    __cil_tmp43 = __cil_tmp42 + 17000;
29924#line 713
29925    oldubufs = *((struct vhost_ubuf_ref **)__cil_tmp43);
29926#line 714
29927    __cil_tmp44 = (unsigned long )vq;
29928#line 714
29929    __cil_tmp45 = __cil_tmp44 + 17000;
29930#line 714
29931    *((struct vhost_ubuf_ref **)__cil_tmp45) = ubufs;
29932#line 715
29933    vhost_net_disable_vq(n, vq);
29934#line 716
29935    __asm__  volatile   ("": : : "memory");
29936#line 716
29937    __cil_tmp46 = (unsigned long )vq;
29938#line 716
29939    __cil_tmp47 = __cil_tmp46 + 16960;
29940#line 716
29941    *((void **)__cil_tmp47) = (void *)sock;
29942#line 717
29943    vhost_net_enable_vq(n, vq);
29944#line 719
29945    r = vhost_init_used(vq);
29946    }
29947#line 720
29948    if (r) {
29949#line 721
29950      goto err_vq;
29951    } else {
29952
29953    }
29954  } else {
29955
29956  }
29957  }
29958  {
29959#line 724
29960  __cil_tmp48 = (unsigned long )vq;
29961#line 724
29962  __cil_tmp49 = __cil_tmp48 + 8;
29963#line 724
29964  __cil_tmp50 = (struct mutex *)__cil_tmp49;
29965#line 724
29966  mutex_unlock(__cil_tmp50);
29967  }
29968#line 726
29969  if (oldubufs) {
29970    {
29971#line 727
29972    vhost_ubuf_put_and_wait(oldubufs);
29973#line 728
29974    __cil_tmp51 = (unsigned long )vq;
29975#line 728
29976    __cil_tmp52 = __cil_tmp51 + 8;
29977#line 728
29978    __cil_tmp53 = (struct mutex *)__cil_tmp52;
29979#line 728
29980    mutex_lock(__cil_tmp53);
29981#line 729
29982    vhost_zerocopy_signal_used(vq);
29983#line 730
29984    __cil_tmp54 = (unsigned long )vq;
29985#line 730
29986    __cil_tmp55 = __cil_tmp54 + 8;
29987#line 730
29988    __cil_tmp56 = (struct mutex *)__cil_tmp55;
29989#line 730
29990    mutex_unlock(__cil_tmp56);
29991    }
29992  } else {
29993
29994  }
29995#line 733
29996  if (oldsock) {
29997    {
29998#line 734
29999    __cil_tmp57 = (int )index;
30000#line 734
30001    vhost_net_flush_vq(n, __cil_tmp57);
30002#line 735
30003    __cil_tmp58 = (unsigned long )oldsock;
30004#line 735
30005    __cil_tmp59 = __cil_tmp58 + 24;
30006#line 735
30007    __cil_tmp60 = *((struct file **)__cil_tmp59);
30008#line 735
30009    fput(__cil_tmp60);
30010    }
30011  } else {
30012
30013  }
30014  {
30015#line 738
30016  __cil_tmp61 = 0 + 16;
30017#line 738
30018  __cil_tmp62 = (unsigned long )n;
30019#line 738
30020  __cil_tmp63 = __cil_tmp62 + __cil_tmp61;
30021#line 738
30022  __cil_tmp64 = (struct mutex *)__cil_tmp63;
30023#line 738
30024  mutex_unlock(__cil_tmp64);
30025  }
30026#line 739
30027  return (0L);
30028  err_ubufs: 
30029  {
30030#line 742
30031  __cil_tmp65 = (unsigned long )sock;
30032#line 742
30033  __cil_tmp66 = __cil_tmp65 + 24;
30034#line 742
30035  __cil_tmp67 = *((struct file **)__cil_tmp66);
30036#line 742
30037  fput(__cil_tmp67);
30038  }
30039  err_vq: 
30040  {
30041#line 744
30042  __cil_tmp68 = (unsigned long )vq;
30043#line 744
30044  __cil_tmp69 = __cil_tmp68 + 8;
30045#line 744
30046  __cil_tmp70 = (struct mutex *)__cil_tmp69;
30047#line 744
30048  mutex_unlock(__cil_tmp70);
30049  }
30050  err: 
30051  {
30052#line 746
30053  __cil_tmp71 = 0 + 16;
30054#line 746
30055  __cil_tmp72 = (unsigned long )n;
30056#line 746
30057  __cil_tmp73 = __cil_tmp72 + __cil_tmp71;
30058#line 746
30059  __cil_tmp74 = (struct mutex *)__cil_tmp73;
30060#line 746
30061  mutex_unlock(__cil_tmp74);
30062  }
30063#line 747
30064  return ((long )r);
30065}
30066}
30067#line 750 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30068static long vhost_net_reset_owner(struct vhost_net *n ) 
30069{ struct socket *tx_sock ;
30070  struct socket *rx_sock ;
30071  long err ;
30072  struct socket **__cil_tmp5 ;
30073  void *__cil_tmp6 ;
30074  struct socket **__cil_tmp7 ;
30075  void *__cil_tmp8 ;
30076  unsigned long __cil_tmp9 ;
30077  unsigned long __cil_tmp10 ;
30078  unsigned long __cil_tmp11 ;
30079  struct mutex *__cil_tmp12 ;
30080  struct vhost_dev *__cil_tmp13 ;
30081  struct vhost_dev *__cil_tmp14 ;
30082  unsigned long __cil_tmp15 ;
30083  unsigned long __cil_tmp16 ;
30084  unsigned long __cil_tmp17 ;
30085  struct mutex *__cil_tmp18 ;
30086  struct socket **__cil_tmp19 ;
30087  struct socket **__cil_tmp20 ;
30088  struct socket *__cil_tmp21 ;
30089  unsigned long __cil_tmp22 ;
30090  unsigned long __cil_tmp23 ;
30091  struct file *__cil_tmp24 ;
30092  struct socket **__cil_tmp25 ;
30093  struct socket **__cil_tmp26 ;
30094  struct socket *__cil_tmp27 ;
30095  unsigned long __cil_tmp28 ;
30096  unsigned long __cil_tmp29 ;
30097  struct file *__cil_tmp30 ;
30098
30099  {
30100  {
30101#line 752
30102  __cil_tmp5 = & tx_sock;
30103#line 752
30104  __cil_tmp6 = (void *)0;
30105#line 752
30106  *__cil_tmp5 = (struct socket *)__cil_tmp6;
30107#line 753
30108  __cil_tmp7 = & rx_sock;
30109#line 753
30110  __cil_tmp8 = (void *)0;
30111#line 753
30112  *__cil_tmp7 = (struct socket *)__cil_tmp8;
30113#line 756
30114  __cil_tmp9 = 0 + 16;
30115#line 756
30116  __cil_tmp10 = (unsigned long )n;
30117#line 756
30118  __cil_tmp11 = __cil_tmp10 + __cil_tmp9;
30119#line 756
30120  __cil_tmp12 = (struct mutex *)__cil_tmp11;
30121#line 756
30122  mutex_lock(__cil_tmp12);
30123#line 757
30124  __cil_tmp13 = (struct vhost_dev *)n;
30125#line 757
30126  err = vhost_dev_check_owner(__cil_tmp13);
30127  }
30128#line 758
30129  if (err) {
30130#line 759
30131    goto done;
30132  } else {
30133
30134  }
30135  {
30136#line 760
30137  vhost_net_stop(n, & tx_sock, & rx_sock);
30138#line 761
30139  vhost_net_flush(n);
30140#line 762
30141  __cil_tmp14 = (struct vhost_dev *)n;
30142#line 762
30143  err = vhost_dev_reset_owner(__cil_tmp14);
30144  }
30145  done: 
30146  {
30147#line 764
30148  __cil_tmp15 = 0 + 16;
30149#line 764
30150  __cil_tmp16 = (unsigned long )n;
30151#line 764
30152  __cil_tmp17 = __cil_tmp16 + __cil_tmp15;
30153#line 764
30154  __cil_tmp18 = (struct mutex *)__cil_tmp17;
30155#line 764
30156  mutex_unlock(__cil_tmp18);
30157  }
30158  {
30159#line 765
30160  __cil_tmp19 = & tx_sock;
30161#line 765
30162  if (*__cil_tmp19) {
30163    {
30164#line 766
30165    __cil_tmp20 = & tx_sock;
30166#line 766
30167    __cil_tmp21 = *__cil_tmp20;
30168#line 766
30169    __cil_tmp22 = (unsigned long )__cil_tmp21;
30170#line 766
30171    __cil_tmp23 = __cil_tmp22 + 24;
30172#line 766
30173    __cil_tmp24 = *((struct file **)__cil_tmp23);
30174#line 766
30175    fput(__cil_tmp24);
30176    }
30177  } else {
30178
30179  }
30180  }
30181  {
30182#line 767
30183  __cil_tmp25 = & rx_sock;
30184#line 767
30185  if (*__cil_tmp25) {
30186    {
30187#line 768
30188    __cil_tmp26 = & rx_sock;
30189#line 768
30190    __cil_tmp27 = *__cil_tmp26;
30191#line 768
30192    __cil_tmp28 = (unsigned long )__cil_tmp27;
30193#line 768
30194    __cil_tmp29 = __cil_tmp28 + 24;
30195#line 768
30196    __cil_tmp30 = *((struct file **)__cil_tmp29);
30197#line 768
30198    fput(__cil_tmp30);
30199    }
30200  } else {
30201
30202  }
30203  }
30204#line 769
30205  return (err);
30206}
30207}
30208#line 772 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30209static int vhost_net_set_features(struct vhost_net *n , u64 features ) 
30210{ size_t vhost_hlen ;
30211  size_t sock_hlen ;
30212  size_t hdr_len ;
30213  int i ;
30214  int tmp___7 ;
30215  int __cil_tmp8 ;
30216  unsigned long long __cil_tmp9 ;
30217  int __cil_tmp10 ;
30218  unsigned long long __cil_tmp11 ;
30219  unsigned long __cil_tmp12 ;
30220  unsigned long __cil_tmp13 ;
30221  unsigned long __cil_tmp14 ;
30222  struct mutex *__cil_tmp15 ;
30223  int __cil_tmp16 ;
30224  unsigned long long __cil_tmp17 ;
30225  struct vhost_dev *__cil_tmp18 ;
30226  unsigned long __cil_tmp19 ;
30227  unsigned long __cil_tmp20 ;
30228  unsigned long __cil_tmp21 ;
30229  struct mutex *__cil_tmp22 ;
30230  unsigned long __cil_tmp23 ;
30231  unsigned long __cil_tmp24 ;
30232  unsigned long __cil_tmp25 ;
30233  unsigned long __cil_tmp26 ;
30234  unsigned long __cil_tmp27 ;
30235  unsigned long __cil_tmp28 ;
30236  unsigned long __cil_tmp29 ;
30237  unsigned long __cil_tmp30 ;
30238  struct mutex *__cil_tmp31 ;
30239  unsigned long __cil_tmp32 ;
30240  unsigned long __cil_tmp33 ;
30241  unsigned long __cil_tmp34 ;
30242  unsigned long __cil_tmp35 ;
30243  unsigned long __cil_tmp36 ;
30244  unsigned long __cil_tmp37 ;
30245  unsigned long __cil_tmp38 ;
30246  unsigned long __cil_tmp39 ;
30247  unsigned long __cil_tmp40 ;
30248  unsigned long __cil_tmp41 ;
30249  unsigned long __cil_tmp42 ;
30250  unsigned long __cil_tmp43 ;
30251  unsigned long __cil_tmp44 ;
30252  unsigned long __cil_tmp45 ;
30253  unsigned long __cil_tmp46 ;
30254  struct mutex *__cil_tmp47 ;
30255  unsigned long __cil_tmp48 ;
30256  unsigned long __cil_tmp49 ;
30257  unsigned long __cil_tmp50 ;
30258  struct mutex *__cil_tmp51 ;
30259
30260  {
30261  {
30262#line 777
30263  __cil_tmp8 = 1 << 15;
30264#line 777
30265  __cil_tmp9 = (unsigned long long )__cil_tmp8;
30266#line 777
30267  if (features & __cil_tmp9) {
30268#line 777
30269    hdr_len = 12UL;
30270  } else {
30271#line 777
30272    hdr_len = 10UL;
30273  }
30274  }
30275  {
30276#line 780
30277  __cil_tmp10 = 1 << 27;
30278#line 780
30279  __cil_tmp11 = (unsigned long long )__cil_tmp10;
30280#line 780
30281  if (features & __cil_tmp11) {
30282#line 782
30283    vhost_hlen = hdr_len;
30284#line 783
30285    sock_hlen = (size_t )0;
30286  } else {
30287#line 786
30288    vhost_hlen = (size_t )0;
30289#line 787
30290    sock_hlen = hdr_len;
30291  }
30292  }
30293  {
30294#line 789
30295  __cil_tmp12 = 0 + 16;
30296#line 789
30297  __cil_tmp13 = (unsigned long )n;
30298#line 789
30299  __cil_tmp14 = __cil_tmp13 + __cil_tmp12;
30300#line 789
30301  __cil_tmp15 = (struct mutex *)__cil_tmp14;
30302#line 789
30303  mutex_lock(__cil_tmp15);
30304  }
30305  {
30306#line 790
30307  __cil_tmp16 = 1 << 26;
30308#line 790
30309  __cil_tmp17 = (unsigned long long )__cil_tmp16;
30310#line 790
30311  if (features & __cil_tmp17) {
30312    {
30313#line 790
30314    __cil_tmp18 = (struct vhost_dev *)n;
30315#line 790
30316    tmp___7 = vhost_log_access_ok(__cil_tmp18);
30317    }
30318#line 790
30319    if (tmp___7) {
30320
30321    } else {
30322      {
30323#line 792
30324      __cil_tmp19 = 0 + 16;
30325#line 792
30326      __cil_tmp20 = (unsigned long )n;
30327#line 792
30328      __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
30329#line 792
30330      __cil_tmp22 = (struct mutex *)__cil_tmp21;
30331#line 792
30332      mutex_unlock(__cil_tmp22);
30333      }
30334#line 793
30335      return (-14);
30336    }
30337  } else {
30338
30339  }
30340  }
30341#line 795
30342  __cil_tmp23 = 0 + 88;
30343#line 795
30344  __cil_tmp24 = (unsigned long )n;
30345#line 795
30346  __cil_tmp25 = __cil_tmp24 + __cil_tmp23;
30347#line 795
30348  *((unsigned int *)__cil_tmp25) = (unsigned int )features;
30349#line 796
30350  __asm__  volatile   ("": : : "memory");
30351#line 797
30352  i = 0;
30353  {
30354#line 797
30355  while (1) {
30356    while_continue: /* CIL Label */ ;
30357#line 797
30358    if (i < 2) {
30359
30360    } else {
30361#line 797
30362      goto while_break;
30363    }
30364    {
30365#line 798
30366    __cil_tmp26 = i * 17008UL;
30367#line 798
30368    __cil_tmp27 = __cil_tmp26 + 8;
30369#line 798
30370    __cil_tmp28 = 176 + __cil_tmp27;
30371#line 798
30372    __cil_tmp29 = (unsigned long )n;
30373#line 798
30374    __cil_tmp30 = __cil_tmp29 + __cil_tmp28;
30375#line 798
30376    __cil_tmp31 = (struct mutex *)__cil_tmp30;
30377#line 798
30378    mutex_lock(__cil_tmp31);
30379#line 799
30380    __cil_tmp32 = i * 17008UL;
30381#line 799
30382    __cil_tmp33 = __cil_tmp32 + 16936;
30383#line 799
30384    __cil_tmp34 = 176 + __cil_tmp33;
30385#line 799
30386    __cil_tmp35 = (unsigned long )n;
30387#line 799
30388    __cil_tmp36 = __cil_tmp35 + __cil_tmp34;
30389#line 799
30390    *((size_t *)__cil_tmp36) = vhost_hlen;
30391#line 800
30392    __cil_tmp37 = i * 17008UL;
30393#line 800
30394    __cil_tmp38 = __cil_tmp37 + 16944;
30395#line 800
30396    __cil_tmp39 = 176 + __cil_tmp38;
30397#line 800
30398    __cil_tmp40 = (unsigned long )n;
30399#line 800
30400    __cil_tmp41 = __cil_tmp40 + __cil_tmp39;
30401#line 800
30402    *((size_t *)__cil_tmp41) = sock_hlen;
30403#line 801
30404    __cil_tmp42 = i * 17008UL;
30405#line 801
30406    __cil_tmp43 = __cil_tmp42 + 8;
30407#line 801
30408    __cil_tmp44 = 176 + __cil_tmp43;
30409#line 801
30410    __cil_tmp45 = (unsigned long )n;
30411#line 801
30412    __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
30413#line 801
30414    __cil_tmp47 = (struct mutex *)__cil_tmp46;
30415#line 801
30416    mutex_unlock(__cil_tmp47);
30417#line 797
30418    i = i + 1;
30419    }
30420  }
30421  while_break: /* CIL Label */ ;
30422  }
30423  {
30424#line 803
30425  vhost_net_flush(n);
30426#line 804
30427  __cil_tmp48 = 0 + 16;
30428#line 804
30429  __cil_tmp49 = (unsigned long )n;
30430#line 804
30431  __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
30432#line 804
30433  __cil_tmp51 = (struct mutex *)__cil_tmp50;
30434#line 804
30435  mutex_unlock(__cil_tmp51);
30436  }
30437#line 805
30438  return (0);
30439}
30440}
30441#line 808 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30442static long vhost_net_ioctl(struct file *f , unsigned int ioctl , unsigned long arg ) 
30443{ struct vhost_net *n ;
30444  void *argp ;
30445  u64 *featurep ;
30446  struct vhost_vring_file backend ;
30447  u64 features ;
30448  int r ;
30449  unsigned long tmp___7 ;
30450  long tmp___8 ;
30451  int tmp___9 ;
30452  unsigned long tmp___10 ;
30453  int tmp___11 ;
30454  long tmp___12 ;
30455  long tmp___13 ;
30456  unsigned long __cil_tmp17 ;
30457  unsigned long __cil_tmp18 ;
30458  void *__cil_tmp19 ;
30459  void *__cil_tmp20 ;
30460  void    *__cil_tmp21 ;
30461  unsigned long __cil_tmp22 ;
30462  int __cil_tmp23 ;
30463  unsigned int __cil_tmp24 ;
30464  unsigned int __cil_tmp25 ;
30465  unsigned int __cil_tmp26 ;
30466  unsigned int __cil_tmp27 ;
30467  unsigned long __cil_tmp28 ;
30468  struct vhost_vring_file *__cil_tmp29 ;
30469  unsigned int __cil_tmp30 ;
30470  unsigned long __cil_tmp31 ;
30471  int __cil_tmp32 ;
30472  u64 *__cil_tmp33 ;
30473  void *__cil_tmp34 ;
30474  void    *__cil_tmp35 ;
30475  unsigned int __cil_tmp36 ;
30476  unsigned long __cil_tmp37 ;
30477  int __cil_tmp38 ;
30478  unsigned int __cil_tmp39 ;
30479  unsigned int __cil_tmp40 ;
30480  unsigned int __cil_tmp41 ;
30481  unsigned long __cil_tmp42 ;
30482  void *__cil_tmp43 ;
30483  void    *__cil_tmp44 ;
30484  unsigned long __cil_tmp45 ;
30485  int __cil_tmp46 ;
30486  unsigned int __cil_tmp47 ;
30487  unsigned int __cil_tmp48 ;
30488  unsigned int __cil_tmp49 ;
30489  unsigned long __cil_tmp50 ;
30490  u64 *__cil_tmp51 ;
30491  u64 __cil_tmp52 ;
30492  u64 *__cil_tmp53 ;
30493  u64 __cil_tmp54 ;
30494  int __cil_tmp55 ;
30495  unsigned int __cil_tmp56 ;
30496  unsigned long __cil_tmp57 ;
30497  unsigned long __cil_tmp58 ;
30498  unsigned long __cil_tmp59 ;
30499  struct mutex *__cil_tmp60 ;
30500  struct vhost_dev *__cil_tmp61 ;
30501  unsigned long __cil_tmp62 ;
30502  unsigned long __cil_tmp63 ;
30503  unsigned long __cil_tmp64 ;
30504  struct mutex *__cil_tmp65 ;
30505
30506  {
30507#line 811
30508  __cil_tmp17 = (unsigned long )f;
30509#line 811
30510  __cil_tmp18 = __cil_tmp17 + 200;
30511#line 811
30512  __cil_tmp19 = *((void **)__cil_tmp18);
30513#line 811
30514  n = (struct vhost_net *)__cil_tmp19;
30515#line 812
30516  argp = (void *)arg;
30517#line 813
30518  featurep = (u64 *)argp;
30519#line 819
30520  if ((int )ioctl == (__cil_tmp28 | __cil_tmp22)) {
30521#line 819
30522    goto case_exp;
30523  } else
30524#line 823
30525  if ((int )ioctl == (__cil_tmp42 | __cil_tmp37)) {
30526#line 823
30527    goto case_exp___0;
30528  } else
30529#line 828
30530  if ((int )ioctl == (__cil_tmp50 | __cil_tmp45)) {
30531#line 828
30532    goto case_exp___1;
30533  } else
30534#line 834
30535  if ((int )ioctl == (__cil_tmp56 | 2U)) {
30536#line 834
30537    goto case_exp___2;
30538  } else {
30539    {
30540#line 836
30541    goto switch_default;
30542#line 818
30543    if (0) {
30544      case_exp: /* CIL Label */ 
30545      {
30546#line 820
30547      __cil_tmp22 = 8UL << 16;
30548#line 820
30549      __cil_tmp23 = 175 << 8;
30550#line 820
30551      __cil_tmp24 = (unsigned int )__cil_tmp23;
30552#line 820
30553      __cil_tmp25 = 1U << 30;
30554#line 820
30555      __cil_tmp26 = __cil_tmp25 | __cil_tmp24;
30556#line 820
30557      __cil_tmp27 = __cil_tmp26 | 48U;
30558#line 820
30559      __cil_tmp28 = (unsigned long )__cil_tmp27;
30560      {
30561#line 820
30562      __cil_tmp20 = (void *)(& backend);
30563#line 820
30564      __cil_tmp21 = (void    *)argp;
30565#line 820
30566      tmp___7 = (unsigned long )copy_from_user(__cil_tmp20, __cil_tmp21, 8UL);
30567      }
30568      }
30569#line 820
30570      if (tmp___7) {
30571#line 821
30572        return (-14L);
30573      } else {
30574
30575      }
30576      {
30577#line 822
30578      __cil_tmp29 = & backend;
30579#line 822
30580      __cil_tmp30 = *((unsigned int *)__cil_tmp29);
30581#line 822
30582      __cil_tmp31 = (unsigned long )(& backend) + 4;
30583#line 822
30584      __cil_tmp32 = *((int *)__cil_tmp31);
30585#line 822
30586      tmp___8 = vhost_net_set_backend(n, __cil_tmp30, __cil_tmp32);
30587      }
30588#line 822
30589      return (tmp___8);
30590      case_exp___0: /* CIL Label */ 
30591      {
30592#line 824
30593      __cil_tmp37 = 8UL << 16;
30594#line 824
30595      __cil_tmp38 = 175 << 8;
30596#line 824
30597      __cil_tmp39 = (unsigned int )__cil_tmp38;
30598#line 824
30599      __cil_tmp40 = 2U << 30;
30600#line 824
30601      __cil_tmp41 = __cil_tmp40 | __cil_tmp39;
30602#line 824
30603      __cil_tmp42 = (unsigned long )__cil_tmp41;
30604      {
30605#line 824
30606      __cil_tmp33 = & features;
30607#line 824
30608      *__cil_tmp33 = (u64 )1023442944;
30609#line 825
30610      __cil_tmp34 = (void *)featurep;
30611#line 825
30612      __cil_tmp35 = (void    *)(& features);
30613#line 825
30614      __cil_tmp36 = (unsigned int )8UL;
30615#line 825
30616      tmp___9 = (int )copy_to_user(__cil_tmp34, __cil_tmp35, __cil_tmp36);
30617      }
30618      }
30619#line 825
30620      if (tmp___9) {
30621#line 826
30622        return (-14L);
30623      } else {
30624
30625      }
30626#line 827
30627      return (0L);
30628      case_exp___1: /* CIL Label */ 
30629      {
30630#line 829
30631      __cil_tmp45 = 8UL << 16;
30632#line 829
30633      __cil_tmp46 = 175 << 8;
30634#line 829
30635      __cil_tmp47 = (unsigned int )__cil_tmp46;
30636#line 829
30637      __cil_tmp48 = 1U << 30;
30638#line 829
30639      __cil_tmp49 = __cil_tmp48 | __cil_tmp47;
30640#line 829
30641      __cil_tmp50 = (unsigned long )__cil_tmp49;
30642      {
30643#line 829
30644      __cil_tmp43 = (void *)(& features);
30645#line 829
30646      __cil_tmp44 = (void    *)featurep;
30647#line 829
30648      tmp___10 = (unsigned long )copy_from_user(__cil_tmp43, __cil_tmp44, 8UL);
30649      }
30650      }
30651#line 829
30652      if (tmp___10) {
30653#line 830
30654        return (-14L);
30655      } else {
30656
30657      }
30658      {
30659#line 831
30660      __cil_tmp51 = & features;
30661#line 831
30662      __cil_tmp52 = *__cil_tmp51;
30663#line 831
30664      if (__cil_tmp52 & 0xffffffffc2ff7fffULL) {
30665#line 832
30666        return (-95L);
30667      } else {
30668
30669      }
30670      }
30671      {
30672#line 833
30673      __cil_tmp53 = & features;
30674#line 833
30675      __cil_tmp54 = *__cil_tmp53;
30676#line 833
30677      tmp___11 = vhost_net_set_features(n, __cil_tmp54);
30678      }
30679#line 833
30680      return ((long )tmp___11);
30681      case_exp___2: /* CIL Label */ 
30682      {
30683#line 835
30684      __cil_tmp55 = 175 << 8;
30685#line 835
30686      __cil_tmp56 = (unsigned int )__cil_tmp55;
30687      {
30688#line 835
30689      tmp___12 = vhost_net_reset_owner(n);
30690      }
30691      }
30692#line 835
30693      return (tmp___12);
30694      switch_default: /* CIL Label */ 
30695      {
30696#line 837
30697      __cil_tmp57 = 0 + 16;
30698#line 837
30699      __cil_tmp58 = (unsigned long )n;
30700#line 837
30701      __cil_tmp59 = __cil_tmp58 + __cil_tmp57;
30702#line 837
30703      __cil_tmp60 = (struct mutex *)__cil_tmp59;
30704#line 837
30705      mutex_lock(__cil_tmp60);
30706#line 838
30707      __cil_tmp61 = (struct vhost_dev *)n;
30708#line 838
30709      tmp___13 = vhost_dev_ioctl(__cil_tmp61, ioctl, arg);
30710#line 838
30711      r = (int )tmp___13;
30712#line 839
30713      vhost_net_flush(n);
30714#line 840
30715      __cil_tmp62 = 0 + 16;
30716#line 840
30717      __cil_tmp63 = (unsigned long )n;
30718#line 840
30719      __cil_tmp64 = __cil_tmp63 + __cil_tmp62;
30720#line 840
30721      __cil_tmp65 = (struct mutex *)__cil_tmp64;
30722#line 840
30723      mutex_unlock(__cil_tmp65);
30724      }
30725#line 841
30726      return ((long )r);
30727    } else {
30728      switch_break: /* CIL Label */ ;
30729    }
30730    }
30731  }
30732}
30733}
30734#line 846 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30735static long vhost_net_compat_ioctl(struct file *f , unsigned int ioctl , unsigned long arg ) 
30736{ void *tmp___7 ;
30737  long tmp___8 ;
30738  compat_uptr_t __cil_tmp6 ;
30739  unsigned long __cil_tmp7 ;
30740
30741  {
30742  {
30743#line 849
30744  __cil_tmp6 = (compat_uptr_t )arg;
30745#line 849
30746  tmp___7 = compat_ptr(__cil_tmp6);
30747#line 849
30748  __cil_tmp7 = (unsigned long )tmp___7;
30749#line 849
30750  tmp___8 = vhost_net_ioctl(f, ioctl, __cil_tmp7);
30751  }
30752#line 849
30753  return (tmp___8);
30754}
30755}
30756#line 853 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30757static struct file_operations    vhost_net_fops  = 
30758#line 853
30759     {& __this_module, & noop_llseek, (ssize_t (*)(struct file * , char * , size_t  ,
30760                                                 loff_t * ))0, (ssize_t (*)(struct file * ,
30761                                                                            char    * ,
30762                                                                            size_t  ,
30763                                                                            loff_t * ))0,
30764    (ssize_t (*)(struct kiocb * , struct iovec    * , unsigned long  , loff_t  ))0,
30765    (ssize_t (*)(struct kiocb * , struct iovec    * , unsigned long  , loff_t  ))0,
30766    (int (*)(struct file * , void * , int (*)(void * , char    * , int  , loff_t  ,
30767                                              u64  , unsigned int  ) ))0, (unsigned int (*)(struct file * ,
30768                                                                                            struct poll_table_struct * ))0,
30769    & vhost_net_ioctl, & vhost_net_compat_ioctl, (int (*)(struct file * , struct vm_area_struct * ))0,
30770    & vhost_net_open, (int (*)(struct file * , fl_owner_t id ))0, & vhost_net_release,
30771    (int (*)(struct file * , loff_t  , loff_t  , int datasync ))0, (int (*)(struct kiocb * ,
30772                                                                            int datasync ))0,
30773    (int (*)(int  , struct file * , int  ))0, (int (*)(struct file * , int  , struct file_lock * ))0,
30774    (ssize_t (*)(struct file * , struct page * , int  , size_t  , loff_t * , int  ))0,
30775    (unsigned long (*)(struct file * , unsigned long  , unsigned long  , unsigned long  ,
30776                       unsigned long  ))0, (int (*)(int  ))0, (int (*)(struct file * ,
30777                                                                       int  , struct file_lock * ))0,
30778    (ssize_t (*)(struct pipe_inode_info * , struct file * , loff_t * , size_t  , unsigned int  ))0,
30779    (ssize_t (*)(struct file * , loff_t * , struct pipe_inode_info * , size_t  , unsigned int  ))0,
30780    (int (*)(struct file * , long  , struct file_lock ** ))0, (long (*)(struct file *file ,
30781                                                                        int mode ,
30782                                                                        loff_t offset ,
30783                                                                        loff_t len ))0};
30784#line 864 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30785static struct miscdevice vhost_net_misc  = 
30786#line 864
30787     {238, "vhost-net", & vhost_net_fops, {(struct list_head *)0, (struct list_head *)0},
30788    (struct device *)0, (struct device *)0, (char    *)0, (unsigned short)0};
30789#line 870 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30790static int vhost_net_init(void) 
30791{ int tmp___7 ;
30792  int *__cil_tmp2 ;
30793
30794  {
30795  {
30796#line 872
30797  __cil_tmp2 = & experimental_zcopytx;
30798#line 872
30799  if (*__cil_tmp2) {
30800    {
30801#line 873
30802    vhost_enable_zcopy(1);
30803    }
30804  } else {
30805
30806  }
30807  }
30808  {
30809#line 874
30810  tmp___7 = misc_register(& vhost_net_misc);
30811  }
30812#line 874
30813  return (tmp___7);
30814}
30815}
30816#line 876 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30817int init_module(void) 
30818{ int tmp___7 ;
30819
30820  {
30821  {
30822#line 876
30823  tmp___7 = vhost_net_init();
30824  }
30825#line 876
30826  return (tmp___7);
30827}
30828}
30829#line 878 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30830static void vhost_net_exit(void) 
30831{ 
30832
30833  {
30834  {
30835#line 880
30836  misc_deregister(& vhost_net_misc);
30837  }
30838#line 881
30839  return;
30840}
30841}
30842#line 882 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30843void cleanup_module(void) 
30844{ 
30845
30846  {
30847  {
30848#line 882
30849  vhost_net_exit();
30850  }
30851#line 882
30852  return;
30853}
30854}
30855#line 884 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30856static char    __mod_version884[14]  __attribute__((__used__, __unused__, __section__(".modinfo"),
30857__aligned__(1)))  = 
30858#line 884
30859  {      (char    )'v',      (char    )'e',      (char const   )'r',      (char const   )'s', 
30860        (char    )'i',      (char    )'o',      (char const   )'n',      (char const   )'=', 
30861        (char    )'0',      (char    )'.',      (char const   )'0',      (char const   )'.', 
30862        (char    )'1',      (char    )'\000'};
30863#line 885 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30864static char    __mod_license885[15]  __attribute__((__used__, __unused__, __section__(".modinfo"),
30865__aligned__(1)))  = 
30866#line 885
30867  {      (char    )'l',      (char    )'i',      (char const   )'c',      (char const   )'e', 
30868        (char    )'n',      (char    )'s',      (char const   )'e',      (char const   )'=', 
30869        (char    )'G',      (char    )'P',      (char const   )'L',      (char const   )' ', 
30870        (char    )'v',      (char    )'2',      (char const   )'\000'};
30871#line 886 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30872static char    __mod_author886[26]  __attribute__((__used__, __unused__, __section__(".modinfo"),
30873__aligned__(1)))  = 
30874#line 886
30875  {      (char    )'a',      (char    )'u',      (char const   )'t',      (char const   )'h', 
30876        (char    )'o',      (char    )'r',      (char const   )'=',      (char const   )'M', 
30877        (char    )'i',      (char    )'c',      (char const   )'h',      (char const   )'a', 
30878        (char    )'e',      (char    )'l',      (char const   )' ',      (char const   )'S', 
30879        (char    )'.',      (char    )' ',      (char const   )'T',      (char const   )'s', 
30880        (char    )'i',      (char    )'r',      (char const   )'k',      (char const   )'i', 
30881        (char    )'n',      (char    )'\000'};
30882#line 887 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30883static char    __mod_description887[51]  __attribute__((__used__, __unused__,
30884__section__(".modinfo"), __aligned__(1)))  = 
30885#line 887
30886  {      (char    )'d',      (char    )'e',      (char const   )'s',      (char const   )'c', 
30887        (char    )'r',      (char    )'i',      (char const   )'p',      (char const   )'t', 
30888        (char    )'i',      (char    )'o',      (char const   )'n',      (char const   )'=', 
30889        (char    )'H',      (char    )'o',      (char const   )'s',      (char const   )'t', 
30890        (char    )' ',      (char    )'k',      (char const   )'e',      (char const   )'r', 
30891        (char    )'n',      (char    )'e',      (char const   )'l',      (char const   )' ', 
30892        (char    )'a',      (char    )'c',      (char const   )'c',      (char const   )'e', 
30893        (char    )'l',      (char    )'e',      (char const   )'r',      (char const   )'a', 
30894        (char    )'t',      (char    )'o',      (char const   )'r',      (char const   )' ', 
30895        (char    )'f',      (char    )'o',      (char const   )'r',      (char const   )' ', 
30896        (char    )'v',      (char    )'i',      (char const   )'r',      (char const   )'t', 
30897        (char    )'i',      (char    )'o',      (char const   )' ',      (char const   )'n', 
30898        (char    )'e',      (char    )'t',      (char const   )'\000'};
30899#line 888 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30900static char    __mod_alias888[24]  __attribute__((__used__, __unused__, __section__(".modinfo"),
30901__aligned__(1)))  = 
30902#line 888
30903  {      (char    )'a',      (char    )'l',      (char const   )'i',      (char const   )'a', 
30904        (char    )'s',      (char    )'=',      (char const   )'c',      (char const   )'h', 
30905        (char    )'a',      (char    )'r',      (char const   )'-',      (char const   )'m', 
30906        (char    )'a',      (char    )'j',      (char const   )'o',      (char const   )'r', 
30907        (char    )'-',      (char    )'1',      (char const   )'0',      (char const   )'-', 
30908        (char    )'2',      (char    )'3',      (char const   )'8',      (char const   )'\000'};
30909#line 889 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30910static char    __mod_alias889[24]  __attribute__((__used__, __unused__, __section__(".modinfo"),
30911__aligned__(1)))  = 
30912#line 889
30913  {      (char    )'a',      (char    )'l',      (char const   )'i',      (char const   )'a', 
30914        (char    )'s',      (char    )'=',      (char const   )'d',      (char const   )'e', 
30915        (char    )'v',      (char    )'n',      (char const   )'a',      (char const   )'m', 
30916        (char    )'e',      (char    )':',      (char const   )'v',      (char const   )'h', 
30917        (char    )'o',      (char    )'s',      (char const   )'t',      (char const   )'-', 
30918        (char    )'n',      (char    )'e',      (char const   )'t',      (char const   )'\000'};
30919#line 910
30920extern void ldv_check_return_value(int res ) ;
30921#line 913
30922extern void ldv_initialize(void) ;
30923#line 916
30924extern int __VERIFIER_nondet_int(void) ;
30925#line 919 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30926int LDV_IN_INTERRUPT  ;
30927#line 984 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30928static int res_vhost_net_open_13  ;
30929#line 922 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--32_1--X--cpachecker/linux-3.4/csd_deg_dscv/51/dscv_tempdir/dscv/ri/32_1/drivers/vhost/net.c"
30930void main(void) 
30931{ struct inode *var_group1 ;
30932  struct file *var_group2 ;
30933  unsigned int var_vhost_net_ioctl_27_p1 ;
30934  unsigned long var_vhost_net_ioctl_27_p2 ;
30935  unsigned int var_vhost_net_compat_ioctl_28_p1 ;
30936  unsigned long var_vhost_net_compat_ioctl_28_p2 ;
30937  int tmp___7 ;
30938  int ldv_s_vhost_net_fops_file_operations ;
30939  int tmp___8 ;
30940  int tmp___9 ;
30941  int __cil_tmp11 ;
30942
30943  {
30944  {
30945#line 998
30946  LDV_IN_INTERRUPT = 1;
30947#line 1007
30948  ldv_initialize();
30949#line 1021
30950  tmp___7 = vhost_net_init();
30951  }
30952#line 1021
30953  if (tmp___7) {
30954#line 1022
30955    goto ldv_final;
30956  } else {
30957
30958  }
30959#line 1023
30960  ldv_s_vhost_net_fops_file_operations = 0;
30961  {
30962#line 1027
30963  while (1) {
30964    while_continue: /* CIL Label */ ;
30965    {
30966#line 1027
30967    tmp___9 = __VERIFIER_nondet_int();
30968    }
30969#line 1027
30970    if (tmp___9) {
30971
30972    } else {
30973      {
30974#line 1027
30975      __cil_tmp11 = ldv_s_vhost_net_fops_file_operations == 0;
30976#line 1027
30977      if (! __cil_tmp11) {
30978
30979      } else {
30980#line 1027
30981        goto while_break;
30982      }
30983      }
30984    }
30985    {
30986#line 1031
30987    tmp___8 = __VERIFIER_nondet_int();
30988    }
30989#line 1033
30990    if (tmp___8 == 0) {
30991#line 1033
30992      goto case_0;
30993    } else
30994#line 1062
30995    if (tmp___8 == 1) {
30996#line 1062
30997      goto case_1;
30998    } else
30999#line 1088
31000    if (tmp___8 == 2) {
31001#line 1088
31002      goto case_2;
31003    } else
31004#line 1114
31005    if (tmp___8 == 3) {
31006#line 1114
31007      goto case_3;
31008    } else {
31009      {
31010#line 1140
31011      goto switch_default;
31012#line 1031
31013      if (0) {
31014        case_0: /* CIL Label */ 
31015#line 1036
31016        if (ldv_s_vhost_net_fops_file_operations == 0) {
31017          {
31018#line 1045
31019          res_vhost_net_open_13 = vhost_net_open(var_group1, var_group2);
31020#line 1046
31021          ldv_check_return_value(res_vhost_net_open_13);
31022          }
31023#line 1047
31024          if (res_vhost_net_open_13) {
31025#line 1048
31026            goto ldv_module_exit;
31027          } else {
31028
31029          }
31030#line 1055
31031          ldv_s_vhost_net_fops_file_operations = ldv_s_vhost_net_fops_file_operations + 1;
31032        } else {
31033
31034        }
31035#line 1061
31036        goto switch_break;
31037        case_1: /* CIL Label */ 
31038#line 1065
31039        if (ldv_s_vhost_net_fops_file_operations == 1) {
31040          {
31041#line 1074
31042          vhost_net_release(var_group1, var_group2);
31043#line 1081
31044          ldv_s_vhost_net_fops_file_operations = 0;
31045          }
31046        } else {
31047
31048        }
31049#line 1087
31050        goto switch_break;
31051        case_2: /* CIL Label */ 
31052        {
31053#line 1100
31054        vhost_net_ioctl(var_group2, var_vhost_net_ioctl_27_p1, var_vhost_net_ioctl_27_p2);
31055        }
31056#line 1113
31057        goto switch_break;
31058        case_3: /* CIL Label */ 
31059        {
31060#line 1127
31061        vhost_net_compat_ioctl(var_group2, var_vhost_net_compat_ioctl_28_p1, var_vhost_net_compat_ioctl_28_p2);
31062        }
31063#line 1139
31064        goto switch_break;
31065        switch_default: /* CIL Label */ 
31066#line 1140
31067        goto switch_break;
31068      } else {
31069        switch_break: /* CIL Label */ ;
31070      }
31071      }
31072    }
31073  }
31074  while_break: /* CIL Label */ ;
31075  }
31076  ldv_module_exit: 
31077  {
31078#line 1160
31079  vhost_net_exit();
31080  }
31081  ldv_final: 
31082  {
31083#line 1163
31084  ldv_check_final_state();
31085  }
31086#line 1166
31087  return;
31088}
31089}