1
2
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 ( __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: ;
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: ;
5835#line 196
5836 goto while_break___0;
5837 }
5838 while_break___0: ;
5839 }
5840#line 196
5841 goto while_break;
5842 }
5843 while_break: ;
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:
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:
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:
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:
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:
5934 {
5935#line 14
5936 __bad_percpu_size();
5937 }
5938 } else {
5939 switch_break: ;
5940 }
5941 }
5942 }
5943#line 14
5944 return (pfo_ret__);
5945}
5946}
5947#line 64 "include/asm-generic/bug.h"
5948extern void ( 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:
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:
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:
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:
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:
6148 {
6149#line 225
6150 __bad_percpu_size();
6151 }
6152 } else {
6153 switch_break: ;
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: ;
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: ;
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: ;
6373 {
6374#line 164
6375 while (1) {
6376 while_continue___0: ;
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: ;
6397 }
6398#line 164
6399 __asm__ volatile ("": : : "memory");
6400#line 164
6401 goto while_break;
6402 }
6403 while_break: ;
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: ;
6425 {
6426#line 169
6427 while (1) {
6428 while_continue___0: ;
6429#line 169
6430 __asm__ volatile ("": : : "memory");
6431 {
6432#line 169
6433 while (1) {
6434 while_continue___1: ;
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: ;
6455 }
6456#line 169
6457 goto while_break___0;
6458 }
6459 while_break___0: ;
6460 }
6461#line 169
6462 __asm__ volatile ("": : : "memory");
6463 {
6464#line 169
6465 while (1) {
6466 while_continue___2: ;
6467#line 169
6468 goto while_break___2;
6469 }
6470 while_break___2: ;
6471 }
6472#line 169
6473 goto while_break;
6474 }
6475 while_break: ;
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: ;
6511#line 727
6512 goto while_break;
6513 }
6514 while_break: ;
6515 }
6516 {
6517#line 728
6518 while (1) {
6519 while_continue___0: ;
6520#line 728
6521 goto while_break___0;
6522 }
6523 while_break___0: ;
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: ;
6540#line 749
6541 goto while_break;
6542 }
6543 while_break: ;
6544 }
6545 {
6546#line 751
6547 while (1) {
6548 while_continue___0: ;
6549#line 751
6550 goto while_break___0;
6551 }
6552 while_break___0: ;
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:
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:
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:
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:
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:
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:
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:
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: ;
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:
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:
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:
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:
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:
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:
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:
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: ;
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: ;
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: ;
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: ;
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: ;
8001 }
8002#line 37
8003 __asm__ volatile ("": : : "memory");
8004 {
8005#line 38
8006 while (1) {
8007 while_continue___0: ;
8008#line 38
8009 goto while_break___0;
8010 }
8011 while_break___0: ;
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 *( 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: ;
8202#line 215
8203 goto while_break;
8204 }
8205 while_break: ;
8206 }
8207 {
8208#line 215
8209 while (1) {
8210 while_continue___0: ;
8211#line 215
8212 goto while_break___0;
8213 }
8214 while_break___0: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
8803 }
8804#line 126
8805 goto while_break;
8806 }
8807 while_break: ;
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: ;
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: ;
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: ;
8879 }
8880 while_break___4: ;
8881 }
8882#line 130
8883 goto while_break___3;
8884 }
8885 while_break___3: ;
8886 }
8887 } else {
8888
8889 }
8890#line 130
8891 goto while_break___2;
8892 }
8893 while_break___2: ;
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: ;
8962 {
8963#line 145
8964 while (1) {
8965 while_continue___0: ;
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: ;
8982 }
8983#line 145
8984 goto while_break;
8985 }
8986 while_break: ;
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: ;
9399 {
9400#line 199
9401 while (1) {
9402 while_continue___0: ;
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:
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:
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:
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:
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:
9479 {
9480#line 199
9481 __xchg_wrong_size();
9482 }
9483 } else {
9484 switch_break: ;
9485 }
9486 }
9487 }
9488#line 199
9489 goto while_break___0;
9490 }
9491 while_break___0: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
10105 }
10106#line 275
10107 return (0L);
10108 err_nomem:
10109 {
10110#line 278
10111 while (1) {
10112 while_continue___0: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
10392 }
10393#line 303
10394 goto while_break___0;
10395 }
10396 while_break___0: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
11694#line 476
11695 goto while_break___0;
11696 }
11697 while_break___0: ;
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: ;
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: ;
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: ;
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: ;
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: ;
12421#line 570
12422 goto while_break;
12423 }
12424 while_break: ;
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: ;
12481#line 583
12482 goto while_break;
12483 }
12484 while_break: ;
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: ;
12843#line 627
12844 goto while_break;
12845 }
12846 while_break: ;
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:
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:
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:
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:
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:
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: ;
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:
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:
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:
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:
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:
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:
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:
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:
14327#line 808
14328 r = -515L;
14329 } else {
14330 switch_break___0: ;
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:
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:
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: ;
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: ;
14805 }
14806#line 875
14807 goto switch_break;
14808 case_exp___1:
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:
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:
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:
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:
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:
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: ;
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: ;
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: ;
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:
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
15284 }
15285 while_break___1: ;
15286 }
15287#line 942
15288 goto while_break___0;
15289 }
15290 while_break___0: ;
15291 }
15292 } else {
15293
15294 }
15295#line 942
15296 goto while_break;
15297 }
15298 while_break: ;
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: ;
15318 {
15319#line 945
15320 __kunmap_atomic(base);
15321 }
15322#line 945
15323 goto while_break___2;
15324 }
15325 while_break___2: ;
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: ;
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: ;
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: ;
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: ;
15582 }
15583 {
15584#line 997
15585 while (1) {
15586 while_continue___0: ;
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: ;
15599 }
15600 while_break___1: ;
15601 }
15602#line 997
15603 goto while_break___0;
15604 }
15605 while_break___0: ;
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: ;
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:
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:
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:
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:
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:
15875 {
15876#line 1004
15877 __put_user_bad();
15878 }
15879 } else {
15880 switch_break: ;
15881 }
15882 }
15883 }
15884#line 1004
15885 goto while_break;
15886 }
15887 while_break: ;
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: ;
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:
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:
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:
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:
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:
16354 {
16355#line 1022
16356 __put_user_bad();
16357 }
16358 } else {
16359 switch_break: ;
16360 }
16361 }
16362 }
16363#line 1022
16364 goto while_break;
16365 }
16366 while_break: ;
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:
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:
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:
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:
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:
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: ;
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: ;
16750#line 1063
16751 goto while_break;
16752 }
16753 while_break: ;
16754 }
16755 {
16756#line 1063
16757 while (1) {
16758 while_continue___0: ;
16759#line 1063
16760 goto while_break___0;
16761 }
16762 while_break___0: ;
16763 }
16764#line 1063
16765 mem = _________p1;
16766 {
16767#line 1064
16768 while (1) {
16769 while_continue___1: ;
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: ;
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: ;
16958#line 1105
16959 goto while_break;
16960 }
16961 while_break: ;
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: ;
17250 {
17251#line 1122
17252 while (1) {
17253 while_continue___0: ;
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: ;
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: ;
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: ;
17358 {
17359#line 1132
17360 while (1) {
17361 while_continue___2: ;
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: ;
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: ;
17418 }
17419#line 1133
17420 return (ret);
17421 } else {
17422
17423 }
17424 {
17425#line 1138
17426 while (1) {
17427 while_continue___3: ;
17428#line 1138
17429 goto while_break___3;
17430 }
17431 while_break___3: ;
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: ;
17463 {
17464#line 1144
17465 while (1) {
17466 while_continue___5: ;
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: ;
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: ;
17529 }
17530#line 1146
17531 return (-7);
17532 } else {
17533
17534 }
17535 {
17536#line 1149
17537 while (1) {
17538 while_continue___6: ;
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: ;
17567 {
17568#line 1152
17569 while (1) {
17570 while_continue___8: ;
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: ;
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: ;
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: ;
17667 {
17668#line 1159
17669 while (1) {
17670 while_continue___10: ;
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: ;
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: ;
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: ;
17767 {
17768#line 1164
17769 while (1) {
17770 while_continue___12: ;
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: ;
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: ;
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: ;
17877 {
17878#line 1172
17879 while (1) {
17880 while_continue___14: ;
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: ;
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: ;
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: ;
18018 {
18019#line 1188
18020 while (1) {
18021 while_continue___16: ;
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: ;
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: ;
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: ;
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: ;
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:
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:
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:
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:
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:
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: ;
18793 }
18794 }
18795 }
18796#line 1218
18797 goto while_break;
18798 }
18799 while_break: ;
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: ;
18827 {
18828#line 1219
18829 while (1) {
18830 while_continue___1: ;
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: ;
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: ;
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: ;
18945 {
18946#line 1225
18947 while (1) {
18948 while_continue___3: ;
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: ;
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: ;
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: ;
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:
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:
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:
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:
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:
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: ;
19342 }
19343 }
19344 }
19345#line 1239
19346 goto while_break___4;
19347 }
19348 while_break___4: ;
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: ;
19374 {
19375#line 1241
19376 while (1) {
19377 while_continue___6: ;
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: ;
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: ;
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: ;
19492 {
19493#line 1249
19494 while (1) {
19495 while_continue___8: ;
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: ;
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: ;
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: ;
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: ;
19623 {
19624#line 1263
19625 while (1) {
19626 while_continue___11: ;
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: ;
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: ;
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: ;
19725 {
19726#line 1268
19727 while (1) {
19728 while_continue___13: ;
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: ;
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: ;
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: ;
19829 {
19830#line 1275
19831 while (1) {
19832 while_continue___15: ;
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: ;
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: ;
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: ;
19932 {
19933#line 1284
19934 while (1) {
19935 while_continue___17: ;
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: ;
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: ;
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: ;
20038 {
20039#line 1294
20040 while (1) {
20041 while_continue___19: ;
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: ;
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: ;
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: ;
20179 {
20180#line 1311
20181 while (1) {
20182 while_continue___21: ;
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: ;
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: ;
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:
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: ;
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: ;
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: ;
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: ;
20328 }
20329 while_break___24: ;
20330 }
20331#line 1324
20332 goto while_break___23;
20333 }
20334 while_break___23: ;
20335 }
20336 } else {
20337
20338 }
20339#line 1324
20340 goto while_break___22;
20341 }
20342 while_break___22: ;
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: ;
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:
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:
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:
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:
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:
20777 {
20778#line 1343
20779 __put_user_bad();
20780 }
20781 } else {
20782 switch_break: ;
20783 }
20784 }
20785 }
20786#line 1343
20787 goto while_break;
20788 }
20789 while_break: ;
20790 }
20791#line 1343
20792 if (__pu_err) {
20793 {
20794#line 1344
20795 while (1) {
20796 while_continue___0: ;
20797 {
20798#line 1344
20799 while (1) {
20800 while_continue___1: ;
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: ;
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: ;
20856 }
20857#line 1345
20858 return (-14);
20859 } else {
20860
20861 }
20862 {
20863#line 1347
20864 while (1) {
20865 while_continue___2: ;
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:
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:
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:
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:
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:
21038 {
21039#line 1347
21040 __put_user_bad();
21041 }
21042 } else {
21043 switch_break___0: ;
21044 }
21045 }
21046 }
21047#line 1347
21048 goto while_break___2;
21049 }
21050 while_break___2: ;
21051 }
21052#line 1347
21053 if (__pu_err___0) {
21054 {
21055#line 1348
21056 while (1) {
21057 while_continue___3: ;
21058 {
21059#line 1348
21060 while (1) {
21061 while_continue___4: ;
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: ;
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: ;
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: ;
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:
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:
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:
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:
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:
21365 {
21366#line 1353
21367 __put_user_bad();
21368 }
21369 } else {
21370 switch_break___1: ;
21371 }
21372 }
21373 }
21374#line 1353
21375 goto while_break___5;
21376 }
21377 while_break___5: ;
21378 }
21379#line 1353
21380 if (__pu_err___1) {
21381 {
21382#line 1354
21383 while (1) {
21384 while_continue___6: ;
21385 {
21386#line 1354
21387 while (1) {
21388 while_continue___7: ;
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: ;
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: ;
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: ;
21777 {
21778#line 1393
21779 while (1) {
21780 while_continue___0: ;
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: ;
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: ;
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:
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:
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:
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:
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:
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: ;
22256 }
22257 }
22258 }
22259#line 1436
22260 if (__ret_pu) {
22261 {
22262#line 1437
22263 while (1) {
22264 while_continue: ;
22265 {
22266#line 1437
22267 while (1) {
22268 while_continue___0: ;
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: ;
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: ;
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: ;
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:
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:
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:
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:
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:
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: ;
22835 }
22836 }
22837 }
22838#line 1466
22839 goto while_break;
22840 }
22841 while_break: ;
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: ;
22851 {
22852#line 1467
22853 while (1) {
22854 while_continue___1: ;
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: ;
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: ;
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:
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:
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:
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:
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:
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: ;
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: ;
23150 {
23151#line 1481
23152 while (1) {
23153 while_continue___3: ;
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: ;
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: ;
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: ;
23485 {
23486#line 1532
23487 while (1) {
23488 while_continue___0: ;
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: ;
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: ;
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: ;
23586 {
23587#line 1525
23588 while (1) {
23589 while_continue___2: ;
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: ;
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: ;
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: ;
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:
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:
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:
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:
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:
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: ;
23899 }
23900 }
23901 }
23902#line 1540
23903 goto while_break___3;
23904 }
23905 while_break___3: ;
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: ;
23917 {
23918#line 1542
23919 while (1) {
23920 while_continue___5: ;
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: ;
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: ;
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: ;
24101 {
24102#line 1561
24103 while (1) {
24104 while_continue___0: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
24452 }
24453#line 1597
24454 goto while_break;
24455 }
24456 while_break: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
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: ;
25874#line 153
25875 goto while_break;
25876 }
25877 while_break: ;
25878 }
25879 {
25880#line 153
25881 while (1) {
25882 while_continue___0: ;
25883#line 153
25884 goto while_break___0;
25885 }
25886 while_break___0: ;
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: ;
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: ;
26273 {
26274#line 213
26275 while (1) {
26276 while_continue___3: ;
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: ;
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: ;
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: ;
26414 {
26415#line 223
26416 while (1) {
26417 while_continue___5: ;
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: ;
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: ;
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: ;
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: ;
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: ;
26809 }
26810 while_break___1: ;
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: ;
26863 {
26864#line 286
26865 while (1) {
26866 while_continue___0: ;
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: ;
26885 }
26886#line 286
26887 goto while_break;
26888 }
26889 while_break: ;
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: ;
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: ;
27201 {
27202#line 335
27203 while (1) {
27204 while_continue___1: ;
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: ;
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: ;
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: ;
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: ;
27792#line 384
27793 goto while_break;
27794 }
27795 while_break: ;
27796 }
27797 {
27798#line 384
27799 while (1) {
27800 while_continue___0: ;
27801#line 384
27802 goto while_break___0;
27803 }
27804 while_break___0: ;
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: ;
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: ;
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: ;
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: ;
28216 {
28217#line 442
28218 while (1) {
28219 while_continue___4: ;
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: ;
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: ;
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: ;
28345 {
28346#line 451
28347 while (1) {
28348 while_continue___6: ;
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: ;
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: ;
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: ;
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: ;
29014#line 545
29015 goto while_break;
29016 }
29017 while_break: ;
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: ;
29122#line 562
29123 goto while_break;
29124 }
29125 while_break: ;
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: ;
29856#line 705
29857 goto while_break;
29858 }
29859 while_break: ;
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: ;
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: ;
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:
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:
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:
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:
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:
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: ;
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: ;
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:
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:
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:
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:
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:
31066#line 1140
31067 goto switch_break;
31068 } else {
31069 switch_break: ;
31070 }
31071 }
31072 }
31073 }
31074 while_break: ;
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}