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 11 "include/asm-generic/types.h"
33typedef unsigned short umode_t;
34#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
35typedef unsigned int __kernel_mode_t;
36#line 12 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
37typedef unsigned long __kernel_nlink_t;
38#line 13 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
39typedef long __kernel_off_t;
40#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
41typedef int __kernel_pid_t;
42#line 16 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
43typedef unsigned int __kernel_uid_t;
44#line 17 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
45typedef unsigned int __kernel_gid_t;
46#line 18 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
47typedef unsigned long __kernel_size_t;
48#line 19 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
49typedef long __kernel_ssize_t;
50#line 21 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
51typedef long __kernel_time_t;
52#line 23 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
53typedef long __kernel_clock_t;
54#line 24 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
55typedef int __kernel_timer_t;
56#line 25 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
57typedef int __kernel_clockid_t;
58#line 32 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
59typedef long long __kernel_loff_t;
60#line 41 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
61typedef __kernel_uid_t __kernel_uid32_t;
62#line 42 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
63typedef __kernel_gid_t __kernel_gid32_t;
64#line 21 "include/linux/types.h"
65typedef __u32 __kernel_dev_t;
66#line 24 "include/linux/types.h"
67typedef __kernel_dev_t dev_t;
68#line 26 "include/linux/types.h"
69typedef __kernel_mode_t mode_t;
70#line 27 "include/linux/types.h"
71typedef __kernel_nlink_t nlink_t;
72#line 28 "include/linux/types.h"
73typedef __kernel_off_t off_t;
74#line 29 "include/linux/types.h"
75typedef __kernel_pid_t pid_t;
76#line 34 "include/linux/types.h"
77typedef __kernel_clockid_t clockid_t;
78#line 37 "include/linux/types.h"
79typedef _Bool bool;
80#line 39 "include/linux/types.h"
81typedef __kernel_uid32_t uid_t;
82#line 40 "include/linux/types.h"
83typedef __kernel_gid32_t gid_t;
84#line 53 "include/linux/types.h"
85typedef __kernel_loff_t loff_t;
86#line 62 "include/linux/types.h"
87typedef __kernel_size_t size_t;
88#line 67 "include/linux/types.h"
89typedef __kernel_ssize_t ssize_t;
90#line 77 "include/linux/types.h"
91typedef __kernel_time_t time_t;
92#line 110 "include/linux/types.h"
93typedef __s32 int32_t;
94#line 116 "include/linux/types.h"
95typedef __u32 uint32_t;
96#line 141 "include/linux/types.h"
97typedef unsigned long sector_t;
98#line 142 "include/linux/types.h"
99typedef unsigned long blkcnt_t;
100#line 154 "include/linux/types.h"
101typedef u64 dma_addr_t;
102#line 177 "include/linux/types.h"
103typedef __u16 __le16;
104#line 201 "include/linux/types.h"
105typedef unsigned int gfp_t;
106#line 202 "include/linux/types.h"
107typedef unsigned int fmode_t;
108#line 205 "include/linux/types.h"
109typedef u64 phys_addr_t;
110#line 212 "include/linux/types.h"
111struct __anonstruct_atomic_t_7 {
112 int counter ;
113};
114#line 212 "include/linux/types.h"
115typedef struct __anonstruct_atomic_t_7 atomic_t;
116#line 217 "include/linux/types.h"
117struct __anonstruct_atomic64_t_8 {
118 long counter ;
119};
120#line 217 "include/linux/types.h"
121typedef struct __anonstruct_atomic64_t_8 atomic64_t;
122#line 222 "include/linux/types.h"
123struct list_head {
124 struct list_head *next ;
125 struct list_head *prev ;
126};
127#line 226
128struct hlist_node;
129#line 226
130struct hlist_node;
131#line 226 "include/linux/types.h"
132struct hlist_head {
133 struct hlist_node *first ;
134};
135#line 230 "include/linux/types.h"
136struct hlist_node {
137 struct hlist_node *next ;
138 struct hlist_node **pprev ;
139};
140#line 12 "include/linux/file.h"
141struct file;
142#line 12
143struct file;
144#line 17
145struct file_operations;
146#line 17
147struct file_operations;
148#line 18
149struct vfsmount;
150#line 18
151struct vfsmount;
152#line 19
153struct dentry;
154#line 19
155struct dentry;
156#line 20
157struct path;
158#line 20
159struct path;
160#line 12 "include/linux/thread_info.h"
161struct timespec;
162#line 12
163struct timespec;
164#line 13
165struct compat_timespec;
166#line 13
167struct compat_timespec;
168#line 18 "include/linux/thread_info.h"
169struct __anonstruct_futex_10 {
170 u32 *uaddr ;
171 u32 val ;
172 u32 flags ;
173 u32 bitset ;
174 u64 time ;
175 u32 *uaddr2 ;
176};
177#line 18 "include/linux/thread_info.h"
178struct __anonstruct_nanosleep_11 {
179 clockid_t clockid ;
180 struct timespec *rmtp ;
181 struct compat_timespec *compat_rmtp ;
182 u64 expires ;
183};
184#line 18
185struct pollfd;
186#line 18
187struct pollfd;
188#line 18 "include/linux/thread_info.h"
189struct __anonstruct_poll_12 {
190 struct pollfd *ufds ;
191 int nfds ;
192 int has_timeout ;
193 unsigned long tv_sec ;
194 unsigned long tv_nsec ;
195};
196#line 18 "include/linux/thread_info.h"
197union __anonunion____missing_field_name_9 {
198 struct __anonstruct_futex_10 futex ;
199 struct __anonstruct_nanosleep_11 nanosleep ;
200 struct __anonstruct_poll_12 poll ;
201};
202#line 18 "include/linux/thread_info.h"
203struct restart_block {
204 long (*fn)(struct restart_block * ) ;
205 union __anonunion____missing_field_name_9 __annonCompField4 ;
206};
207#line 59 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/alternative.h"
208struct module;
209#line 59
210struct module;
211#line 18 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/page.h"
212struct page;
213#line 18
214struct page;
215#line 20 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
216struct task_struct;
217#line 20
218struct task_struct;
219#line 21
220struct exec_domain;
221#line 21
222struct exec_domain;
223#line 8 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
224struct mm_struct;
225#line 8
226struct mm_struct;
227#line 99 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/ptrace.h"
228struct pt_regs {
229 unsigned long r15 ;
230 unsigned long r14 ;
231 unsigned long r13 ;
232 unsigned long r12 ;
233 unsigned long bp ;
234 unsigned long bx ;
235 unsigned long r11 ;
236 unsigned long r10 ;
237 unsigned long r9 ;
238 unsigned long r8 ;
239 unsigned long ax ;
240 unsigned long cx ;
241 unsigned long dx ;
242 unsigned long si ;
243 unsigned long di ;
244 unsigned long orig_ax ;
245 unsigned long ip ;
246 unsigned long cs ;
247 unsigned long flags ;
248 unsigned long sp ;
249 unsigned long ss ;
250};
251#line 145 "include/linux/init.h"
252typedef void (*ctor_fn_t)(void);
253#line 141 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/vm86.h"
254struct kernel_vm86_regs {
255 struct pt_regs pt ;
256 unsigned short es ;
257 unsigned short __esh ;
258 unsigned short ds ;
259 unsigned short __dsh ;
260 unsigned short fs ;
261 unsigned short __fsh ;
262 unsigned short gs ;
263 unsigned short __gsh ;
264};
265#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/math_emu.h"
266union __anonunion____missing_field_name_13 {
267 struct pt_regs *regs ;
268 struct kernel_vm86_regs *vm86 ;
269};
270#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/math_emu.h"
271struct math_emu_info {
272 long ___orig_eip ;
273 union __anonunion____missing_field_name_13 __annonCompField5 ;
274};
275#line 16 "include/linux/dynamic_debug.h"
276struct _ddebug {
277 char const *modname ;
278 char const *function ;
279 char const *filename ;
280 char const *format ;
281 unsigned int lineno : 24 ;
282 unsigned int flags : 8 ;
283 char enabled ;
284} __attribute__((__aligned__(8))) ;
285#line 10 "include/asm-generic/bug.h"
286struct bug_entry {
287 int bug_addr_disp ;
288 int file_disp ;
289 unsigned short line ;
290 unsigned short flags ;
291};
292#line 113 "include/linux/kernel.h"
293struct completion;
294#line 113
295struct completion;
296#line 322
297struct pid;
298#line 322
299struct pid;
300#line 13 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_64_types.h"
301typedef unsigned long pgdval_t;
302#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_64_types.h"
303typedef unsigned long pgprotval_t;
304#line 190 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
305struct pgprot {
306 pgprotval_t pgprot ;
307};
308#line 190 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
309typedef struct pgprot pgprot_t;
310#line 192 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
311struct __anonstruct_pgd_t_17 {
312 pgdval_t pgd ;
313};
314#line 192 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
315typedef struct __anonstruct_pgd_t_17 pgd_t;
316#line 280 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
317typedef struct page *pgtable_t;
318#line 311
319struct seq_file;
320#line 311
321struct seq_file;
322#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
323struct __anonstruct____missing_field_name_22 {
324 unsigned int a ;
325 unsigned int b ;
326};
327#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
328struct __anonstruct____missing_field_name_23 {
329 u16 limit0 ;
330 u16 base0 ;
331 unsigned int base1 : 8 ;
332 unsigned int type : 4 ;
333 unsigned int s : 1 ;
334 unsigned int dpl : 2 ;
335 unsigned int p : 1 ;
336 unsigned int limit : 4 ;
337 unsigned int avl : 1 ;
338 unsigned int l : 1 ;
339 unsigned int d : 1 ;
340 unsigned int g : 1 ;
341 unsigned int base2 : 8 ;
342};
343#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
344union __anonunion____missing_field_name_21 {
345 struct __anonstruct____missing_field_name_22 __annonCompField7 ;
346 struct __anonstruct____missing_field_name_23 __annonCompField8 ;
347};
348#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
349struct desc_struct {
350 union __anonunion____missing_field_name_21 __annonCompField9 ;
351} __attribute__((__packed__)) ;
352#line 46 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt_types.h"
353struct thread_struct;
354#line 46
355struct thread_struct;
356#line 52
357struct cpumask;
358#line 52
359struct cpumask;
360#line 322
361struct arch_spinlock;
362#line 322
363struct arch_spinlock;
364#line 13 "include/linux/cpumask.h"
365struct cpumask {
366 unsigned long bits[((4096UL + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
367};
368#line 13 "include/linux/cpumask.h"
369typedef struct cpumask cpumask_t;
370#line 622 "include/linux/cpumask.h"
371typedef struct cpumask *cpumask_var_t;
372#line 91 "include/linux/personality.h"
373struct map_segment;
374#line 91
375struct map_segment;
376#line 91 "include/linux/personality.h"
377struct exec_domain {
378 char const *name ;
379 void (*handler)(int , struct pt_regs * ) ;
380 unsigned char pers_low ;
381 unsigned char pers_high ;
382 unsigned long *signal_map ;
383 unsigned long *signal_invmap ;
384 struct map_segment *err_map ;
385 struct map_segment *socktype_map ;
386 struct map_segment *sockopt_map ;
387 struct map_segment *af_map ;
388 struct module *module ;
389 struct exec_domain *next ;
390};
391#line 145 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
392struct seq_operations;
393#line 145
394struct seq_operations;
395#line 280 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
396struct i387_fsave_struct {
397 u32 cwd ;
398 u32 swd ;
399 u32 twd ;
400 u32 fip ;
401 u32 fcs ;
402 u32 foo ;
403 u32 fos ;
404 u32 st_space[20] ;
405 u32 status ;
406};
407#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
408struct __anonstruct____missing_field_name_31 {
409 u64 rip ;
410 u64 rdp ;
411};
412#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
413struct __anonstruct____missing_field_name_32 {
414 u32 fip ;
415 u32 fcs ;
416 u32 foo ;
417 u32 fos ;
418};
419#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
420union __anonunion____missing_field_name_30 {
421 struct __anonstruct____missing_field_name_31 __annonCompField12 ;
422 struct __anonstruct____missing_field_name_32 __annonCompField13 ;
423};
424#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
425union __anonunion____missing_field_name_33 {
426 u32 padding1[12] ;
427 u32 sw_reserved[12] ;
428};
429#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
430struct i387_fxsave_struct {
431 u16 cwd ;
432 u16 swd ;
433 u16 twd ;
434 u16 fop ;
435 union __anonunion____missing_field_name_30 __annonCompField14 ;
436 u32 mxcsr ;
437 u32 mxcsr_mask ;
438 u32 st_space[32] ;
439 u32 xmm_space[64] ;
440 u32 padding[12] ;
441 union __anonunion____missing_field_name_33 __annonCompField15 ;
442} __attribute__((__aligned__(16))) ;
443#line 331 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
444struct i387_soft_struct {
445 u32 cwd ;
446 u32 swd ;
447 u32 twd ;
448 u32 fip ;
449 u32 fcs ;
450 u32 foo ;
451 u32 fos ;
452 u32 st_space[20] ;
453 u8 ftop ;
454 u8 changed ;
455 u8 lookahead ;
456 u8 no_update ;
457 u8 rm ;
458 u8 alimit ;
459 struct math_emu_info *info ;
460 u32 entry_eip ;
461};
462#line 351 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
463struct ymmh_struct {
464 u32 ymmh_space[64] ;
465};
466#line 356 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
467struct xsave_hdr_struct {
468 u64 xstate_bv ;
469 u64 reserved1[2] ;
470 u64 reserved2[5] ;
471} __attribute__((__packed__)) ;
472#line 362 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
473struct xsave_struct {
474 struct i387_fxsave_struct i387 ;
475 struct xsave_hdr_struct xsave_hdr ;
476 struct ymmh_struct ymmh ;
477} __attribute__((__packed__, __aligned__(64))) ;
478#line 369 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
479union thread_xstate {
480 struct i387_fsave_struct fsave ;
481 struct i387_fxsave_struct fxsave ;
482 struct i387_soft_struct soft ;
483 struct xsave_struct xsave ;
484};
485#line 376 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
486struct fpu {
487 union thread_xstate *state ;
488};
489#line 421
490struct kmem_cache;
491#line 421
492struct kmem_cache;
493#line 423
494struct perf_event;
495#line 423
496struct perf_event;
497#line 425 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
498struct thread_struct {
499 struct desc_struct tls_array[3] ;
500 unsigned long sp0 ;
501 unsigned long sp ;
502 unsigned long usersp ;
503 unsigned short es ;
504 unsigned short ds ;
505 unsigned short fsindex ;
506 unsigned short gsindex ;
507 unsigned long fs ;
508 unsigned long gs ;
509 struct perf_event *ptrace_bps[4] ;
510 unsigned long debugreg6 ;
511 unsigned long ptrace_dr7 ;
512 unsigned long cr2 ;
513 unsigned long trap_no ;
514 unsigned long error_code ;
515 struct fpu fpu ;
516 unsigned long *io_bitmap_ptr ;
517 unsigned long iopl ;
518 unsigned int io_bitmap_max ;
519};
520#line 620 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
521struct __anonstruct_mm_segment_t_35 {
522 unsigned long seg ;
523};
524#line 620 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
525typedef struct __anonstruct_mm_segment_t_35 mm_segment_t;
526#line 23 "include/asm-generic/atomic-long.h"
527typedef atomic64_t atomic_long_t;
528#line 26 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
529struct thread_info {
530 struct task_struct *task ;
531 struct exec_domain *exec_domain ;
532 __u32 flags ;
533 __u32 status ;
534 __u32 cpu ;
535 int preempt_count ;
536 mm_segment_t addr_limit ;
537 struct restart_block restart_block ;
538 void *sysenter_return ;
539 int uaccess_err ;
540};
541#line 8 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
542struct arch_spinlock {
543 unsigned int slock ;
544};
545#line 8 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
546typedef struct arch_spinlock arch_spinlock_t;
547#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
548struct __anonstruct_arch_rwlock_t_36 {
549 unsigned int lock ;
550};
551#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
552typedef struct __anonstruct_arch_rwlock_t_36 arch_rwlock_t;
553#line 13 "include/linux/lockdep.h"
554struct lockdep_map;
555#line 13
556struct lockdep_map;
557#line 10 "include/linux/stacktrace.h"
558struct stack_trace {
559 unsigned int nr_entries ;
560 unsigned int max_entries ;
561 unsigned long *entries ;
562 int skip ;
563};
564#line 50 "include/linux/lockdep.h"
565struct lockdep_subclass_key {
566 char __one_byte ;
567} __attribute__((__packed__)) ;
568#line 54 "include/linux/lockdep.h"
569struct lock_class_key {
570 struct lockdep_subclass_key subkeys[8UL] ;
571};
572#line 65 "include/linux/lockdep.h"
573struct lock_class {
574 struct list_head hash_entry ;
575 struct list_head lock_entry ;
576 struct lockdep_subclass_key *key ;
577 unsigned int subclass ;
578 unsigned int dep_gen_id ;
579 unsigned long usage_mask ;
580 struct stack_trace usage_traces[13] ;
581 struct list_head locks_after ;
582 struct list_head locks_before ;
583 unsigned int version ;
584 unsigned long ops ;
585 char const *name ;
586 int name_version ;
587 unsigned long contention_point[4] ;
588 unsigned long contending_point[4] ;
589};
590#line 150 "include/linux/lockdep.h"
591struct lockdep_map {
592 struct lock_class_key *key ;
593 struct lock_class *class_cache[2] ;
594 char const *name ;
595 int cpu ;
596 unsigned long ip ;
597};
598#line 196 "include/linux/lockdep.h"
599struct held_lock {
600 u64 prev_chain_key ;
601 unsigned long acquire_ip ;
602 struct lockdep_map *instance ;
603 struct lockdep_map *nest_lock ;
604 u64 waittime_stamp ;
605 u64 holdtime_stamp ;
606 unsigned int class_idx : 13 ;
607 unsigned int irq_context : 2 ;
608 unsigned int trylock : 1 ;
609 unsigned int read : 2 ;
610 unsigned int check : 2 ;
611 unsigned int hardirqs_off : 1 ;
612 unsigned int references : 11 ;
613};
614#line 20 "include/linux/spinlock_types.h"
615struct raw_spinlock {
616 arch_spinlock_t raw_lock ;
617 unsigned int magic ;
618 unsigned int owner_cpu ;
619 void *owner ;
620 struct lockdep_map dep_map ;
621};
622#line 20 "include/linux/spinlock_types.h"
623typedef struct raw_spinlock raw_spinlock_t;
624#line 64 "include/linux/spinlock_types.h"
625struct __anonstruct____missing_field_name_38 {
626 u8 __padding[(unsigned int )(& ((struct raw_spinlock *)0)->dep_map)] ;
627 struct lockdep_map dep_map ;
628};
629#line 64 "include/linux/spinlock_types.h"
630union __anonunion____missing_field_name_37 {
631 struct raw_spinlock rlock ;
632 struct __anonstruct____missing_field_name_38 __annonCompField17 ;
633};
634#line 64 "include/linux/spinlock_types.h"
635struct spinlock {
636 union __anonunion____missing_field_name_37 __annonCompField18 ;
637};
638#line 64 "include/linux/spinlock_types.h"
639typedef struct spinlock spinlock_t;
640#line 11 "include/linux/rwlock_types.h"
641struct __anonstruct_rwlock_t_39 {
642 arch_rwlock_t raw_lock ;
643 unsigned int magic ;
644 unsigned int owner_cpu ;
645 void *owner ;
646 struct lockdep_map dep_map ;
647};
648#line 11 "include/linux/rwlock_types.h"
649typedef struct __anonstruct_rwlock_t_39 rwlock_t;
650#line 28 "include/linux/wait.h"
651struct __wait_queue;
652#line 28
653struct __wait_queue;
654#line 28 "include/linux/wait.h"
655typedef struct __wait_queue wait_queue_t;
656#line 32 "include/linux/wait.h"
657struct __wait_queue {
658 unsigned int flags ;
659 void *private ;
660 int (*func)(wait_queue_t *wait , unsigned int mode , int flags , void *key ) ;
661 struct list_head task_list ;
662};
663#line 50 "include/linux/wait.h"
664struct __wait_queue_head {
665 spinlock_t lock ;
666 struct list_head task_list ;
667};
668#line 54 "include/linux/wait.h"
669typedef struct __wait_queue_head wait_queue_head_t;
670#line 32 "include/linux/eventfd.h"
671struct eventfd_ctx;
672#line 32
673struct eventfd_ctx;
674#line 6 "include/asm-generic/scatterlist.h"
675struct scatterlist {
676 unsigned long sg_magic ;
677 unsigned long page_link ;
678 unsigned int offset ;
679 unsigned int length ;
680 dma_addr_t dma_address ;
681 unsigned int dma_length ;
682};
683#line 119 "include/linux/seqlock.h"
684struct seqcount {
685 unsigned int sequence ;
686};
687#line 119 "include/linux/seqlock.h"
688typedef struct seqcount seqcount_t;
689#line 96 "include/linux/nodemask.h"
690struct __anonstruct_nodemask_t_41 {
691 unsigned long bits[(((unsigned long )(1 << 10) + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
692};
693#line 96 "include/linux/nodemask.h"
694typedef struct __anonstruct_nodemask_t_41 nodemask_t;
695#line 48 "include/linux/mutex.h"
696struct mutex {
697 atomic_t count ;
698 spinlock_t wait_lock ;
699 struct list_head wait_list ;
700 struct task_struct *owner ;
701 char const *name ;
702 void *magic ;
703 struct lockdep_map dep_map ;
704};
705#line 69 "include/linux/mutex.h"
706struct mutex_waiter {
707 struct list_head list ;
708 struct task_struct *task ;
709 void *magic ;
710};
711#line 20 "include/linux/rwsem.h"
712struct rw_semaphore;
713#line 20
714struct rw_semaphore;
715#line 26 "include/linux/rwsem.h"
716struct rw_semaphore {
717 long count ;
718 spinlock_t wait_lock ;
719 struct list_head wait_list ;
720 struct lockdep_map dep_map ;
721};
722#line 177 "include/linux/ioport.h"
723struct device;
724#line 177
725struct device;
726#line 14 "include/linux/time.h"
727struct timespec {
728 __kernel_time_t tv_sec ;
729 long tv_nsec ;
730};
731#line 46 "include/linux/ktime.h"
732union ktime {
733 s64 tv64 ;
734};
735#line 59 "include/linux/ktime.h"
736typedef union ktime ktime_t;
737#line 10 "include/linux/timer.h"
738struct tvec_base;
739#line 10
740struct tvec_base;
741#line 12 "include/linux/timer.h"
742struct timer_list {
743 struct list_head entry ;
744 unsigned long expires ;
745 struct tvec_base *base ;
746 void (*function)(unsigned long ) ;
747 unsigned long data ;
748 int slack ;
749 int start_pid ;
750 void *start_site ;
751 char start_comm[16] ;
752 struct lockdep_map lockdep_map ;
753};
754#line 289
755struct hrtimer;
756#line 289
757struct hrtimer;
758#line 290
759enum hrtimer_restart;
760#line 290
761enum hrtimer_restart;
762#line 290
763enum hrtimer_restart;
764#line 17 "include/linux/workqueue.h"
765struct work_struct;
766#line 17
767struct work_struct;
768#line 79 "include/linux/workqueue.h"
769struct work_struct {
770 atomic_long_t data ;
771 struct list_head entry ;
772 void (*func)(struct work_struct *work ) ;
773 struct lockdep_map lockdep_map ;
774};
775#line 92 "include/linux/workqueue.h"
776struct delayed_work {
777 struct work_struct work ;
778 struct timer_list timer ;
779};
780#line 25 "include/linux/completion.h"
781struct completion {
782 unsigned int done ;
783 wait_queue_head_t wait ;
784};
785#line 50 "include/linux/pm.h"
786struct pm_message {
787 int event ;
788};
789#line 50 "include/linux/pm.h"
790typedef struct pm_message pm_message_t;
791#line 204 "include/linux/pm.h"
792struct dev_pm_ops {
793 int (*prepare)(struct device *dev ) ;
794 void (*complete)(struct device *dev ) ;
795 int (*suspend)(struct device *dev ) ;
796 int (*resume)(struct device *dev ) ;
797 int (*freeze)(struct device *dev ) ;
798 int (*thaw)(struct device *dev ) ;
799 int (*poweroff)(struct device *dev ) ;
800 int (*restore)(struct device *dev ) ;
801 int (*suspend_noirq)(struct device *dev ) ;
802 int (*resume_noirq)(struct device *dev ) ;
803 int (*freeze_noirq)(struct device *dev ) ;
804 int (*thaw_noirq)(struct device *dev ) ;
805 int (*poweroff_noirq)(struct device *dev ) ;
806 int (*restore_noirq)(struct device *dev ) ;
807 int (*runtime_suspend)(struct device *dev ) ;
808 int (*runtime_resume)(struct device *dev ) ;
809 int (*runtime_idle)(struct device *dev ) ;
810};
811#line 392
812enum rpm_status {
813 RPM_ACTIVE = 0,
814 RPM_RESUMING = 1,
815 RPM_SUSPENDED = 2,
816 RPM_SUSPENDING = 3
817} ;
818#line 414
819enum rpm_request {
820 RPM_REQ_NONE = 0,
821 RPM_REQ_IDLE = 1,
822 RPM_REQ_SUSPEND = 2,
823 RPM_REQ_AUTOSUSPEND = 3,
824 RPM_REQ_RESUME = 4
825} ;
826#line 422
827struct wakeup_source;
828#line 422
829struct wakeup_source;
830#line 424 "include/linux/pm.h"
831struct dev_pm_info {
832 pm_message_t power_state ;
833 unsigned int can_wakeup : 1 ;
834 unsigned int async_suspend : 1 ;
835 bool is_prepared : 1 ;
836 bool is_suspended : 1 ;
837 spinlock_t lock ;
838 struct list_head entry ;
839 struct completion completion ;
840 struct wakeup_source *wakeup ;
841 struct timer_list suspend_timer ;
842 unsigned long timer_expires ;
843 struct work_struct work ;
844 wait_queue_head_t wait_queue ;
845 atomic_t usage_count ;
846 atomic_t child_count ;
847 unsigned int disable_depth : 3 ;
848 unsigned int ignore_children : 1 ;
849 unsigned int idle_notification : 1 ;
850 unsigned int request_pending : 1 ;
851 unsigned int deferred_resume : 1 ;
852 unsigned int run_wake : 1 ;
853 unsigned int runtime_auto : 1 ;
854 unsigned int no_callbacks : 1 ;
855 unsigned int irq_safe : 1 ;
856 unsigned int use_autosuspend : 1 ;
857 unsigned int timer_autosuspends : 1 ;
858 enum rpm_request request ;
859 enum rpm_status runtime_status ;
860 int runtime_error ;
861 int autosuspend_delay ;
862 unsigned long last_busy ;
863 unsigned long active_jiffies ;
864 unsigned long suspended_jiffies ;
865 unsigned long accounting_timestamp ;
866 void *subsys_data ;
867};
868#line 475 "include/linux/pm.h"
869struct dev_power_domain {
870 struct dev_pm_ops ops ;
871};
872#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/mmu.h"
873struct __anonstruct_mm_context_t_111 {
874 void *ldt ;
875 int size ;
876 unsigned short ia32_compat ;
877 struct mutex lock ;
878 void *vdso ;
879};
880#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/mmu.h"
881typedef struct __anonstruct_mm_context_t_111 mm_context_t;
882#line 8 "include/linux/vmalloc.h"
883struct vm_area_struct;
884#line 8
885struct vm_area_struct;
886#line 100 "include/linux/rbtree.h"
887struct rb_node {
888 unsigned long rb_parent_color ;
889 struct rb_node *rb_right ;
890 struct rb_node *rb_left ;
891} __attribute__((__aligned__(sizeof(long )))) ;
892#line 110 "include/linux/rbtree.h"
893struct rb_root {
894 struct rb_node *rb_node ;
895};
896#line 14 "include/linux/prio_tree.h"
897struct prio_tree_node;
898#line 14
899struct prio_tree_node;
900#line 14 "include/linux/prio_tree.h"
901struct raw_prio_tree_node {
902 struct prio_tree_node *left ;
903 struct prio_tree_node *right ;
904 struct prio_tree_node *parent ;
905};
906#line 20 "include/linux/prio_tree.h"
907struct prio_tree_node {
908 struct prio_tree_node *left ;
909 struct prio_tree_node *right ;
910 struct prio_tree_node *parent ;
911 unsigned long start ;
912 unsigned long last ;
913};
914#line 28 "include/linux/prio_tree.h"
915struct prio_tree_root {
916 struct prio_tree_node *prio_tree_node ;
917 unsigned short index_bits ;
918 unsigned short raw ;
919};
920#line 23 "include/linux/mm_types.h"
921struct address_space;
922#line 23
923struct address_space;
924#line 34 "include/linux/mm_types.h"
925struct __anonstruct____missing_field_name_136 {
926 u16 inuse ;
927 u16 objects ;
928};
929#line 34 "include/linux/mm_types.h"
930union __anonunion____missing_field_name_135 {
931 atomic_t _mapcount ;
932 struct __anonstruct____missing_field_name_136 __annonCompField29 ;
933};
934#line 34 "include/linux/mm_types.h"
935struct __anonstruct____missing_field_name_138 {
936 unsigned long private ;
937 struct address_space *mapping ;
938};
939#line 34 "include/linux/mm_types.h"
940union __anonunion____missing_field_name_137 {
941 struct __anonstruct____missing_field_name_138 __annonCompField31 ;
942 struct kmem_cache *slab ;
943 struct page *first_page ;
944};
945#line 34 "include/linux/mm_types.h"
946union __anonunion____missing_field_name_139 {
947 unsigned long index ;
948 void *freelist ;
949};
950#line 34 "include/linux/mm_types.h"
951struct page {
952 unsigned long flags ;
953 atomic_t _count ;
954 union __anonunion____missing_field_name_135 __annonCompField30 ;
955 union __anonunion____missing_field_name_137 __annonCompField32 ;
956 union __anonunion____missing_field_name_139 __annonCompField33 ;
957 struct list_head lru ;
958};
959#line 132 "include/linux/mm_types.h"
960struct __anonstruct_vm_set_141 {
961 struct list_head list ;
962 void *parent ;
963 struct vm_area_struct *head ;
964};
965#line 132 "include/linux/mm_types.h"
966union __anonunion_shared_140 {
967 struct __anonstruct_vm_set_141 vm_set ;
968 struct raw_prio_tree_node prio_tree_node ;
969};
970#line 132
971struct anon_vma;
972#line 132
973struct anon_vma;
974#line 132
975struct vm_operations_struct;
976#line 132
977struct vm_operations_struct;
978#line 132
979struct mempolicy;
980#line 132
981struct mempolicy;
982#line 132 "include/linux/mm_types.h"
983struct vm_area_struct {
984 struct mm_struct *vm_mm ;
985 unsigned long vm_start ;
986 unsigned long vm_end ;
987 struct vm_area_struct *vm_next ;
988 struct vm_area_struct *vm_prev ;
989 pgprot_t vm_page_prot ;
990 unsigned long vm_flags ;
991 struct rb_node vm_rb ;
992 union __anonunion_shared_140 shared ;
993 struct list_head anon_vma_chain ;
994 struct anon_vma *anon_vma ;
995 struct vm_operations_struct const *vm_ops ;
996 unsigned long vm_pgoff ;
997 struct file *vm_file ;
998 void *vm_private_data ;
999 struct mempolicy *vm_policy ;
1000};
1001#line 189 "include/linux/mm_types.h"
1002struct core_thread {
1003 struct task_struct *task ;
1004 struct core_thread *next ;
1005};
1006#line 194 "include/linux/mm_types.h"
1007struct core_state {
1008 atomic_t nr_threads ;
1009 struct core_thread dumper ;
1010 struct completion startup ;
1011};
1012#line 216 "include/linux/mm_types.h"
1013struct mm_rss_stat {
1014 atomic_long_t count[3] ;
1015};
1016#line 220
1017struct linux_binfmt;
1018#line 220
1019struct linux_binfmt;
1020#line 220
1021struct mmu_notifier_mm;
1022#line 220
1023struct mmu_notifier_mm;
1024#line 220 "include/linux/mm_types.h"
1025struct mm_struct {
1026 struct vm_area_struct *mmap ;
1027 struct rb_root mm_rb ;
1028 struct vm_area_struct *mmap_cache ;
1029 unsigned long (*get_unmapped_area)(struct file *filp , unsigned long addr , unsigned long len ,
1030 unsigned long pgoff , unsigned long flags ) ;
1031 void (*unmap_area)(struct mm_struct *mm , unsigned long addr ) ;
1032 unsigned long mmap_base ;
1033 unsigned long task_size ;
1034 unsigned long cached_hole_size ;
1035 unsigned long free_area_cache ;
1036 pgd_t *pgd ;
1037 atomic_t mm_users ;
1038 atomic_t mm_count ;
1039 int map_count ;
1040 spinlock_t page_table_lock ;
1041 struct rw_semaphore mmap_sem ;
1042 struct list_head mmlist ;
1043 unsigned long hiwater_rss ;
1044 unsigned long hiwater_vm ;
1045 unsigned long total_vm ;
1046 unsigned long locked_vm ;
1047 unsigned long shared_vm ;
1048 unsigned long exec_vm ;
1049 unsigned long stack_vm ;
1050 unsigned long reserved_vm ;
1051 unsigned long def_flags ;
1052 unsigned long nr_ptes ;
1053 unsigned long start_code ;
1054 unsigned long end_code ;
1055 unsigned long start_data ;
1056 unsigned long end_data ;
1057 unsigned long start_brk ;
1058 unsigned long brk ;
1059 unsigned long start_stack ;
1060 unsigned long arg_start ;
1061 unsigned long arg_end ;
1062 unsigned long env_start ;
1063 unsigned long env_end ;
1064 unsigned long saved_auxv[44] ;
1065 struct mm_rss_stat rss_stat ;
1066 struct linux_binfmt *binfmt ;
1067 cpumask_var_t cpu_vm_mask_var ;
1068 mm_context_t context ;
1069 unsigned int faultstamp ;
1070 unsigned int token_priority ;
1071 unsigned int last_interval ;
1072 atomic_t oom_disable_count ;
1073 unsigned long flags ;
1074 struct core_state *core_state ;
1075 spinlock_t ioctx_lock ;
1076 struct hlist_head ioctx_list ;
1077 struct task_struct *owner ;
1078 struct file *exe_file ;
1079 unsigned long num_exe_file_vmas ;
1080 struct mmu_notifier_mm *mmu_notifier_mm ;
1081 pgtable_t pmd_huge_pte ;
1082 struct cpumask cpumask_allocation ;
1083};
1084#line 21 "include/linux/mm.h"
1085struct file_ra_state;
1086#line 21
1087struct file_ra_state;
1088#line 22
1089struct user_struct;
1090#line 22
1091struct user_struct;
1092#line 23
1093struct writeback_control;
1094#line 23
1095struct writeback_control;
1096#line 185 "include/linux/mm.h"
1097struct vm_fault {
1098 unsigned int flags ;
1099 unsigned long pgoff ;
1100 void *virtual_address ;
1101 struct page *page ;
1102};
1103#line 202 "include/linux/mm.h"
1104struct vm_operations_struct {
1105 void (*open)(struct vm_area_struct *area ) ;
1106 void (*close)(struct vm_area_struct *area ) ;
1107 int (*fault)(struct vm_area_struct *vma , struct vm_fault *vmf ) ;
1108 int (*page_mkwrite)(struct vm_area_struct *vma , struct vm_fault *vmf ) ;
1109 int (*access)(struct vm_area_struct *vma , unsigned long addr , void *buf , int len ,
1110 int write ) ;
1111 int (*set_policy)(struct vm_area_struct *vma , struct mempolicy *new ) ;
1112 struct mempolicy *(*get_policy)(struct vm_area_struct *vma , unsigned long addr ) ;
1113 int (*migrate)(struct vm_area_struct *vma , nodemask_t const *from , nodemask_t const *to ,
1114 unsigned long flags ) ;
1115};
1116#line 244
1117struct inode;
1118#line 244
1119struct inode;
1120#line 20 "include/linux/kobject_ns.h"
1121struct sock;
1122#line 20
1123struct sock;
1124#line 21
1125struct kobject;
1126#line 21
1127struct kobject;
1128#line 27
1129enum kobj_ns_type {
1130 KOBJ_NS_TYPE_NONE = 0,
1131 KOBJ_NS_TYPE_NET = 1,
1132 KOBJ_NS_TYPES = 2
1133} ;
1134#line 40 "include/linux/kobject_ns.h"
1135struct kobj_ns_type_operations {
1136 enum kobj_ns_type type ;
1137 void *(*grab_current_ns)(void) ;
1138 void const *(*netlink_ns)(struct sock *sk ) ;
1139 void const *(*initial_ns)(void) ;
1140 void (*drop_ns)(void * ) ;
1141};
1142#line 24 "include/linux/sysfs.h"
1143enum kobj_ns_type;
1144#line 26 "include/linux/sysfs.h"
1145struct attribute {
1146 char const *name ;
1147 mode_t mode ;
1148 struct lock_class_key *key ;
1149 struct lock_class_key skey ;
1150};
1151#line 56 "include/linux/sysfs.h"
1152struct attribute_group {
1153 char const *name ;
1154 mode_t (*is_visible)(struct kobject * , struct attribute * , int ) ;
1155 struct attribute **attrs ;
1156};
1157#line 88 "include/linux/sysfs.h"
1158struct bin_attribute {
1159 struct attribute attr ;
1160 size_t size ;
1161 void *private ;
1162 ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
1163 loff_t , size_t ) ;
1164 ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
1165 loff_t , size_t ) ;
1166 int (*mmap)(struct file * , struct kobject * , struct bin_attribute *attr , struct vm_area_struct *vma ) ;
1167};
1168#line 112 "include/linux/sysfs.h"
1169struct sysfs_ops {
1170 ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
1171 ssize_t (*store)(struct kobject * , struct attribute * , char const * , size_t ) ;
1172};
1173#line 117
1174struct sysfs_dirent;
1175#line 117
1176struct sysfs_dirent;
1177#line 20 "include/linux/kref.h"
1178struct kref {
1179 atomic_t refcount ;
1180};
1181#line 60 "include/linux/kobject.h"
1182struct kset;
1183#line 60
1184struct kset;
1185#line 60
1186struct kobj_type;
1187#line 60
1188struct kobj_type;
1189#line 60 "include/linux/kobject.h"
1190struct kobject {
1191 char const *name ;
1192 struct list_head entry ;
1193 struct kobject *parent ;
1194 struct kset *kset ;
1195 struct kobj_type *ktype ;
1196 struct sysfs_dirent *sd ;
1197 struct kref kref ;
1198 unsigned int state_initialized : 1 ;
1199 unsigned int state_in_sysfs : 1 ;
1200 unsigned int state_add_uevent_sent : 1 ;
1201 unsigned int state_remove_uevent_sent : 1 ;
1202 unsigned int uevent_suppress : 1 ;
1203};
1204#line 110 "include/linux/kobject.h"
1205struct kobj_type {
1206 void (*release)(struct kobject *kobj ) ;
1207 struct sysfs_ops const *sysfs_ops ;
1208 struct attribute **default_attrs ;
1209 struct kobj_ns_type_operations const *(*child_ns_type)(struct kobject *kobj ) ;
1210 void const *(*namespace)(struct kobject *kobj ) ;
1211};
1212#line 118 "include/linux/kobject.h"
1213struct kobj_uevent_env {
1214 char *envp[32] ;
1215 int envp_idx ;
1216 char buf[2048] ;
1217 int buflen ;
1218};
1219#line 125 "include/linux/kobject.h"
1220struct kset_uevent_ops {
1221 int (* const filter)(struct kset *kset , struct kobject *kobj ) ;
1222 char const *(* const name)(struct kset *kset , struct kobject *kobj ) ;
1223 int (* const uevent)(struct kset *kset , struct kobject *kobj , struct kobj_uevent_env *env ) ;
1224};
1225#line 161 "include/linux/kobject.h"
1226struct kset {
1227 struct list_head list ;
1228 spinlock_t list_lock ;
1229 struct kobject kobj ;
1230 struct kset_uevent_ops const *uevent_ops ;
1231};
1232#line 19 "include/linux/klist.h"
1233struct klist_node;
1234#line 19
1235struct klist_node;
1236#line 39 "include/linux/klist.h"
1237struct klist_node {
1238 void *n_klist ;
1239 struct list_head n_node ;
1240 struct kref n_ref ;
1241};
1242#line 62 "include/linux/stat.h"
1243struct kstat {
1244 u64 ino ;
1245 dev_t dev ;
1246 umode_t mode ;
1247 unsigned int nlink ;
1248 uid_t uid ;
1249 gid_t gid ;
1250 dev_t rdev ;
1251 loff_t size ;
1252 struct timespec atime ;
1253 struct timespec mtime ;
1254 struct timespec ctime ;
1255 unsigned long blksize ;
1256 unsigned long long blocks ;
1257};
1258#line 72 "include/linux/rcupdate.h"
1259struct rcu_head {
1260 struct rcu_head *next ;
1261 void (*func)(struct rcu_head *head ) ;
1262};
1263#line 937 "include/linux/sysctl.h"
1264struct nsproxy;
1265#line 937
1266struct nsproxy;
1267#line 48 "include/linux/kmod.h"
1268struct cred;
1269#line 48
1270struct cred;
1271#line 27 "include/linux/elf.h"
1272typedef __u64 Elf64_Addr;
1273#line 28 "include/linux/elf.h"
1274typedef __u16 Elf64_Half;
1275#line 32 "include/linux/elf.h"
1276typedef __u32 Elf64_Word;
1277#line 33 "include/linux/elf.h"
1278typedef __u64 Elf64_Xword;
1279#line 203 "include/linux/elf.h"
1280struct elf64_sym {
1281 Elf64_Word st_name ;
1282 unsigned char st_info ;
1283 unsigned char st_other ;
1284 Elf64_Half st_shndx ;
1285 Elf64_Addr st_value ;
1286 Elf64_Xword st_size ;
1287};
1288#line 203 "include/linux/elf.h"
1289typedef struct elf64_sym Elf64_Sym;
1290#line 34 "include/linux/moduleparam.h"
1291struct kernel_param;
1292#line 34
1293struct kernel_param;
1294#line 36 "include/linux/moduleparam.h"
1295struct kernel_param_ops {
1296 int (*set)(char const *val , struct kernel_param const *kp ) ;
1297 int (*get)(char *buffer , struct kernel_param const *kp ) ;
1298 void (*free)(void *arg ) ;
1299};
1300#line 48
1301struct kparam_string;
1302#line 48
1303struct kparam_string;
1304#line 48
1305struct kparam_array;
1306#line 48
1307struct kparam_array;
1308#line 48 "include/linux/moduleparam.h"
1309union __anonunion____missing_field_name_203 {
1310 void *arg ;
1311 struct kparam_string const *str ;
1312 struct kparam_array const *arr ;
1313};
1314#line 48 "include/linux/moduleparam.h"
1315struct kernel_param {
1316 char const *name ;
1317 struct kernel_param_ops const *ops ;
1318 u16 perm ;
1319 u16 flags ;
1320 union __anonunion____missing_field_name_203 __annonCompField36 ;
1321};
1322#line 61 "include/linux/moduleparam.h"
1323struct kparam_string {
1324 unsigned int maxlen ;
1325 char *string ;
1326};
1327#line 67 "include/linux/moduleparam.h"
1328struct kparam_array {
1329 unsigned int max ;
1330 unsigned int elemsize ;
1331 unsigned int *num ;
1332 struct kernel_param_ops const *ops ;
1333 void *elem ;
1334};
1335#line 61 "include/linux/jump_label.h"
1336struct jump_label_key {
1337 atomic_t enabled ;
1338};
1339#line 23 "include/linux/tracepoint.h"
1340struct tracepoint;
1341#line 23
1342struct tracepoint;
1343#line 25 "include/linux/tracepoint.h"
1344struct tracepoint_func {
1345 void *func ;
1346 void *data ;
1347};
1348#line 30 "include/linux/tracepoint.h"
1349struct tracepoint {
1350 char const *name ;
1351 struct jump_label_key key ;
1352 void (*regfunc)(void) ;
1353 void (*unregfunc)(void) ;
1354 struct tracepoint_func *funcs ;
1355};
1356#line 8 "include/asm-generic/module.h"
1357struct mod_arch_specific {
1358
1359};
1360#line 37 "include/linux/module.h"
1361struct kernel_symbol {
1362 unsigned long value ;
1363 char const *name ;
1364};
1365#line 51 "include/linux/module.h"
1366struct module_attribute {
1367 struct attribute attr ;
1368 ssize_t (*show)(struct module_attribute * , struct module * , char * ) ;
1369 ssize_t (*store)(struct module_attribute * , struct module * , char const * ,
1370 size_t count ) ;
1371 void (*setup)(struct module * , char const * ) ;
1372 int (*test)(struct module * ) ;
1373 void (*free)(struct module * ) ;
1374};
1375#line 70
1376struct module_param_attrs;
1377#line 70
1378struct module_param_attrs;
1379#line 70 "include/linux/module.h"
1380struct module_kobject {
1381 struct kobject kobj ;
1382 struct module *mod ;
1383 struct kobject *drivers_dir ;
1384 struct module_param_attrs *mp ;
1385};
1386#line 83
1387struct exception_table_entry;
1388#line 83
1389struct exception_table_entry;
1390#line 265
1391enum module_state {
1392 MODULE_STATE_LIVE = 0,
1393 MODULE_STATE_COMING = 1,
1394 MODULE_STATE_GOING = 2
1395} ;
1396#line 272
1397struct module_sect_attrs;
1398#line 272
1399struct module_sect_attrs;
1400#line 272
1401struct module_notes_attrs;
1402#line 272
1403struct module_notes_attrs;
1404#line 272
1405struct ftrace_event_call;
1406#line 272
1407struct ftrace_event_call;
1408#line 272 "include/linux/module.h"
1409struct module_ref {
1410 unsigned int incs ;
1411 unsigned int decs ;
1412};
1413#line 272 "include/linux/module.h"
1414struct module {
1415 enum module_state state ;
1416 struct list_head list ;
1417 char name[64UL - sizeof(unsigned long )] ;
1418 struct module_kobject mkobj ;
1419 struct module_attribute *modinfo_attrs ;
1420 char const *version ;
1421 char const *srcversion ;
1422 struct kobject *holders_dir ;
1423 struct kernel_symbol const *syms ;
1424 unsigned long const *crcs ;
1425 unsigned int num_syms ;
1426 struct kernel_param *kp ;
1427 unsigned int num_kp ;
1428 unsigned int num_gpl_syms ;
1429 struct kernel_symbol const *gpl_syms ;
1430 unsigned long const *gpl_crcs ;
1431 struct kernel_symbol const *unused_syms ;
1432 unsigned long const *unused_crcs ;
1433 unsigned int num_unused_syms ;
1434 unsigned int num_unused_gpl_syms ;
1435 struct kernel_symbol const *unused_gpl_syms ;
1436 unsigned long const *unused_gpl_crcs ;
1437 struct kernel_symbol const *gpl_future_syms ;
1438 unsigned long const *gpl_future_crcs ;
1439 unsigned int num_gpl_future_syms ;
1440 unsigned int num_exentries ;
1441 struct exception_table_entry *extable ;
1442 int (*init)(void) ;
1443 void *module_init ;
1444 void *module_core ;
1445 unsigned int init_size ;
1446 unsigned int core_size ;
1447 unsigned int init_text_size ;
1448 unsigned int core_text_size ;
1449 unsigned int init_ro_size ;
1450 unsigned int core_ro_size ;
1451 struct mod_arch_specific arch ;
1452 unsigned int taints ;
1453 unsigned int num_bugs ;
1454 struct list_head bug_list ;
1455 struct bug_entry *bug_table ;
1456 Elf64_Sym *symtab ;
1457 Elf64_Sym *core_symtab ;
1458 unsigned int num_symtab ;
1459 unsigned int core_num_syms ;
1460 char *strtab ;
1461 char *core_strtab ;
1462 struct module_sect_attrs *sect_attrs ;
1463 struct module_notes_attrs *notes_attrs ;
1464 char *args ;
1465 void *percpu ;
1466 unsigned int percpu_size ;
1467 unsigned int num_tracepoints ;
1468 struct tracepoint * const *tracepoints_ptrs ;
1469 unsigned int num_trace_bprintk_fmt ;
1470 char const **trace_bprintk_fmt_start ;
1471 struct ftrace_event_call **trace_events ;
1472 unsigned int num_trace_events ;
1473 unsigned int num_ftrace_callsites ;
1474 unsigned long *ftrace_callsites ;
1475 struct list_head source_list ;
1476 struct list_head target_list ;
1477 struct task_struct *waiter ;
1478 void (*exit)(void) ;
1479 struct module_ref *refptr ;
1480 ctor_fn_t *ctors ;
1481 unsigned int num_ctors ;
1482};
1483#line 4 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
1484struct dma_map_ops;
1485#line 4
1486struct dma_map_ops;
1487#line 4 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
1488struct dev_archdata {
1489 void *acpi_handle ;
1490 struct dma_map_ops *dma_ops ;
1491 void *iommu ;
1492};
1493#line 29 "include/linux/device.h"
1494struct device_private;
1495#line 29
1496struct device_private;
1497#line 30
1498struct device_driver;
1499#line 30
1500struct device_driver;
1501#line 31
1502struct driver_private;
1503#line 31
1504struct driver_private;
1505#line 32
1506struct class;
1507#line 32
1508struct class;
1509#line 33
1510struct subsys_private;
1511#line 33
1512struct subsys_private;
1513#line 34
1514struct bus_type;
1515#line 34
1516struct bus_type;
1517#line 35
1518struct device_node;
1519#line 35
1520struct device_node;
1521#line 37 "include/linux/device.h"
1522struct bus_attribute {
1523 struct attribute attr ;
1524 ssize_t (*show)(struct bus_type *bus , char *buf ) ;
1525 ssize_t (*store)(struct bus_type *bus , char const *buf , size_t count ) ;
1526};
1527#line 82
1528struct device_attribute;
1529#line 82
1530struct device_attribute;
1531#line 82
1532struct driver_attribute;
1533#line 82
1534struct driver_attribute;
1535#line 82 "include/linux/device.h"
1536struct bus_type {
1537 char const *name ;
1538 struct bus_attribute *bus_attrs ;
1539 struct device_attribute *dev_attrs ;
1540 struct driver_attribute *drv_attrs ;
1541 int (*match)(struct device *dev , struct device_driver *drv ) ;
1542 int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
1543 int (*probe)(struct device *dev ) ;
1544 int (*remove)(struct device *dev ) ;
1545 void (*shutdown)(struct device *dev ) ;
1546 int (*suspend)(struct device *dev , pm_message_t state ) ;
1547 int (*resume)(struct device *dev ) ;
1548 struct dev_pm_ops const *pm ;
1549 struct subsys_private *p ;
1550};
1551#line 185
1552struct of_device_id;
1553#line 185
1554struct of_device_id;
1555#line 185 "include/linux/device.h"
1556struct device_driver {
1557 char const *name ;
1558 struct bus_type *bus ;
1559 struct module *owner ;
1560 char const *mod_name ;
1561 bool suppress_bind_attrs ;
1562 struct of_device_id const *of_match_table ;
1563 int (*probe)(struct device *dev ) ;
1564 int (*remove)(struct device *dev ) ;
1565 void (*shutdown)(struct device *dev ) ;
1566 int (*suspend)(struct device *dev , pm_message_t state ) ;
1567 int (*resume)(struct device *dev ) ;
1568 struct attribute_group const **groups ;
1569 struct dev_pm_ops const *pm ;
1570 struct driver_private *p ;
1571};
1572#line 222 "include/linux/device.h"
1573struct driver_attribute {
1574 struct attribute attr ;
1575 ssize_t (*show)(struct device_driver *driver , char *buf ) ;
1576 ssize_t (*store)(struct device_driver *driver , char const *buf , size_t count ) ;
1577};
1578#line 280
1579struct class_attribute;
1580#line 280
1581struct class_attribute;
1582#line 280 "include/linux/device.h"
1583struct class {
1584 char const *name ;
1585 struct module *owner ;
1586 struct class_attribute *class_attrs ;
1587 struct device_attribute *dev_attrs ;
1588 struct bin_attribute *dev_bin_attrs ;
1589 struct kobject *dev_kobj ;
1590 int (*dev_uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
1591 char *(*devnode)(struct device *dev , mode_t *mode ) ;
1592 void (*class_release)(struct class *class ) ;
1593 void (*dev_release)(struct device *dev ) ;
1594 int (*suspend)(struct device *dev , pm_message_t state ) ;
1595 int (*resume)(struct device *dev ) ;
1596 struct kobj_ns_type_operations const *ns_type ;
1597 void const *(*namespace)(struct device *dev ) ;
1598 struct dev_pm_ops const *pm ;
1599 struct subsys_private *p ;
1600};
1601#line 306
1602struct device_type;
1603#line 306
1604struct device_type;
1605#line 347 "include/linux/device.h"
1606struct class_attribute {
1607 struct attribute attr ;
1608 ssize_t (*show)(struct class *class , struct class_attribute *attr , char *buf ) ;
1609 ssize_t (*store)(struct class *class , struct class_attribute *attr , char const *buf ,
1610 size_t count ) ;
1611};
1612#line 413 "include/linux/device.h"
1613struct device_type {
1614 char const *name ;
1615 struct attribute_group const **groups ;
1616 int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
1617 char *(*devnode)(struct device *dev , mode_t *mode ) ;
1618 void (*release)(struct device *dev ) ;
1619 struct dev_pm_ops const *pm ;
1620};
1621#line 424 "include/linux/device.h"
1622struct device_attribute {
1623 struct attribute attr ;
1624 ssize_t (*show)(struct device *dev , struct device_attribute *attr , char *buf ) ;
1625 ssize_t (*store)(struct device *dev , struct device_attribute *attr , char const *buf ,
1626 size_t count ) ;
1627};
1628#line 484 "include/linux/device.h"
1629struct device_dma_parameters {
1630 unsigned int max_segment_size ;
1631 unsigned long segment_boundary_mask ;
1632};
1633#line 551
1634struct dma_coherent_mem;
1635#line 551
1636struct dma_coherent_mem;
1637#line 551 "include/linux/device.h"
1638struct device {
1639 struct device *parent ;
1640 struct device_private *p ;
1641 struct kobject kobj ;
1642 char const *init_name ;
1643 struct device_type const *type ;
1644 struct mutex mutex ;
1645 struct bus_type *bus ;
1646 struct device_driver *driver ;
1647 void *platform_data ;
1648 struct dev_pm_info power ;
1649 struct dev_power_domain *pwr_domain ;
1650 int numa_node ;
1651 u64 *dma_mask ;
1652 u64 coherent_dma_mask ;
1653 struct device_dma_parameters *dma_parms ;
1654 struct list_head dma_pools ;
1655 struct dma_coherent_mem *dma_mem ;
1656 struct dev_archdata archdata ;
1657 struct device_node *of_node ;
1658 dev_t devt ;
1659 spinlock_t devres_lock ;
1660 struct list_head devres_head ;
1661 struct klist_node knode_class ;
1662 struct class *class ;
1663 struct attribute_group const **groups ;
1664 void (*release)(struct device *dev ) ;
1665};
1666#line 43 "include/linux/pm_wakeup.h"
1667struct wakeup_source {
1668 char *name ;
1669 struct list_head entry ;
1670 spinlock_t lock ;
1671 struct timer_list timer ;
1672 unsigned long timer_expires ;
1673 ktime_t total_time ;
1674 ktime_t max_time ;
1675 ktime_t last_time ;
1676 unsigned long event_count ;
1677 unsigned long active_count ;
1678 unsigned long relax_count ;
1679 unsigned long hit_count ;
1680 unsigned int active : 1 ;
1681};
1682#line 219 "include/linux/mod_devicetable.h"
1683struct of_device_id {
1684 char name[32] ;
1685 char type[32] ;
1686 char compatible[128] ;
1687 void *data ;
1688};
1689#line 62 "include/linux/virtio_ring.h"
1690struct vring_desc {
1691 __u64 addr ;
1692 __u32 len ;
1693 __u16 flags ;
1694 __u16 next ;
1695};
1696#line 73 "include/linux/virtio_ring.h"
1697struct vring_avail {
1698 __u16 flags ;
1699 __u16 idx ;
1700 __u16 ring[] ;
1701};
1702#line 80 "include/linux/virtio_ring.h"
1703struct vring_used_elem {
1704 __u32 id ;
1705 __u32 len ;
1706};
1707#line 87 "include/linux/virtio_ring.h"
1708struct vring_used {
1709 __u16 flags ;
1710 __u16 idx ;
1711 struct vring_used_elem ring[] ;
1712};
1713#line 10 "include/linux/irqreturn.h"
1714enum irqreturn {
1715 IRQ_NONE = 0,
1716 IRQ_HANDLED = 1,
1717 IRQ_WAKE_THREAD = 2
1718} ;
1719#line 16 "include/linux/irqreturn.h"
1720typedef enum irqreturn irqreturn_t;
1721#line 19 "include/linux/vhost.h"
1722struct vhost_vring_state {
1723 unsigned int index ;
1724 unsigned int num ;
1725};
1726#line 24 "include/linux/vhost.h"
1727struct vhost_vring_file {
1728 unsigned int index ;
1729 int fd ;
1730};
1731#line 30 "include/linux/vhost.h"
1732struct vhost_vring_addr {
1733 unsigned int index ;
1734 unsigned int flags ;
1735 __u64 desc_user_addr ;
1736 __u64 used_user_addr ;
1737 __u64 avail_user_addr ;
1738 __u64 log_guest_addr ;
1739};
1740#line 50 "include/linux/vhost.h"
1741struct vhost_memory_region {
1742 __u64 guest_phys_addr ;
1743 __u64 memory_size ;
1744 __u64 userspace_addr ;
1745 __u64 flags_padding ;
1746};
1747#line 60 "include/linux/vhost.h"
1748struct vhost_memory {
1749 __u32 nregions ;
1750 __u32 padding ;
1751 struct vhost_memory_region regions[0] ;
1752};
1753#line 16 "include/linux/uio.h"
1754struct iovec {
1755 void *iov_base ;
1756 __kernel_size_t iov_len ;
1757};
1758#line 65 "include/linux/net.h"
1759struct poll_table_struct;
1760#line 65
1761struct poll_table_struct;
1762#line 66
1763struct pipe_inode_info;
1764#line 66
1765struct pipe_inode_info;
1766#line 121
1767struct fasync_struct;
1768#line 121
1769struct fasync_struct;
1770#line 156
1771struct kiocb;
1772#line 156
1773struct kiocb;
1774#line 38 "include/linux/slub_def.h"
1775struct kmem_cache_cpu {
1776 void **freelist ;
1777 unsigned long tid ;
1778 struct page *page ;
1779 int node ;
1780 unsigned int stat[19] ;
1781};
1782#line 48 "include/linux/slub_def.h"
1783struct kmem_cache_node {
1784 spinlock_t list_lock ;
1785 unsigned long nr_partial ;
1786 struct list_head partial ;
1787 atomic_long_t nr_slabs ;
1788 atomic_long_t total_objects ;
1789 struct list_head full ;
1790};
1791#line 64 "include/linux/slub_def.h"
1792struct kmem_cache_order_objects {
1793 unsigned long x ;
1794};
1795#line 71 "include/linux/slub_def.h"
1796struct kmem_cache {
1797 struct kmem_cache_cpu *cpu_slab ;
1798 unsigned long flags ;
1799 unsigned long min_partial ;
1800 int size ;
1801 int objsize ;
1802 int offset ;
1803 struct kmem_cache_order_objects oo ;
1804 struct kmem_cache_order_objects max ;
1805 struct kmem_cache_order_objects min ;
1806 gfp_t allocflags ;
1807 int refcount ;
1808 void (*ctor)(void * ) ;
1809 int inuse ;
1810 int align ;
1811 int reserved ;
1812 char const *name ;
1813 struct list_head list ;
1814 struct kobject kobj ;
1815 int remote_node_defrag_ratio ;
1816 struct kmem_cache_node *node[1 << 10] ;
1817};
1818#line 94 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess.h"
1819struct exception_table_entry {
1820 unsigned long insn ;
1821 unsigned long fixup ;
1822};
1823#line 431 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess.h"
1824struct __large_struct {
1825 unsigned long buf[100] ;
1826};
1827#line 25 "include/linux/dma-attrs.h"
1828struct dma_attrs {
1829 unsigned long flags[((2UL + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
1830};
1831#line 11 "include/linux/dma-mapping.h"
1832enum dma_data_direction {
1833 DMA_BIDIRECTIONAL = 0,
1834 DMA_TO_DEVICE = 1,
1835 DMA_FROM_DEVICE = 2,
1836 DMA_NONE = 3
1837} ;
1838#line 18 "include/linux/dma-mapping.h"
1839struct dma_map_ops {
1840 void *(*alloc_coherent)(struct device *dev , size_t size , dma_addr_t *dma_handle ,
1841 gfp_t gfp ) ;
1842 void (*free_coherent)(struct device *dev , size_t size , void *vaddr , dma_addr_t dma_handle ) ;
1843 dma_addr_t (*map_page)(struct device *dev , struct page *page , unsigned long offset ,
1844 size_t size , enum dma_data_direction dir , struct dma_attrs *attrs ) ;
1845 void (*unmap_page)(struct device *dev , dma_addr_t dma_handle , size_t size , enum dma_data_direction dir ,
1846 struct dma_attrs *attrs ) ;
1847 int (*map_sg)(struct device *dev , struct scatterlist *sg , int nents , enum dma_data_direction dir ,
1848 struct dma_attrs *attrs ) ;
1849 void (*unmap_sg)(struct device *dev , struct scatterlist *sg , int nents , enum dma_data_direction dir ,
1850 struct dma_attrs *attrs ) ;
1851 void (*sync_single_for_cpu)(struct device *dev , dma_addr_t dma_handle , size_t size ,
1852 enum dma_data_direction dir ) ;
1853 void (*sync_single_for_device)(struct device *dev , dma_addr_t dma_handle , size_t size ,
1854 enum dma_data_direction dir ) ;
1855 void (*sync_sg_for_cpu)(struct device *dev , struct scatterlist *sg , int nents ,
1856 enum dma_data_direction dir ) ;
1857 void (*sync_sg_for_device)(struct device *dev , struct scatterlist *sg , int nents ,
1858 enum dma_data_direction dir ) ;
1859 int (*mapping_error)(struct device *dev , dma_addr_t dma_addr ) ;
1860 int (*dma_supported)(struct device *dev , u64 mask ) ;
1861 int (*set_dma_mask)(struct device *dev , u64 mask ) ;
1862 int is_phys ;
1863};
1864#line 8 "include/linux/timerqueue.h"
1865struct timerqueue_node {
1866 struct rb_node node ;
1867 ktime_t expires ;
1868};
1869#line 13 "include/linux/timerqueue.h"
1870struct timerqueue_head {
1871 struct rb_root head ;
1872 struct timerqueue_node *next ;
1873};
1874#line 27 "include/linux/hrtimer.h"
1875struct hrtimer_clock_base;
1876#line 27
1877struct hrtimer_clock_base;
1878#line 28
1879struct hrtimer_cpu_base;
1880#line 28
1881struct hrtimer_cpu_base;
1882#line 44
1883enum hrtimer_restart {
1884 HRTIMER_NORESTART = 0,
1885 HRTIMER_RESTART = 1
1886} ;
1887#line 108 "include/linux/hrtimer.h"
1888struct hrtimer {
1889 struct timerqueue_node node ;
1890 ktime_t _softexpires ;
1891 enum hrtimer_restart (*function)(struct hrtimer * ) ;
1892 struct hrtimer_clock_base *base ;
1893 unsigned long state ;
1894 int start_pid ;
1895 void *start_site ;
1896 char start_comm[16] ;
1897};
1898#line 145 "include/linux/hrtimer.h"
1899struct hrtimer_clock_base {
1900 struct hrtimer_cpu_base *cpu_base ;
1901 int index ;
1902 clockid_t clockid ;
1903 struct timerqueue_head active ;
1904 ktime_t resolution ;
1905 ktime_t (*get_time)(void) ;
1906 ktime_t softirq_time ;
1907 ktime_t offset ;
1908};
1909#line 178 "include/linux/hrtimer.h"
1910struct hrtimer_cpu_base {
1911 raw_spinlock_t lock ;
1912 unsigned long active_bases ;
1913 ktime_t expires_next ;
1914 int hres_active ;
1915 int hang_detected ;
1916 unsigned long nr_events ;
1917 unsigned long nr_retries ;
1918 unsigned long nr_hangs ;
1919 ktime_t max_hang_time ;
1920 struct hrtimer_clock_base clock_base[3] ;
1921};
1922#line 64 "include/linux/virtio_net.h"
1923struct virtio_net_hdr {
1924 __u8 flags ;
1925 __u8 gso_type ;
1926 __u16 hdr_len ;
1927 __u16 gso_size ;
1928 __u16 csum_start ;
1929 __u16 csum_offset ;
1930};
1931#line 81 "include/linux/virtio_net.h"
1932struct virtio_net_hdr_mrg_rxbuf {
1933 struct virtio_net_hdr hdr ;
1934 __u16 num_buffers ;
1935};
1936#line 31 "include/asm-generic/poll.h"
1937struct pollfd {
1938 int fd ;
1939 short events ;
1940 short revents ;
1941};
1942#line 16 "include/linux/blk_types.h"
1943struct block_device;
1944#line 16
1945struct block_device;
1946#line 33 "include/linux/list_bl.h"
1947struct hlist_bl_node;
1948#line 33
1949struct hlist_bl_node;
1950#line 33 "include/linux/list_bl.h"
1951struct hlist_bl_head {
1952 struct hlist_bl_node *first ;
1953};
1954#line 37 "include/linux/list_bl.h"
1955struct hlist_bl_node {
1956 struct hlist_bl_node *next ;
1957 struct hlist_bl_node **pprev ;
1958};
1959#line 13 "include/linux/dcache.h"
1960struct nameidata;
1961#line 13
1962struct nameidata;
1963#line 35 "include/linux/dcache.h"
1964struct qstr {
1965 unsigned int hash ;
1966 unsigned int len ;
1967 unsigned char const *name ;
1968};
1969#line 116
1970struct dentry_operations;
1971#line 116
1972struct dentry_operations;
1973#line 116
1974struct super_block;
1975#line 116
1976struct super_block;
1977#line 116 "include/linux/dcache.h"
1978union __anonunion_d_u_215 {
1979 struct list_head d_child ;
1980 struct rcu_head d_rcu ;
1981};
1982#line 116 "include/linux/dcache.h"
1983struct dentry {
1984 unsigned int d_flags ;
1985 seqcount_t d_seq ;
1986 struct hlist_bl_node d_hash ;
1987 struct dentry *d_parent ;
1988 struct qstr d_name ;
1989 struct inode *d_inode ;
1990 unsigned char d_iname[32] ;
1991 unsigned int d_count ;
1992 spinlock_t d_lock ;
1993 struct dentry_operations const *d_op ;
1994 struct super_block *d_sb ;
1995 unsigned long d_time ;
1996 void *d_fsdata ;
1997 struct list_head d_lru ;
1998 union __anonunion_d_u_215 d_u ;
1999 struct list_head d_subdirs ;
2000 struct list_head d_alias ;
2001};
2002#line 159 "include/linux/dcache.h"
2003struct dentry_operations {
2004 int (*d_revalidate)(struct dentry * , struct nameidata * ) ;
2005 int (*d_hash)(struct dentry const * , struct inode const * , struct qstr * ) ;
2006 int (*d_compare)(struct dentry const * , struct inode const * , struct dentry const * ,
2007 struct inode const * , unsigned int , char const * , struct qstr const * ) ;
2008 int (*d_delete)(struct dentry const * ) ;
2009 void (*d_release)(struct dentry * ) ;
2010 void (*d_iput)(struct dentry * , struct inode * ) ;
2011 char *(*d_dname)(struct dentry * , char * , int ) ;
2012 struct vfsmount *(*d_automount)(struct path * ) ;
2013 int (*d_manage)(struct dentry * , bool ) ;
2014} __attribute__((__aligned__((1) << (6) ))) ;
2015#line 7 "include/linux/path.h"
2016struct path {
2017 struct vfsmount *mnt ;
2018 struct dentry *dentry ;
2019};
2020#line 57 "include/linux/radix-tree.h"
2021struct radix_tree_node;
2022#line 57
2023struct radix_tree_node;
2024#line 57 "include/linux/radix-tree.h"
2025struct radix_tree_root {
2026 unsigned int height ;
2027 gfp_t gfp_mask ;
2028 struct radix_tree_node *rnode ;
2029};
2030#line 6 "include/linux/pid.h"
2031enum pid_type {
2032 PIDTYPE_PID = 0,
2033 PIDTYPE_PGID = 1,
2034 PIDTYPE_SID = 2,
2035 PIDTYPE_MAX = 3
2036} ;
2037#line 50
2038struct pid_namespace;
2039#line 50
2040struct pid_namespace;
2041#line 50 "include/linux/pid.h"
2042struct upid {
2043 int nr ;
2044 struct pid_namespace *ns ;
2045 struct hlist_node pid_chain ;
2046};
2047#line 57 "include/linux/pid.h"
2048struct pid {
2049 atomic_t count ;
2050 unsigned int level ;
2051 struct hlist_head tasks[3] ;
2052 struct rcu_head rcu ;
2053 struct upid numbers[1] ;
2054};
2055#line 69 "include/linux/pid.h"
2056struct pid_link {
2057 struct hlist_node node ;
2058 struct pid *pid ;
2059};
2060#line 94 "include/linux/capability.h"
2061struct kernel_cap_struct {
2062 __u32 cap[2] ;
2063};
2064#line 94 "include/linux/capability.h"
2065typedef struct kernel_cap_struct kernel_cap_t;
2066#line 377
2067struct user_namespace;
2068#line 377
2069struct user_namespace;
2070#line 16 "include/linux/fiemap.h"
2071struct fiemap_extent {
2072 __u64 fe_logical ;
2073 __u64 fe_physical ;
2074 __u64 fe_length ;
2075 __u64 fe_reserved64[2] ;
2076 __u32 fe_flags ;
2077 __u32 fe_reserved[3] ;
2078};
2079#line 399 "include/linux/fs.h"
2080struct export_operations;
2081#line 399
2082struct export_operations;
2083#line 407
2084struct kstatfs;
2085#line 407
2086struct kstatfs;
2087#line 460 "include/linux/fs.h"
2088struct iattr {
2089 unsigned int ia_valid ;
2090 umode_t ia_mode ;
2091 uid_t ia_uid ;
2092 gid_t ia_gid ;
2093 loff_t ia_size ;
2094 struct timespec ia_atime ;
2095 struct timespec ia_mtime ;
2096 struct timespec ia_ctime ;
2097 struct file *ia_file ;
2098};
2099#line 129 "include/linux/quota.h"
2100struct if_dqinfo {
2101 __u64 dqi_bgrace ;
2102 __u64 dqi_igrace ;
2103 __u32 dqi_flags ;
2104 __u32 dqi_valid ;
2105};
2106#line 50 "include/linux/dqblk_xfs.h"
2107struct fs_disk_quota {
2108 __s8 d_version ;
2109 __s8 d_flags ;
2110 __u16 d_fieldmask ;
2111 __u32 d_id ;
2112 __u64 d_blk_hardlimit ;
2113 __u64 d_blk_softlimit ;
2114 __u64 d_ino_hardlimit ;
2115 __u64 d_ino_softlimit ;
2116 __u64 d_bcount ;
2117 __u64 d_icount ;
2118 __s32 d_itimer ;
2119 __s32 d_btimer ;
2120 __u16 d_iwarns ;
2121 __u16 d_bwarns ;
2122 __s32 d_padding2 ;
2123 __u64 d_rtb_hardlimit ;
2124 __u64 d_rtb_softlimit ;
2125 __u64 d_rtbcount ;
2126 __s32 d_rtbtimer ;
2127 __u16 d_rtbwarns ;
2128 __s16 d_padding3 ;
2129 char d_padding4[8] ;
2130};
2131#line 146 "include/linux/dqblk_xfs.h"
2132struct fs_qfilestat {
2133 __u64 qfs_ino ;
2134 __u64 qfs_nblks ;
2135 __u32 qfs_nextents ;
2136};
2137#line 146 "include/linux/dqblk_xfs.h"
2138typedef struct fs_qfilestat fs_qfilestat_t;
2139#line 152 "include/linux/dqblk_xfs.h"
2140struct fs_quota_stat {
2141 __s8 qs_version ;
2142 __u16 qs_flags ;
2143 __s8 qs_pad ;
2144 fs_qfilestat_t qs_uquota ;
2145 fs_qfilestat_t qs_gquota ;
2146 __u32 qs_incoredqs ;
2147 __s32 qs_btimelimit ;
2148 __s32 qs_itimelimit ;
2149 __s32 qs_rtbtimelimit ;
2150 __u16 qs_bwarnlimit ;
2151 __u16 qs_iwarnlimit ;
2152};
2153#line 17 "include/linux/dqblk_qtree.h"
2154struct dquot;
2155#line 17
2156struct dquot;
2157#line 185 "include/linux/quota.h"
2158typedef __kernel_uid32_t qid_t;
2159#line 186 "include/linux/quota.h"
2160typedef long long qsize_t;
2161#line 200 "include/linux/quota.h"
2162struct mem_dqblk {
2163 qsize_t dqb_bhardlimit ;
2164 qsize_t dqb_bsoftlimit ;
2165 qsize_t dqb_curspace ;
2166 qsize_t dqb_rsvspace ;
2167 qsize_t dqb_ihardlimit ;
2168 qsize_t dqb_isoftlimit ;
2169 qsize_t dqb_curinodes ;
2170 time_t dqb_btime ;
2171 time_t dqb_itime ;
2172};
2173#line 215
2174struct quota_format_type;
2175#line 215
2176struct quota_format_type;
2177#line 217 "include/linux/quota.h"
2178struct mem_dqinfo {
2179 struct quota_format_type *dqi_format ;
2180 int dqi_fmt_id ;
2181 struct list_head dqi_dirty_list ;
2182 unsigned long dqi_flags ;
2183 unsigned int dqi_bgrace ;
2184 unsigned int dqi_igrace ;
2185 qsize_t dqi_maxblimit ;
2186 qsize_t dqi_maxilimit ;
2187 void *dqi_priv ;
2188};
2189#line 284 "include/linux/quota.h"
2190struct dquot {
2191 struct hlist_node dq_hash ;
2192 struct list_head dq_inuse ;
2193 struct list_head dq_free ;
2194 struct list_head dq_dirty ;
2195 struct mutex dq_lock ;
2196 atomic_t dq_count ;
2197 wait_queue_head_t dq_wait_unused ;
2198 struct super_block *dq_sb ;
2199 unsigned int dq_id ;
2200 loff_t dq_off ;
2201 unsigned long dq_flags ;
2202 short dq_type ;
2203 struct mem_dqblk dq_dqb ;
2204};
2205#line 301 "include/linux/quota.h"
2206struct quota_format_ops {
2207 int (*check_quota_file)(struct super_block *sb , int type ) ;
2208 int (*read_file_info)(struct super_block *sb , int type ) ;
2209 int (*write_file_info)(struct super_block *sb , int type ) ;
2210 int (*free_file_info)(struct super_block *sb , int type ) ;
2211 int (*read_dqblk)(struct dquot *dquot ) ;
2212 int (*commit_dqblk)(struct dquot *dquot ) ;
2213 int (*release_dqblk)(struct dquot *dquot ) ;
2214};
2215#line 312 "include/linux/quota.h"
2216struct dquot_operations {
2217 int (*write_dquot)(struct dquot * ) ;
2218 struct dquot *(*alloc_dquot)(struct super_block * , int ) ;
2219 void (*destroy_dquot)(struct dquot * ) ;
2220 int (*acquire_dquot)(struct dquot * ) ;
2221 int (*release_dquot)(struct dquot * ) ;
2222 int (*mark_dirty)(struct dquot * ) ;
2223 int (*write_info)(struct super_block * , int ) ;
2224 qsize_t *(*get_reserved_space)(struct inode * ) ;
2225};
2226#line 328 "include/linux/quota.h"
2227struct quotactl_ops {
2228 int (*quota_on)(struct super_block * , int , int , struct path * ) ;
2229 int (*quota_on_meta)(struct super_block * , int , int ) ;
2230 int (*quota_off)(struct super_block * , int ) ;
2231 int (*quota_sync)(struct super_block * , int , int ) ;
2232 int (*get_info)(struct super_block * , int , struct if_dqinfo * ) ;
2233 int (*set_info)(struct super_block * , int , struct if_dqinfo * ) ;
2234 int (*get_dqblk)(struct super_block * , int , qid_t , struct fs_disk_quota * ) ;
2235 int (*set_dqblk)(struct super_block * , int , qid_t , struct fs_disk_quota * ) ;
2236 int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ;
2237 int (*set_xstate)(struct super_block * , unsigned int , int ) ;
2238};
2239#line 341 "include/linux/quota.h"
2240struct quota_format_type {
2241 int qf_fmt_id ;
2242 struct quota_format_ops const *qf_ops ;
2243 struct module *qf_owner ;
2244 struct quota_format_type *qf_next ;
2245};
2246#line 395 "include/linux/quota.h"
2247struct quota_info {
2248 unsigned int flags ;
2249 struct mutex dqio_mutex ;
2250 struct mutex dqonoff_mutex ;
2251 struct rw_semaphore dqptr_sem ;
2252 struct inode *files[2] ;
2253 struct mem_dqinfo info[2] ;
2254 struct quota_format_ops const *ops[2] ;
2255};
2256#line 568 "include/linux/fs.h"
2257union __anonunion_arg_223 {
2258 char *buf ;
2259 void *data ;
2260};
2261#line 568 "include/linux/fs.h"
2262struct __anonstruct_read_descriptor_t_222 {
2263 size_t written ;
2264 size_t count ;
2265 union __anonunion_arg_223 arg ;
2266 int error ;
2267};
2268#line 568 "include/linux/fs.h"
2269typedef struct __anonstruct_read_descriptor_t_222 read_descriptor_t;
2270#line 581 "include/linux/fs.h"
2271struct address_space_operations {
2272 int (*writepage)(struct page *page , struct writeback_control *wbc ) ;
2273 int (*readpage)(struct file * , struct page * ) ;
2274 int (*writepages)(struct address_space * , struct writeback_control * ) ;
2275 int (*set_page_dirty)(struct page *page ) ;
2276 int (*readpages)(struct file *filp , struct address_space *mapping , struct list_head *pages ,
2277 unsigned int nr_pages ) ;
2278 int (*write_begin)(struct file * , struct address_space *mapping , loff_t pos ,
2279 unsigned int len , unsigned int flags , struct page **pagep ,
2280 void **fsdata ) ;
2281 int (*write_end)(struct file * , struct address_space *mapping , loff_t pos , unsigned int len ,
2282 unsigned int copied , struct page *page , void *fsdata ) ;
2283 sector_t (*bmap)(struct address_space * , sector_t ) ;
2284 void (*invalidatepage)(struct page * , unsigned long ) ;
2285 int (*releasepage)(struct page * , gfp_t ) ;
2286 void (*freepage)(struct page * ) ;
2287 ssize_t (*direct_IO)(int , struct kiocb * , struct iovec const *iov , loff_t offset ,
2288 unsigned long nr_segs ) ;
2289 int (*get_xip_mem)(struct address_space * , unsigned long , int , void ** , unsigned long * ) ;
2290 int (*migratepage)(struct address_space * , struct page * , struct page * ) ;
2291 int (*launder_page)(struct page * ) ;
2292 int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long ) ;
2293 int (*error_remove_page)(struct address_space * , struct page * ) ;
2294};
2295#line 633
2296struct backing_dev_info;
2297#line 633
2298struct backing_dev_info;
2299#line 634 "include/linux/fs.h"
2300struct address_space {
2301 struct inode *host ;
2302 struct radix_tree_root page_tree ;
2303 spinlock_t tree_lock ;
2304 unsigned int i_mmap_writable ;
2305 struct prio_tree_root i_mmap ;
2306 struct list_head i_mmap_nonlinear ;
2307 struct mutex i_mmap_mutex ;
2308 unsigned long nrpages ;
2309 unsigned long writeback_index ;
2310 struct address_space_operations const *a_ops ;
2311 unsigned long flags ;
2312 struct backing_dev_info *backing_dev_info ;
2313 spinlock_t private_lock ;
2314 struct list_head private_list ;
2315 struct address_space *assoc_mapping ;
2316} __attribute__((__aligned__(sizeof(long )))) ;
2317#line 658
2318struct hd_struct;
2319#line 658
2320struct hd_struct;
2321#line 658
2322struct gendisk;
2323#line 658
2324struct gendisk;
2325#line 658 "include/linux/fs.h"
2326struct block_device {
2327 dev_t bd_dev ;
2328 int bd_openers ;
2329 struct inode *bd_inode ;
2330 struct super_block *bd_super ;
2331 struct mutex bd_mutex ;
2332 struct list_head bd_inodes ;
2333 void *bd_claiming ;
2334 void *bd_holder ;
2335 int bd_holders ;
2336 bool bd_write_holder ;
2337 struct list_head bd_holder_disks ;
2338 struct block_device *bd_contains ;
2339 unsigned int bd_block_size ;
2340 struct hd_struct *bd_part ;
2341 unsigned int bd_part_count ;
2342 int bd_invalidated ;
2343 struct gendisk *bd_disk ;
2344 struct list_head bd_list ;
2345 unsigned long bd_private ;
2346 int bd_fsfreeze_count ;
2347 struct mutex bd_fsfreeze_mutex ;
2348};
2349#line 735
2350struct posix_acl;
2351#line 735
2352struct posix_acl;
2353#line 738
2354struct inode_operations;
2355#line 738
2356struct inode_operations;
2357#line 738 "include/linux/fs.h"
2358union __anonunion____missing_field_name_224 {
2359 struct list_head i_dentry ;
2360 struct rcu_head i_rcu ;
2361};
2362#line 738
2363struct file_lock;
2364#line 738
2365struct file_lock;
2366#line 738
2367struct cdev;
2368#line 738
2369struct cdev;
2370#line 738 "include/linux/fs.h"
2371union __anonunion____missing_field_name_225 {
2372 struct pipe_inode_info *i_pipe ;
2373 struct block_device *i_bdev ;
2374 struct cdev *i_cdev ;
2375};
2376#line 738 "include/linux/fs.h"
2377struct inode {
2378 umode_t i_mode ;
2379 uid_t i_uid ;
2380 gid_t i_gid ;
2381 struct inode_operations const *i_op ;
2382 struct super_block *i_sb ;
2383 spinlock_t i_lock ;
2384 unsigned int i_flags ;
2385 unsigned long i_state ;
2386 void *i_security ;
2387 struct mutex i_mutex ;
2388 unsigned long dirtied_when ;
2389 struct hlist_node i_hash ;
2390 struct list_head i_wb_list ;
2391 struct list_head i_lru ;
2392 struct list_head i_sb_list ;
2393 union __anonunion____missing_field_name_224 __annonCompField40 ;
2394 unsigned long i_ino ;
2395 atomic_t i_count ;
2396 unsigned int i_nlink ;
2397 dev_t i_rdev ;
2398 unsigned int i_blkbits ;
2399 u64 i_version ;
2400 loff_t i_size ;
2401 struct timespec i_atime ;
2402 struct timespec i_mtime ;
2403 struct timespec i_ctime ;
2404 blkcnt_t i_blocks ;
2405 unsigned short i_bytes ;
2406 struct rw_semaphore i_alloc_sem ;
2407 struct file_operations const *i_fop ;
2408 struct file_lock *i_flock ;
2409 struct address_space *i_mapping ;
2410 struct address_space i_data ;
2411 struct dquot *i_dquot[2] ;
2412 struct list_head i_devices ;
2413 union __anonunion____missing_field_name_225 __annonCompField41 ;
2414 __u32 i_generation ;
2415 __u32 i_fsnotify_mask ;
2416 struct hlist_head i_fsnotify_marks ;
2417 atomic_t i_readcount ;
2418 atomic_t i_writecount ;
2419 struct posix_acl *i_acl ;
2420 struct posix_acl *i_default_acl ;
2421 void *i_private ;
2422};
2423#line 903 "include/linux/fs.h"
2424struct fown_struct {
2425 rwlock_t lock ;
2426 struct pid *pid ;
2427 enum pid_type pid_type ;
2428 uid_t uid ;
2429 uid_t euid ;
2430 int signum ;
2431};
2432#line 914 "include/linux/fs.h"
2433struct file_ra_state {
2434 unsigned long start ;
2435 unsigned int size ;
2436 unsigned int async_size ;
2437 unsigned int ra_pages ;
2438 unsigned int mmap_miss ;
2439 loff_t prev_pos ;
2440};
2441#line 937 "include/linux/fs.h"
2442union __anonunion_f_u_226 {
2443 struct list_head fu_list ;
2444 struct rcu_head fu_rcuhead ;
2445};
2446#line 937 "include/linux/fs.h"
2447struct file {
2448 union __anonunion_f_u_226 f_u ;
2449 struct path f_path ;
2450 struct file_operations const *f_op ;
2451 spinlock_t f_lock ;
2452 int f_sb_list_cpu ;
2453 atomic_long_t f_count ;
2454 unsigned int f_flags ;
2455 fmode_t f_mode ;
2456 loff_t f_pos ;
2457 struct fown_struct f_owner ;
2458 struct cred const *f_cred ;
2459 struct file_ra_state f_ra ;
2460 u64 f_version ;
2461 void *f_security ;
2462 void *private_data ;
2463 struct list_head f_ep_links ;
2464 struct address_space *f_mapping ;
2465 unsigned long f_mnt_write_state ;
2466};
2467#line 1064
2468struct files_struct;
2469#line 1064
2470struct files_struct;
2471#line 1064 "include/linux/fs.h"
2472typedef struct files_struct *fl_owner_t;
2473#line 1066 "include/linux/fs.h"
2474struct file_lock_operations {
2475 void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ;
2476 void (*fl_release_private)(struct file_lock * ) ;
2477};
2478#line 1071 "include/linux/fs.h"
2479struct lock_manager_operations {
2480 int (*fl_compare_owner)(struct file_lock * , struct file_lock * ) ;
2481 void (*fl_notify)(struct file_lock * ) ;
2482 int (*fl_grant)(struct file_lock * , struct file_lock * , int ) ;
2483 void (*fl_release_private)(struct file_lock * ) ;
2484 void (*fl_break)(struct file_lock * ) ;
2485 int (*fl_change)(struct file_lock ** , int ) ;
2486};
2487#line 8 "include/linux/nfs_fs_i.h"
2488struct nlm_lockowner;
2489#line 8
2490struct nlm_lockowner;
2491#line 13 "include/linux/nfs_fs_i.h"
2492struct nfs_lock_info {
2493 u32 state ;
2494 struct nlm_lockowner *owner ;
2495 struct list_head list ;
2496};
2497#line 19
2498struct nfs4_lock_state;
2499#line 19
2500struct nfs4_lock_state;
2501#line 20 "include/linux/nfs_fs_i.h"
2502struct nfs4_lock_info {
2503 struct nfs4_lock_state *owner ;
2504};
2505#line 1091 "include/linux/fs.h"
2506struct __anonstruct_afs_228 {
2507 struct list_head link ;
2508 int state ;
2509};
2510#line 1091 "include/linux/fs.h"
2511union __anonunion_fl_u_227 {
2512 struct nfs_lock_info nfs_fl ;
2513 struct nfs4_lock_info nfs4_fl ;
2514 struct __anonstruct_afs_228 afs ;
2515};
2516#line 1091 "include/linux/fs.h"
2517struct file_lock {
2518 struct file_lock *fl_next ;
2519 struct list_head fl_link ;
2520 struct list_head fl_block ;
2521 fl_owner_t fl_owner ;
2522 unsigned char fl_flags ;
2523 unsigned char fl_type ;
2524 unsigned int fl_pid ;
2525 struct pid *fl_nspid ;
2526 wait_queue_head_t fl_wait ;
2527 struct file *fl_file ;
2528 loff_t fl_start ;
2529 loff_t fl_end ;
2530 struct fasync_struct *fl_fasync ;
2531 unsigned long fl_break_time ;
2532 struct file_lock_operations const *fl_ops ;
2533 struct lock_manager_operations const *fl_lmops ;
2534 union __anonunion_fl_u_227 fl_u ;
2535};
2536#line 1324 "include/linux/fs.h"
2537struct fasync_struct {
2538 spinlock_t fa_lock ;
2539 int magic ;
2540 int fa_fd ;
2541 struct fasync_struct *fa_next ;
2542 struct file *fa_file ;
2543 struct rcu_head fa_rcu ;
2544};
2545#line 1364
2546struct file_system_type;
2547#line 1364
2548struct file_system_type;
2549#line 1364
2550struct super_operations;
2551#line 1364
2552struct super_operations;
2553#line 1364
2554struct xattr_handler;
2555#line 1364
2556struct xattr_handler;
2557#line 1364
2558struct mtd_info;
2559#line 1364
2560struct mtd_info;
2561#line 1364 "include/linux/fs.h"
2562struct super_block {
2563 struct list_head s_list ;
2564 dev_t s_dev ;
2565 unsigned char s_dirt ;
2566 unsigned char s_blocksize_bits ;
2567 unsigned long s_blocksize ;
2568 loff_t s_maxbytes ;
2569 struct file_system_type *s_type ;
2570 struct super_operations const *s_op ;
2571 struct dquot_operations const *dq_op ;
2572 struct quotactl_ops const *s_qcop ;
2573 struct export_operations const *s_export_op ;
2574 unsigned long s_flags ;
2575 unsigned long s_magic ;
2576 struct dentry *s_root ;
2577 struct rw_semaphore s_umount ;
2578 struct mutex s_lock ;
2579 int s_count ;
2580 atomic_t s_active ;
2581 void *s_security ;
2582 struct xattr_handler const **s_xattr ;
2583 struct list_head s_inodes ;
2584 struct hlist_bl_head s_anon ;
2585 struct list_head *s_files ;
2586 struct list_head s_dentry_lru ;
2587 int s_nr_dentry_unused ;
2588 struct block_device *s_bdev ;
2589 struct backing_dev_info *s_bdi ;
2590 struct mtd_info *s_mtd ;
2591 struct list_head s_instances ;
2592 struct quota_info s_dquot ;
2593 int s_frozen ;
2594 wait_queue_head_t s_wait_unfrozen ;
2595 char s_id[32] ;
2596 u8 s_uuid[16] ;
2597 void *s_fs_info ;
2598 fmode_t s_mode ;
2599 u32 s_time_gran ;
2600 struct mutex s_vfs_rename_mutex ;
2601 char *s_subtype ;
2602 char *s_options ;
2603 struct dentry_operations const *s_d_op ;
2604 int cleancache_poolid ;
2605};
2606#line 1499 "include/linux/fs.h"
2607struct fiemap_extent_info {
2608 unsigned int fi_flags ;
2609 unsigned int fi_extents_mapped ;
2610 unsigned int fi_extents_max ;
2611 struct fiemap_extent *fi_extents_start ;
2612};
2613#line 1546 "include/linux/fs.h"
2614struct file_operations {
2615 struct module *owner ;
2616 loff_t (*llseek)(struct file * , loff_t , int ) ;
2617 ssize_t (*read)(struct file * , char * , size_t , loff_t * ) ;
2618 ssize_t (*write)(struct file * , char const * , size_t , loff_t * ) ;
2619 ssize_t (*aio_read)(struct kiocb * , struct iovec const * , unsigned long ,
2620 loff_t ) ;
2621 ssize_t (*aio_write)(struct kiocb * , struct iovec const * , unsigned long ,
2622 loff_t ) ;
2623 int (*readdir)(struct file * , void * , int (*)(void * , char const * , int ,
2624 loff_t , u64 , unsigned int ) ) ;
2625 unsigned int (*poll)(struct file * , struct poll_table_struct * ) ;
2626 long (*unlocked_ioctl)(struct file * , unsigned int , unsigned long ) ;
2627 long (*compat_ioctl)(struct file * , unsigned int , unsigned long ) ;
2628 int (*mmap)(struct file * , struct vm_area_struct * ) ;
2629 int (*open)(struct inode * , struct file * ) ;
2630 int (*flush)(struct file * , fl_owner_t id ) ;
2631 int (*release)(struct inode * , struct file * ) ;
2632 int (*fsync)(struct file * , int datasync ) ;
2633 int (*aio_fsync)(struct kiocb * , int datasync ) ;
2634 int (*fasync)(int , struct file * , int ) ;
2635 int (*lock)(struct file * , int , struct file_lock * ) ;
2636 ssize_t (*sendpage)(struct file * , struct page * , int , size_t , loff_t * ,
2637 int ) ;
2638 unsigned long (*get_unmapped_area)(struct file * , unsigned long , unsigned long ,
2639 unsigned long , unsigned long ) ;
2640 int (*check_flags)(int ) ;
2641 int (*flock)(struct file * , int , struct file_lock * ) ;
2642 ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t ,
2643 unsigned int ) ;
2644 ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t ,
2645 unsigned int ) ;
2646 int (*setlease)(struct file * , long , struct file_lock ** ) ;
2647 long (*fallocate)(struct file *file , int mode , loff_t offset , loff_t len ) ;
2648};
2649#line 1578 "include/linux/fs.h"
2650struct inode_operations {
2651 struct dentry *(*lookup)(struct inode * , struct dentry * , struct nameidata * ) ;
2652 void *(*follow_link)(struct dentry * , struct nameidata * ) ;
2653 int (*permission)(struct inode * , int , unsigned int ) ;
2654 int (*check_acl)(struct inode * , int , unsigned int ) ;
2655 int (*readlink)(struct dentry * , char * , int ) ;
2656 void (*put_link)(struct dentry * , struct nameidata * , void * ) ;
2657 int (*create)(struct inode * , struct dentry * , int , struct nameidata * ) ;
2658 int (*link)(struct dentry * , struct inode * , struct dentry * ) ;
2659 int (*unlink)(struct inode * , struct dentry * ) ;
2660 int (*symlink)(struct inode * , struct dentry * , char const * ) ;
2661 int (*mkdir)(struct inode * , struct dentry * , int ) ;
2662 int (*rmdir)(struct inode * , struct dentry * ) ;
2663 int (*mknod)(struct inode * , struct dentry * , int , dev_t ) ;
2664 int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ;
2665 void (*truncate)(struct inode * ) ;
2666 int (*setattr)(struct dentry * , struct iattr * ) ;
2667 int (*getattr)(struct vfsmount *mnt , struct dentry * , struct kstat * ) ;
2668 int (*setxattr)(struct dentry * , char const * , void const * , size_t , int ) ;
2669 ssize_t (*getxattr)(struct dentry * , char const * , void * , size_t ) ;
2670 ssize_t (*listxattr)(struct dentry * , char * , size_t ) ;
2671 int (*removexattr)(struct dentry * , char const * ) ;
2672 void (*truncate_range)(struct inode * , loff_t , loff_t ) ;
2673 int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64 start , u64 len ) ;
2674} __attribute__((__aligned__((1) << (6) ))) ;
2675#line 1622 "include/linux/fs.h"
2676struct super_operations {
2677 struct inode *(*alloc_inode)(struct super_block *sb ) ;
2678 void (*destroy_inode)(struct inode * ) ;
2679 void (*dirty_inode)(struct inode * , int flags ) ;
2680 int (*write_inode)(struct inode * , struct writeback_control *wbc ) ;
2681 int (*drop_inode)(struct inode * ) ;
2682 void (*evict_inode)(struct inode * ) ;
2683 void (*put_super)(struct super_block * ) ;
2684 void (*write_super)(struct super_block * ) ;
2685 int (*sync_fs)(struct super_block *sb , int wait ) ;
2686 int (*freeze_fs)(struct super_block * ) ;
2687 int (*unfreeze_fs)(struct super_block * ) ;
2688 int (*statfs)(struct dentry * , struct kstatfs * ) ;
2689 int (*remount_fs)(struct super_block * , int * , char * ) ;
2690 void (*umount_begin)(struct super_block * ) ;
2691 int (*show_options)(struct seq_file * , struct vfsmount * ) ;
2692 int (*show_devname)(struct seq_file * , struct vfsmount * ) ;
2693 int (*show_path)(struct seq_file * , struct vfsmount * ) ;
2694 int (*show_stats)(struct seq_file * , struct vfsmount * ) ;
2695 ssize_t (*quota_read)(struct super_block * , int , char * , size_t , loff_t ) ;
2696 ssize_t (*quota_write)(struct super_block * , int , char const * , size_t ,
2697 loff_t ) ;
2698 int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t ) ;
2699};
2700#line 1802 "include/linux/fs.h"
2701struct file_system_type {
2702 char const *name ;
2703 int fs_flags ;
2704 struct dentry *(*mount)(struct file_system_type * , int , char const * , void * ) ;
2705 void (*kill_sb)(struct super_block * ) ;
2706 struct module *owner ;
2707 struct file_system_type *next ;
2708 struct list_head fs_supers ;
2709 struct lock_class_key s_lock_key ;
2710 struct lock_class_key s_umount_key ;
2711 struct lock_class_key s_vfs_rename_key ;
2712 struct lock_class_key i_lock_key ;
2713 struct lock_class_key i_mutex_key ;
2714 struct lock_class_key i_mutex_dir_key ;
2715 struct lock_class_key i_alloc_sem_key ;
2716};
2717#line 35 "include/linux/poll.h"
2718struct poll_table_struct {
2719 void (*qproc)(struct file * , wait_queue_head_t * , struct poll_table_struct * ) ;
2720 unsigned long key ;
2721};
2722#line 35 "include/linux/poll.h"
2723typedef struct poll_table_struct poll_table;
2724#line 12 "include/linux/irqdesc.h"
2725struct proc_dir_entry;
2726#line 12
2727struct proc_dir_entry;
2728#line 39
2729struct irqaction;
2730#line 39
2731struct irqaction;
2732#line 7 "include/asm-generic/cputime.h"
2733typedef unsigned long cputime_t;
2734#line 122 "include/linux/sem.h"
2735struct sem_undo_list;
2736#line 122
2737struct sem_undo_list;
2738#line 135 "include/linux/sem.h"
2739struct sem_undo_list {
2740 atomic_t refcnt ;
2741 spinlock_t lock ;
2742 struct list_head list_proc ;
2743};
2744#line 141 "include/linux/sem.h"
2745struct sysv_sem {
2746 struct sem_undo_list *undo_list ;
2747};
2748#line 10 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
2749struct siginfo;
2750#line 10
2751struct siginfo;
2752#line 30 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
2753struct __anonstruct_sigset_t_237 {
2754 unsigned long sig[1] ;
2755};
2756#line 30 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
2757typedef struct __anonstruct_sigset_t_237 sigset_t;
2758#line 17 "include/asm-generic/signal-defs.h"
2759typedef void __signalfn_t(int );
2760#line 18 "include/asm-generic/signal-defs.h"
2761typedef __signalfn_t *__sighandler_t;
2762#line 20 "include/asm-generic/signal-defs.h"
2763typedef void __restorefn_t(void);
2764#line 21 "include/asm-generic/signal-defs.h"
2765typedef __restorefn_t *__sigrestore_t;
2766#line 167 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
2767struct sigaction {
2768 __sighandler_t sa_handler ;
2769 unsigned long sa_flags ;
2770 __sigrestore_t sa_restorer ;
2771 sigset_t sa_mask ;
2772};
2773#line 174 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
2774struct k_sigaction {
2775 struct sigaction sa ;
2776};
2777#line 7 "include/asm-generic/siginfo.h"
2778union sigval {
2779 int sival_int ;
2780 void *sival_ptr ;
2781};
2782#line 7 "include/asm-generic/siginfo.h"
2783typedef union sigval sigval_t;
2784#line 40 "include/asm-generic/siginfo.h"
2785struct __anonstruct__kill_239 {
2786 __kernel_pid_t _pid ;
2787 __kernel_uid32_t _uid ;
2788};
2789#line 40 "include/asm-generic/siginfo.h"
2790struct __anonstruct__timer_240 {
2791 __kernel_timer_t _tid ;
2792 int _overrun ;
2793 char _pad[sizeof(__kernel_uid32_t ) - sizeof(int )] ;
2794 sigval_t _sigval ;
2795 int _sys_private ;
2796};
2797#line 40 "include/asm-generic/siginfo.h"
2798struct __anonstruct__rt_241 {
2799 __kernel_pid_t _pid ;
2800 __kernel_uid32_t _uid ;
2801 sigval_t _sigval ;
2802};
2803#line 40 "include/asm-generic/siginfo.h"
2804struct __anonstruct__sigchld_242 {
2805 __kernel_pid_t _pid ;
2806 __kernel_uid32_t _uid ;
2807 int _status ;
2808 __kernel_clock_t _utime ;
2809 __kernel_clock_t _stime ;
2810};
2811#line 40 "include/asm-generic/siginfo.h"
2812struct __anonstruct__sigfault_243 {
2813 void *_addr ;
2814 short _addr_lsb ;
2815};
2816#line 40 "include/asm-generic/siginfo.h"
2817struct __anonstruct__sigpoll_244 {
2818 long _band ;
2819 int _fd ;
2820};
2821#line 40 "include/asm-generic/siginfo.h"
2822union __anonunion__sifields_238 {
2823 int _pad[(128UL - 4UL * sizeof(int )) / sizeof(int )] ;
2824 struct __anonstruct__kill_239 _kill ;
2825 struct __anonstruct__timer_240 _timer ;
2826 struct __anonstruct__rt_241 _rt ;
2827 struct __anonstruct__sigchld_242 _sigchld ;
2828 struct __anonstruct__sigfault_243 _sigfault ;
2829 struct __anonstruct__sigpoll_244 _sigpoll ;
2830};
2831#line 40 "include/asm-generic/siginfo.h"
2832struct siginfo {
2833 int si_signo ;
2834 int si_errno ;
2835 int si_code ;
2836 union __anonunion__sifields_238 _sifields ;
2837};
2838#line 40 "include/asm-generic/siginfo.h"
2839typedef struct siginfo siginfo_t;
2840#line 28 "include/linux/signal.h"
2841struct sigpending {
2842 struct list_head list ;
2843 sigset_t signal ;
2844};
2845#line 97 "include/linux/proportions.h"
2846struct prop_local_single {
2847 unsigned long events ;
2848 unsigned long period ;
2849 int shift ;
2850 spinlock_t lock ;
2851};
2852#line 10 "include/linux/seccomp.h"
2853struct __anonstruct_seccomp_t_247 {
2854 int mode ;
2855};
2856#line 10 "include/linux/seccomp.h"
2857typedef struct __anonstruct_seccomp_t_247 seccomp_t;
2858#line 82 "include/linux/plist.h"
2859struct plist_head {
2860 struct list_head node_list ;
2861 raw_spinlock_t *rawlock ;
2862 spinlock_t *spinlock ;
2863};
2864#line 90 "include/linux/plist.h"
2865struct plist_node {
2866 int prio ;
2867 struct list_head prio_list ;
2868 struct list_head node_list ;
2869};
2870#line 40 "include/linux/rtmutex.h"
2871struct rt_mutex_waiter;
2872#line 40
2873struct rt_mutex_waiter;
2874#line 42 "include/linux/resource.h"
2875struct rlimit {
2876 unsigned long rlim_cur ;
2877 unsigned long rlim_max ;
2878};
2879#line 11 "include/linux/task_io_accounting.h"
2880struct task_io_accounting {
2881 u64 rchar ;
2882 u64 wchar ;
2883 u64 syscr ;
2884 u64 syscw ;
2885 u64 read_bytes ;
2886 u64 write_bytes ;
2887 u64 cancelled_write_bytes ;
2888};
2889#line 18 "include/linux/latencytop.h"
2890struct latency_record {
2891 unsigned long backtrace[12] ;
2892 unsigned int count ;
2893 unsigned long time ;
2894 unsigned long max ;
2895};
2896#line 29 "include/linux/key.h"
2897typedef int32_t key_serial_t;
2898#line 32 "include/linux/key.h"
2899typedef uint32_t key_perm_t;
2900#line 34
2901struct key;
2902#line 34
2903struct key;
2904#line 76
2905struct signal_struct;
2906#line 76
2907struct signal_struct;
2908#line 79
2909struct key_type;
2910#line 79
2911struct key_type;
2912#line 81
2913struct keyring_list;
2914#line 81
2915struct keyring_list;
2916#line 124
2917struct key_user;
2918#line 124
2919struct key_user;
2920#line 124 "include/linux/key.h"
2921union __anonunion____missing_field_name_248 {
2922 time_t expiry ;
2923 time_t revoked_at ;
2924};
2925#line 124 "include/linux/key.h"
2926union __anonunion_type_data_249 {
2927 struct list_head link ;
2928 unsigned long x[2] ;
2929 void *p[2] ;
2930 int reject_error ;
2931};
2932#line 124 "include/linux/key.h"
2933union __anonunion_payload_250 {
2934 unsigned long value ;
2935 void *rcudata ;
2936 void *data ;
2937 struct keyring_list *subscriptions ;
2938};
2939#line 124 "include/linux/key.h"
2940struct key {
2941 atomic_t usage ;
2942 key_serial_t serial ;
2943 struct rb_node serial_node ;
2944 struct key_type *type ;
2945 struct rw_semaphore sem ;
2946 struct key_user *user ;
2947 void *security ;
2948 union __anonunion____missing_field_name_248 __annonCompField42 ;
2949 uid_t uid ;
2950 gid_t gid ;
2951 key_perm_t perm ;
2952 unsigned short quotalen ;
2953 unsigned short datalen ;
2954 unsigned long flags ;
2955 char *description ;
2956 union __anonunion_type_data_249 type_data ;
2957 union __anonunion_payload_250 payload ;
2958};
2959#line 18 "include/linux/selinux.h"
2960struct audit_context;
2961#line 18
2962struct audit_context;
2963#line 31 "include/linux/cred.h"
2964struct group_info {
2965 atomic_t usage ;
2966 int ngroups ;
2967 int nblocks ;
2968 gid_t small_block[32] ;
2969 gid_t *blocks[0] ;
2970};
2971#line 83 "include/linux/cred.h"
2972struct thread_group_cred {
2973 atomic_t usage ;
2974 pid_t tgid ;
2975 spinlock_t lock ;
2976 struct key *session_keyring ;
2977 struct key *process_keyring ;
2978 struct rcu_head rcu ;
2979};
2980#line 116 "include/linux/cred.h"
2981struct cred {
2982 atomic_t usage ;
2983 atomic_t subscribers ;
2984 void *put_addr ;
2985 unsigned int magic ;
2986 uid_t uid ;
2987 gid_t gid ;
2988 uid_t suid ;
2989 gid_t sgid ;
2990 uid_t euid ;
2991 gid_t egid ;
2992 uid_t fsuid ;
2993 gid_t fsgid ;
2994 unsigned int securebits ;
2995 kernel_cap_t cap_inheritable ;
2996 kernel_cap_t cap_permitted ;
2997 kernel_cap_t cap_effective ;
2998 kernel_cap_t cap_bset ;
2999 unsigned char jit_keyring ;
3000 struct key *thread_keyring ;
3001 struct key *request_key_auth ;
3002 struct thread_group_cred *tgcred ;
3003 void *security ;
3004 struct user_struct *user ;
3005 struct user_namespace *user_ns ;
3006 struct group_info *group_info ;
3007 struct rcu_head rcu ;
3008};
3009#line 97 "include/linux/sched.h"
3010struct futex_pi_state;
3011#line 97
3012struct futex_pi_state;
3013#line 98
3014struct robust_list_head;
3015#line 98
3016struct robust_list_head;
3017#line 99
3018struct bio_list;
3019#line 99
3020struct bio_list;
3021#line 100
3022struct fs_struct;
3023#line 100
3024struct fs_struct;
3025#line 101
3026struct perf_event_context;
3027#line 101
3028struct perf_event_context;
3029#line 102
3030struct blk_plug;
3031#line 102
3032struct blk_plug;
3033#line 151
3034struct cfs_rq;
3035#line 151
3036struct cfs_rq;
3037#line 58 "include/linux/aio_abi.h"
3038struct io_event {
3039 __u64 data ;
3040 __u64 obj ;
3041 __s64 res ;
3042 __s64 res2 ;
3043};
3044#line 15 "include/linux/aio.h"
3045struct kioctx;
3046#line 15
3047struct kioctx;
3048#line 87 "include/linux/aio.h"
3049union __anonunion_ki_obj_252 {
3050 void *user ;
3051 struct task_struct *tsk ;
3052};
3053#line 87 "include/linux/aio.h"
3054struct kiocb {
3055 struct list_head ki_run_list ;
3056 unsigned long ki_flags ;
3057 int ki_users ;
3058 unsigned int ki_key ;
3059 struct file *ki_filp ;
3060 struct kioctx *ki_ctx ;
3061 int (*ki_cancel)(struct kiocb * , struct io_event * ) ;
3062 ssize_t (*ki_retry)(struct kiocb * ) ;
3063 void (*ki_dtor)(struct kiocb * ) ;
3064 union __anonunion_ki_obj_252 ki_obj ;
3065 __u64 ki_user_data ;
3066 loff_t ki_pos ;
3067 void *private ;
3068 unsigned short ki_opcode ;
3069 size_t ki_nbytes ;
3070 char *ki_buf ;
3071 size_t ki_left ;
3072 struct iovec ki_inline_vec ;
3073 struct iovec *ki_iovec ;
3074 unsigned long ki_nr_segs ;
3075 unsigned long ki_cur_seg ;
3076 struct list_head ki_list ;
3077 struct eventfd_ctx *ki_eventfd ;
3078};
3079#line 165 "include/linux/aio.h"
3080struct aio_ring_info {
3081 unsigned long mmap_base ;
3082 unsigned long mmap_size ;
3083 struct page **ring_pages ;
3084 spinlock_t ring_lock ;
3085 long nr_pages ;
3086 unsigned int nr ;
3087 unsigned int tail ;
3088 struct page *internal_pages[8] ;
3089};
3090#line 178 "include/linux/aio.h"
3091struct kioctx {
3092 atomic_t users ;
3093 int dead ;
3094 struct mm_struct *mm ;
3095 unsigned long user_id ;
3096 struct hlist_node list ;
3097 wait_queue_head_t wait ;
3098 spinlock_t ctx_lock ;
3099 int reqs_active ;
3100 struct list_head active_reqs ;
3101 struct list_head run_list ;
3102 unsigned int max_reqs ;
3103 struct aio_ring_info ring_info ;
3104 struct delayed_work wq ;
3105 struct rcu_head rcu_head ;
3106};
3107#line 441 "include/linux/sched.h"
3108struct sighand_struct {
3109 atomic_t count ;
3110 struct k_sigaction action[64] ;
3111 spinlock_t siglock ;
3112 wait_queue_head_t signalfd_wqh ;
3113};
3114#line 448 "include/linux/sched.h"
3115struct pacct_struct {
3116 int ac_flag ;
3117 long ac_exitcode ;
3118 unsigned long ac_mem ;
3119 cputime_t ac_utime ;
3120 cputime_t ac_stime ;
3121 unsigned long ac_minflt ;
3122 unsigned long ac_majflt ;
3123};
3124#line 456 "include/linux/sched.h"
3125struct cpu_itimer {
3126 cputime_t expires ;
3127 cputime_t incr ;
3128 u32 error ;
3129 u32 incr_error ;
3130};
3131#line 474 "include/linux/sched.h"
3132struct task_cputime {
3133 cputime_t utime ;
3134 cputime_t stime ;
3135 unsigned long long sum_exec_runtime ;
3136};
3137#line 510 "include/linux/sched.h"
3138struct thread_group_cputimer {
3139 struct task_cputime cputime ;
3140 int running ;
3141 spinlock_t lock ;
3142};
3143#line 517
3144struct autogroup;
3145#line 517
3146struct autogroup;
3147#line 526
3148struct tty_struct;
3149#line 526
3150struct tty_struct;
3151#line 526
3152struct taskstats;
3153#line 526
3154struct taskstats;
3155#line 526
3156struct tty_audit_buf;
3157#line 526
3158struct tty_audit_buf;
3159#line 526 "include/linux/sched.h"
3160struct signal_struct {
3161 atomic_t sigcnt ;
3162 atomic_t live ;
3163 int nr_threads ;
3164 wait_queue_head_t wait_chldexit ;
3165 struct task_struct *curr_target ;
3166 struct sigpending shared_pending ;
3167 int group_exit_code ;
3168 int notify_count ;
3169 struct task_struct *group_exit_task ;
3170 int group_stop_count ;
3171 unsigned int flags ;
3172 struct list_head posix_timers ;
3173 struct hrtimer real_timer ;
3174 struct pid *leader_pid ;
3175 ktime_t it_real_incr ;
3176 struct cpu_itimer it[2] ;
3177 struct thread_group_cputimer cputimer ;
3178 struct task_cputime cputime_expires ;
3179 struct list_head cpu_timers[3] ;
3180 struct pid *tty_old_pgrp ;
3181 int leader ;
3182 struct tty_struct *tty ;
3183 struct autogroup *autogroup ;
3184 cputime_t utime ;
3185 cputime_t stime ;
3186 cputime_t cutime ;
3187 cputime_t cstime ;
3188 cputime_t gtime ;
3189 cputime_t cgtime ;
3190 cputime_t prev_utime ;
3191 cputime_t prev_stime ;
3192 unsigned long nvcsw ;
3193 unsigned long nivcsw ;
3194 unsigned long cnvcsw ;
3195 unsigned long cnivcsw ;
3196 unsigned long min_flt ;
3197 unsigned long maj_flt ;
3198 unsigned long cmin_flt ;
3199 unsigned long cmaj_flt ;
3200 unsigned long inblock ;
3201 unsigned long oublock ;
3202 unsigned long cinblock ;
3203 unsigned long coublock ;
3204 unsigned long maxrss ;
3205 unsigned long cmaxrss ;
3206 struct task_io_accounting ioac ;
3207 unsigned long long sum_sched_runtime ;
3208 struct rlimit rlim[16] ;
3209 struct pacct_struct pacct ;
3210 struct taskstats *stats ;
3211 unsigned int audit_tty ;
3212 struct tty_audit_buf *tty_audit_buf ;
3213 struct rw_semaphore threadgroup_fork_lock ;
3214 int oom_adj ;
3215 int oom_score_adj ;
3216 int oom_score_adj_min ;
3217 struct mutex cred_guard_mutex ;
3218};
3219#line 687 "include/linux/sched.h"
3220struct user_struct {
3221 atomic_t __count ;
3222 atomic_t processes ;
3223 atomic_t files ;
3224 atomic_t sigpending ;
3225 atomic_t inotify_watches ;
3226 atomic_t inotify_devs ;
3227 atomic_t fanotify_listeners ;
3228 atomic_long_t epoll_watches ;
3229 unsigned long mq_bytes ;
3230 unsigned long locked_shm ;
3231 struct key *uid_keyring ;
3232 struct key *session_keyring ;
3233 struct hlist_node uidhash_node ;
3234 uid_t uid ;
3235 struct user_namespace *user_ns ;
3236 atomic_long_t locked_vm ;
3237};
3238#line 732
3239struct reclaim_state;
3240#line 732
3241struct reclaim_state;
3242#line 735 "include/linux/sched.h"
3243struct sched_info {
3244 unsigned long pcount ;
3245 unsigned long long run_delay ;
3246 unsigned long long last_arrival ;
3247 unsigned long long last_queued ;
3248};
3249#line 747 "include/linux/sched.h"
3250struct task_delay_info {
3251 spinlock_t lock ;
3252 unsigned int flags ;
3253 struct timespec blkio_start ;
3254 struct timespec blkio_end ;
3255 u64 blkio_delay ;
3256 u64 swapin_delay ;
3257 u32 blkio_count ;
3258 u32 swapin_count ;
3259 struct timespec freepages_start ;
3260 struct timespec freepages_end ;
3261 u64 freepages_delay ;
3262 u32 freepages_count ;
3263};
3264#line 1050
3265struct io_context;
3266#line 1050
3267struct io_context;
3268#line 1064
3269struct rq;
3270#line 1064
3271struct rq;
3272#line 1084 "include/linux/sched.h"
3273struct sched_class {
3274 struct sched_class const *next ;
3275 void (*enqueue_task)(struct rq *rq , struct task_struct *p , int flags ) ;
3276 void (*dequeue_task)(struct rq *rq , struct task_struct *p , int flags ) ;
3277 void (*yield_task)(struct rq *rq ) ;
3278 bool (*yield_to_task)(struct rq *rq , struct task_struct *p , bool preempt ) ;
3279 void (*check_preempt_curr)(struct rq *rq , struct task_struct *p , int flags ) ;
3280 struct task_struct *(*pick_next_task)(struct rq *rq ) ;
3281 void (*put_prev_task)(struct rq *rq , struct task_struct *p ) ;
3282 int (*select_task_rq)(struct task_struct *p , int sd_flag , int flags ) ;
3283 void (*pre_schedule)(struct rq *this_rq , struct task_struct *task ) ;
3284 void (*post_schedule)(struct rq *this_rq ) ;
3285 void (*task_waking)(struct task_struct *task ) ;
3286 void (*task_woken)(struct rq *this_rq , struct task_struct *task ) ;
3287 void (*set_cpus_allowed)(struct task_struct *p , struct cpumask const *newmask ) ;
3288 void (*rq_online)(struct rq *rq ) ;
3289 void (*rq_offline)(struct rq *rq ) ;
3290 void (*set_curr_task)(struct rq *rq ) ;
3291 void (*task_tick)(struct rq *rq , struct task_struct *p , int queued ) ;
3292 void (*task_fork)(struct task_struct *p ) ;
3293 void (*switched_from)(struct rq *this_rq , struct task_struct *task ) ;
3294 void (*switched_to)(struct rq *this_rq , struct task_struct *task ) ;
3295 void (*prio_changed)(struct rq *this_rq , struct task_struct *task , int oldprio ) ;
3296 unsigned int (*get_rr_interval)(struct rq *rq , struct task_struct *task ) ;
3297 void (*task_move_group)(struct task_struct *p , int on_rq ) ;
3298};
3299#line 1129 "include/linux/sched.h"
3300struct load_weight {
3301 unsigned long weight ;
3302 unsigned long inv_weight ;
3303};
3304#line 1134 "include/linux/sched.h"
3305struct sched_statistics {
3306 u64 wait_start ;
3307 u64 wait_max ;
3308 u64 wait_count ;
3309 u64 wait_sum ;
3310 u64 iowait_count ;
3311 u64 iowait_sum ;
3312 u64 sleep_start ;
3313 u64 sleep_max ;
3314 s64 sum_sleep_runtime ;
3315 u64 block_start ;
3316 u64 block_max ;
3317 u64 exec_max ;
3318 u64 slice_max ;
3319 u64 nr_migrations_cold ;
3320 u64 nr_failed_migrations_affine ;
3321 u64 nr_failed_migrations_running ;
3322 u64 nr_failed_migrations_hot ;
3323 u64 nr_forced_migrations ;
3324 u64 nr_wakeups ;
3325 u64 nr_wakeups_sync ;
3326 u64 nr_wakeups_migrate ;
3327 u64 nr_wakeups_local ;
3328 u64 nr_wakeups_remote ;
3329 u64 nr_wakeups_affine ;
3330 u64 nr_wakeups_affine_attempts ;
3331 u64 nr_wakeups_passive ;
3332 u64 nr_wakeups_idle ;
3333};
3334#line 1169 "include/linux/sched.h"
3335struct sched_entity {
3336 struct load_weight load ;
3337 struct rb_node run_node ;
3338 struct list_head group_node ;
3339 unsigned int on_rq ;
3340 u64 exec_start ;
3341 u64 sum_exec_runtime ;
3342 u64 vruntime ;
3343 u64 prev_sum_exec_runtime ;
3344 u64 nr_migrations ;
3345 struct sched_statistics statistics ;
3346 struct sched_entity *parent ;
3347 struct cfs_rq *cfs_rq ;
3348 struct cfs_rq *my_q ;
3349};
3350#line 1195
3351struct rt_rq;
3352#line 1195
3353struct rt_rq;
3354#line 1195 "include/linux/sched.h"
3355struct sched_rt_entity {
3356 struct list_head run_list ;
3357 unsigned long timeout ;
3358 unsigned int time_slice ;
3359 int nr_cpus_allowed ;
3360 struct sched_rt_entity *back ;
3361 struct sched_rt_entity *parent ;
3362 struct rt_rq *rt_rq ;
3363 struct rt_rq *my_q ;
3364};
3365#line 1220
3366struct css_set;
3367#line 1220
3368struct css_set;
3369#line 1220
3370struct compat_robust_list_head;
3371#line 1220
3372struct compat_robust_list_head;
3373#line 1220
3374struct ftrace_ret_stack;
3375#line 1220
3376struct ftrace_ret_stack;
3377#line 1220
3378struct mem_cgroup;
3379#line 1220
3380struct mem_cgroup;
3381#line 1220 "include/linux/sched.h"
3382struct memcg_batch_info {
3383 int do_batch ;
3384 struct mem_cgroup *memcg ;
3385 unsigned long nr_pages ;
3386 unsigned long memsw_nr_pages ;
3387};
3388#line 1220 "include/linux/sched.h"
3389struct task_struct {
3390 long volatile state ;
3391 void *stack ;
3392 atomic_t usage ;
3393 unsigned int flags ;
3394 unsigned int ptrace ;
3395 struct task_struct *wake_entry ;
3396 int on_cpu ;
3397 int on_rq ;
3398 int prio ;
3399 int static_prio ;
3400 int normal_prio ;
3401 unsigned int rt_priority ;
3402 struct sched_class const *sched_class ;
3403 struct sched_entity se ;
3404 struct sched_rt_entity rt ;
3405 struct hlist_head preempt_notifiers ;
3406 unsigned char fpu_counter ;
3407 unsigned int btrace_seq ;
3408 unsigned int policy ;
3409 cpumask_t cpus_allowed ;
3410 struct sched_info sched_info ;
3411 struct list_head tasks ;
3412 struct plist_node pushable_tasks ;
3413 struct mm_struct *mm ;
3414 struct mm_struct *active_mm ;
3415 unsigned int brk_randomized : 1 ;
3416 int exit_state ;
3417 int exit_code ;
3418 int exit_signal ;
3419 int pdeath_signal ;
3420 unsigned int group_stop ;
3421 unsigned int personality ;
3422 unsigned int did_exec : 1 ;
3423 unsigned int in_execve : 1 ;
3424 unsigned int in_iowait : 1 ;
3425 unsigned int sched_reset_on_fork : 1 ;
3426 unsigned int sched_contributes_to_load : 1 ;
3427 pid_t pid ;
3428 pid_t tgid ;
3429 unsigned long stack_canary ;
3430 struct task_struct *real_parent ;
3431 struct task_struct *parent ;
3432 struct list_head children ;
3433 struct list_head sibling ;
3434 struct task_struct *group_leader ;
3435 struct list_head ptraced ;
3436 struct list_head ptrace_entry ;
3437 struct pid_link pids[3] ;
3438 struct list_head thread_group ;
3439 struct completion *vfork_done ;
3440 int *set_child_tid ;
3441 int *clear_child_tid ;
3442 cputime_t utime ;
3443 cputime_t stime ;
3444 cputime_t utimescaled ;
3445 cputime_t stimescaled ;
3446 cputime_t gtime ;
3447 cputime_t prev_utime ;
3448 cputime_t prev_stime ;
3449 unsigned long nvcsw ;
3450 unsigned long nivcsw ;
3451 struct timespec start_time ;
3452 struct timespec real_start_time ;
3453 unsigned long min_flt ;
3454 unsigned long maj_flt ;
3455 struct task_cputime cputime_expires ;
3456 struct list_head cpu_timers[3] ;
3457 struct cred const *real_cred ;
3458 struct cred const *cred ;
3459 struct cred *replacement_session_keyring ;
3460 char comm[16] ;
3461 int link_count ;
3462 int total_link_count ;
3463 struct sysv_sem sysvsem ;
3464 unsigned long last_switch_count ;
3465 struct thread_struct thread ;
3466 struct fs_struct *fs ;
3467 struct files_struct *files ;
3468 struct nsproxy *nsproxy ;
3469 struct signal_struct *signal ;
3470 struct sighand_struct *sighand ;
3471 sigset_t blocked ;
3472 sigset_t real_blocked ;
3473 sigset_t saved_sigmask ;
3474 struct sigpending pending ;
3475 unsigned long sas_ss_sp ;
3476 size_t sas_ss_size ;
3477 int (*notifier)(void *priv ) ;
3478 void *notifier_data ;
3479 sigset_t *notifier_mask ;
3480 struct audit_context *audit_context ;
3481 uid_t loginuid ;
3482 unsigned int sessionid ;
3483 seccomp_t seccomp ;
3484 u32 parent_exec_id ;
3485 u32 self_exec_id ;
3486 spinlock_t alloc_lock ;
3487 struct irqaction *irqaction ;
3488 raw_spinlock_t pi_lock ;
3489 struct plist_head pi_waiters ;
3490 struct rt_mutex_waiter *pi_blocked_on ;
3491 struct mutex_waiter *blocked_on ;
3492 unsigned int irq_events ;
3493 unsigned long hardirq_enable_ip ;
3494 unsigned long hardirq_disable_ip ;
3495 unsigned int hardirq_enable_event ;
3496 unsigned int hardirq_disable_event ;
3497 int hardirqs_enabled ;
3498 int hardirq_context ;
3499 unsigned long softirq_disable_ip ;
3500 unsigned long softirq_enable_ip ;
3501 unsigned int softirq_disable_event ;
3502 unsigned int softirq_enable_event ;
3503 int softirqs_enabled ;
3504 int softirq_context ;
3505 u64 curr_chain_key ;
3506 int lockdep_depth ;
3507 unsigned int lockdep_recursion ;
3508 struct held_lock held_locks[48UL] ;
3509 gfp_t lockdep_reclaim_gfp ;
3510 void *journal_info ;
3511 struct bio_list *bio_list ;
3512 struct blk_plug *plug ;
3513 struct reclaim_state *reclaim_state ;
3514 struct backing_dev_info *backing_dev_info ;
3515 struct io_context *io_context ;
3516 unsigned long ptrace_message ;
3517 siginfo_t *last_siginfo ;
3518 struct task_io_accounting ioac ;
3519 u64 acct_rss_mem1 ;
3520 u64 acct_vm_mem1 ;
3521 cputime_t acct_timexpd ;
3522 nodemask_t mems_allowed ;
3523 int mems_allowed_change_disable ;
3524 int cpuset_mem_spread_rotor ;
3525 int cpuset_slab_spread_rotor ;
3526 struct css_set *cgroups ;
3527 struct list_head cg_list ;
3528 struct robust_list_head *robust_list ;
3529 struct compat_robust_list_head *compat_robust_list ;
3530 struct list_head pi_state_list ;
3531 struct futex_pi_state *pi_state_cache ;
3532 struct perf_event_context *perf_event_ctxp[2] ;
3533 struct mutex perf_event_mutex ;
3534 struct list_head perf_event_list ;
3535 struct mempolicy *mempolicy ;
3536 short il_next ;
3537 short pref_node_fork ;
3538 atomic_t fs_excl ;
3539 struct rcu_head rcu ;
3540 struct pipe_inode_info *splice_pipe ;
3541 struct task_delay_info *delays ;
3542 int make_it_fail ;
3543 struct prop_local_single dirties ;
3544 int latency_record_count ;
3545 struct latency_record latency_record[32] ;
3546 unsigned long timer_slack_ns ;
3547 unsigned long default_timer_slack_ns ;
3548 struct list_head *scm_work_list ;
3549 int curr_ret_stack ;
3550 struct ftrace_ret_stack *ret_stack ;
3551 unsigned long long ftrace_timestamp ;
3552 atomic_t trace_overrun ;
3553 atomic_t tracing_graph_pause ;
3554 unsigned long trace ;
3555 unsigned long trace_recursion ;
3556 struct memcg_batch_info memcg_batch ;
3557 atomic_t ptrace_bp_refcnt ;
3558};
3559#line 40 "include/linux/taskstats.h"
3560struct taskstats {
3561 __u16 version ;
3562 __u32 ac_exitcode ;
3563 __u8 ac_flag ;
3564 __u8 ac_nice ;
3565 __u64 cpu_count __attribute__((__aligned__(8))) ;
3566 __u64 cpu_delay_total ;
3567 __u64 blkio_count ;
3568 __u64 blkio_delay_total ;
3569 __u64 swapin_count ;
3570 __u64 swapin_delay_total ;
3571 __u64 cpu_run_real_total ;
3572 __u64 cpu_run_virtual_total ;
3573 char ac_comm[32] ;
3574 __u8 ac_sched __attribute__((__aligned__(8))) ;
3575 __u8 ac_pad[3] ;
3576 __u32 ac_uid __attribute__((__aligned__(8))) ;
3577 __u32 ac_gid ;
3578 __u32 ac_pid ;
3579 __u32 ac_ppid ;
3580 __u32 ac_btime ;
3581 __u64 ac_etime __attribute__((__aligned__(8))) ;
3582 __u64 ac_utime ;
3583 __u64 ac_stime ;
3584 __u64 ac_minflt ;
3585 __u64 ac_majflt ;
3586 __u64 coremem ;
3587 __u64 virtmem ;
3588 __u64 hiwater_rss ;
3589 __u64 hiwater_vm ;
3590 __u64 read_char ;
3591 __u64 write_char ;
3592 __u64 read_syscalls ;
3593 __u64 write_syscalls ;
3594 __u64 read_bytes ;
3595 __u64 write_bytes ;
3596 __u64 cancelled_write_bytes ;
3597 __u64 nvcsw ;
3598 __u64 nivcsw ;
3599 __u64 ac_utimescaled ;
3600 __u64 ac_stimescaled ;
3601 __u64 cpu_scaled_run_real_total ;
3602 __u64 freepages_count ;
3603 __u64 freepages_delay_total ;
3604};
3605#line 22 "include/linux/cgroup.h"
3606struct cgroupfs_root;
3607#line 22
3608struct cgroupfs_root;
3609#line 25
3610struct cgroup;
3611#line 25
3612struct cgroup;
3613#line 26
3614struct css_id;
3615#line 26
3616struct css_id;
3617#line 60 "include/linux/cgroup.h"
3618struct cgroup_subsys_state {
3619 struct cgroup *cgroup ;
3620 atomic_t refcnt ;
3621 unsigned long flags ;
3622 struct css_id *id ;
3623};
3624#line 195 "include/linux/cgroup.h"
3625struct cgroup {
3626 unsigned long flags ;
3627 atomic_t count ;
3628 struct list_head sibling ;
3629 struct list_head children ;
3630 struct cgroup *parent ;
3631 struct dentry *dentry ;
3632 struct cgroup_subsys_state *subsys[8UL * sizeof(unsigned long )] ;
3633 struct cgroupfs_root *root ;
3634 struct cgroup *top_cgroup ;
3635 struct list_head css_sets ;
3636 struct list_head release_list ;
3637 struct list_head pidlists ;
3638 struct mutex pidlist_mutex ;
3639 struct rcu_head rcu_head ;
3640 struct list_head event_list ;
3641 spinlock_t event_list_lock ;
3642};
3643#line 256 "include/linux/cgroup.h"
3644struct css_set {
3645 atomic_t refcount ;
3646 struct hlist_node hlist ;
3647 struct list_head tasks ;
3648 struct list_head cg_links ;
3649 struct cgroup_subsys_state *subsys[8UL * sizeof(unsigned long )] ;
3650 struct rcu_head rcu_head ;
3651};
3652#line 16 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
3653typedef s32 compat_time_t;
3654#line 37 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
3655typedef s32 compat_long_t;
3656#line 43 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
3657struct compat_timespec {
3658 compat_time_t tv_sec ;
3659 s32 tv_nsec ;
3660};
3661#line 196 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
3662typedef u32 compat_uptr_t;
3663#line 206 "include/linux/compat.h"
3664struct compat_robust_list {
3665 compat_uptr_t next ;
3666};
3667#line 210 "include/linux/compat.h"
3668struct compat_robust_list_head {
3669 struct compat_robust_list list ;
3670 compat_long_t futex_offset ;
3671 compat_uptr_t list_op_pending ;
3672};
3673#line 46 "include/linux/proc_fs.h"
3674typedef int read_proc_t(char *page , char **start , off_t off , int count , int *eof ,
3675 void *data );
3676#line 48 "include/linux/proc_fs.h"
3677typedef int write_proc_t(struct file *file , char const *buffer , unsigned long count ,
3678 void *data );
3679#line 51 "include/linux/proc_fs.h"
3680struct proc_dir_entry {
3681 unsigned int low_ino ;
3682 unsigned int namelen ;
3683 char const *name ;
3684 mode_t mode ;
3685 nlink_t nlink ;
3686 uid_t uid ;
3687 gid_t gid ;
3688 loff_t size ;
3689 struct inode_operations const *proc_iops ;
3690 struct file_operations const *proc_fops ;
3691 struct proc_dir_entry *next ;
3692 struct proc_dir_entry *parent ;
3693 struct proc_dir_entry *subdir ;
3694 void *data ;
3695 read_proc_t *read_proc ;
3696 write_proc_t *write_proc ;
3697 atomic_t count ;
3698 int pde_users ;
3699 spinlock_t pde_unload_lock ;
3700 struct completion *pde_unload_completion ;
3701 struct list_head pde_openers ;
3702};
3703#line 16 "include/linux/seq_file.h"
3704struct seq_file {
3705 char *buf ;
3706 size_t size ;
3707 size_t from ;
3708 size_t count ;
3709 loff_t index ;
3710 loff_t read_pos ;
3711 u64 version ;
3712 struct mutex lock ;
3713 struct seq_operations const *op ;
3714 void *private ;
3715};
3716#line 29 "include/linux/seq_file.h"
3717struct seq_operations {
3718 void *(*start)(struct seq_file *m , loff_t *pos ) ;
3719 void (*stop)(struct seq_file *m , void *v ) ;
3720 void *(*next)(struct seq_file *m , void *v , loff_t *pos ) ;
3721 int (*show)(struct seq_file *m , void *v ) ;
3722};
3723#line 106 "include/linux/interrupt.h"
3724struct irqaction {
3725 irqreturn_t (*handler)(int , void * ) ;
3726 unsigned long flags ;
3727 void *dev_id ;
3728 struct irqaction *next ;
3729 int irq ;
3730 irqreturn_t (*thread_fn)(int , void * ) ;
3731 struct task_struct *thread ;
3732 unsigned long thread_flags ;
3733 unsigned long thread_mask ;
3734 char const *name ;
3735 struct proc_dir_entry *dir ;
3736} __attribute__((__aligned__((1) << (12) ))) ;
3737#line 18 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
3738struct vhost_work;
3739#line 18
3740struct vhost_work;
3741#line 21 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
3742struct vhost_work {
3743 struct list_head node ;
3744 void (*fn)(struct vhost_work *work ) ;
3745 wait_queue_head_t done ;
3746 int flushing ;
3747 unsigned int queue_seq ;
3748 unsigned int done_seq ;
3749};
3750#line 32
3751struct vhost_dev;
3752#line 32
3753struct vhost_dev;
3754#line 32 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
3755struct vhost_poll {
3756 poll_table table ;
3757 wait_queue_head_t *wqh ;
3758 wait_queue_t wait ;
3759 struct vhost_work work ;
3760 unsigned long mask ;
3761 struct vhost_dev *dev ;
3762};
3763#line 48 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
3764struct vhost_log {
3765 u64 addr ;
3766 u64 len ;
3767};
3768#line 54 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
3769struct vhost_virtqueue {
3770 struct vhost_dev *dev ;
3771 struct mutex mutex ;
3772 unsigned int num ;
3773 struct vring_desc *desc ;
3774 struct vring_avail *avail ;
3775 struct vring_used *used ;
3776 struct file *kick ;
3777 struct file *call ;
3778 struct file *error ;
3779 struct eventfd_ctx *call_ctx ;
3780 struct eventfd_ctx *error_ctx ;
3781 struct eventfd_ctx *log_ctx ;
3782 struct vhost_poll poll ;
3783 void (*handle_kick)(struct vhost_work *work ) ;
3784 u16 last_avail_idx ;
3785 u16 avail_idx ;
3786 u16 last_used_idx ;
3787 u16 used_flags ;
3788 u16 signalled_used ;
3789 bool signalled_used_valid ;
3790 bool log_used ;
3791 u64 log_addr ;
3792 struct iovec iov[1024] ;
3793 struct iovec hdr[sizeof(struct virtio_net_hdr_mrg_rxbuf )] ;
3794 struct iovec *indirect ;
3795 size_t vhost_hlen ;
3796 size_t sock_hlen ;
3797 struct vring_used_elem *heads ;
3798 void *private_data ;
3799 void *log_base ;
3800 struct vhost_log *log ;
3801};
3802#line 119 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
3803struct vhost_dev {
3804 struct vhost_memory *memory ;
3805 struct mm_struct *mm ;
3806 struct mutex mutex ;
3807 unsigned int acked_features ;
3808 struct vhost_virtqueue *vqs ;
3809 int nvqs ;
3810 struct file *log_file ;
3811 struct eventfd_ctx *log_ctx ;
3812 spinlock_t work_lock ;
3813 struct list_head work_list ;
3814 struct task_struct *worker ;
3815};
3816#line 308 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
3817struct vhost_attach_cgroups_struct {
3818 struct vhost_work work ;
3819 struct task_struct *owner ;
3820 int ret ;
3821};
3822#line 244 "include/linux/usb/ch9.h"
3823struct usb_device_descriptor {
3824 __u8 bLength ;
3825 __u8 bDescriptorType ;
3826 __le16 bcdUSB ;
3827 __u8 bDeviceClass ;
3828 __u8 bDeviceSubClass ;
3829 __u8 bDeviceProtocol ;
3830 __u8 bMaxPacketSize0 ;
3831 __le16 idVendor ;
3832 __le16 idProduct ;
3833 __le16 bcdDevice ;
3834 __u8 iManufacturer ;
3835 __u8 iProduct ;
3836 __u8 iSerialNumber ;
3837 __u8 bNumConfigurations ;
3838} __attribute__((__packed__)) ;
3839#line 300 "include/linux/usb/ch9.h"
3840struct usb_config_descriptor {
3841 __u8 bLength ;
3842 __u8 bDescriptorType ;
3843 __le16 wTotalLength ;
3844 __u8 bNumInterfaces ;
3845 __u8 bConfigurationValue ;
3846 __u8 iConfiguration ;
3847 __u8 bmAttributes ;
3848 __u8 bMaxPower ;
3849} __attribute__((__packed__)) ;
3850#line 337 "include/linux/usb/ch9.h"
3851struct usb_interface_descriptor {
3852 __u8 bLength ;
3853 __u8 bDescriptorType ;
3854 __u8 bInterfaceNumber ;
3855 __u8 bAlternateSetting ;
3856 __u8 bNumEndpoints ;
3857 __u8 bInterfaceClass ;
3858 __u8 bInterfaceSubClass ;
3859 __u8 bInterfaceProtocol ;
3860 __u8 iInterface ;
3861} __attribute__((__packed__)) ;
3862#line 355 "include/linux/usb/ch9.h"
3863struct usb_endpoint_descriptor {
3864 __u8 bLength ;
3865 __u8 bDescriptorType ;
3866 __u8 bEndpointAddress ;
3867 __u8 bmAttributes ;
3868 __le16 wMaxPacketSize ;
3869 __u8 bInterval ;
3870 __u8 bRefresh ;
3871 __u8 bSynchAddress ;
3872} __attribute__((__packed__)) ;
3873#line 576 "include/linux/usb/ch9.h"
3874struct usb_ss_ep_comp_descriptor {
3875 __u8 bLength ;
3876 __u8 bDescriptorType ;
3877 __u8 bMaxBurst ;
3878 __u8 bmAttributes ;
3879 __le16 wBytesPerInterval ;
3880} __attribute__((__packed__)) ;
3881#line 637 "include/linux/usb/ch9.h"
3882struct usb_interface_assoc_descriptor {
3883 __u8 bLength ;
3884 __u8 bDescriptorType ;
3885 __u8 bFirstInterface ;
3886 __u8 bInterfaceCount ;
3887 __u8 bFunctionClass ;
3888 __u8 bFunctionSubClass ;
3889 __u8 bFunctionProtocol ;
3890 __u8 iFunction ;
3891} __attribute__((__packed__)) ;
3892#line 846
3893enum usb_device_speed {
3894 USB_SPEED_UNKNOWN = 0,
3895 USB_SPEED_LOW = 1,
3896 USB_SPEED_FULL = 2,
3897 USB_SPEED_HIGH = 3,
3898 USB_SPEED_WIRELESS = 4,
3899 USB_SPEED_SUPER = 5
3900} ;
3901#line 854
3902enum usb_device_state {
3903 USB_STATE_NOTATTACHED = 0,
3904 USB_STATE_ATTACHED = 1,
3905 USB_STATE_POWERED = 2,
3906 USB_STATE_RECONNECTING = 3,
3907 USB_STATE_UNAUTHENTICATED = 4,
3908 USB_STATE_DEFAULT = 5,
3909 USB_STATE_ADDRESS = 6,
3910 USB_STATE_CONFIGURED = 7,
3911 USB_STATE_SUSPENDED = 8
3912} ;
3913#line 25 "include/linux/usb.h"
3914struct usb_device;
3915#line 25
3916struct usb_device;
3917#line 27
3918struct wusb_dev;
3919#line 27
3920struct wusb_dev;
3921#line 47
3922struct ep_device;
3923#line 47
3924struct ep_device;
3925#line 64 "include/linux/usb.h"
3926struct usb_host_endpoint {
3927 struct usb_endpoint_descriptor desc ;
3928 struct usb_ss_ep_comp_descriptor ss_ep_comp ;
3929 struct list_head urb_list ;
3930 void *hcpriv ;
3931 struct ep_device *ep_dev ;
3932 unsigned char *extra ;
3933 int extralen ;
3934 int enabled ;
3935};
3936#line 77 "include/linux/usb.h"
3937struct usb_host_interface {
3938 struct usb_interface_descriptor desc ;
3939 struct usb_host_endpoint *endpoint ;
3940 char *string ;
3941 unsigned char *extra ;
3942 int extralen ;
3943};
3944#line 90
3945enum usb_interface_condition {
3946 USB_INTERFACE_UNBOUND = 0,
3947 USB_INTERFACE_BINDING = 1,
3948 USB_INTERFACE_BOUND = 2,
3949 USB_INTERFACE_UNBINDING = 3
3950} ;
3951#line 159 "include/linux/usb.h"
3952struct usb_interface {
3953 struct usb_host_interface *altsetting ;
3954 struct usb_host_interface *cur_altsetting ;
3955 unsigned int num_altsetting ;
3956 struct usb_interface_assoc_descriptor *intf_assoc ;
3957 int minor ;
3958 enum usb_interface_condition condition ;
3959 unsigned int sysfs_files_created : 1 ;
3960 unsigned int ep_devs_created : 1 ;
3961 unsigned int unregistering : 1 ;
3962 unsigned int needs_remote_wakeup : 1 ;
3963 unsigned int needs_altsetting0 : 1 ;
3964 unsigned int needs_binding : 1 ;
3965 unsigned int reset_running : 1 ;
3966 unsigned int resetting_device : 1 ;
3967 struct device dev ;
3968 struct device *usb_dev ;
3969 atomic_t pm_usage_cnt ;
3970 struct work_struct reset_ws ;
3971};
3972#line 222 "include/linux/usb.h"
3973struct usb_interface_cache {
3974 unsigned int num_altsetting ;
3975 struct kref ref ;
3976 struct usb_host_interface altsetting[0] ;
3977};
3978#line 274 "include/linux/usb.h"
3979struct usb_host_config {
3980 struct usb_config_descriptor desc ;
3981 char *string ;
3982 struct usb_interface_assoc_descriptor *intf_assoc[16] ;
3983 struct usb_interface *interface[32] ;
3984 struct usb_interface_cache *intf_cache[32] ;
3985 unsigned char *extra ;
3986 int extralen ;
3987};
3988#line 305 "include/linux/usb.h"
3989struct usb_devmap {
3990 unsigned long devicemap[128UL / (8UL * sizeof(unsigned long ))] ;
3991};
3992#line 312
3993struct mon_bus;
3994#line 312
3995struct mon_bus;
3996#line 312 "include/linux/usb.h"
3997struct usb_bus {
3998 struct device *controller ;
3999 int busnum ;
4000 char const *bus_name ;
4001 u8 uses_dma ;
4002 u8 uses_pio_for_control ;
4003 u8 otg_port ;
4004 unsigned int is_b_host : 1 ;
4005 unsigned int b_hnp_enable : 1 ;
4006 unsigned int sg_tablesize ;
4007 int devnum_next ;
4008 struct usb_devmap devmap ;
4009 struct usb_device *root_hub ;
4010 struct usb_bus *hs_companion ;
4011 struct list_head bus_list ;
4012 int bandwidth_allocated ;
4013 int bandwidth_int_reqs ;
4014 int bandwidth_isoc_reqs ;
4015 struct dentry *usbfs_dentry ;
4016 struct mon_bus *mon_bus ;
4017 int monitored ;
4018};
4019#line 367
4020struct usb_tt;
4021#line 367
4022struct usb_tt;
4023#line 426 "include/linux/usb.h"
4024struct usb_device {
4025 int devnum ;
4026 char devpath[16] ;
4027 u32 route ;
4028 enum usb_device_state state ;
4029 enum usb_device_speed speed ;
4030 struct usb_tt *tt ;
4031 int ttport ;
4032 unsigned int toggle[2] ;
4033 struct usb_device *parent ;
4034 struct usb_bus *bus ;
4035 struct usb_host_endpoint ep0 ;
4036 struct device dev ;
4037 struct usb_device_descriptor descriptor ;
4038 struct usb_host_config *config ;
4039 struct usb_host_config *actconfig ;
4040 struct usb_host_endpoint *ep_in[16] ;
4041 struct usb_host_endpoint *ep_out[16] ;
4042 char **rawdescriptors ;
4043 unsigned short bus_mA ;
4044 u8 portnum ;
4045 u8 level ;
4046 unsigned int can_submit : 1 ;
4047 unsigned int persist_enabled : 1 ;
4048 unsigned int have_langid : 1 ;
4049 unsigned int authorized : 1 ;
4050 unsigned int authenticated : 1 ;
4051 unsigned int wusb : 1 ;
4052 int string_langid ;
4053 char *product ;
4054 char *manufacturer ;
4055 char *serial ;
4056 struct list_head filelist ;
4057 struct device *usb_classdev ;
4058 struct dentry *usbfs_dentry ;
4059 int maxchild ;
4060 struct usb_device *children[31] ;
4061 u32 quirks ;
4062 atomic_t urbnum ;
4063 unsigned long active_duration ;
4064 unsigned long connect_time ;
4065 unsigned int do_remote_wakeup : 1 ;
4066 unsigned int reset_resume : 1 ;
4067 struct wusb_dev *wusb_dev ;
4068 int slot_id ;
4069};
4070#line 983 "include/linux/usb.h"
4071struct usb_iso_packet_descriptor {
4072 unsigned int offset ;
4073 unsigned int length ;
4074 unsigned int actual_length ;
4075 int status ;
4076};
4077#line 990
4078struct urb;
4079#line 990
4080struct urb;
4081#line 992 "include/linux/usb.h"
4082struct usb_anchor {
4083 struct list_head urb_list ;
4084 wait_queue_head_t wait ;
4085 spinlock_t lock ;
4086 unsigned int poisoned : 1 ;
4087};
4088#line 1183 "include/linux/usb.h"
4089struct urb {
4090 struct kref kref ;
4091 void *hcpriv ;
4092 atomic_t use_count ;
4093 atomic_t reject ;
4094 int unlinked ;
4095 struct list_head urb_list ;
4096 struct list_head anchor_list ;
4097 struct usb_anchor *anchor ;
4098 struct usb_device *dev ;
4099 struct usb_host_endpoint *ep ;
4100 unsigned int pipe ;
4101 unsigned int stream_id ;
4102 int status ;
4103 unsigned int transfer_flags ;
4104 void *transfer_buffer ;
4105 dma_addr_t transfer_dma ;
4106 struct scatterlist *sg ;
4107 int num_sgs ;
4108 u32 transfer_buffer_length ;
4109 u32 actual_length ;
4110 unsigned char *setup_packet ;
4111 dma_addr_t setup_dma ;
4112 int start_frame ;
4113 int number_of_packets ;
4114 int interval ;
4115 int error_count ;
4116 void *context ;
4117 void (*complete)(struct urb * ) ;
4118 struct usb_iso_packet_descriptor iso_frame_desc[0] ;
4119};
4120#line 178 "include/linux/types.h"
4121typedef __u16 __be16;
4122#line 180 "include/linux/types.h"
4123typedef __u32 __be32;
4124#line 185 "include/linux/types.h"
4125typedef __u32 __wsum;
4126#line 33 "include/linux/seqlock.h"
4127struct __anonstruct_seqlock_t_40 {
4128 unsigned int sequence ;
4129 spinlock_t lock ;
4130};
4131#line 33 "include/linux/seqlock.h"
4132typedef struct __anonstruct_seqlock_t_40 seqlock_t;
4133#line 11 "include/linux/socket.h"
4134struct sockaddr;
4135#line 11
4136struct sockaddr;
4137#line 38 "include/linux/socket.h"
4138typedef unsigned short sa_family_t;
4139#line 44 "include/linux/socket.h"
4140struct sockaddr {
4141 sa_family_t sa_family ;
4142 char sa_data[14] ;
4143};
4144#line 62 "include/linux/socket.h"
4145struct msghdr {
4146 void *msg_name ;
4147 int msg_namelen ;
4148 struct iovec *msg_iov ;
4149 __kernel_size_t msg_iovlen ;
4150 void *msg_control ;
4151 __kernel_size_t msg_controllen ;
4152 unsigned int msg_flags ;
4153};
4154#line 37 "include/linux/hdlc/ioctl.h"
4155struct __anonstruct_sync_serial_settings_41 {
4156 unsigned int clock_rate ;
4157 unsigned int clock_type ;
4158 unsigned short loopback ;
4159};
4160#line 37 "include/linux/hdlc/ioctl.h"
4161typedef struct __anonstruct_sync_serial_settings_41 sync_serial_settings;
4162#line 43 "include/linux/hdlc/ioctl.h"
4163struct __anonstruct_te1_settings_42 {
4164 unsigned int clock_rate ;
4165 unsigned int clock_type ;
4166 unsigned short loopback ;
4167 unsigned int slot_map ;
4168};
4169#line 43 "include/linux/hdlc/ioctl.h"
4170typedef struct __anonstruct_te1_settings_42 te1_settings;
4171#line 50 "include/linux/hdlc/ioctl.h"
4172struct __anonstruct_raw_hdlc_proto_43 {
4173 unsigned short encoding ;
4174 unsigned short parity ;
4175};
4176#line 50 "include/linux/hdlc/ioctl.h"
4177typedef struct __anonstruct_raw_hdlc_proto_43 raw_hdlc_proto;
4178#line 55 "include/linux/hdlc/ioctl.h"
4179struct __anonstruct_fr_proto_44 {
4180 unsigned int t391 ;
4181 unsigned int t392 ;
4182 unsigned int n391 ;
4183 unsigned int n392 ;
4184 unsigned int n393 ;
4185 unsigned short lmi ;
4186 unsigned short dce ;
4187};
4188#line 55 "include/linux/hdlc/ioctl.h"
4189typedef struct __anonstruct_fr_proto_44 fr_proto;
4190#line 65 "include/linux/hdlc/ioctl.h"
4191struct __anonstruct_fr_proto_pvc_45 {
4192 unsigned int dlci ;
4193};
4194#line 65 "include/linux/hdlc/ioctl.h"
4195typedef struct __anonstruct_fr_proto_pvc_45 fr_proto_pvc;
4196#line 69 "include/linux/hdlc/ioctl.h"
4197struct __anonstruct_fr_proto_pvc_info_46 {
4198 unsigned int dlci ;
4199 char master[16] ;
4200};
4201#line 69 "include/linux/hdlc/ioctl.h"
4202typedef struct __anonstruct_fr_proto_pvc_info_46 fr_proto_pvc_info;
4203#line 74 "include/linux/hdlc/ioctl.h"
4204struct __anonstruct_cisco_proto_47 {
4205 unsigned int interval ;
4206 unsigned int timeout ;
4207};
4208#line 74 "include/linux/hdlc/ioctl.h"
4209typedef struct __anonstruct_cisco_proto_47 cisco_proto;
4210#line 134 "include/linux/if.h"
4211struct ifmap {
4212 unsigned long mem_start ;
4213 unsigned long mem_end ;
4214 unsigned short base_addr ;
4215 unsigned char irq ;
4216 unsigned char dma ;
4217 unsigned char port ;
4218};
4219#line 144 "include/linux/if.h"
4220union __anonunion_ifs_ifsu_50 {
4221 raw_hdlc_proto *raw_hdlc ;
4222 cisco_proto *cisco ;
4223 fr_proto *fr ;
4224 fr_proto_pvc *fr_pvc ;
4225 fr_proto_pvc_info *fr_pvc_info ;
4226 sync_serial_settings *sync ;
4227 te1_settings *te1 ;
4228};
4229#line 144 "include/linux/if.h"
4230struct if_settings {
4231 unsigned int type ;
4232 unsigned int size ;
4233 union __anonunion_ifs_ifsu_50 ifs_ifsu ;
4234};
4235#line 168 "include/linux/if.h"
4236union __anonunion_ifr_ifrn_51 {
4237 char ifrn_name[16] ;
4238};
4239#line 168 "include/linux/if.h"
4240union __anonunion_ifr_ifru_52 {
4241 struct sockaddr ifru_addr ;
4242 struct sockaddr ifru_dstaddr ;
4243 struct sockaddr ifru_broadaddr ;
4244 struct sockaddr ifru_netmask ;
4245 struct sockaddr ifru_hwaddr ;
4246 short ifru_flags ;
4247 int ifru_ivalue ;
4248 int ifru_mtu ;
4249 struct ifmap ifru_map ;
4250 char ifru_slave[16] ;
4251 char ifru_newname[16] ;
4252 void *ifru_data ;
4253 struct if_settings ifru_settings ;
4254};
4255#line 168 "include/linux/if.h"
4256struct ifreq {
4257 union __anonunion_ifr_ifrn_51 ifr_ifrn ;
4258 union __anonunion_ifr_ifru_52 ifr_ifru ;
4259};
4260#line 290 "include/linux/timer.h"
4261enum hrtimer_restart;
4262#line 290
4263enum hrtimer_restart;
4264#line 18 "include/linux/percpu_counter.h"
4265struct percpu_counter {
4266 spinlock_t lock ;
4267 s64 count ;
4268 struct list_head list ;
4269 s32 *counters ;
4270};
4271#line 2574 "include/linux/fs.h"
4272struct ctl_table;
4273#line 2574
4274struct ctl_table;
4275#line 938 "include/linux/sysctl.h"
4276struct ctl_table_root;
4277#line 938
4278struct ctl_table_root;
4279#line 940 "include/linux/sysctl.h"
4280struct ctl_table_set {
4281 struct list_head list ;
4282 struct ctl_table_set *parent ;
4283 int (*is_seen)(struct ctl_table_set * ) ;
4284};
4285#line 950
4286struct ctl_table_header;
4287#line 950
4288struct ctl_table_header;
4289#line 965 "include/linux/sysctl.h"
4290typedef int proc_handler(struct ctl_table *ctl , int write , void *buffer , size_t *lenp ,
4291 loff_t *ppos );
4292#line 1015 "include/linux/sysctl.h"
4293struct ctl_table {
4294 char const *procname ;
4295 void *data ;
4296 int maxlen ;
4297 mode_t mode ;
4298 struct ctl_table *child ;
4299 struct ctl_table *parent ;
4300 proc_handler *proc_handler ;
4301 void *extra1 ;
4302 void *extra2 ;
4303};
4304#line 1028 "include/linux/sysctl.h"
4305struct ctl_table_root {
4306 struct list_head root_list ;
4307 struct ctl_table_set default_set ;
4308 struct ctl_table_set *(*lookup)(struct ctl_table_root *root , struct nsproxy *namespaces ) ;
4309 int (*permissions)(struct ctl_table_root *root , struct nsproxy *namespaces , struct ctl_table *table ) ;
4310};
4311#line 1039 "include/linux/sysctl.h"
4312struct __anonstruct____missing_field_name_239 {
4313 struct ctl_table *ctl_table ;
4314 struct list_head ctl_entry ;
4315 int used ;
4316 int count ;
4317};
4318#line 1039 "include/linux/sysctl.h"
4319union __anonunion____missing_field_name_238 {
4320 struct __anonstruct____missing_field_name_239 __annonCompField36 ;
4321 struct rcu_head rcu ;
4322};
4323#line 1039 "include/linux/sysctl.h"
4324struct ctl_table_header {
4325 union __anonunion____missing_field_name_238 __annonCompField37 ;
4326 struct completion *unregistering ;
4327 struct ctl_table *ctl_table_arg ;
4328 struct ctl_table_root *root ;
4329 struct ctl_table_set *set ;
4330 struct ctl_table *attached_by ;
4331 struct ctl_table *attached_to ;
4332 struct ctl_table_header *parent ;
4333};
4334#line 24 "include/linux/sysfs.h"
4335enum kobj_ns_type;
4336#line 311 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/elf.h"
4337struct linux_binprm;
4338#line 311
4339struct linux_binprm;
4340#line 119 "include/linux/if_ether.h"
4341struct ethhdr {
4342 unsigned char h_dest[6] ;
4343 unsigned char h_source[6] ;
4344 __be16 h_proto ;
4345} __attribute__((__packed__)) ;
4346#line 47 "include/linux/net.h"
4347enum __anonenum_socket_state_257 {
4348 SS_FREE = 0,
4349 SS_UNCONNECTED = 1,
4350 SS_CONNECTING = 2,
4351 SS_CONNECTED = 3,
4352 SS_DISCONNECTING = 4
4353} ;
4354#line 47 "include/linux/net.h"
4355typedef enum __anonenum_socket_state_257 socket_state;
4356#line 68
4357struct net;
4358#line 68
4359struct net;
4360#line 121 "include/linux/net.h"
4361struct socket_wq {
4362 wait_queue_head_t wait ;
4363 struct fasync_struct *fasync_list ;
4364 struct rcu_head rcu ;
4365} __attribute__((__aligned__((1) << (6) ))) ;
4366#line 138
4367struct proto_ops;
4368#line 138
4369struct proto_ops;
4370#line 138 "include/linux/net.h"
4371struct socket {
4372 socket_state state ;
4373 short type ;
4374 unsigned long flags ;
4375 struct socket_wq *wq ;
4376 struct file *file ;
4377 struct sock *sk ;
4378 struct proto_ops const *ops ;
4379};
4380#line 161 "include/linux/net.h"
4381struct proto_ops {
4382 int family ;
4383 struct module *owner ;
4384 int (*release)(struct socket *sock ) ;
4385 int (*bind)(struct socket *sock , struct sockaddr *myaddr , int sockaddr_len ) ;
4386 int (*connect)(struct socket *sock , struct sockaddr *vaddr , int sockaddr_len ,
4387 int flags ) ;
4388 int (*socketpair)(struct socket *sock1 , struct socket *sock2 ) ;
4389 int (*accept)(struct socket *sock , struct socket *newsock , int flags ) ;
4390 int (*getname)(struct socket *sock , struct sockaddr *addr , int *sockaddr_len ,
4391 int peer ) ;
4392 unsigned int (*poll)(struct file *file , struct socket *sock , struct poll_table_struct *wait ) ;
4393 int (*ioctl)(struct socket *sock , unsigned int cmd , unsigned long arg ) ;
4394 int (*compat_ioctl)(struct socket *sock , unsigned int cmd , unsigned long arg ) ;
4395 int (*listen)(struct socket *sock , int len ) ;
4396 int (*shutdown)(struct socket *sock , int flags ) ;
4397 int (*setsockopt)(struct socket *sock , int level , int optname , char *optval ,
4398 unsigned int optlen ) ;
4399 int (*getsockopt)(struct socket *sock , int level , int optname , char *optval ,
4400 int *optlen ) ;
4401 int (*compat_setsockopt)(struct socket *sock , int level , int optname , char *optval ,
4402 unsigned int optlen ) ;
4403 int (*compat_getsockopt)(struct socket *sock , int level , int optname , char *optval ,
4404 int *optlen ) ;
4405 int (*sendmsg)(struct kiocb *iocb , struct socket *sock , struct msghdr *m , size_t total_len ) ;
4406 int (*recvmsg)(struct kiocb *iocb , struct socket *sock , struct msghdr *m , size_t total_len ,
4407 int flags ) ;
4408 int (*mmap)(struct file *file , struct socket *sock , struct vm_area_struct *vma ) ;
4409 ssize_t (*sendpage)(struct socket *sock , struct page *page , int offset , size_t size ,
4410 int flags ) ;
4411 ssize_t (*splice_read)(struct socket *sock , loff_t *ppos , struct pipe_inode_info *pipe ,
4412 size_t len , unsigned int flags ) ;
4413};
4414#line 109 "include/net/checksum.h"
4415struct sk_buff;
4416#line 109
4417struct sk_buff;
4418#line 33 "include/linux/dmaengine.h"
4419typedef s32 dma_cookie_t;
4420#line 94 "include/linux/skbuff.h"
4421struct net_device;
4422#line 94
4423struct net_device;
4424#line 99 "include/linux/skbuff.h"
4425struct nf_conntrack {
4426 atomic_t use ;
4427};
4428#line 105 "include/linux/skbuff.h"
4429struct nf_bridge_info {
4430 atomic_t use ;
4431 struct net_device *physindev ;
4432 struct net_device *physoutdev ;
4433 unsigned int mask ;
4434 unsigned long data[32UL / sizeof(unsigned long )] ;
4435};
4436#line 114 "include/linux/skbuff.h"
4437struct sk_buff_head {
4438 struct sk_buff *next ;
4439 struct sk_buff *prev ;
4440 __u32 qlen ;
4441 spinlock_t lock ;
4442};
4443#line 259 "include/linux/skbuff.h"
4444typedef unsigned int sk_buff_data_t;
4445#line 325
4446struct sec_path;
4447#line 325
4448struct sec_path;
4449#line 325 "include/linux/skbuff.h"
4450struct __anonstruct____missing_field_name_264 {
4451 __u16 csum_start ;
4452 __u16 csum_offset ;
4453};
4454#line 325 "include/linux/skbuff.h"
4455union __anonunion____missing_field_name_263 {
4456 __wsum csum ;
4457 struct __anonstruct____missing_field_name_264 __annonCompField41 ;
4458};
4459#line 325 "include/linux/skbuff.h"
4460union __anonunion____missing_field_name_265 {
4461 __u32 mark ;
4462 __u32 dropcount ;
4463};
4464#line 325 "include/linux/skbuff.h"
4465struct sk_buff {
4466 struct sk_buff *next ;
4467 struct sk_buff *prev ;
4468 ktime_t tstamp ;
4469 struct sock *sk ;
4470 struct net_device *dev ;
4471 char cb[48] __attribute__((__aligned__(8))) ;
4472 unsigned long _skb_refdst ;
4473 struct sec_path *sp ;
4474 unsigned int len ;
4475 unsigned int data_len ;
4476 __u16 mac_len ;
4477 __u16 hdr_len ;
4478 union __anonunion____missing_field_name_263 __annonCompField42 ;
4479 __u32 priority ;
4480 __u8 local_df : 1 ;
4481 __u8 cloned : 1 ;
4482 __u8 ip_summed : 2 ;
4483 __u8 nohdr : 1 ;
4484 __u8 nfctinfo : 3 ;
4485 __u8 pkt_type : 3 ;
4486 __u8 fclone : 2 ;
4487 __u8 ipvs_property : 1 ;
4488 __u8 peeked : 1 ;
4489 __u8 nf_trace : 1 ;
4490 __be16 protocol ;
4491 void (*destructor)(struct sk_buff *skb ) ;
4492 struct nf_conntrack *nfct ;
4493 struct sk_buff *nfct_reasm ;
4494 struct nf_bridge_info *nf_bridge ;
4495 int skb_iif ;
4496 __u16 tc_index ;
4497 __u16 tc_verd ;
4498 __u32 rxhash ;
4499 __u16 queue_mapping ;
4500 __u8 ndisc_nodetype : 2 ;
4501 __u8 ooo_okay : 1 ;
4502 dma_cookie_t dma_cookie ;
4503 __u32 secmark ;
4504 union __anonunion____missing_field_name_265 __annonCompField43 ;
4505 __u16 vlan_tci ;
4506 sk_buff_data_t transport_header ;
4507 sk_buff_data_t network_header ;
4508 sk_buff_data_t mac_header ;
4509 sk_buff_data_t tail ;
4510 sk_buff_data_t end ;
4511 unsigned char *head ;
4512 unsigned char *data ;
4513 unsigned int truesize ;
4514 atomic_t users ;
4515};
4516#line 450
4517struct dst_entry;
4518#line 450
4519struct dst_entry;
4520#line 485
4521struct rtable;
4522#line 485
4523struct rtable;
4524#line 47 "include/linux/miscdevice.h"
4525struct miscdevice {
4526 int minor ;
4527 char const *name ;
4528 struct file_operations const *fops ;
4529 struct list_head list ;
4530 struct device *parent ;
4531 struct device *this_device ;
4532 char const *nodename ;
4533 mode_t mode ;
4534};
4535#line 12 "include/linux/if_packet.h"
4536struct sockaddr_ll {
4537 unsigned short sll_family ;
4538 __be16 sll_protocol ;
4539 int sll_ifindex ;
4540 unsigned short sll_hatype ;
4541 unsigned char sll_pkttype ;
4542 unsigned char sll_halen ;
4543 unsigned char sll_addr[8] ;
4544};
4545#line 125 "include/linux/netlink.h"
4546struct nlattr {
4547 __u16 nla_len ;
4548 __u16 nla_type ;
4549};
4550#line 41 "include/linux/if_link.h"
4551struct rtnl_link_stats64 {
4552 __u64 rx_packets ;
4553 __u64 tx_packets ;
4554 __u64 rx_bytes ;
4555 __u64 tx_bytes ;
4556 __u64 rx_errors ;
4557 __u64 tx_errors ;
4558 __u64 rx_dropped ;
4559 __u64 tx_dropped ;
4560 __u64 multicast ;
4561 __u64 collisions ;
4562 __u64 rx_length_errors ;
4563 __u64 rx_over_errors ;
4564 __u64 rx_crc_errors ;
4565 __u64 rx_frame_errors ;
4566 __u64 rx_fifo_errors ;
4567 __u64 rx_missed_errors ;
4568 __u64 tx_aborted_errors ;
4569 __u64 tx_carrier_errors ;
4570 __u64 tx_fifo_errors ;
4571 __u64 tx_heartbeat_errors ;
4572 __u64 tx_window_errors ;
4573 __u64 rx_compressed ;
4574 __u64 tx_compressed ;
4575};
4576#line 303 "include/linux/if_link.h"
4577struct ifla_vf_info {
4578 __u32 vf ;
4579 __u8 mac[32] ;
4580 __u32 vlan ;
4581 __u32 qos ;
4582 __u32 tx_rate ;
4583};
4584#line 23 "include/linux/pm_qos_params.h"
4585struct pm_qos_request_list {
4586 struct plist_node list ;
4587 int pm_qos_class ;
4588};
4589#line 23 "include/linux/ethtool.h"
4590struct ethtool_cmd {
4591 __u32 cmd ;
4592 __u32 supported ;
4593 __u32 advertising ;
4594 __u16 speed ;
4595 __u8 duplex ;
4596 __u8 port ;
4597 __u8 phy_address ;
4598 __u8 transceiver ;
4599 __u8 autoneg ;
4600 __u8 mdio_support ;
4601 __u32 maxtxpkt ;
4602 __u32 maxrxpkt ;
4603 __u16 speed_hi ;
4604 __u8 eth_tp_mdix ;
4605 __u8 reserved2 ;
4606 __u32 lp_advertising ;
4607 __u32 reserved[2] ;
4608};
4609#line 65 "include/linux/ethtool.h"
4610struct ethtool_drvinfo {
4611 __u32 cmd ;
4612 char driver[32] ;
4613 char version[32] ;
4614 char fw_version[32] ;
4615 char bus_info[32] ;
4616 char reserved1[32] ;
4617 char reserved2[12] ;
4618 __u32 n_priv_flags ;
4619 __u32 n_stats ;
4620 __u32 testinfo_len ;
4621 __u32 eedump_len ;
4622 __u32 regdump_len ;
4623};
4624#line 90 "include/linux/ethtool.h"
4625struct ethtool_wolinfo {
4626 __u32 cmd ;
4627 __u32 supported ;
4628 __u32 wolopts ;
4629 __u8 sopass[6] ;
4630};
4631#line 104 "include/linux/ethtool.h"
4632struct ethtool_regs {
4633 __u32 cmd ;
4634 __u32 version ;
4635 __u32 len ;
4636 __u8 data[0] ;
4637};
4638#line 112 "include/linux/ethtool.h"
4639struct ethtool_eeprom {
4640 __u32 cmd ;
4641 __u32 magic ;
4642 __u32 offset ;
4643 __u32 len ;
4644 __u8 data[0] ;
4645};
4646#line 121 "include/linux/ethtool.h"
4647struct ethtool_coalesce {
4648 __u32 cmd ;
4649 __u32 rx_coalesce_usecs ;
4650 __u32 rx_max_coalesced_frames ;
4651 __u32 rx_coalesce_usecs_irq ;
4652 __u32 rx_max_coalesced_frames_irq ;
4653 __u32 tx_coalesce_usecs ;
4654 __u32 tx_max_coalesced_frames ;
4655 __u32 tx_coalesce_usecs_irq ;
4656 __u32 tx_max_coalesced_frames_irq ;
4657 __u32 stats_block_coalesce_usecs ;
4658 __u32 use_adaptive_rx_coalesce ;
4659 __u32 use_adaptive_tx_coalesce ;
4660 __u32 pkt_rate_low ;
4661 __u32 rx_coalesce_usecs_low ;
4662 __u32 rx_max_coalesced_frames_low ;
4663 __u32 tx_coalesce_usecs_low ;
4664 __u32 tx_max_coalesced_frames_low ;
4665 __u32 pkt_rate_high ;
4666 __u32 rx_coalesce_usecs_high ;
4667 __u32 rx_max_coalesced_frames_high ;
4668 __u32 tx_coalesce_usecs_high ;
4669 __u32 tx_max_coalesced_frames_high ;
4670 __u32 rate_sample_interval ;
4671};
4672#line 217 "include/linux/ethtool.h"
4673struct ethtool_ringparam {
4674 __u32 cmd ;
4675 __u32 rx_max_pending ;
4676 __u32 rx_mini_max_pending ;
4677 __u32 rx_jumbo_max_pending ;
4678 __u32 tx_max_pending ;
4679 __u32 rx_pending ;
4680 __u32 rx_mini_pending ;
4681 __u32 rx_jumbo_pending ;
4682 __u32 tx_pending ;
4683};
4684#line 254 "include/linux/ethtool.h"
4685struct ethtool_channels {
4686 __u32 cmd ;
4687 __u32 max_rx ;
4688 __u32 max_tx ;
4689 __u32 max_other ;
4690 __u32 max_combined ;
4691 __u32 rx_count ;
4692 __u32 tx_count ;
4693 __u32 other_count ;
4694 __u32 combined_count ;
4695};
4696#line 267 "include/linux/ethtool.h"
4697struct ethtool_pauseparam {
4698 __u32 cmd ;
4699 __u32 autoneg ;
4700 __u32 rx_pause ;
4701 __u32 tx_pause ;
4702};
4703#line 319 "include/linux/ethtool.h"
4704struct ethtool_test {
4705 __u32 cmd ;
4706 __u32 flags ;
4707 __u32 reserved ;
4708 __u32 len ;
4709 __u64 data[0] ;
4710};
4711#line 328 "include/linux/ethtool.h"
4712struct ethtool_stats {
4713 __u32 cmd ;
4714 __u32 n_stats ;
4715 __u64 data[0] ;
4716};
4717#line 373 "include/linux/ethtool.h"
4718struct ethtool_tcpip4_spec {
4719 __be32 ip4src ;
4720 __be32 ip4dst ;
4721 __be16 psrc ;
4722 __be16 pdst ;
4723 __u8 tos ;
4724};
4725#line 390 "include/linux/ethtool.h"
4726struct ethtool_ah_espip4_spec {
4727 __be32 ip4src ;
4728 __be32 ip4dst ;
4729 __be32 spi ;
4730 __u8 tos ;
4731};
4732#line 408 "include/linux/ethtool.h"
4733struct ethtool_usrip4_spec {
4734 __be32 ip4src ;
4735 __be32 ip4dst ;
4736 __be32 l4_4_bytes ;
4737 __u8 tos ;
4738 __u8 ip_ver ;
4739 __u8 proto ;
4740};
4741#line 417 "include/linux/ethtool.h"
4742union ethtool_flow_union {
4743 struct ethtool_tcpip4_spec tcp_ip4_spec ;
4744 struct ethtool_tcpip4_spec udp_ip4_spec ;
4745 struct ethtool_tcpip4_spec sctp_ip4_spec ;
4746 struct ethtool_ah_espip4_spec ah_ip4_spec ;
4747 struct ethtool_ah_espip4_spec esp_ip4_spec ;
4748 struct ethtool_usrip4_spec usr_ip4_spec ;
4749 struct ethhdr ether_spec ;
4750 __u8 hdata[60] ;
4751};
4752#line 428 "include/linux/ethtool.h"
4753struct ethtool_flow_ext {
4754 __be16 vlan_etype ;
4755 __be16 vlan_tci ;
4756 __be32 data[2] ;
4757};
4758#line 447 "include/linux/ethtool.h"
4759struct ethtool_rx_flow_spec {
4760 __u32 flow_type ;
4761 union ethtool_flow_union h_u ;
4762 struct ethtool_flow_ext h_ext ;
4763 union ethtool_flow_union m_u ;
4764 struct ethtool_flow_ext m_ext ;
4765 __u64 ring_cookie ;
4766 __u32 location ;
4767};
4768#line 496 "include/linux/ethtool.h"
4769struct ethtool_rxnfc {
4770 __u32 cmd ;
4771 __u32 flow_type ;
4772 __u64 data ;
4773 struct ethtool_rx_flow_spec fs ;
4774 __u32 rule_cnt ;
4775 __u32 rule_locs[0] ;
4776};
4777#line 537 "include/linux/ethtool.h"
4778struct ethtool_rxfh_indir {
4779 __u32 cmd ;
4780 __u32 size ;
4781 __u32 ring_index[0] ;
4782};
4783#line 559 "include/linux/ethtool.h"
4784union __anonunion_h_u_280 {
4785 struct ethtool_tcpip4_spec tcp_ip4_spec ;
4786 struct ethtool_tcpip4_spec udp_ip4_spec ;
4787 struct ethtool_tcpip4_spec sctp_ip4_spec ;
4788 struct ethtool_ah_espip4_spec ah_ip4_spec ;
4789 struct ethtool_ah_espip4_spec esp_ip4_spec ;
4790 struct ethtool_usrip4_spec usr_ip4_spec ;
4791 struct ethhdr ether_spec ;
4792 __u8 hdata[72] ;
4793};
4794#line 559 "include/linux/ethtool.h"
4795struct ethtool_rx_ntuple_flow_spec {
4796 __u32 flow_type ;
4797 union __anonunion_h_u_280 h_u ;
4798 union __anonunion_h_u_280 m_u ;
4799 __u16 vlan_tag ;
4800 __u16 vlan_tag_mask ;
4801 __u64 data ;
4802 __u64 data_mask ;
4803 __s32 action ;
4804};
4805#line 587 "include/linux/ethtool.h"
4806struct ethtool_rx_ntuple {
4807 __u32 cmd ;
4808 struct ethtool_rx_ntuple_flow_spec fs ;
4809};
4810#line 598 "include/linux/ethtool.h"
4811struct ethtool_flash {
4812 __u32 cmd ;
4813 __u32 region ;
4814 char data[128] ;
4815};
4816#line 616 "include/linux/ethtool.h"
4817struct ethtool_dump {
4818 __u32 cmd ;
4819 __u32 version ;
4820 __u32 flag ;
4821 __u32 len ;
4822 __u8 data[0] ;
4823};
4824#line 722 "include/linux/ethtool.h"
4825struct ethtool_rx_ntuple_list {
4826 struct list_head list ;
4827 unsigned int count ;
4828};
4829#line 738
4830enum ethtool_phys_id_state {
4831 ETHTOOL_ID_INACTIVE = 0,
4832 ETHTOOL_ID_ACTIVE = 1,
4833 ETHTOOL_ID_ON = 2,
4834 ETHTOOL_ID_OFF = 3
4835} ;
4836#line 891 "include/linux/ethtool.h"
4837struct ethtool_ops {
4838 int (*get_settings)(struct net_device * , struct ethtool_cmd * ) ;
4839 int (*set_settings)(struct net_device * , struct ethtool_cmd * ) ;
4840 void (*get_drvinfo)(struct net_device * , struct ethtool_drvinfo * ) ;
4841 int (*get_regs_len)(struct net_device * ) ;
4842 void (*get_regs)(struct net_device * , struct ethtool_regs * , void * ) ;
4843 void (*get_wol)(struct net_device * , struct ethtool_wolinfo * ) ;
4844 int (*set_wol)(struct net_device * , struct ethtool_wolinfo * ) ;
4845 u32 (*get_msglevel)(struct net_device * ) ;
4846 void (*set_msglevel)(struct net_device * , u32 ) ;
4847 int (*nway_reset)(struct net_device * ) ;
4848 u32 (*get_link)(struct net_device * ) ;
4849 int (*get_eeprom_len)(struct net_device * ) ;
4850 int (*get_eeprom)(struct net_device * , struct ethtool_eeprom * , u8 * ) ;
4851 int (*set_eeprom)(struct net_device * , struct ethtool_eeprom * , u8 * ) ;
4852 int (*get_coalesce)(struct net_device * , struct ethtool_coalesce * ) ;
4853 int (*set_coalesce)(struct net_device * , struct ethtool_coalesce * ) ;
4854 void (*get_ringparam)(struct net_device * , struct ethtool_ringparam * ) ;
4855 int (*set_ringparam)(struct net_device * , struct ethtool_ringparam * ) ;
4856 void (*get_pauseparam)(struct net_device * , struct ethtool_pauseparam * ) ;
4857 int (*set_pauseparam)(struct net_device * , struct ethtool_pauseparam * ) ;
4858 u32 (*get_rx_csum)(struct net_device * ) ;
4859 int (*set_rx_csum)(struct net_device * , u32 ) ;
4860 u32 (*get_tx_csum)(struct net_device * ) ;
4861 int (*set_tx_csum)(struct net_device * , u32 ) ;
4862 u32 (*get_sg)(struct net_device * ) ;
4863 int (*set_sg)(struct net_device * , u32 ) ;
4864 u32 (*get_tso)(struct net_device * ) ;
4865 int (*set_tso)(struct net_device * , u32 ) ;
4866 void (*self_test)(struct net_device * , struct ethtool_test * , u64 * ) ;
4867 void (*get_strings)(struct net_device * , u32 stringset , u8 * ) ;
4868 int (*set_phys_id)(struct net_device * , enum ethtool_phys_id_state ) ;
4869 void (*get_ethtool_stats)(struct net_device * , struct ethtool_stats * , u64 * ) ;
4870 int (*begin)(struct net_device * ) ;
4871 void (*complete)(struct net_device * ) ;
4872 u32 (*get_ufo)(struct net_device * ) ;
4873 int (*set_ufo)(struct net_device * , u32 ) ;
4874 u32 (*get_flags)(struct net_device * ) ;
4875 int (*set_flags)(struct net_device * , u32 ) ;
4876 u32 (*get_priv_flags)(struct net_device * ) ;
4877 int (*set_priv_flags)(struct net_device * , u32 ) ;
4878 int (*get_sset_count)(struct net_device * , int ) ;
4879 int (*get_rxnfc)(struct net_device * , struct ethtool_rxnfc * , void * ) ;
4880 int (*set_rxnfc)(struct net_device * , struct ethtool_rxnfc * ) ;
4881 int (*flash_device)(struct net_device * , struct ethtool_flash * ) ;
4882 int (*reset)(struct net_device * , u32 * ) ;
4883 int (*set_rx_ntuple)(struct net_device * , struct ethtool_rx_ntuple * ) ;
4884 int (*get_rx_ntuple)(struct net_device * , u32 stringset , void * ) ;
4885 int (*get_rxfh_indir)(struct net_device * , struct ethtool_rxfh_indir * ) ;
4886 int (*set_rxfh_indir)(struct net_device * , struct ethtool_rxfh_indir const * ) ;
4887 void (*get_channels)(struct net_device * , struct ethtool_channels * ) ;
4888 int (*set_channels)(struct net_device * , struct ethtool_channels * ) ;
4889 int (*get_dump_flag)(struct net_device * , struct ethtool_dump * ) ;
4890 int (*get_dump_data)(struct net_device * , struct ethtool_dump * , void * ) ;
4891 int (*set_dump)(struct net_device * , struct ethtool_dump * ) ;
4892};
4893#line 5 "include/net/netns/core.h"
4894struct prot_inuse;
4895#line 5
4896struct prot_inuse;
4897#line 7 "include/net/netns/core.h"
4898struct netns_core {
4899 struct ctl_table_header *sysctl_hdr ;
4900 int sysctl_somaxconn ;
4901 struct prot_inuse *inuse ;
4902};
4903#line 64 "include/linux/u64_stats_sync.h"
4904struct u64_stats_sync {
4905
4906};
4907#line 56 "include/net/snmp.h"
4908struct ipstats_mib {
4909 u64 mibs[31] ;
4910 struct u64_stats_sync syncp ;
4911};
4912#line 64 "include/net/snmp.h"
4913struct icmp_mib {
4914 unsigned long mibs[27] ;
4915};
4916#line 69 "include/net/snmp.h"
4917struct icmpmsg_mib {
4918 unsigned long mibs[512] ;
4919};
4920#line 76 "include/net/snmp.h"
4921struct icmpv6_mib {
4922 unsigned long mibs[5] ;
4923};
4924#line 86 "include/net/snmp.h"
4925struct icmpv6msg_mib {
4926 unsigned long mibs[512] ;
4927};
4928#line 97 "include/net/snmp.h"
4929struct tcp_mib {
4930 unsigned long mibs[15] ;
4931};
4932#line 103 "include/net/snmp.h"
4933struct udp_mib {
4934 unsigned long mibs[7] ;
4935};
4936#line 109 "include/net/snmp.h"
4937struct linux_mib {
4938 unsigned long mibs[80] ;
4939};
4940#line 115 "include/net/snmp.h"
4941struct linux_xfrm_mib {
4942 unsigned long mibs[27] ;
4943};
4944#line 6 "include/net/netns/mib.h"
4945struct netns_mib {
4946 struct tcp_mib *tcp_statistics[2] ;
4947 struct ipstats_mib *ip_statistics[2] ;
4948 struct linux_mib *net_statistics[2] ;
4949 struct udp_mib *udp_statistics[2] ;
4950 struct udp_mib *udplite_statistics[2] ;
4951 struct icmp_mib *icmp_statistics[2] ;
4952 struct icmpmsg_mib *icmpmsg_statistics[2] ;
4953 struct proc_dir_entry *proc_net_devsnmp6 ;
4954 struct udp_mib *udp_stats_in6[2] ;
4955 struct udp_mib *udplite_stats_in6[2] ;
4956 struct ipstats_mib *ipv6_statistics[2] ;
4957 struct icmpv6_mib *icmpv6_statistics[2] ;
4958 struct icmpv6msg_mib *icmpv6msg_statistics[2] ;
4959 struct linux_xfrm_mib *xfrm_statistics[2] ;
4960};
4961#line 8 "include/net/netns/unix.h"
4962struct netns_unix {
4963 int sysctl_max_dgram_qlen ;
4964 struct ctl_table_header *ctl ;
4965};
4966#line 10 "include/net/netns/packet.h"
4967struct netns_packet {
4968 spinlock_t sklist_lock ;
4969 struct hlist_head sklist ;
4970};
4971#line 4 "include/net/inet_frag.h"
4972struct netns_frags {
4973 int nqueues ;
4974 atomic_t mem ;
4975 struct list_head lru_list ;
4976 int timeout ;
4977 int high_thresh ;
4978 int low_thresh ;
4979};
4980#line 11 "include/net/netns/ipv4.h"
4981struct ipv4_devconf;
4982#line 11
4983struct ipv4_devconf;
4984#line 12
4985struct fib_rules_ops;
4986#line 12
4987struct fib_rules_ops;
4988#line 16
4989struct xt_table;
4990#line 16
4991struct xt_table;
4992#line 16 "include/net/netns/ipv4.h"
4993struct netns_ipv4 {
4994 struct ctl_table_header *forw_hdr ;
4995 struct ctl_table_header *frags_hdr ;
4996 struct ctl_table_header *ipv4_hdr ;
4997 struct ctl_table_header *route_hdr ;
4998 struct ipv4_devconf *devconf_all ;
4999 struct ipv4_devconf *devconf_dflt ;
5000 struct fib_rules_ops *rules_ops ;
5001 struct hlist_head *fib_table_hash ;
5002 struct sock *fibnl ;
5003 struct sock **icmp_sk ;
5004 struct sock *tcp_sock ;
5005 struct netns_frags frags ;
5006 struct xt_table *iptable_filter ;
5007 struct xt_table *iptable_mangle ;
5008 struct xt_table *iptable_raw ;
5009 struct xt_table *arptable_filter ;
5010 struct xt_table *iptable_security ;
5011 struct xt_table *nat_table ;
5012 struct hlist_head *nat_bysource ;
5013 unsigned int nat_htable_size ;
5014 int sysctl_icmp_echo_ignore_all ;
5015 int sysctl_icmp_echo_ignore_broadcasts ;
5016 int sysctl_icmp_ignore_bogus_error_responses ;
5017 int sysctl_icmp_ratelimit ;
5018 int sysctl_icmp_ratemask ;
5019 int sysctl_icmp_errors_use_inbound_ifaddr ;
5020 int sysctl_rt_cache_rebuild_count ;
5021 int current_rt_cache_rebuild_count ;
5022 unsigned int sysctl_ping_group_range[2] ;
5023 atomic_t rt_genid ;
5024 atomic_t dev_addr_genid ;
5025 struct list_head mr_tables ;
5026 struct fib_rules_ops *mr_rules_ops ;
5027};
5028#line 12 "include/net/dst_ops.h"
5029struct dst_ops {
5030 unsigned short family ;
5031 __be16 protocol ;
5032 unsigned int gc_thresh ;
5033 int (*gc)(struct dst_ops *ops ) ;
5034 struct dst_entry *(*check)(struct dst_entry * , __u32 cookie ) ;
5035 unsigned int (*default_advmss)(struct dst_entry const * ) ;
5036 unsigned int (*default_mtu)(struct dst_entry const * ) ;
5037 u32 *(*cow_metrics)(struct dst_entry * , unsigned long ) ;
5038 void (*destroy)(struct dst_entry * ) ;
5039 void (*ifdown)(struct dst_entry * , struct net_device *dev , int how ) ;
5040 struct dst_entry *(*negative_advice)(struct dst_entry * ) ;
5041 void (*link_failure)(struct sk_buff * ) ;
5042 void (*update_pmtu)(struct dst_entry *dst , u32 mtu ) ;
5043 int (*local_out)(struct sk_buff *skb ) ;
5044 struct kmem_cache *kmem_cachep ;
5045 struct percpu_counter pcpuc_entries __attribute__((__aligned__((1) << (6) ))) ;
5046};
5047#line 13 "include/net/netns/ipv6.h"
5048struct netns_sysctl_ipv6 {
5049 struct ctl_table_header *table ;
5050 struct ctl_table_header *frags_hdr ;
5051 int bindv6only ;
5052 int flush_delay ;
5053 int ip6_rt_max_size ;
5054 int ip6_rt_gc_min_interval ;
5055 int ip6_rt_gc_timeout ;
5056 int ip6_rt_gc_interval ;
5057 int ip6_rt_gc_elasticity ;
5058 int ip6_rt_mtu_expires ;
5059 int ip6_rt_min_advmss ;
5060 int icmpv6_time ;
5061};
5062#line 30
5063struct ipv6_devconf;
5064#line 30
5065struct ipv6_devconf;
5066#line 30
5067struct rt6_info;
5068#line 30
5069struct rt6_info;
5070#line 30
5071struct rt6_statistics;
5072#line 30
5073struct rt6_statistics;
5074#line 30
5075struct fib6_table;
5076#line 30
5077struct fib6_table;
5078#line 30 "include/net/netns/ipv6.h"
5079struct netns_ipv6 {
5080 struct netns_sysctl_ipv6 sysctl ;
5081 struct ipv6_devconf *devconf_all ;
5082 struct ipv6_devconf *devconf_dflt ;
5083 struct netns_frags frags ;
5084 struct xt_table *ip6table_filter ;
5085 struct xt_table *ip6table_mangle ;
5086 struct xt_table *ip6table_raw ;
5087 struct xt_table *ip6table_security ;
5088 struct rt6_info *ip6_null_entry ;
5089 struct rt6_statistics *rt6_stats ;
5090 struct timer_list ip6_fib_timer ;
5091 struct hlist_head *fib_table_hash ;
5092 struct fib6_table *fib6_main_tbl ;
5093 struct dst_ops ip6_dst_ops ;
5094 unsigned int ip6_rt_gc_expire ;
5095 unsigned long ip6_rt_last_gc ;
5096 struct rt6_info *ip6_prohibit_entry ;
5097 struct rt6_info *ip6_blk_hole_entry ;
5098 struct fib6_table *fib6_local_tbl ;
5099 struct fib_rules_ops *fib6_rules_ops ;
5100 struct sock **icmp_sk ;
5101 struct sock *ndisc_sk ;
5102 struct sock *tcp_sk ;
5103 struct sock *igmp_sk ;
5104 struct list_head mr6_tables ;
5105 struct fib_rules_ops *mr6_rules_ops ;
5106};
5107#line 6 "include/net/netns/dccp.h"
5108struct netns_dccp {
5109 struct sock *v4_ctl_sk ;
5110 struct sock *v6_ctl_sk ;
5111};
5112#line 7 "include/net/netns/x_tables.h"
5113struct ebt_table;
5114#line 7
5115struct ebt_table;
5116#line 9 "include/net/netns/x_tables.h"
5117struct netns_xt {
5118 struct list_head tables[13] ;
5119 struct ebt_table *broute_table ;
5120 struct ebt_table *frame_filter ;
5121 struct ebt_table *frame_nat ;
5122};
5123#line 17 "include/linux/list_nulls.h"
5124struct hlist_nulls_node;
5125#line 17
5126struct hlist_nulls_node;
5127#line 17 "include/linux/list_nulls.h"
5128struct hlist_nulls_head {
5129 struct hlist_nulls_node *first ;
5130};
5131#line 21 "include/linux/list_nulls.h"
5132struct hlist_nulls_node {
5133 struct hlist_nulls_node *next ;
5134 struct hlist_nulls_node **pprev ;
5135};
5136#line 11 "include/net/netns/conntrack.h"
5137struct ip_conntrack_stat;
5138#line 11
5139struct ip_conntrack_stat;
5140#line 11 "include/net/netns/conntrack.h"
5141struct netns_ct {
5142 atomic_t count ;
5143 unsigned int expect_count ;
5144 unsigned int htable_size ;
5145 struct kmem_cache *nf_conntrack_cachep ;
5146 struct hlist_nulls_head *hash ;
5147 struct hlist_head *expect_hash ;
5148 struct hlist_nulls_head unconfirmed ;
5149 struct hlist_nulls_head dying ;
5150 struct ip_conntrack_stat *stat ;
5151 int sysctl_events ;
5152 unsigned int sysctl_events_retry_timeout ;
5153 int sysctl_acct ;
5154 int sysctl_tstamp ;
5155 int sysctl_checksum ;
5156 unsigned int sysctl_log_invalid ;
5157 struct ctl_table_header *sysctl_header ;
5158 struct ctl_table_header *acct_sysctl_header ;
5159 struct ctl_table_header *tstamp_sysctl_header ;
5160 struct ctl_table_header *event_sysctl_header ;
5161 char *slabname ;
5162};
5163#line 12 "include/net/netns/xfrm.h"
5164struct xfrm_policy_hash {
5165 struct hlist_head *table ;
5166 unsigned int hmask ;
5167};
5168#line 17 "include/net/netns/xfrm.h"
5169struct netns_xfrm {
5170 struct list_head state_all ;
5171 struct hlist_head *state_bydst ;
5172 struct hlist_head *state_bysrc ;
5173 struct hlist_head *state_byspi ;
5174 unsigned int state_hmask ;
5175 unsigned int state_num ;
5176 struct work_struct state_hash_work ;
5177 struct hlist_head state_gc_list ;
5178 struct work_struct state_gc_work ;
5179 wait_queue_head_t km_waitq ;
5180 struct list_head policy_all ;
5181 struct hlist_head *policy_byidx ;
5182 unsigned int policy_idx_hmask ;
5183 struct hlist_head policy_inexact[6] ;
5184 struct xfrm_policy_hash policy_bydst[6] ;
5185 unsigned int policy_count[6] ;
5186 struct work_struct policy_hash_work ;
5187 struct sock *nlsk ;
5188 struct sock *nlsk_stash ;
5189 u32 sysctl_aevent_etime ;
5190 u32 sysctl_aevent_rseqth ;
5191 int sysctl_larval_drop ;
5192 u32 sysctl_acq_expires ;
5193 struct ctl_table_header *sysctl_hdr ;
5194 struct dst_ops xfrm4_dst_ops ;
5195 struct dst_ops xfrm6_dst_ops ;
5196};
5197#line 29 "include/net/net_namespace.h"
5198struct net_generic;
5199#line 29
5200struct net_generic;
5201#line 31
5202struct netns_ipvs;
5203#line 31
5204struct netns_ipvs;
5205#line 37 "include/net/net_namespace.h"
5206struct net {
5207 atomic_t passive ;
5208 atomic_t count ;
5209 spinlock_t rules_mod_lock ;
5210 struct list_head list ;
5211 struct list_head cleanup_list ;
5212 struct list_head exit_list ;
5213 struct proc_dir_entry *proc_net ;
5214 struct proc_dir_entry *proc_net_stat ;
5215 struct ctl_table_set sysctls ;
5216 struct sock *rtnl ;
5217 struct sock *genl_sock ;
5218 struct list_head dev_base_head ;
5219 struct hlist_head *dev_name_head ;
5220 struct hlist_head *dev_index_head ;
5221 struct list_head rules_ops ;
5222 struct net_device *loopback_dev ;
5223 struct netns_core core ;
5224 struct netns_mib mib ;
5225 struct netns_packet packet ;
5226 struct netns_unix unx ;
5227 struct netns_ipv4 ipv4 ;
5228 struct netns_ipv6 ipv6 ;
5229 struct netns_dccp dccp ;
5230 struct netns_xt xt ;
5231 struct netns_ct ct ;
5232 struct sock *nfnl ;
5233 struct sock *nfnl_stash ;
5234 struct sk_buff_head wext_nlevents ;
5235 struct net_generic *gen ;
5236 struct netns_xfrm xfrm ;
5237 struct netns_ipvs *ipvs ;
5238};
5239#line 57 "include/linux/dcbnl.h"
5240struct ieee_ets {
5241 __u8 willing ;
5242 __u8 ets_cap ;
5243 __u8 cbs ;
5244 __u8 tc_tx_bw[8] ;
5245 __u8 tc_rx_bw[8] ;
5246 __u8 tc_tsa[8] ;
5247 __u8 prio_tc[8] ;
5248 __u8 tc_reco_bw[8] ;
5249 __u8 tc_reco_tsa[8] ;
5250 __u8 reco_prio_tc[8] ;
5251};
5252#line 81 "include/linux/dcbnl.h"
5253struct ieee_pfc {
5254 __u8 pfc_cap ;
5255 __u8 pfc_en ;
5256 __u8 mbc ;
5257 __u16 delay ;
5258 __u64 requests[8] ;
5259 __u64 indications[8] ;
5260};
5261#line 104 "include/linux/dcbnl.h"
5262struct cee_pg {
5263 __u8 willing ;
5264 __u8 error ;
5265 __u8 pg_en ;
5266 __u8 tcs_supported ;
5267 __u8 pg_bw[8] ;
5268 __u8 prio_pg[8] ;
5269};
5270#line 121 "include/linux/dcbnl.h"
5271struct cee_pfc {
5272 __u8 willing ;
5273 __u8 error ;
5274 __u8 pfc_en ;
5275 __u8 tcs_supported ;
5276};
5277#line 151 "include/linux/dcbnl.h"
5278struct dcb_app {
5279 __u8 selector ;
5280 __u8 priority ;
5281 __u16 protocol ;
5282};
5283#line 166 "include/linux/dcbnl.h"
5284struct dcb_peer_app_info {
5285 __u8 willing ;
5286 __u8 error ;
5287};
5288#line 38 "include/net/dcbnl.h"
5289struct dcbnl_rtnl_ops {
5290 int (*ieee_getets)(struct net_device * , struct ieee_ets * ) ;
5291 int (*ieee_setets)(struct net_device * , struct ieee_ets * ) ;
5292 int (*ieee_getpfc)(struct net_device * , struct ieee_pfc * ) ;
5293 int (*ieee_setpfc)(struct net_device * , struct ieee_pfc * ) ;
5294 int (*ieee_getapp)(struct net_device * , struct dcb_app * ) ;
5295 int (*ieee_setapp)(struct net_device * , struct dcb_app * ) ;
5296 int (*ieee_peer_getets)(struct net_device * , struct ieee_ets * ) ;
5297 int (*ieee_peer_getpfc)(struct net_device * , struct ieee_pfc * ) ;
5298 u8 (*getstate)(struct net_device * ) ;
5299 u8 (*setstate)(struct net_device * , u8 ) ;
5300 void (*getpermhwaddr)(struct net_device * , u8 * ) ;
5301 void (*setpgtccfgtx)(struct net_device * , int , u8 , u8 , u8 , u8 ) ;
5302 void (*setpgbwgcfgtx)(struct net_device * , int , u8 ) ;
5303 void (*setpgtccfgrx)(struct net_device * , int , u8 , u8 , u8 , u8 ) ;
5304 void (*setpgbwgcfgrx)(struct net_device * , int , u8 ) ;
5305 void (*getpgtccfgtx)(struct net_device * , int , u8 * , u8 * , u8 * , u8 * ) ;
5306 void (*getpgbwgcfgtx)(struct net_device * , int , u8 * ) ;
5307 void (*getpgtccfgrx)(struct net_device * , int , u8 * , u8 * , u8 * , u8 * ) ;
5308 void (*getpgbwgcfgrx)(struct net_device * , int , u8 * ) ;
5309 void (*setpfccfg)(struct net_device * , int , u8 ) ;
5310 void (*getpfccfg)(struct net_device * , int , u8 * ) ;
5311 u8 (*setall)(struct net_device * ) ;
5312 u8 (*getcap)(struct net_device * , int , u8 * ) ;
5313 u8 (*getnumtcs)(struct net_device * , int , u8 * ) ;
5314 u8 (*setnumtcs)(struct net_device * , int , u8 ) ;
5315 u8 (*getpfcstate)(struct net_device * ) ;
5316 void (*setpfcstate)(struct net_device * , u8 ) ;
5317 void (*getbcncfg)(struct net_device * , int , u32 * ) ;
5318 void (*setbcncfg)(struct net_device * , int , u32 ) ;
5319 void (*getbcnrp)(struct net_device * , int , u8 * ) ;
5320 void (*setbcnrp)(struct net_device * , int , u8 ) ;
5321 u8 (*setapp)(struct net_device * , u8 , u16 , u8 ) ;
5322 u8 (*getapp)(struct net_device * , u8 , u16 ) ;
5323 u8 (*getfeatcfg)(struct net_device * , int , u8 * ) ;
5324 u8 (*setfeatcfg)(struct net_device * , int , u8 ) ;
5325 u8 (*getdcbx)(struct net_device * ) ;
5326 u8 (*setdcbx)(struct net_device * , u8 ) ;
5327 int (*peer_getappinfo)(struct net_device * , struct dcb_peer_app_info * , u16 * ) ;
5328 int (*peer_getapptable)(struct net_device * , struct dcb_app * ) ;
5329 int (*cee_peer_getpg)(struct net_device * , struct cee_pg * ) ;
5330 int (*cee_peer_getpfc)(struct net_device * , struct cee_pfc * ) ;
5331};
5332#line 55 "include/linux/netdevice.h"
5333struct vlan_group;
5334#line 55
5335struct vlan_group;
5336#line 56
5337struct netpoll_info;
5338#line 56
5339struct netpoll_info;
5340#line 57
5341struct phy_device;
5342#line 57
5343struct phy_device;
5344#line 59
5345struct wireless_dev;
5346#line 59
5347struct wireless_dev;
5348#line 111
5349enum netdev_tx {
5350 __NETDEV_TX_MIN = (-0x7FFFFFFF-1),
5351 NETDEV_TX_OK = 0,
5352 NETDEV_TX_BUSY = 16,
5353 NETDEV_TX_LOCKED = 32
5354} ;
5355#line 117 "include/linux/netdevice.h"
5356typedef enum netdev_tx netdev_tx_t;
5357#line 176 "include/linux/netdevice.h"
5358struct net_device_stats {
5359 unsigned long rx_packets ;
5360 unsigned long tx_packets ;
5361 unsigned long rx_bytes ;
5362 unsigned long tx_bytes ;
5363 unsigned long rx_errors ;
5364 unsigned long tx_errors ;
5365 unsigned long rx_dropped ;
5366 unsigned long tx_dropped ;
5367 unsigned long multicast ;
5368 unsigned long collisions ;
5369 unsigned long rx_length_errors ;
5370 unsigned long rx_over_errors ;
5371 unsigned long rx_crc_errors ;
5372 unsigned long rx_frame_errors ;
5373 unsigned long rx_fifo_errors ;
5374 unsigned long rx_missed_errors ;
5375 unsigned long tx_aborted_errors ;
5376 unsigned long tx_carrier_errors ;
5377 unsigned long tx_fifo_errors ;
5378 unsigned long tx_heartbeat_errors ;
5379 unsigned long tx_window_errors ;
5380 unsigned long rx_compressed ;
5381 unsigned long tx_compressed ;
5382};
5383#line 221
5384struct neighbour;
5385#line 221
5386struct neighbour;
5387#line 222
5388struct neigh_parms;
5389#line 222
5390struct neigh_parms;
5391#line 240 "include/linux/netdevice.h"
5392struct netdev_hw_addr_list {
5393 struct list_head list ;
5394 int count ;
5395};
5396#line 260 "include/linux/netdevice.h"
5397struct hh_cache {
5398 struct hh_cache *hh_next ;
5399 atomic_t hh_refcnt ;
5400 __be16 hh_type __attribute__((__aligned__((1) << (6) ))) ;
5401 u16 hh_len ;
5402 int (*hh_output)(struct sk_buff *skb ) ;
5403 seqlock_t hh_lock ;
5404 unsigned long hh_data[128UL / sizeof(long )] ;
5405};
5406#line 311 "include/linux/netdevice.h"
5407struct header_ops {
5408 int (*create)(struct sk_buff *skb , struct net_device *dev , unsigned short type ,
5409 void const *daddr , void const *saddr , unsigned int len ) ;
5410 int (*parse)(struct sk_buff const *skb , unsigned char *haddr ) ;
5411 int (*rebuild)(struct sk_buff *skb ) ;
5412 int (*cache)(struct neighbour const *neigh , struct hh_cache *hh ) ;
5413 void (*cache_update)(struct hh_cache *hh , struct net_device const *dev , unsigned char const *haddr ) ;
5414};
5415#line 434
5416enum rx_handler_result {
5417 RX_HANDLER_CONSUMED = 0,
5418 RX_HANDLER_ANOTHER = 1,
5419 RX_HANDLER_EXACT = 2,
5420 RX_HANDLER_PASS = 3
5421} ;
5422#line 440 "include/linux/netdevice.h"
5423typedef enum rx_handler_result rx_handler_result_t;
5424#line 441 "include/linux/netdevice.h"
5425typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **pskb );
5426#line 551
5427struct Qdisc;
5428#line 551
5429struct Qdisc;
5430#line 551 "include/linux/netdevice.h"
5431struct netdev_queue {
5432 struct net_device *dev ;
5433 struct Qdisc *qdisc ;
5434 unsigned long state ;
5435 struct Qdisc *qdisc_sleeping ;
5436 struct kobject kobj ;
5437 int numa_node ;
5438 spinlock_t _xmit_lock __attribute__((__aligned__((1) << (6) ))) ;
5439 int xmit_lock_owner ;
5440 unsigned long trans_start ;
5441} __attribute__((__aligned__((1) << (6) ))) ;
5442#line 597 "include/linux/netdevice.h"
5443struct rps_map {
5444 unsigned int len ;
5445 struct rcu_head rcu ;
5446 u16 cpus[0] ;
5447};
5448#line 609 "include/linux/netdevice.h"
5449struct rps_dev_flow {
5450 u16 cpu ;
5451 u16 filter ;
5452 unsigned int last_qtail ;
5453};
5454#line 619 "include/linux/netdevice.h"
5455struct rps_dev_flow_table {
5456 unsigned int mask ;
5457 struct rcu_head rcu ;
5458 struct work_struct free_work ;
5459 struct rps_dev_flow flows[0] ;
5460};
5461#line 670 "include/linux/netdevice.h"
5462struct netdev_rx_queue {
5463 struct rps_map *rps_map ;
5464 struct rps_dev_flow_table *rps_flow_table ;
5465 struct kobject kobj ;
5466 struct net_device *dev ;
5467} __attribute__((__aligned__((1) << (6) ))) ;
5468#line 683 "include/linux/netdevice.h"
5469struct xps_map {
5470 unsigned int len ;
5471 unsigned int alloc_len ;
5472 struct rcu_head rcu ;
5473 u16 queues[0] ;
5474};
5475#line 696 "include/linux/netdevice.h"
5476struct xps_dev_maps {
5477 struct rcu_head rcu ;
5478 struct xps_map *cpu_map[0] ;
5479};
5480#line 707 "include/linux/netdevice.h"
5481struct netdev_tc_txq {
5482 u16 count ;
5483 u16 offset ;
5484};
5485#line 892 "include/linux/netdevice.h"
5486struct net_device_ops {
5487 int (*ndo_init)(struct net_device *dev ) ;
5488 void (*ndo_uninit)(struct net_device *dev ) ;
5489 int (*ndo_open)(struct net_device *dev ) ;
5490 int (*ndo_stop)(struct net_device *dev ) ;
5491 netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb , struct net_device *dev ) ;
5492 u16 (*ndo_select_queue)(struct net_device *dev , struct sk_buff *skb ) ;
5493 void (*ndo_change_rx_flags)(struct net_device *dev , int flags ) ;
5494 void (*ndo_set_rx_mode)(struct net_device *dev ) ;
5495 void (*ndo_set_multicast_list)(struct net_device *dev ) ;
5496 int (*ndo_set_mac_address)(struct net_device *dev , void *addr ) ;
5497 int (*ndo_validate_addr)(struct net_device *dev ) ;
5498 int (*ndo_do_ioctl)(struct net_device *dev , struct ifreq *ifr , int cmd ) ;
5499 int (*ndo_set_config)(struct net_device *dev , struct ifmap *map ) ;
5500 int (*ndo_change_mtu)(struct net_device *dev , int new_mtu ) ;
5501 int (*ndo_neigh_setup)(struct net_device *dev , struct neigh_parms * ) ;
5502 void (*ndo_tx_timeout)(struct net_device *dev ) ;
5503 struct rtnl_link_stats64 *(*ndo_get_stats64)(struct net_device *dev , struct rtnl_link_stats64 *storage ) ;
5504 struct net_device_stats *(*ndo_get_stats)(struct net_device *dev ) ;
5505 void (*ndo_vlan_rx_register)(struct net_device *dev , struct vlan_group *grp ) ;
5506 void (*ndo_vlan_rx_add_vid)(struct net_device *dev , unsigned short vid ) ;
5507 void (*ndo_vlan_rx_kill_vid)(struct net_device *dev , unsigned short vid ) ;
5508 void (*ndo_poll_controller)(struct net_device *dev ) ;
5509 int (*ndo_netpoll_setup)(struct net_device *dev , struct netpoll_info *info ) ;
5510 void (*ndo_netpoll_cleanup)(struct net_device *dev ) ;
5511 int (*ndo_set_vf_mac)(struct net_device *dev , int queue , u8 *mac ) ;
5512 int (*ndo_set_vf_vlan)(struct net_device *dev , int queue , u16 vlan , u8 qos ) ;
5513 int (*ndo_set_vf_tx_rate)(struct net_device *dev , int vf , int rate ) ;
5514 int (*ndo_get_vf_config)(struct net_device *dev , int vf , struct ifla_vf_info *ivf ) ;
5515 int (*ndo_set_vf_port)(struct net_device *dev , int vf , struct nlattr **port ) ;
5516 int (*ndo_get_vf_port)(struct net_device *dev , int vf , struct sk_buff *skb ) ;
5517 int (*ndo_setup_tc)(struct net_device *dev , u8 tc ) ;
5518 int (*ndo_fcoe_enable)(struct net_device *dev ) ;
5519 int (*ndo_fcoe_disable)(struct net_device *dev ) ;
5520 int (*ndo_fcoe_ddp_setup)(struct net_device *dev , u16 xid , struct scatterlist *sgl ,
5521 unsigned int sgc ) ;
5522 int (*ndo_fcoe_ddp_done)(struct net_device *dev , u16 xid ) ;
5523 int (*ndo_fcoe_ddp_target)(struct net_device *dev , u16 xid , struct scatterlist *sgl ,
5524 unsigned int sgc ) ;
5525 int (*ndo_fcoe_get_wwn)(struct net_device *dev , u64 *wwn , int type ) ;
5526 int (*ndo_rx_flow_steer)(struct net_device *dev , struct sk_buff const *skb ,
5527 u16 rxq_index , u32 flow_id ) ;
5528 int (*ndo_add_slave)(struct net_device *dev , struct net_device *slave_dev ) ;
5529 int (*ndo_del_slave)(struct net_device *dev , struct net_device *slave_dev ) ;
5530 u32 (*ndo_fix_features)(struct net_device *dev , u32 features ) ;
5531 int (*ndo_set_features)(struct net_device *dev , u32 features ) ;
5532};
5533#line 993
5534struct iw_handler_def;
5535#line 993
5536struct iw_handler_def;
5537#line 993
5538struct iw_public_data;
5539#line 993
5540struct iw_public_data;
5541#line 993
5542struct in_device;
5543#line 993
5544struct in_device;
5545#line 993
5546struct dn_dev;
5547#line 993
5548struct dn_dev;
5549#line 993
5550struct inet6_dev;
5551#line 993
5552struct inet6_dev;
5553#line 993
5554struct cpu_rmap;
5555#line 993
5556struct cpu_rmap;
5557#line 993
5558enum __anonenum_reg_state_304 {
5559 NETREG_UNINITIALIZED = 0,
5560 NETREG_REGISTERED = 1,
5561 NETREG_UNREGISTERING = 2,
5562 NETREG_UNREGISTERED = 3,
5563 NETREG_RELEASED = 4,
5564 NETREG_DUMMY = 5
5565} ;
5566#line 993
5567enum __anonenum_rtnl_link_state_305 {
5568 RTNL_LINK_INITIALIZED = 0,
5569 RTNL_LINK_INITIALIZING = 1
5570} ;
5571#line 993
5572struct pcpu_lstats;
5573#line 993
5574struct pcpu_lstats;
5575#line 993
5576struct pcpu_tstats;
5577#line 993
5578struct pcpu_tstats;
5579#line 993
5580struct pcpu_dstats;
5581#line 993
5582struct pcpu_dstats;
5583#line 993 "include/linux/netdevice.h"
5584union __anonunion____missing_field_name_306 {
5585 void *ml_priv ;
5586 struct pcpu_lstats *lstats ;
5587 struct pcpu_tstats *tstats ;
5588 struct pcpu_dstats *dstats ;
5589};
5590#line 993
5591struct garp_port;
5592#line 993
5593struct garp_port;
5594#line 993
5595struct rtnl_link_ops;
5596#line 993
5597struct rtnl_link_ops;
5598#line 993 "include/linux/netdevice.h"
5599struct net_device {
5600 char name[16] ;
5601 struct pm_qos_request_list pm_qos_req ;
5602 struct hlist_node name_hlist ;
5603 char *ifalias ;
5604 unsigned long mem_end ;
5605 unsigned long mem_start ;
5606 unsigned long base_addr ;
5607 unsigned int irq ;
5608 unsigned long state ;
5609 struct list_head dev_list ;
5610 struct list_head napi_list ;
5611 struct list_head unreg_list ;
5612 u32 features ;
5613 u32 hw_features ;
5614 u32 wanted_features ;
5615 u32 vlan_features ;
5616 int ifindex ;
5617 int iflink ;
5618 struct net_device_stats stats ;
5619 atomic_long_t rx_dropped ;
5620 struct iw_handler_def const *wireless_handlers ;
5621 struct iw_public_data *wireless_data ;
5622 struct net_device_ops const *netdev_ops ;
5623 struct ethtool_ops const *ethtool_ops ;
5624 struct header_ops const *header_ops ;
5625 unsigned int flags ;
5626 unsigned int priv_flags ;
5627 unsigned short gflags ;
5628 unsigned short padded ;
5629 unsigned char operstate ;
5630 unsigned char link_mode ;
5631 unsigned char if_port ;
5632 unsigned char dma ;
5633 unsigned int mtu ;
5634 unsigned short type ;
5635 unsigned short hard_header_len ;
5636 unsigned short needed_headroom ;
5637 unsigned short needed_tailroom ;
5638 unsigned char perm_addr[32] ;
5639 unsigned char addr_assign_type ;
5640 unsigned char addr_len ;
5641 unsigned short dev_id ;
5642 spinlock_t addr_list_lock ;
5643 struct netdev_hw_addr_list uc ;
5644 struct netdev_hw_addr_list mc ;
5645 int uc_promisc ;
5646 unsigned int promiscuity ;
5647 unsigned int allmulti ;
5648 struct vlan_group *vlgrp ;
5649 void *dsa_ptr ;
5650 void *atalk_ptr ;
5651 struct in_device *ip_ptr ;
5652 struct dn_dev *dn_ptr ;
5653 struct inet6_dev *ip6_ptr ;
5654 void *ec_ptr ;
5655 void *ax25_ptr ;
5656 struct wireless_dev *ieee80211_ptr ;
5657 unsigned long last_rx ;
5658 struct net_device *master ;
5659 unsigned char *dev_addr ;
5660 struct netdev_hw_addr_list dev_addrs ;
5661 unsigned char broadcast[32] ;
5662 struct kset *queues_kset ;
5663 struct netdev_rx_queue *_rx ;
5664 unsigned int num_rx_queues ;
5665 unsigned int real_num_rx_queues ;
5666 struct cpu_rmap *rx_cpu_rmap ;
5667 rx_handler_func_t *rx_handler ;
5668 void *rx_handler_data ;
5669 struct netdev_queue *ingress_queue ;
5670 struct netdev_queue *_tx __attribute__((__aligned__((1) << (6) ))) ;
5671 unsigned int num_tx_queues ;
5672 unsigned int real_num_tx_queues ;
5673 struct Qdisc *qdisc ;
5674 unsigned long tx_queue_len ;
5675 spinlock_t tx_global_lock ;
5676 struct xps_dev_maps *xps_maps ;
5677 unsigned long trans_start ;
5678 int watchdog_timeo ;
5679 struct timer_list watchdog_timer ;
5680 int *pcpu_refcnt ;
5681 struct list_head todo_list ;
5682 struct hlist_node index_hlist ;
5683 struct list_head link_watch_list ;
5684 enum __anonenum_reg_state_304 reg_state : 8 ;
5685 bool dismantle ;
5686 enum __anonenum_rtnl_link_state_305 rtnl_link_state : 16 ;
5687 void (*destructor)(struct net_device *dev ) ;
5688 struct netpoll_info *npinfo ;
5689 struct net *nd_net ;
5690 union __anonunion____missing_field_name_306 __annonCompField44 ;
5691 struct garp_port *garp_port ;
5692 struct device dev ;
5693 struct attribute_group const *sysfs_groups[4] ;
5694 struct rtnl_link_ops const *rtnl_link_ops ;
5695 unsigned int gso_max_size ;
5696 struct dcbnl_rtnl_ops const *dcbnl_ops ;
5697 u8 num_tc ;
5698 struct netdev_tc_txq tc_to_txq[16] ;
5699 u8 prio_tc_map[16] ;
5700 unsigned int fcoe_ddp_xid ;
5701 struct ethtool_rx_ntuple_list ethtool_ntuple_list ;
5702 struct phy_device *phydev ;
5703 int group ;
5704};
5705#line 26 "include/linux/filter.h"
5706struct sock_filter {
5707 __u16 code ;
5708 __u8 jt ;
5709 __u8 jf ;
5710 __u32 k ;
5711};
5712#line 138 "include/linux/filter.h"
5713struct sk_filter {
5714 atomic_t refcnt ;
5715 unsigned int len ;
5716 unsigned int (*bpf_func)(struct sk_buff const *skb , struct sock_filter const *filter ) ;
5717 struct rcu_head rcu ;
5718 struct sock_filter insns[0] ;
5719};
5720#line 205 "include/net/netlink.h"
5721struct nla_policy {
5722 u16 type ;
5723 u16 len ;
5724};
5725#line 28 "include/linux/binfmts.h"
5726struct linux_binprm {
5727 char buf[128] ;
5728 struct vm_area_struct *vma ;
5729 unsigned long vma_pages ;
5730 struct mm_struct *mm ;
5731 unsigned long p ;
5732 unsigned int cred_prepared : 1 ;
5733 unsigned int cap_effective : 1 ;
5734 unsigned int recursion_depth ;
5735 struct file *file ;
5736 struct cred *cred ;
5737 int unsafe ;
5738 unsigned int per_clear ;
5739 int argc ;
5740 int envc ;
5741 char const *filename ;
5742 char const *interp ;
5743 unsigned int interp_flags ;
5744 unsigned int interp_data ;
5745 unsigned long loader ;
5746 unsigned long exec ;
5747};
5748#line 73 "include/linux/binfmts.h"
5749struct coredump_params {
5750 long signr ;
5751 struct pt_regs *regs ;
5752 struct file *file ;
5753 unsigned long limit ;
5754 unsigned long mm_flags ;
5755};
5756#line 85 "include/linux/binfmts.h"
5757struct linux_binfmt {
5758 struct list_head lh ;
5759 struct module *module ;
5760 int (*load_binary)(struct linux_binprm * , struct pt_regs *regs ) ;
5761 int (*load_shlib)(struct file * ) ;
5762 int (*core_dump)(struct coredump_params *cprm ) ;
5763 unsigned long min_coredump ;
5764};
5765#line 92 "include/linux/security.h"
5766struct xfrm_policy;
5767#line 92
5768struct xfrm_policy;
5769#line 93
5770struct xfrm_state;
5771#line 93
5772struct xfrm_state;
5773#line 45 "include/net/rtnetlink.h"
5774struct rtnl_link_ops {
5775 struct list_head list ;
5776 char const *kind ;
5777 size_t priv_size ;
5778 void (*setup)(struct net_device *dev ) ;
5779 int maxtype ;
5780 struct nla_policy const *policy ;
5781 int (*validate)(struct nlattr **tb , struct nlattr **data ) ;
5782 int (*newlink)(struct net *src_net , struct net_device *dev , struct nlattr **tb ,
5783 struct nlattr **data ) ;
5784 int (*changelink)(struct net_device *dev , struct nlattr **tb , struct nlattr **data ) ;
5785 void (*dellink)(struct net_device *dev , struct list_head *head ) ;
5786 size_t (*get_size)(struct net_device const *dev ) ;
5787 int (*fill_info)(struct sk_buff *skb , struct net_device const *dev ) ;
5788 size_t (*get_xstats_size)(struct net_device const *dev ) ;
5789 int (*fill_xstats)(struct sk_buff *skb , struct net_device const *dev ) ;
5790 int (*get_tx_queues)(struct net *net , struct nlattr **tb , unsigned int *tx_queues ,
5791 unsigned int *real_tx_queues ) ;
5792};
5793#line 40 "include/net/neighbour.h"
5794struct neigh_table;
5795#line 40
5796struct neigh_table;
5797#line 40 "include/net/neighbour.h"
5798struct neigh_parms {
5799 struct net *net ;
5800 struct net_device *dev ;
5801 struct neigh_parms *next ;
5802 int (*neigh_setup)(struct neighbour * ) ;
5803 void (*neigh_cleanup)(struct neighbour * ) ;
5804 struct neigh_table *tbl ;
5805 void *sysctl_table ;
5806 int dead ;
5807 atomic_t refcnt ;
5808 struct rcu_head rcu_head ;
5809 int base_reachable_time ;
5810 int retrans_time ;
5811 int gc_staletime ;
5812 int reachable_time ;
5813 int delay_probe_time ;
5814 int queue_len ;
5815 int ucast_probes ;
5816 int app_probes ;
5817 int mcast_probes ;
5818 int anycast_delay ;
5819 int proxy_delay ;
5820 int proxy_qlen ;
5821 int locktime ;
5822};
5823#line 72 "include/net/neighbour.h"
5824struct neigh_statistics {
5825 unsigned long allocs ;
5826 unsigned long destroys ;
5827 unsigned long hash_grows ;
5828 unsigned long res_failed ;
5829 unsigned long lookups ;
5830 unsigned long hits ;
5831 unsigned long rcv_probes_mcast ;
5832 unsigned long rcv_probes_ucast ;
5833 unsigned long periodic_gc_runs ;
5834 unsigned long forced_gc_runs ;
5835 unsigned long unres_discards ;
5836};
5837#line 93
5838struct neigh_ops;
5839#line 93
5840struct neigh_ops;
5841#line 93 "include/net/neighbour.h"
5842struct neighbour {
5843 struct neighbour *next ;
5844 struct neigh_table *tbl ;
5845 struct neigh_parms *parms ;
5846 unsigned long confirmed ;
5847 unsigned long updated ;
5848 rwlock_t lock ;
5849 atomic_t refcnt ;
5850 struct sk_buff_head arp_queue ;
5851 struct timer_list timer ;
5852 unsigned long used ;
5853 atomic_t probes ;
5854 __u8 flags ;
5855 __u8 nud_state ;
5856 __u8 type ;
5857 __u8 dead ;
5858 seqlock_t ha_lock ;
5859 unsigned char ha[(32 + ((int )sizeof(unsigned long ) - 1)) & ~ ((int )sizeof(unsigned long ) - 1)] ;
5860 struct hh_cache *hh ;
5861 int (*output)(struct sk_buff *skb ) ;
5862 struct neigh_ops const *ops ;
5863 struct rcu_head rcu ;
5864 struct net_device *dev ;
5865 u8 primary_key[0] ;
5866};
5867#line 119 "include/net/neighbour.h"
5868struct neigh_ops {
5869 int family ;
5870 void (*solicit)(struct neighbour * , struct sk_buff * ) ;
5871 void (*error_report)(struct neighbour * , struct sk_buff * ) ;
5872 int (*output)(struct sk_buff * ) ;
5873 int (*connected_output)(struct sk_buff * ) ;
5874 int (*hh_output)(struct sk_buff * ) ;
5875 int (*queue_xmit)(struct sk_buff * ) ;
5876};
5877#line 129 "include/net/neighbour.h"
5878struct pneigh_entry {
5879 struct pneigh_entry *next ;
5880 struct net *net ;
5881 struct net_device *dev ;
5882 u8 flags ;
5883 u8 key[0] ;
5884};
5885#line 143 "include/net/neighbour.h"
5886struct neigh_hash_table {
5887 struct neighbour **hash_buckets ;
5888 unsigned int hash_mask ;
5889 __u32 hash_rnd ;
5890 struct rcu_head rcu ;
5891};
5892#line 151 "include/net/neighbour.h"
5893struct neigh_table {
5894 struct neigh_table *next ;
5895 int family ;
5896 int entry_size ;
5897 int key_len ;
5898 __u32 (*hash)(void const *pkey , struct net_device const *dev , __u32 hash_rnd ) ;
5899 int (*constructor)(struct neighbour * ) ;
5900 int (*pconstructor)(struct pneigh_entry * ) ;
5901 void (*pdestructor)(struct pneigh_entry * ) ;
5902 void (*proxy_redo)(struct sk_buff *skb ) ;
5903 char *id ;
5904 struct neigh_parms parms ;
5905 int gc_interval ;
5906 int gc_thresh1 ;
5907 int gc_thresh2 ;
5908 int gc_thresh3 ;
5909 unsigned long last_flush ;
5910 struct delayed_work gc_work ;
5911 struct timer_list proxy_timer ;
5912 struct sk_buff_head proxy_queue ;
5913 atomic_t entries ;
5914 rwlock_t lock ;
5915 unsigned long last_rand ;
5916 struct kmem_cache *kmem_cachep ;
5917 struct neigh_statistics *stats ;
5918 struct neigh_hash_table *nht ;
5919 struct pneigh_entry **phash_buckets ;
5920};
5921#line 32 "include/net/dst.h"
5922struct dn_route;
5923#line 32
5924struct dn_route;
5925#line 32 "include/net/dst.h"
5926union __anonunion____missing_field_name_336 {
5927 struct dst_entry *next ;
5928 struct rtable *rt_next ;
5929 struct rt6_info *rt6_next ;
5930 struct dn_route *dn_next ;
5931};
5932#line 32 "include/net/dst.h"
5933struct dst_entry {
5934 struct rcu_head rcu_head ;
5935 struct dst_entry *child ;
5936 struct net_device *dev ;
5937 struct dst_ops *ops ;
5938 unsigned long _metrics ;
5939 unsigned long expires ;
5940 struct dst_entry *path ;
5941 struct neighbour *neighbour ;
5942 struct hh_cache *hh ;
5943 struct xfrm_state *xfrm ;
5944 int (*input)(struct sk_buff * ) ;
5945 int (*output)(struct sk_buff * ) ;
5946 short error ;
5947 short obsolete ;
5948 unsigned short header_len ;
5949 unsigned short trailer_len ;
5950 __u32 tclassid ;
5951 long __pad_to_align_refcnt[1] ;
5952 atomic_t __refcnt ;
5953 int __use ;
5954 unsigned long lastuse ;
5955 int flags ;
5956 union __anonunion____missing_field_name_336 __annonCompField48 ;
5957};
5958#line 88 "include/net/sock.h"
5959struct __anonstruct_socket_lock_t_338 {
5960 spinlock_t slock ;
5961 int owned ;
5962 wait_queue_head_t wq ;
5963 struct lockdep_map dep_map ;
5964};
5965#line 88 "include/net/sock.h"
5966typedef struct __anonstruct_socket_lock_t_338 socket_lock_t;
5967#line 104
5968struct proto;
5969#line 104
5970struct proto;
5971#line 129 "include/net/sock.h"
5972union __anonunion____missing_field_name_339 {
5973 unsigned int skc_hash ;
5974 __u16 skc_u16hashes[2] ;
5975};
5976#line 129 "include/net/sock.h"
5977union __anonunion____missing_field_name_340 {
5978 struct hlist_node skc_bind_node ;
5979 struct hlist_nulls_node skc_portaddr_node ;
5980};
5981#line 129 "include/net/sock.h"
5982union __anonunion____missing_field_name_341 {
5983 struct hlist_node skc_node ;
5984 struct hlist_nulls_node skc_nulls_node ;
5985};
5986#line 129 "include/net/sock.h"
5987struct sock_common {
5988 __be32 skc_daddr ;
5989 __be32 skc_rcv_saddr ;
5990 union __anonunion____missing_field_name_339 __annonCompField49 ;
5991 unsigned short skc_family ;
5992 unsigned char volatile skc_state ;
5993 unsigned char skc_reuse ;
5994 int skc_bound_dev_if ;
5995 union __anonunion____missing_field_name_340 __annonCompField50 ;
5996 struct proto *skc_prot ;
5997 struct net *skc_net ;
5998 int skc_dontcopy_begin[0] ;
5999 union __anonunion____missing_field_name_341 __annonCompField51 ;
6000 int skc_tx_queue_mapping ;
6001 atomic_t skc_refcnt ;
6002 int skc_dontcopy_end[0] ;
6003};
6004#line 238 "include/net/sock.h"
6005struct __anonstruct_sk_backlog_342 {
6006 atomic_t rmem_alloc ;
6007 int len ;
6008 struct sk_buff *head ;
6009 struct sk_buff *tail ;
6010};
6011#line 238 "include/net/sock.h"
6012struct sock {
6013 struct sock_common __sk_common ;
6014 socket_lock_t sk_lock ;
6015 struct sk_buff_head sk_receive_queue ;
6016 struct __anonstruct_sk_backlog_342 sk_backlog ;
6017 int sk_forward_alloc ;
6018 __u32 sk_rxhash ;
6019 atomic_t sk_drops ;
6020 int sk_rcvbuf ;
6021 struct sk_filter *sk_filter ;
6022 struct socket_wq *sk_wq ;
6023 struct sk_buff_head sk_async_wait_queue ;
6024 struct xfrm_policy *sk_policy[2] ;
6025 unsigned long sk_flags ;
6026 struct dst_entry *sk_dst_cache ;
6027 spinlock_t sk_dst_lock ;
6028 atomic_t sk_wmem_alloc ;
6029 atomic_t sk_omem_alloc ;
6030 int sk_sndbuf ;
6031 struct sk_buff_head sk_write_queue ;
6032 unsigned int sk_shutdown : 2 ;
6033 unsigned int sk_no_check : 2 ;
6034 unsigned int sk_userlocks : 4 ;
6035 unsigned int sk_protocol : 8 ;
6036 unsigned int sk_type : 16 ;
6037 int sk_wmem_queued ;
6038 gfp_t sk_allocation ;
6039 int sk_route_caps ;
6040 int sk_route_nocaps ;
6041 int sk_gso_type ;
6042 unsigned int sk_gso_max_size ;
6043 int sk_rcvlowat ;
6044 unsigned long sk_lingertime ;
6045 struct sk_buff_head sk_error_queue ;
6046 struct proto *sk_prot_creator ;
6047 rwlock_t sk_callback_lock ;
6048 int sk_err ;
6049 int sk_err_soft ;
6050 unsigned short sk_ack_backlog ;
6051 unsigned short sk_max_ack_backlog ;
6052 __u32 sk_priority ;
6053 struct pid *sk_peer_pid ;
6054 struct cred const *sk_peer_cred ;
6055 long sk_rcvtimeo ;
6056 long sk_sndtimeo ;
6057 void *sk_protinfo ;
6058 struct timer_list sk_timer ;
6059 ktime_t sk_stamp ;
6060 struct socket *sk_socket ;
6061 void *sk_user_data ;
6062 struct page *sk_sndmsg_page ;
6063 struct sk_buff *sk_send_head ;
6064 __u32 sk_sndmsg_off ;
6065 int sk_write_pending ;
6066 void *sk_security ;
6067 __u32 sk_mark ;
6068 u32 sk_classid ;
6069 void (*sk_state_change)(struct sock *sk ) ;
6070 void (*sk_data_ready)(struct sock *sk , int bytes ) ;
6071 void (*sk_write_space)(struct sock *sk ) ;
6072 void (*sk_error_report)(struct sock *sk ) ;
6073 int (*sk_backlog_rcv)(struct sock *sk , struct sk_buff *skb ) ;
6074 void (*sk_destruct)(struct sock *sk ) ;
6075};
6076#line 717
6077struct request_sock_ops;
6078#line 717
6079struct request_sock_ops;
6080#line 718
6081struct timewait_sock_ops;
6082#line 718
6083struct timewait_sock_ops;
6084#line 719
6085struct inet_hashinfo;
6086#line 719
6087struct inet_hashinfo;
6088#line 720
6089struct raw_hashinfo;
6090#line 720
6091struct raw_hashinfo;
6092#line 726
6093struct udp_table;
6094#line 726
6095struct udp_table;
6096#line 726 "include/net/sock.h"
6097union __anonunion_h_343 {
6098 struct inet_hashinfo *hashinfo ;
6099 struct udp_table *udp_table ;
6100 struct raw_hashinfo *raw_hash ;
6101};
6102#line 726 "include/net/sock.h"
6103struct proto {
6104 void (*close)(struct sock *sk , long timeout ) ;
6105 int (*connect)(struct sock *sk , struct sockaddr *uaddr , int addr_len ) ;
6106 int (*disconnect)(struct sock *sk , int flags ) ;
6107 struct sock *(*accept)(struct sock *sk , int flags , int *err ) ;
6108 int (*ioctl)(struct sock *sk , int cmd , unsigned long arg ) ;
6109 int (*init)(struct sock *sk ) ;
6110 void (*destroy)(struct sock *sk ) ;
6111 void (*shutdown)(struct sock *sk , int how ) ;
6112 int (*setsockopt)(struct sock *sk , int level , int optname , char *optval , unsigned int optlen ) ;
6113 int (*getsockopt)(struct sock *sk , int level , int optname , char *optval , int *option ) ;
6114 int (*compat_setsockopt)(struct sock *sk , int level , int optname , char *optval ,
6115 unsigned int optlen ) ;
6116 int (*compat_getsockopt)(struct sock *sk , int level , int optname , char *optval ,
6117 int *option ) ;
6118 int (*compat_ioctl)(struct sock *sk , unsigned int cmd , unsigned long arg ) ;
6119 int (*sendmsg)(struct kiocb *iocb , struct sock *sk , struct msghdr *msg , size_t len ) ;
6120 int (*recvmsg)(struct kiocb *iocb , struct sock *sk , struct msghdr *msg , size_t len ,
6121 int noblock , int flags , int *addr_len ) ;
6122 int (*sendpage)(struct sock *sk , struct page *page , int offset , size_t size ,
6123 int flags ) ;
6124 int (*bind)(struct sock *sk , struct sockaddr *uaddr , int addr_len ) ;
6125 int (*backlog_rcv)(struct sock *sk , struct sk_buff *skb ) ;
6126 void (*hash)(struct sock *sk ) ;
6127 void (*unhash)(struct sock *sk ) ;
6128 void (*rehash)(struct sock *sk ) ;
6129 int (*get_port)(struct sock *sk , unsigned short snum ) ;
6130 void (*clear_sk)(struct sock *sk , int size ) ;
6131 unsigned int inuse_idx ;
6132 void (*enter_memory_pressure)(struct sock *sk ) ;
6133 atomic_long_t *memory_allocated ;
6134 struct percpu_counter *sockets_allocated ;
6135 int *memory_pressure ;
6136 long *sysctl_mem ;
6137 int *sysctl_wmem ;
6138 int *sysctl_rmem ;
6139 int max_header ;
6140 bool no_autobind ;
6141 struct kmem_cache *slab ;
6142 unsigned int obj_size ;
6143 int slab_flags ;
6144 struct percpu_counter *orphan_count ;
6145 struct request_sock_ops *rsk_prot ;
6146 struct timewait_sock_ops *twsk_prot ;
6147 union __anonunion_h_343 h ;
6148 struct module *owner ;
6149 char name[32] ;
6150 struct list_head node ;
6151};
6152#line 42 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
6153enum vhost_net_poll_state {
6154 VHOST_NET_POLL_DISABLED = 0,
6155 VHOST_NET_POLL_STARTED = 1,
6156 VHOST_NET_POLL_STOPPED = 2
6157} ;
6158#line 48 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
6159struct vhost_net {
6160 struct vhost_dev dev ;
6161 struct vhost_virtqueue vqs[2] ;
6162 struct vhost_poll poll[2] ;
6163 enum vhost_net_poll_state tx_poll_state ;
6164};
6165#line 155 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
6166struct __anonstruct_346 {
6167 int : 0 ;
6168};
6169#line 256 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
6170struct __anonstruct_347 {
6171 int : 0 ;
6172};
6173#line 540 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
6174struct __anonstruct_uaddr_348 {
6175 struct sockaddr_ll sa ;
6176 char buf[32] ;
6177};
6178#line 1 "<compiler builtins>"
6179
6180#line 1
6181
6182#line 1
6183long __builtin_expect(long , long ) ;
6184#line 14 "include/linux/file.h"
6185extern void fput(struct file * ) ;
6186#line 24 "include/linux/list.h"
6187__inline static void INIT_LIST_HEAD(struct list_head *list )
6188{
6189
6190 {
6191#line 26
6192 list->next = list;
6193#line 27
6194 list->prev = list;
6195#line 28
6196 return;
6197}
6198}
6199#line 47
6200extern void __list_add(struct list_head *new , struct list_head *prev , struct list_head *next ) ;
6201#line 74 "include/linux/list.h"
6202__inline static void list_add_tail(struct list_head *new , struct list_head *head )
6203{ struct list_head *__cil_tmp3 ;
6204
6205 {
6206 {
6207#line 76
6208 __cil_tmp3 = head->prev;
6209#line 76
6210 __list_add(new, __cil_tmp3, head);
6211 }
6212#line 77
6213 return;
6214}
6215}
6216#line 111
6217extern void __list_del_entry(struct list_head *entry ) ;
6218#line 142 "include/linux/list.h"
6219__inline static void list_del_init(struct list_head *entry )
6220{
6221
6222 {
6223 {
6224#line 144
6225 __list_del_entry(entry);
6226#line 145
6227 INIT_LIST_HEAD(entry);
6228 }
6229#line 146
6230 return;
6231}
6232}
6233#line 186 "include/linux/list.h"
6234__inline static int list_empty(struct list_head const *head )
6235{ unsigned long __cil_tmp2 ;
6236 struct list_head *__cil_tmp3 ;
6237 unsigned long __cil_tmp4 ;
6238
6239 {
6240 {
6241#line 188
6242 __cil_tmp2 = (unsigned long )head;
6243#line 188
6244 __cil_tmp3 = head->next;
6245#line 188
6246 __cil_tmp4 = (unsigned long )__cil_tmp3;
6247#line 188
6248 return (__cil_tmp4 == __cil_tmp2);
6249 }
6250}
6251}
6252#line 59 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
6253__inline static void ( __attribute__((__always_inline__)) set_bit)(unsigned int nr ,
6254 unsigned long volatile *addr )
6255{ long volatile *__cil_tmp3 ;
6256
6257 {
6258#line 68
6259 __cil_tmp3 = (long volatile *)addr;
6260#line 68
6261 __asm__ volatile (".section .smp_locks,\"a\"\n"
6262 ".balign 4\n"
6263 ".long 671f - .\n"
6264 ".previous\n"
6265 "671:"
6266 "\n\tlock; "
6267 "bts %1,%0": "+m" (*__cil_tmp3): "Ir" (nr): "memory");
6268#line 71
6269 return;
6270}
6271}
6272#line 47 "include/linux/dynamic_debug.h"
6273extern int __dynamic_pr_debug(struct _ddebug *descriptor , char const *fmt , ...) ;
6274#line 64 "include/asm-generic/bug.h"
6275extern void warn_slowpath_fmt(char const *file , int line , char const *fmt , ...) ;
6276#line 69
6277extern void warn_slowpath_null(char const *file , int line ) ;
6278#line 170 "include/linux/kernel.h"
6279extern void might_fault(void) ;
6280#line 88 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/percpu.h"
6281extern void __bad_percpu_size(void) ;
6282#line 10 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
6283extern struct task_struct *current_task __attribute__((__section__(".data..percpu"))) ;
6284#line 12 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
6285__inline static struct task_struct *( __attribute__((__always_inline__)) get_current)(void)
6286{ struct task_struct *pfo_ret__ ;
6287 int __cil_tmp2 ;
6288 int __cil_tmp3 ;
6289 int __cil_tmp4 ;
6290 int __cil_tmp5 ;
6291
6292 {
6293 {
6294#line 14
6295 __cil_tmp2 = (int )8UL;
6296#line 14
6297 if (__cil_tmp2 == 1) {
6298#line 14
6299 goto case_1;
6300 } else {
6301 {
6302#line 14
6303 __cil_tmp3 = (int )8UL;
6304#line 14
6305 if (__cil_tmp3 == 2) {
6306#line 14
6307 goto case_2;
6308 } else {
6309 {
6310#line 14
6311 __cil_tmp4 = (int )8UL;
6312#line 14
6313 if (__cil_tmp4 == 4) {
6314#line 14
6315 goto case_4;
6316 } else {
6317 {
6318#line 14
6319 __cil_tmp5 = (int )8UL;
6320#line 14
6321 if (__cil_tmp5 == 8) {
6322#line 14
6323 goto case_8;
6324 } else {
6325#line 14
6326 goto switch_default;
6327#line 14
6328 if (0) {
6329 case_1:
6330#line 14
6331
6332
6333
6334
6335
6336
6337
6338
6339#line 14
6340 goto switch_break;
6341 case_2:
6342#line 14
6343 __asm__ ("mov"
6344 "w "
6345 "%%"
6346 "gs"
6347 ":"
6348 "%P"
6349 "1"
6350 ",%0": "=r" (pfo_ret__): "p" (& current_task));
6351#line 14
6352 goto switch_break;
6353 case_4:
6354#line 14
6355
6356
6357
6358
6359
6360
6361
6362
6363#line 14
6364 goto switch_break;
6365 case_8:
6366#line 14
6367 __asm__ ("mov"
6368 "q "
6369 "%%"
6370 "gs"
6371 ":"
6372 "%P"
6373 "1"
6374 ",%0": "=r" (pfo_ret__): "p" (& current_task));
6375#line 14
6376 goto switch_break;
6377 switch_default:
6378 {
6379#line 14
6380 __bad_percpu_size();
6381 }
6382 } else {
6383 switch_break: ;
6384 }
6385 }
6386 }
6387 }
6388 }
6389 }
6390 }
6391 }
6392 }
6393#line 14
6394 return (pfo_ret__);
6395}
6396}
6397#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/cmpxchg_64.h"
6398extern void __xchg_wrong_size(void) ;
6399#line 27 "include/linux/err.h"
6400__inline static long __attribute__((__warn_unused_result__)) PTR_ERR(void const *ptr )
6401{
6402
6403 {
6404#line 29
6405 return ((long )ptr);
6406}
6407}
6408#line 32 "include/linux/err.h"
6409__inline static long __attribute__((__warn_unused_result__)) IS_ERR(void const *ptr )
6410{ long tmp ;
6411 unsigned long __cil_tmp3 ;
6412 int __cil_tmp4 ;
6413 int __cil_tmp5 ;
6414 int __cil_tmp6 ;
6415 long __cil_tmp7 ;
6416
6417 {
6418 {
6419#line 34
6420 __cil_tmp3 = (unsigned long )ptr;
6421#line 34
6422 __cil_tmp4 = __cil_tmp3 >= 1152921504606842881UL;
6423#line 34
6424 __cil_tmp5 = ! __cil_tmp4;
6425#line 34
6426 __cil_tmp6 = ! __cil_tmp5;
6427#line 34
6428 __cil_tmp7 = (long )__cil_tmp6;
6429#line 34
6430 tmp = __builtin_expect(__cil_tmp7, 0L);
6431 }
6432#line 34
6433 return (tmp);
6434}
6435}
6436#line 217 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
6437extern unsigned long kernel_stack __attribute__((__section__(".data..percpu"))) ;
6438#line 219 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
6439__inline static struct thread_info *current_thread_info(void)
6440{ struct thread_info *ti ;
6441 unsigned long pfo_ret__ ;
6442 int __cil_tmp3 ;
6443 int __cil_tmp4 ;
6444 int __cil_tmp5 ;
6445 int __cil_tmp6 ;
6446 unsigned long __cil_tmp7 ;
6447 unsigned long __cil_tmp8 ;
6448 unsigned long __cil_tmp9 ;
6449 unsigned long __cil_tmp10 ;
6450 void *__cil_tmp11 ;
6451
6452 {
6453 {
6454#line 222
6455 __cil_tmp3 = (int )8UL;
6456#line 222
6457 if (__cil_tmp3 == 1) {
6458#line 222
6459 goto case_1;
6460 } else {
6461 {
6462#line 222
6463 __cil_tmp4 = (int )8UL;
6464#line 222
6465 if (__cil_tmp4 == 2) {
6466#line 222
6467 goto case_2;
6468 } else {
6469 {
6470#line 222
6471 __cil_tmp5 = (int )8UL;
6472#line 222
6473 if (__cil_tmp5 == 4) {
6474#line 222
6475 goto case_4;
6476 } else {
6477 {
6478#line 222
6479 __cil_tmp6 = (int )8UL;
6480#line 222
6481 if (__cil_tmp6 == 8) {
6482#line 222
6483 goto case_8;
6484 } else {
6485#line 222
6486 goto switch_default;
6487#line 222
6488 if (0) {
6489 case_1:
6490#line 222
6491
6492
6493
6494
6495
6496
6497
6498
6499#line 222
6500 goto switch_break;
6501 case_2:
6502#line 222
6503 __asm__ ("mov"
6504 "w "
6505 "%%"
6506 "gs"
6507 ":"
6508 "%P"
6509 "1"
6510 ",%0": "=r" (pfo_ret__): "p" (& kernel_stack));
6511#line 222
6512 goto switch_break;
6513 case_4:
6514#line 222
6515
6516
6517
6518
6519
6520
6521
6522
6523#line 222
6524 goto switch_break;
6525 case_8:
6526#line 222
6527 __asm__ ("mov"
6528 "q "
6529 "%%"
6530 "gs"
6531 ":"
6532 "%P"
6533 "1"
6534 ",%0": "=r" (pfo_ret__): "p" (& kernel_stack));
6535#line 222
6536 goto switch_break;
6537 switch_default:
6538 {
6539#line 222
6540 __bad_percpu_size();
6541 }
6542 } else {
6543 switch_break: ;
6544 }
6545 }
6546 }
6547 }
6548 }
6549 }
6550 }
6551 }
6552 }
6553#line 222
6554 __cil_tmp7 = 1UL << 12;
6555#line 222
6556 __cil_tmp8 = __cil_tmp7 << 1;
6557#line 222
6558 __cil_tmp9 = pfo_ret__ + 40UL;
6559#line 222
6560 __cil_tmp10 = __cil_tmp9 - __cil_tmp8;
6561#line 222
6562 __cil_tmp11 = (void *)__cil_tmp10;
6563#line 222
6564 ti = (struct thread_info *)__cil_tmp11;
6565#line 224
6566 return (ti);
6567}
6568}
6569#line 315 "include/linux/lockdep.h"
6570extern void lock_acquire(struct lockdep_map *lock , unsigned int subclass , int trylock ,
6571 int read , int check , struct lockdep_map *nest_lock , unsigned long ip ) ;
6572#line 319
6573extern void lock_release(struct lockdep_map *lock , int nested , unsigned long ip ) ;
6574#line 324
6575extern int lock_is_held(struct lockdep_map *lock ) ;
6576#line 551
6577extern void lockdep_rcu_dereference(char const *file , int line ) ;
6578#line 93 "include/linux/spinlock.h"
6579extern void __raw_spin_lock_init(raw_spinlock_t *lock , char const *name , struct lock_class_key *key ) ;
6580#line 29 "include/linux/spinlock_api_smp.h"
6581extern void _raw_spin_lock_irq(raw_spinlock_t *lock ) __attribute__((__section__(".spinlock.text"))) ;
6582#line 32
6583extern unsigned long _raw_spin_lock_irqsave(raw_spinlock_t *lock ) __attribute__((__section__(".spinlock.text"))) ;
6584#line 41
6585extern void _raw_spin_unlock_irq(raw_spinlock_t *lock ) __attribute__((__section__(".spinlock.text"))) ;
6586#line 42
6587extern void _raw_spin_unlock_irqrestore(raw_spinlock_t *lock , unsigned long flags ) __attribute__((__section__(".spinlock.text"))) ;
6588#line 272 "include/linux/spinlock.h"
6589__inline static raw_spinlock_t *spinlock_check(spinlock_t *lock )
6590{
6591
6592 {
6593#line 274
6594 return (& lock->__annonCompField18.rlock);
6595}
6596}
6597#line 308 "include/linux/spinlock.h"
6598__inline static void spin_lock_irq(spinlock_t *lock )
6599{ struct raw_spinlock *__cil_tmp2 ;
6600
6601 {
6602 {
6603#line 310
6604 __cil_tmp2 = & lock->__annonCompField18.rlock;
6605#line 310
6606 _raw_spin_lock_irq(__cil_tmp2);
6607 }
6608#line 311
6609 return;
6610}
6611}
6612#line 333 "include/linux/spinlock.h"
6613__inline static void spin_unlock_irq(spinlock_t *lock )
6614{ struct raw_spinlock *__cil_tmp2 ;
6615
6616 {
6617 {
6618#line 335
6619 __cil_tmp2 = & lock->__annonCompField18.rlock;
6620#line 335
6621 _raw_spin_unlock_irq(__cil_tmp2);
6622 }
6623#line 336
6624 return;
6625}
6626}
6627#line 338 "include/linux/spinlock.h"
6628__inline static void spin_unlock_irqrestore(spinlock_t *lock , unsigned long flags )
6629{ struct raw_spinlock *__cil_tmp3 ;
6630
6631 {
6632 {
6633#line 340
6634 while (1) {
6635 while_continue: ;
6636 {
6637#line 340
6638 __cil_tmp3 = & lock->__annonCompField18.rlock;
6639#line 340
6640 _raw_spin_unlock_irqrestore(__cil_tmp3, flags);
6641 }
6642#line 340
6643 goto while_break;
6644 }
6645 while_break___0: ;
6646 }
6647
6648 while_break: ;
6649#line 341
6650 return;
6651}
6652}
6653#line 80 "include/linux/wait.h"
6654extern void __init_waitqueue_head(wait_queue_head_t *q , struct lock_class_key * ) ;
6655#line 105 "include/linux/wait.h"
6656__inline static void init_waitqueue_func_entry(wait_queue_t *q , int (*func)(wait_queue_t *wait ,
6657 unsigned int mode ,
6658 int flags ,
6659 void *key ) )
6660{
6661
6662 {
6663#line 108
6664 q->flags = 0U;
6665#line 109
6666 q->private = (void *)0;
6667#line 110
6668 q->func = func;
6669#line 111
6670 return;
6671}
6672}
6673#line 118
6674extern void add_wait_queue(wait_queue_head_t *q , wait_queue_t *wait ) ;
6675#line 120
6676extern void remove_wait_queue(wait_queue_head_t *q , wait_queue_t *wait ) ;
6677#line 156
6678extern void __wake_up(wait_queue_head_t *q , unsigned int mode , int nr , void *key ) ;
6679#line 584
6680extern void prepare_to_wait(wait_queue_head_t *q , wait_queue_t *wait , int state ) ;
6681#line 586
6682extern void finish_wait(wait_queue_head_t *q , wait_queue_t *wait ) ;
6683#line 589
6684extern int autoremove_wake_function(wait_queue_t *wait , unsigned int mode , int sync ,
6685 void *key ) ;
6686#line 33 "include/linux/eventfd.h"
6687extern void eventfd_ctx_put(struct eventfd_ctx *ctx ) ;
6688#line 34
6689extern struct file *eventfd_fget(int fd ) ;
6690#line 36
6691extern struct eventfd_ctx *eventfd_ctx_fileget(struct file *file ) ;
6692#line 37
6693extern int eventfd_signal(struct eventfd_ctx *ctx , int n ) ;
6694#line 115 "include/linux/mutex.h"
6695extern void __mutex_init(struct mutex *lock , char const *name , struct lock_class_key *key ) ;
6696#line 134
6697extern void mutex_lock_nested(struct mutex *lock , unsigned int subclass ) ;
6698#line 169
6699extern void mutex_unlock(struct mutex *lock ) ;
6700#line 433 "include/linux/mm.h"
6701extern void put_page(struct page *page ) ;
6702#line 720 "include/linux/mm.h"
6703__inline static void *( __attribute__((__always_inline__)) lowmem_page_address)(struct page *page )
6704{ struct page *__cil_tmp2 ;
6705 int __cil_tmp3 ;
6706 unsigned long __cil_tmp4 ;
6707 phys_addr_t __cil_tmp5 ;
6708 phys_addr_t __cil_tmp6 ;
6709 unsigned long __cil_tmp7 ;
6710 unsigned long __cil_tmp8 ;
6711
6712 {
6713 {
6714#line 722
6715 __cil_tmp2 = (struct page *)1152897315351035904UL;
6716#line 722
6717 __cil_tmp3 = page - __cil_tmp2;
6718#line 722
6719 __cil_tmp4 = (unsigned long )__cil_tmp3;
6720#line 722
6721 __cil_tmp5 = (phys_addr_t )__cil_tmp4;
6722#line 722
6723 __cil_tmp6 = __cil_tmp5 << 12;
6724#line 722
6725 __cil_tmp7 = (unsigned long )__cil_tmp6;
6726#line 722
6727 __cil_tmp8 = __cil_tmp7 + 1152789563211513856UL;
6728#line 722
6729 return ((void *)__cil_tmp8);
6730 }
6731}
6732}
6733#line 985
6734extern int get_user_pages_fast(unsigned long start , int nr_pages , int write , struct page **pages ) ;
6735#line 1001
6736extern int set_page_dirty_lock(struct page *page ) ;
6737#line 80 "include/linux/rcupdate.h"
6738extern void synchronize_sched(void) ;
6739#line 110 "include/linux/rcupdate.h"
6740__inline static void __rcu_read_lock(void)
6741{
6742
6743 {
6744 {
6745#line 112
6746 while (1) {
6747 while_continue: ;
6748
6749#line 112
6750 goto while_break;
6751 }
6752 while_break___0: ;
6753 }
6754
6755 while_break: ;
6756#line 113
6757 return;
6758}
6759}
6760#line 120 "include/linux/rcupdate.h"
6761__inline static void synchronize_rcu(void)
6762{
6763
6764 {
6765 {
6766#line 122
6767 synchronize_sched();
6768 }
6769#line 123
6770 return;
6771}
6772}
6773#line 184
6774extern struct lockdep_map rcu_lock_map ;
6775#line 200
6776extern int debug_lockdep_rcu_enabled(void) ;
6777#line 214 "include/linux/rcupdate.h"
6778__inline static int rcu_read_lock_held(void)
6779{ int tmp ;
6780 int tmp___0 ;
6781
6782 {
6783 {
6784#line 216
6785 tmp = debug_lockdep_rcu_enabled();
6786 }
6787#line 216
6788 if (tmp) {
6789
6790 } else {
6791#line 217
6792 return (1);
6793 }
6794 {
6795#line 218
6796 tmp___0 = lock_is_held(& rcu_lock_map);
6797 }
6798#line 218
6799 return (tmp___0);
6800}
6801}
6802#line 590 "include/linux/rcupdate.h"
6803__inline static void rcu_read_lock(void)
6804{ void *__cil_tmp1 ;
6805 struct lockdep_map *__cil_tmp2 ;
6806 void *__cil_tmp3 ;
6807 unsigned long __cil_tmp4 ;
6808
6809 {
6810 {
6811#line 592
6812 __rcu_read_lock();
6813#line 594
6814 __cil_tmp1 = (void *)0;
6815#line 594
6816 __cil_tmp2 = (struct lockdep_map *)__cil_tmp1;
6817#line 594
6818 __cil_tmp3 = (void *)0;
6819#line 594
6820 __cil_tmp4 = (unsigned long )__cil_tmp3;
6821#line 594
6822 lock_acquire(& rcu_lock_map, 0U, 0, 2, 1, __cil_tmp2, __cil_tmp4);
6823 }
6824#line 595
6825 return;
6826}
6827}
6828#line 612 "include/linux/rcupdate.h"
6829__inline static void rcu_read_unlock(void)
6830{ void *__cil_tmp1 ;
6831 unsigned long __cil_tmp2 ;
6832
6833 {
6834 {
6835#line 614
6836 __cil_tmp1 = (void *)0;
6837#line 614
6838 __cil_tmp2 = (unsigned long )__cil_tmp1;
6839#line 614
6840 lock_release(& rcu_lock_map, 1, __cil_tmp2);
6841#line 616
6842 __rcu_read_lock();
6843 }
6844#line 617
6845 return;
6846}
6847}
6848#line 830
6849extern void kfree(void const * ) ;
6850#line 153 "include/linux/virtio_ring.h"
6851__inline static int vring_need_event(__u16 event_idx , __u16 new_idx , __u16 old )
6852{ int __cil_tmp4 ;
6853 int __cil_tmp5 ;
6854 int __cil_tmp6 ;
6855 __u16 __cil_tmp7 ;
6856 int __cil_tmp8 ;
6857 int __cil_tmp9 ;
6858 int __cil_tmp10 ;
6859 int __cil_tmp11 ;
6860 int __cil_tmp12 ;
6861 __u16 __cil_tmp13 ;
6862 int __cil_tmp14 ;
6863
6864 {
6865 {
6866#line 160
6867 __cil_tmp4 = (int )old;
6868#line 160
6869 __cil_tmp5 = (int )new_idx;
6870#line 160
6871 __cil_tmp6 = __cil_tmp5 - __cil_tmp4;
6872#line 160
6873 __cil_tmp7 = (__u16 )__cil_tmp6;
6874#line 160
6875 __cil_tmp8 = (int )__cil_tmp7;
6876#line 160
6877 __cil_tmp9 = (int )event_idx;
6878#line 160
6879 __cil_tmp10 = (int )new_idx;
6880#line 160
6881 __cil_tmp11 = __cil_tmp10 - __cil_tmp9;
6882#line 160
6883 __cil_tmp12 = __cil_tmp11 - 1;
6884#line 160
6885 __cil_tmp13 = (__u16 )__cil_tmp12;
6886#line 160
6887 __cil_tmp14 = (int )__cil_tmp13;
6888#line 160
6889 return (__cil_tmp14 < __cil_tmp8);
6890 }
6891}
6892}
6893#line 317 "include/linux/socket.h"
6894extern int memcpy_fromiovec(unsigned char *kdata , struct iovec *iov , int len ) ;
6895#line 221 "include/linux/slub_def.h"
6896extern void *__kmalloc(size_t size , gfp_t flags ) ;
6897#line 255 "include/linux/slub_def.h"
6898__inline static void *( __attribute__((__always_inline__)) kmalloc)(size_t size ,
6899 gfp_t flags )
6900{ void *tmp___2 ;
6901
6902 {
6903 {
6904#line 270
6905 tmp___2 = __kmalloc(size, flags);
6906 }
6907#line 270
6908 return (tmp___2);
6909}
6910}
6911#line 119 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess.h"
6912extern int __get_user_bad(void) ;
6913#line 220
6914extern void __put_user_bad(void) ;
6915#line 19 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
6916extern unsigned long __attribute__((__warn_unused_result__)) copy_user_generic_string(void *to ,
6917 void const *from ,
6918 unsigned int len ) ;
6919#line 21
6920extern unsigned long __attribute__((__warn_unused_result__)) copy_user_generic_unrolled(void *to ,
6921 void const *from ,
6922 unsigned int len ) ;
6923#line 24 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
6924__inline static unsigned long __attribute__((__warn_unused_result__)) ( __attribute__((__always_inline__)) copy_user_generic)(void *to ,
6925 void const *from ,
6926 unsigned int len )
6927{ unsigned int ret ;
6928
6929 {
6930#line 29
6931 __asm__ volatile ("661:\n\t"
6932 "call %P[old]"
6933 "\n662:\n"
6934 ".section .altinstructions,\"a\"\n"
6935 " "
6936 ".balign 8"
6937 " "
6938 "\n"
6939 " "
6940 ".quad"
6941 " "
6942 "661b\n"
6943 " "
6944 ".quad"
6945 " "
6946 "663f\n"
6947 "\t .word "
6948 "(3*32+16)"
6949 "\n"
6950 "\t .byte 662b-661b\n"
6951 "\t .byte 664f-663f\n"
6952 ".previous\n"
6953 ".section .discard,\"aw\",@progbits\n"
6954 "\t .byte 0xff + (664f-663f) - (662b-661b)\n"
6955 ".previous\n"
6956 ".section .altinstr_replacement, \"ax\"\n"
6957 "663:\n\t"
6958 "call %P[new]"
6959 "\n664:\n"
6960 ".previous": "=a" (ret), "=D" (to), "=S" (from), "=d" (len): [old] "i" (& copy_user_generic_unrolled),
6961 [new] "i" (& copy_user_generic_string), "1" (to), "2" (from),
6962 "3" (len): "memory", "rcx", "r8", "r9", "r10", "r11");
6963#line 36
6964 return ((unsigned long )ret);
6965}
6966}
6967#line 39
6968extern unsigned long __attribute__((__warn_unused_result__)) _copy_to_user(void *to ,
6969 void const *from ,
6970 unsigned int len ) ;
6971#line 41
6972extern unsigned long __attribute__((__warn_unused_result__)) _copy_from_user(void *to ,
6973 void const *from ,
6974 unsigned int len ) ;
6975#line 46 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
6976__inline static unsigned long __attribute__((__warn_unused_result__)) copy_from_user(void *to ,
6977 void const *from ,
6978 unsigned long n )
6979{ int sz ;
6980 unsigned long tmp ;
6981 int __ret_warn_on ;
6982 long tmp___0 ;
6983 int tmp___1 ;
6984 long tmp___2 ;
6985 unsigned long tmp___3 ;
6986 unsigned long tmp___4 ;
6987 unsigned long __cil_tmp12 ;
6988 long __cil_tmp13 ;
6989 unsigned int __cil_tmp14 ;
6990 int __cil_tmp15 ;
6991 int __cil_tmp16 ;
6992 long __cil_tmp17 ;
6993 int __cil_tmp18 ;
6994 int __cil_tmp19 ;
6995 int __cil_tmp20 ;
6996 int __cil_tmp21 ;
6997 long __cil_tmp22 ;
6998
6999 {
7000 {
7001#line 50
7002 tmp = __builtin_object_size(to, 0);
7003#line 50
7004 sz = (int )tmp;
7005#line 52
7006 might_fault();
7007 }
7008#line 53
7009 if (sz == -1) {
7010#line 53
7011 tmp___1 = 1;
7012 } else {
7013 {
7014#line 53
7015 __cil_tmp12 = (unsigned long )sz;
7016#line 53
7017 if (__cil_tmp12 >= n) {
7018#line 53
7019 tmp___1 = 1;
7020 } else {
7021#line 53
7022 tmp___1 = 0;
7023 }
7024 }
7025 }
7026 {
7027#line 53
7028 __cil_tmp13 = (long )tmp___1;
7029#line 53
7030 tmp___2 = __builtin_expect(__cil_tmp13, 1L);
7031 }
7032#line 53
7033 if (tmp___2) {
7034 {
7035#line 54
7036 __cil_tmp14 = (unsigned int )n;
7037#line 54
7038 tmp___4 = (unsigned long )_copy_from_user(to, from, __cil_tmp14);
7039#line 54
7040 tmp___3 = tmp___4;
7041#line 54
7042 n = tmp___3;
7043 }
7044 } else {
7045 {
7046#line 57
7047 __ret_warn_on = 1;
7048#line 57
7049 __cil_tmp15 = ! __ret_warn_on;
7050#line 57
7051 __cil_tmp16 = ! __cil_tmp15;
7052#line 57
7053 __cil_tmp17 = (long )__cil_tmp16;
7054#line 57
7055 tmp___0 = __builtin_expect(__cil_tmp17, 0L);
7056 }
7057#line 57
7058 if (tmp___0) {
7059 {
7060#line 57
7061 __cil_tmp18 = (int const )57;
7062#line 57
7063 __cil_tmp19 = (int )__cil_tmp18;
7064#line 57
7065 warn_slowpath_fmt("/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h",
7066 __cil_tmp19, "Buffer overflow detected!\n");
7067 }
7068 } else {
7069
7070 }
7071 {
7072#line 57
7073 __cil_tmp20 = ! __ret_warn_on;
7074#line 57
7075 __cil_tmp21 = ! __cil_tmp20;
7076#line 57
7077 __cil_tmp22 = (long )__cil_tmp21;
7078#line 57
7079 __builtin_expect(__cil_tmp22, 0L);
7080 }
7081 }
7082#line 59
7083 return (n);
7084}
7085}
7086#line 62 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
7087__inline static int __attribute__((__warn_unused_result__)) ( __attribute__((__always_inline__)) copy_to_user)(void *dst ,
7088 void const *src ,
7089 unsigned int size )
7090{ unsigned long tmp ;
7091 unsigned long tmp___0 ;
7092 unsigned long tmp___1 ;
7093
7094 {
7095 {
7096#line 65
7097 might_fault();
7098#line 67
7099 tmp___1 = (unsigned long )_copy_to_user(dst, src, size);
7100#line 67
7101 tmp___0 = tmp___1;
7102#line 67
7103 tmp = tmp___0;
7104 }
7105#line 67
7106 return ((int )tmp);
7107}
7108}
7109#line 70 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
7110__inline static int __attribute__((__warn_unused_result__)) ( __attribute__((__always_inline__)) __copy_from_user)(void *dst ,
7111 void const *src ,
7112 unsigned int size )
7113{ int ret ;
7114 unsigned long tmp ;
7115 long tmp___0 ;
7116 long tmp___1 ;
7117 unsigned long tmp___2 ;
7118 unsigned long tmp___3 ;
7119 unsigned long tmp___4 ;
7120 unsigned long tmp___5 ;
7121 unsigned long tmp___6 ;
7122 void *__cil_tmp13 ;
7123 void const *__cil_tmp14 ;
7124 int __cil_tmp15 ;
7125 int __cil_tmp16 ;
7126 int __cil_tmp17 ;
7127 int __cil_tmp18 ;
7128 int __cil_tmp19 ;
7129 int __cil_tmp20 ;
7130 u8 *__cil_tmp21 ;
7131 u8 *__cil_tmp22 ;
7132 struct __large_struct *__cil_tmp23 ;
7133 u16 *__cil_tmp24 ;
7134 u16 *__cil_tmp25 ;
7135 struct __large_struct *__cil_tmp26 ;
7136 u32 *__cil_tmp27 ;
7137 u32 *__cil_tmp28 ;
7138 struct __large_struct *__cil_tmp29 ;
7139 u64 *__cil_tmp30 ;
7140 u64 *__cil_tmp31 ;
7141 struct __large_struct *__cil_tmp32 ;
7142 u64 *__cil_tmp33 ;
7143 u64 *__cil_tmp34 ;
7144 struct __large_struct *__cil_tmp35 ;
7145 int __cil_tmp36 ;
7146 int __cil_tmp37 ;
7147 long __cil_tmp38 ;
7148 char *__cil_tmp39 ;
7149 char *__cil_tmp40 ;
7150 u16 *__cil_tmp41 ;
7151 char *__cil_tmp42 ;
7152 char *__cil_tmp43 ;
7153 u16 *__cil_tmp44 ;
7154 struct __large_struct *__cil_tmp45 ;
7155 u64 *__cil_tmp46 ;
7156 u64 *__cil_tmp47 ;
7157 struct __large_struct *__cil_tmp48 ;
7158 int __cil_tmp49 ;
7159 int __cil_tmp50 ;
7160 long __cil_tmp51 ;
7161 char *__cil_tmp52 ;
7162 char *__cil_tmp53 ;
7163 u64 *__cil_tmp54 ;
7164 char *__cil_tmp55 ;
7165 char *__cil_tmp56 ;
7166 u64 *__cil_tmp57 ;
7167 struct __large_struct *__cil_tmp58 ;
7168 void *__cil_tmp59 ;
7169 void const *__cil_tmp60 ;
7170
7171 {
7172 {
7173#line 73
7174 ret = 0;
7175#line 75
7176 might_fault();
7177#line 77
7178 __cil_tmp13 = (void *)src;
7179#line 77
7180 __cil_tmp14 = (void const *)__cil_tmp13;
7181#line 77
7182 tmp___5 = (unsigned long )copy_user_generic(dst, __cil_tmp14, size);
7183#line 77
7184 tmp___3 = tmp___5;
7185#line 77
7186 tmp = tmp___3;
7187 }
7188#line 77
7189 return ((int )tmp);
7190 {
7191#line 79
7192 __cil_tmp15 = (int )size;
7193#line 79
7194 if (__cil_tmp15 == 1) {
7195#line 79
7196 goto case_1;
7197 } else {
7198 {
7199#line 82
7200 __cil_tmp16 = (int )size;
7201#line 82
7202 if (__cil_tmp16 == 2) {
7203#line 82
7204 goto case_2;
7205 } else {
7206 {
7207#line 85
7208 __cil_tmp17 = (int )size;
7209#line 85
7210 if (__cil_tmp17 == 4) {
7211#line 85
7212 goto case_4;
7213 } else {
7214 {
7215#line 88
7216 __cil_tmp18 = (int )size;
7217#line 88
7218 if (__cil_tmp18 == 8) {
7219#line 88
7220 goto case_8;
7221 } else {
7222 {
7223#line 91
7224 __cil_tmp19 = (int )size;
7225#line 91
7226 if (__cil_tmp19 == 10) {
7227#line 91
7228 goto case_10;
7229 } else {
7230 {
7231#line 100
7232 __cil_tmp20 = (int )size;
7233#line 100
7234 if (__cil_tmp20 == 16) {
7235#line 100
7236 goto case_16;
7237 } else {
7238#line 109
7239 goto switch_default;
7240#line 78
7241 if (0) {
7242 case_1:
7243#line 79
7244 __cil_tmp21 = (u8 *)dst;
7245#line 79
7246 __cil_tmp22 = (u8 *)src;
7247#line 79
7248 __cil_tmp23 = (struct __large_struct *)__cil_tmp22;
7249#line 79
7250 __asm__ volatile ("1:\tmov"
7251 "b"
7252 " %2,%"
7253 "b"
7254 "1\n"
7255 "2:\n"
7256 ".section .fixup,\"ax\"\n"
7257 "3:\tmov %3,%0\n"
7258 "\txor"
7259 "b"
7260 " %"
7261 "b"
7262 "1,%"
7263 "b"
7264 "1\n"
7265 "\tjmp 2b\n"
7266 ".previous\n"
7267 " .section __ex_table,\"a\"\n"
7268 " "
7269 ".balign 8"
7270 " "
7271 "\n"
7272 " "
7273 ".quad"
7274 " "
7275 "1b"
7276 ","
7277 "3b"
7278 "\n"
7279 " .previous\n": "=r" (ret), "=q" (*__cil_tmp21): "m" (*__cil_tmp23),
7280 "i" (1), "0" (ret));
7281#line 81
7282 return (ret);
7283 case_2:
7284#line 82
7285 __cil_tmp24 = (u16 *)dst;
7286#line 82
7287 __cil_tmp25 = (u16 *)src;
7288#line 82
7289 __cil_tmp26 = (struct __large_struct *)__cil_tmp25;
7290#line 82
7291 __asm__ volatile ("1:\tmov"
7292 "w"
7293 " %2,%"
7294 "w"
7295 "1\n"
7296 "2:\n"
7297 ".section .fixup,\"ax\"\n"
7298 "3:\tmov %3,%0\n"
7299 "\txor"
7300 "w"
7301 " %"
7302 "w"
7303 "1,%"
7304 "w"
7305 "1\n"
7306 "\tjmp 2b\n"
7307 ".previous\n"
7308 " .section __ex_table,\"a\"\n"
7309 " "
7310 ".balign 8"
7311 " "
7312 "\n"
7313 " "
7314 ".quad"
7315 " "
7316 "1b"
7317 ","
7318 "3b"
7319 "\n"
7320 " .previous\n": "=r" (ret), "=r" (*__cil_tmp24): "m" (*__cil_tmp26),
7321 "i" (2), "0" (ret));
7322#line 84
7323 return (ret);
7324 case_4:
7325#line 85
7326 __cil_tmp27 = (u32 *)dst;
7327#line 85
7328 __cil_tmp28 = (u32 *)src;
7329#line 85
7330 __cil_tmp29 = (struct __large_struct *)__cil_tmp28;
7331#line 85
7332 __asm__ volatile ("1:\tmov"
7333 "l"
7334 " %2,%"
7335 "k"
7336 "1\n"
7337 "2:\n"
7338 ".section .fixup,\"ax\"\n"
7339 "3:\tmov %3,%0\n"
7340 "\txor"
7341 "l"
7342 " %"
7343 "k"
7344 "1,%"
7345 "k"
7346 "1\n"
7347 "\tjmp 2b\n"
7348 ".previous\n"
7349 " .section __ex_table,\"a\"\n"
7350 " "
7351 ".balign 8"
7352 " "
7353 "\n"
7354 " "
7355 ".quad"
7356 " "
7357 "1b"
7358 ","
7359 "3b"
7360 "\n"
7361 " .previous\n": "=r" (ret), "=r" (*__cil_tmp27): "m" (*__cil_tmp29),
7362 "i" (4), "0" (ret));
7363#line 87
7364 return (ret);
7365 case_8:
7366#line 88
7367 __cil_tmp30 = (u64 *)dst;
7368#line 88
7369 __cil_tmp31 = (u64 *)src;
7370#line 88
7371 __cil_tmp32 = (struct __large_struct *)__cil_tmp31;
7372#line 88
7373 __asm__ volatile ("1:\tmov"
7374 "q"
7375 " %2,%"
7376 ""
7377 "1\n"
7378 "2:\n"
7379 ".section .fixup,\"ax\"\n"
7380 "3:\tmov %3,%0\n"
7381 "\txor"
7382 "q"
7383 " %"
7384 ""
7385 "1,%"
7386 ""
7387 "1\n"
7388 "\tjmp 2b\n"
7389 ".previous\n"
7390 " .section __ex_table,\"a\"\n"
7391 " "
7392 ".balign 8"
7393 " "
7394 "\n"
7395 " "
7396 ".quad"
7397 " "
7398 "1b"
7399 ","
7400 "3b"
7401 "\n"
7402 " .previous\n": "=r" (ret), "=r" (*__cil_tmp30): "m" (*__cil_tmp32),
7403 "i" (8), "0" (ret));
7404#line 90
7405 return (ret);
7406 case_10:
7407 {
7408#line 92
7409 __cil_tmp33 = (u64 *)dst;
7410#line 92
7411 __cil_tmp34 = (u64 *)src;
7412#line 92
7413 __cil_tmp35 = (struct __large_struct *)__cil_tmp34;
7414#line 92
7415 __asm__ volatile ("1:\tmov"
7416 "q"
7417 " %2,%"
7418 ""
7419 "1\n"
7420 "2:\n"
7421 ".section .fixup,\"ax\"\n"
7422 "3:\tmov %3,%0\n"
7423 "\txor"
7424 "q"
7425 " %"
7426 ""
7427 "1,%"
7428 ""
7429 "1\n"
7430 "\tjmp 2b\n"
7431 ".previous\n"
7432 " .section __ex_table,\"a\"\n"
7433 " "
7434 ".balign 8"
7435 " "
7436 "\n"
7437 " "
7438 ".quad"
7439 " "
7440 "1b"
7441 ","
7442 "3b"
7443 "\n"
7444 " .previous\n": "=r" (ret), "=r" (*__cil_tmp33): "m" (*__cil_tmp35),
7445 "i" (10), "0" (ret));
7446#line 94
7447 __cil_tmp36 = ! ret;
7448#line 94
7449 __cil_tmp37 = ! __cil_tmp36;
7450#line 94
7451 __cil_tmp38 = (long )__cil_tmp37;
7452#line 94
7453 tmp___0 = __builtin_expect(__cil_tmp38, 0L);
7454 }
7455#line 94
7456 if (tmp___0) {
7457#line 95
7458 return (ret);
7459 } else {
7460
7461 }
7462#line 96
7463 __cil_tmp39 = (char *)dst;
7464#line 96
7465 __cil_tmp40 = __cil_tmp39 + 8;
7466#line 96
7467 __cil_tmp41 = (u16 *)__cil_tmp40;
7468#line 96
7469 __cil_tmp42 = (char *)src;
7470#line 96
7471 __cil_tmp43 = __cil_tmp42 + 8;
7472#line 96
7473 __cil_tmp44 = (u16 *)__cil_tmp43;
7474#line 96
7475 __cil_tmp45 = (struct __large_struct *)__cil_tmp44;
7476#line 96
7477 __asm__ volatile ("1:\tmov"
7478 "w"
7479 " %2,%"
7480 "w"
7481 "1\n"
7482 "2:\n"
7483 ".section .fixup,\"ax\"\n"
7484 "3:\tmov %3,%0\n"
7485 "\txor"
7486 "w"
7487 " %"
7488 "w"
7489 "1,%"
7490 "w"
7491 "1\n"
7492 "\tjmp 2b\n"
7493 ".previous\n"
7494 " .section __ex_table,\"a\"\n"
7495 " "
7496 ".balign 8"
7497 " "
7498 "\n"
7499 " "
7500 ".quad"
7501 " "
7502 "1b"
7503 ","
7504 "3b"
7505 "\n"
7506 " .previous\n": "=r" (ret), "=r" (*__cil_tmp41): "m" (*__cil_tmp45),
7507 "i" (2), "0" (ret));
7508#line 99
7509 return (ret);
7510 case_16:
7511 {
7512#line 101
7513 __cil_tmp46 = (u64 *)dst;
7514#line 101
7515 __cil_tmp47 = (u64 *)src;
7516#line 101
7517 __cil_tmp48 = (struct __large_struct *)__cil_tmp47;
7518#line 101
7519 __asm__ volatile ("1:\tmov"
7520 "q"
7521 " %2,%"
7522 ""
7523 "1\n"
7524 "2:\n"
7525 ".section .fixup,\"ax\"\n"
7526 "3:\tmov %3,%0\n"
7527 "\txor"
7528 "q"
7529 " %"
7530 ""
7531 "1,%"
7532 ""
7533 "1\n"
7534 "\tjmp 2b\n"
7535 ".previous\n"
7536 " .section __ex_table,\"a\"\n"
7537 " "
7538 ".balign 8"
7539 " "
7540 "\n"
7541 " "
7542 ".quad"
7543 " "
7544 "1b"
7545 ","
7546 "3b"
7547 "\n"
7548 " .previous\n": "=r" (ret), "=r" (*__cil_tmp46): "m" (*__cil_tmp48),
7549 "i" (16), "0" (ret));
7550#line 103
7551 __cil_tmp49 = ! ret;
7552#line 103
7553 __cil_tmp50 = ! __cil_tmp49;
7554#line 103
7555 __cil_tmp51 = (long )__cil_tmp50;
7556#line 103
7557 tmp___1 = __builtin_expect(__cil_tmp51, 0L);
7558 }
7559#line 103
7560 if (tmp___1) {
7561#line 104
7562 return (ret);
7563 } else {
7564
7565 }
7566#line 105
7567 __cil_tmp52 = (char *)dst;
7568#line 105
7569 __cil_tmp53 = __cil_tmp52 + 8;
7570#line 105
7571 __cil_tmp54 = (u64 *)__cil_tmp53;
7572#line 105
7573 __cil_tmp55 = (char *)src;
7574#line 105
7575 __cil_tmp56 = __cil_tmp55 + 8;
7576#line 105
7577 __cil_tmp57 = (u64 *)__cil_tmp56;
7578#line 105
7579 __cil_tmp58 = (struct __large_struct *)__cil_tmp57;
7580#line 105
7581 __asm__ volatile ("1:\tmov"
7582 "q"
7583 " %2,%"
7584 ""
7585 "1\n"
7586 "2:\n"
7587 ".section .fixup,\"ax\"\n"
7588 "3:\tmov %3,%0\n"
7589 "\txor"
7590 "q"
7591 " %"
7592 ""
7593 "1,%"
7594 ""
7595 "1\n"
7596 "\tjmp 2b\n"
7597 ".previous\n"
7598 " .section __ex_table,\"a\"\n"
7599 " "
7600 ".balign 8"
7601 " "
7602 "\n"
7603 " "
7604 ".quad"
7605 " "
7606 "1b"
7607 ","
7608 "3b"
7609 "\n"
7610 " .previous\n": "=r" (ret), "=r" (*__cil_tmp54): "m" (*__cil_tmp58),
7611 "i" (8), "0" (ret));
7612#line 108
7613 return (ret);
7614 switch_default:
7615 {
7616#line 110
7617 __cil_tmp59 = (void *)src;
7618#line 110
7619 __cil_tmp60 = (void const *)__cil_tmp59;
7620#line 110
7621 tmp___6 = (unsigned long )copy_user_generic(dst, __cil_tmp60, size);
7622#line 110
7623 tmp___4 = tmp___6;
7624#line 110
7625 tmp___2 = tmp___4;
7626 }
7627#line 110
7628 return ((int )tmp___2);
7629 } else {
7630
7631 }
7632 }
7633 }
7634 }
7635 }
7636 }
7637 }
7638 }
7639 }
7640 }
7641 }
7642 }
7643 }
7644}
7645}
7646#line 114 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
7647__inline static int __attribute__((__warn_unused_result__)) ( __attribute__((__always_inline__)) __copy_to_user)(void *dst ,
7648 void const *src ,
7649 unsigned int size )
7650{ int ret ;
7651 unsigned long tmp ;
7652 long tmp___0 ;
7653 long tmp___1 ;
7654 unsigned long tmp___2 ;
7655 unsigned long tmp___3 ;
7656 unsigned long tmp___4 ;
7657 unsigned long tmp___5 ;
7658 unsigned long tmp___6 ;
7659 int __cil_tmp13 ;
7660 int __cil_tmp14 ;
7661 int __cil_tmp15 ;
7662 int __cil_tmp16 ;
7663 int __cil_tmp17 ;
7664 int __cil_tmp18 ;
7665 u8 *__cil_tmp19 ;
7666 u8 *__cil_tmp20 ;
7667 struct __large_struct *__cil_tmp21 ;
7668 u16 *__cil_tmp22 ;
7669 u16 *__cil_tmp23 ;
7670 struct __large_struct *__cil_tmp24 ;
7671 u32 *__cil_tmp25 ;
7672 u32 *__cil_tmp26 ;
7673 struct __large_struct *__cil_tmp27 ;
7674 u64 *__cil_tmp28 ;
7675 u64 *__cil_tmp29 ;
7676 struct __large_struct *__cil_tmp30 ;
7677 u64 *__cil_tmp31 ;
7678 u64 *__cil_tmp32 ;
7679 struct __large_struct *__cil_tmp33 ;
7680 int __cil_tmp34 ;
7681 int __cil_tmp35 ;
7682 long __cil_tmp36 ;
7683 u16 *__cil_tmp37 ;
7684 u16 *__cil_tmp38 ;
7685 u16 *__cil_tmp39 ;
7686 u16 *__cil_tmp40 ;
7687 struct __large_struct *__cil_tmp41 ;
7688 u64 *__cil_tmp42 ;
7689 u64 *__cil_tmp43 ;
7690 struct __large_struct *__cil_tmp44 ;
7691 int __cil_tmp45 ;
7692 int __cil_tmp46 ;
7693 long __cil_tmp47 ;
7694 u64 *__cil_tmp48 ;
7695 u64 *__cil_tmp49 ;
7696 u64 *__cil_tmp50 ;
7697 u64 *__cil_tmp51 ;
7698 struct __large_struct *__cil_tmp52 ;
7699
7700 {
7701 {
7702#line 117
7703 ret = 0;
7704#line 119
7705 might_fault();
7706#line 121
7707 tmp___5 = (unsigned long )copy_user_generic(dst, src, size);
7708#line 121
7709 tmp___3 = tmp___5;
7710#line 121
7711 tmp = tmp___3;
7712 }
7713#line 121
7714 return ((int )tmp);
7715 {
7716#line 123
7717 __cil_tmp13 = (int )size;
7718#line 123
7719 if (__cil_tmp13 == 1) {
7720#line 123
7721 goto case_1;
7722 } else {
7723 {
7724#line 126
7725 __cil_tmp14 = (int )size;
7726#line 126
7727 if (__cil_tmp14 == 2) {
7728#line 126
7729 goto case_2;
7730 } else {
7731 {
7732#line 129
7733 __cil_tmp15 = (int )size;
7734#line 129
7735 if (__cil_tmp15 == 4) {
7736#line 129
7737 goto case_4;
7738 } else {
7739 {
7740#line 132
7741 __cil_tmp16 = (int )size;
7742#line 132
7743 if (__cil_tmp16 == 8) {
7744#line 132
7745 goto case_8;
7746 } else {
7747 {
7748#line 135
7749 __cil_tmp17 = (int )size;
7750#line 135
7751 if (__cil_tmp17 == 10) {
7752#line 135
7753 goto case_10;
7754 } else {
7755 {
7756#line 144
7757 __cil_tmp18 = (int )size;
7758#line 144
7759 if (__cil_tmp18 == 16) {
7760#line 144
7761 goto case_16;
7762 } else {
7763#line 153
7764 goto switch_default;
7765#line 122
7766 if (0) {
7767 case_1:
7768#line 123
7769 __cil_tmp19 = (u8 *)src;
7770#line 123
7771 __cil_tmp20 = (u8 *)dst;
7772#line 123
7773 __cil_tmp21 = (struct __large_struct *)__cil_tmp20;
7774#line 123
7775 __asm__ volatile ("1:\tmov"
7776 "b"
7777 " %"
7778 "b"
7779 "1,%2\n"
7780 "2:\n"
7781 ".section .fixup,\"ax\"\n"
7782 "3:\tmov %3,%0\n"
7783 "\tjmp 2b\n"
7784 ".previous\n"
7785 " .section __ex_table,\"a\"\n"
7786 " "
7787 ".balign 8"
7788 " "
7789 "\n"
7790 " "
7791 ".quad"
7792 " "
7793 "1b"
7794 ","
7795 "3b"
7796 "\n"
7797 " .previous\n": "=r" (ret): "iq" (*__cil_tmp19),
7798 "m" (*__cil_tmp21), "i" (1), "0" (ret));
7799#line 125
7800 return (ret);
7801 case_2:
7802#line 126
7803 __cil_tmp22 = (u16 *)src;
7804#line 126
7805 __cil_tmp23 = (u16 *)dst;
7806#line 126
7807 __cil_tmp24 = (struct __large_struct *)__cil_tmp23;
7808#line 126
7809 __asm__ volatile ("1:\tmov"
7810 "w"
7811 " %"
7812 "w"
7813 "1,%2\n"
7814 "2:\n"
7815 ".section .fixup,\"ax\"\n"
7816 "3:\tmov %3,%0\n"
7817 "\tjmp 2b\n"
7818 ".previous\n"
7819 " .section __ex_table,\"a\"\n"
7820 " "
7821 ".balign 8"
7822 " "
7823 "\n"
7824 " "
7825 ".quad"
7826 " "
7827 "1b"
7828 ","
7829 "3b"
7830 "\n"
7831 " .previous\n": "=r" (ret): "ir" (*__cil_tmp22),
7832 "m" (*__cil_tmp24), "i" (2), "0" (ret));
7833#line 128
7834 return (ret);
7835 case_4:
7836#line 129
7837 __cil_tmp25 = (u32 *)src;
7838#line 129
7839 __cil_tmp26 = (u32 *)dst;
7840#line 129
7841 __cil_tmp27 = (struct __large_struct *)__cil_tmp26;
7842#line 129
7843 __asm__ volatile ("1:\tmov"
7844 "l"
7845 " %"
7846 "k"
7847 "1,%2\n"
7848 "2:\n"
7849 ".section .fixup,\"ax\"\n"
7850 "3:\tmov %3,%0\n"
7851 "\tjmp 2b\n"
7852 ".previous\n"
7853 " .section __ex_table,\"a\"\n"
7854 " "
7855 ".balign 8"
7856 " "
7857 "\n"
7858 " "
7859 ".quad"
7860 " "
7861 "1b"
7862 ","
7863 "3b"
7864 "\n"
7865 " .previous\n": "=r" (ret): "ir" (*__cil_tmp25),
7866 "m" (*__cil_tmp27), "i" (4), "0" (ret));
7867#line 131
7868 return (ret);
7869 case_8:
7870#line 132
7871 __cil_tmp28 = (u64 *)src;
7872#line 132
7873 __cil_tmp29 = (u64 *)dst;
7874#line 132
7875 __cil_tmp30 = (struct __large_struct *)__cil_tmp29;
7876#line 132
7877 __asm__ volatile ("1:\tmov"
7878 "q"
7879 " %"
7880 ""
7881 "1,%2\n"
7882 "2:\n"
7883 ".section .fixup,\"ax\"\n"
7884 "3:\tmov %3,%0\n"
7885 "\tjmp 2b\n"
7886 ".previous\n"
7887 " .section __ex_table,\"a\"\n"
7888 " "
7889 ".balign 8"
7890 " "
7891 "\n"
7892 " "
7893 ".quad"
7894 " "
7895 "1b"
7896 ","
7897 "3b"
7898 "\n"
7899 " .previous\n": "=r" (ret): "er" (*__cil_tmp28),
7900 "m" (*__cil_tmp30), "i" (8), "0" (ret));
7901#line 134
7902 return (ret);
7903 case_10:
7904 {
7905#line 136
7906 __cil_tmp31 = (u64 *)src;
7907#line 136
7908 __cil_tmp32 = (u64 *)dst;
7909#line 136
7910 __cil_tmp33 = (struct __large_struct *)__cil_tmp32;
7911#line 136
7912 __asm__ volatile ("1:\tmov"
7913 "q"
7914 " %"
7915 ""
7916 "1,%2\n"
7917 "2:\n"
7918 ".section .fixup,\"ax\"\n"
7919 "3:\tmov %3,%0\n"
7920 "\tjmp 2b\n"
7921 ".previous\n"
7922 " .section __ex_table,\"a\"\n"
7923 " "
7924 ".balign 8"
7925 " "
7926 "\n"
7927 " "
7928 ".quad"
7929 " "
7930 "1b"
7931 ","
7932 "3b"
7933 "\n"
7934 " .previous\n": "=r" (ret): "er" (*__cil_tmp31),
7935 "m" (*__cil_tmp33), "i" (10), "0" (ret));
7936#line 138
7937 __cil_tmp34 = ! ret;
7938#line 138
7939 __cil_tmp35 = ! __cil_tmp34;
7940#line 138
7941 __cil_tmp36 = (long )__cil_tmp35;
7942#line 138
7943 tmp___0 = __builtin_expect(__cil_tmp36, 0L);
7944 }
7945#line 138
7946 if (tmp___0) {
7947#line 139
7948 return (ret);
7949 } else {
7950
7951 }
7952#line 140
7953 __asm__ ("": : : "memory");
7954#line 141
7955 __cil_tmp37 = (u16 *)src;
7956#line 141
7957 __cil_tmp38 = __cil_tmp37 + 4;
7958#line 141
7959 __cil_tmp39 = (u16 *)dst;
7960#line 141
7961 __cil_tmp40 = __cil_tmp39 + 4;
7962#line 141
7963 __cil_tmp41 = (struct __large_struct *)__cil_tmp40;
7964#line 141
7965 __asm__ volatile ("1:\tmov"
7966 "w"
7967 " %"
7968 "w"
7969 "1,%2\n"
7970 "2:\n"
7971 ".section .fixup,\"ax\"\n"
7972 "3:\tmov %3,%0\n"
7973 "\tjmp 2b\n"
7974 ".previous\n"
7975 " .section __ex_table,\"a\"\n"
7976 " "
7977 ".balign 8"
7978 " "
7979 "\n"
7980 " "
7981 ".quad"
7982 " "
7983 "1b"
7984 ","
7985 "3b"
7986 "\n"
7987 " .previous\n": "=r" (ret): "ir" (*__cil_tmp38),
7988 "m" (*__cil_tmp41), "i" (2), "0" (ret));
7989#line 143
7990 return (ret);
7991 case_16:
7992 {
7993#line 145
7994 __cil_tmp42 = (u64 *)src;
7995#line 145
7996 __cil_tmp43 = (u64 *)dst;
7997#line 145
7998 __cil_tmp44 = (struct __large_struct *)__cil_tmp43;
7999#line 145
8000 __asm__ volatile ("1:\tmov"
8001 "q"
8002 " %"
8003 ""
8004 "1,%2\n"
8005 "2:\n"
8006 ".section .fixup,\"ax\"\n"
8007 "3:\tmov %3,%0\n"
8008 "\tjmp 2b\n"
8009 ".previous\n"
8010 " .section __ex_table,\"a\"\n"
8011 " "
8012 ".balign 8"
8013 " "
8014 "\n"
8015 " "
8016 ".quad"
8017 " "
8018 "1b"
8019 ","
8020 "3b"
8021 "\n"
8022 " .previous\n": "=r" (ret): "er" (*__cil_tmp42),
8023 "m" (*__cil_tmp44), "i" (16), "0" (ret));
8024#line 147
8025 __cil_tmp45 = ! ret;
8026#line 147
8027 __cil_tmp46 = ! __cil_tmp45;
8028#line 147
8029 __cil_tmp47 = (long )__cil_tmp46;
8030#line 147
8031 tmp___1 = __builtin_expect(__cil_tmp47, 0L);
8032 }
8033#line 147
8034 if (tmp___1) {
8035#line 148
8036 return (ret);
8037 } else {
8038
8039 }
8040#line 149
8041 __asm__ ("": : : "memory");
8042#line 150
8043 __cil_tmp48 = (u64 *)src;
8044#line 150
8045 __cil_tmp49 = __cil_tmp48 + 1;
8046#line 150
8047 __cil_tmp50 = (u64 *)dst;
8048#line 150
8049 __cil_tmp51 = __cil_tmp50 + 1;
8050#line 150
8051 __cil_tmp52 = (struct __large_struct *)__cil_tmp51;
8052#line 150
8053 __asm__ volatile ("1:\tmov"
8054 "q"
8055 " %"
8056 ""
8057 "1,%2\n"
8058 "2:\n"
8059 ".section .fixup,\"ax\"\n"
8060 "3:\tmov %3,%0\n"
8061 "\tjmp 2b\n"
8062 ".previous\n"
8063 " .section __ex_table,\"a\"\n"
8064 " "
8065 ".balign 8"
8066 " "
8067 "\n"
8068 " "
8069 ".quad"
8070 " "
8071 "1b"
8072 ","
8073 "3b"
8074 "\n"
8075 " .previous\n": "=r" (ret): "er" (*__cil_tmp49),
8076 "m" (*__cil_tmp52), "i" (8), "0" (ret));
8077#line 152
8078 return (ret);
8079 switch_default:
8080 {
8081#line 154
8082 tmp___6 = (unsigned long )copy_user_generic(dst, src, size);
8083#line 154
8084 tmp___4 = tmp___6;
8085#line 154
8086 tmp___2 = tmp___4;
8087 }
8088#line 154
8089 return ((int )tmp___2);
8090 } else {
8091
8092 }
8093 }
8094 }
8095 }
8096 }
8097 }
8098 }
8099 }
8100 }
8101 }
8102 }
8103 }
8104 }
8105}
8106}
8107#line 6 "include/linux/mmu_context.h"
8108extern void use_mm(struct mm_struct *mm ) ;
8109#line 7
8110extern void unuse_mm(struct mm_struct *mm ) ;
8111#line 46 "include/linux/poll.h"
8112__inline static void init_poll_funcptr(poll_table *pt , void (*qproc)(struct file * ,
8113 wait_queue_head_t * ,
8114 struct poll_table_struct * ) )
8115{
8116
8117 {
8118#line 48
8119 pt->qproc = qproc;
8120#line 49
8121 pt->key = ~ 0UL;
8122#line 50
8123 return;
8124}
8125}
8126#line 16 "include/linux/uaccess.h"
8127__inline static void pagefault_disable(void)
8128{ struct thread_info *tmp ;
8129 int __cil_tmp2 ;
8130
8131 {
8132 {
8133#line 18
8134 while (1) {
8135 while_continue: ;
8136 {
8137#line 18
8138 tmp = current_thread_info();
8139#line 18
8140 __cil_tmp2 = tmp->preempt_count;
8141#line 18
8142 tmp->preempt_count = __cil_tmp2 + 1;
8143 }
8144#line 18
8145 goto while_break;
8146 }
8147 while_break___0: ;
8148 }
8149
8150 while_break:
8151#line 23
8152 __asm__ volatile ("": : : "memory");
8153#line 24
8154 return;
8155}
8156}
8157#line 26 "include/linux/uaccess.h"
8158__inline static void pagefault_enable(void)
8159{ struct thread_info *tmp ;
8160 int __cil_tmp2 ;
8161
8162 {
8163#line 32
8164 __asm__ volatile ("": : : "memory");
8165 {
8166#line 33
8167 while (1) {
8168 while_continue: ;
8169 {
8170#line 33
8171 tmp = current_thread_info();
8172#line 33
8173 __cil_tmp2 = tmp->preempt_count;
8174#line 33
8175 tmp->preempt_count = __cil_tmp2 - 1;
8176 }
8177#line 33
8178 goto while_break;
8179 }
8180 while_break___1: ;
8181 }
8182
8183 while_break:
8184#line 37
8185 __asm__ volatile ("": : : "memory");
8186 {
8187#line 38
8188 while (1) {
8189 while_continue___0: ;
8190
8191#line 38
8192 goto while_break___0;
8193 }
8194 while_break___2: ;
8195 }
8196
8197 while_break___0: ;
8198#line 39
8199 return;
8200}
8201}
8202#line 58 "include/linux/highmem.h"
8203__inline static void *__kmap_atomic(struct page *page )
8204{ void *tmp ;
8205
8206 {
8207 {
8208#line 60
8209 pagefault_disable();
8210#line 61
8211 tmp = lowmem_page_address(page);
8212 }
8213#line 61
8214 return (tmp);
8215}
8216}
8217#line 65 "include/linux/highmem.h"
8218__inline static void __kunmap_atomic(void *addr )
8219{
8220
8221 {
8222 {
8223#line 67
8224 pagefault_enable();
8225 }
8226#line 68
8227 return;
8228}
8229}
8230#line 361 "include/linux/sched.h"
8231extern void schedule(void) ;
8232#line 2112
8233extern int wake_up_process(struct task_struct *tsk ) ;
8234#line 2209
8235extern void mmput(struct mm_struct * ) ;
8236#line 2211
8237extern struct mm_struct *get_task_mm(struct task_struct *task ) ;
8238#line 7 "include/linux/kthread.h"
8239extern struct task_struct *kthread_create_on_node(int (*threadfn)(void *data ) , void *data ,
8240 int node , char const *namefmt
8241 , ...) ;
8242#line 36
8243extern int kthread_stop(struct task_struct *k ) ;
8244#line 37
8245extern int kthread_should_stop(void) ;
8246#line 585 "include/linux/cgroup.h"
8247extern int cgroup_attach_task_all(struct task_struct *from , struct task_struct * ) ;
8248#line 41 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
8249void vhost_poll_init(struct vhost_poll *poll , void (*fn)(struct vhost_work *work ) ,
8250 unsigned long mask , struct vhost_dev *dev ) ;
8251#line 43
8252void vhost_poll_start(struct vhost_poll *poll , struct file *file ) ;
8253#line 44
8254void vhost_poll_stop(struct vhost_poll *poll ) ;
8255#line 45
8256void vhost_poll_flush(struct vhost_poll *poll ) ;
8257#line 46
8258void vhost_poll_queue(struct vhost_poll *poll ) ;
8259#line 136
8260long vhost_dev_init(struct vhost_dev *dev , struct vhost_virtqueue *vqs , int nvqs ) ;
8261#line 137
8262long vhost_dev_check_owner(struct vhost_dev *dev ) ;
8263#line 138
8264long vhost_dev_reset_owner(struct vhost_dev *dev ) ;
8265#line 139
8266void vhost_dev_cleanup(struct vhost_dev *dev ) ;
8267#line 140
8268long vhost_dev_ioctl(struct vhost_dev *d , unsigned int ioctl , unsigned long arg ) ;
8269#line 141
8270int vhost_vq_access_ok(struct vhost_virtqueue *vq ) ;
8271#line 142
8272int vhost_log_access_ok(struct vhost_dev *dev ) ;
8273#line 144
8274int vhost_get_vq_desc(struct vhost_dev *dev , struct vhost_virtqueue *vq , struct iovec *iov ,
8275 unsigned int iov_size , unsigned int *out_num , unsigned int *in_num ,
8276 struct vhost_log *log , unsigned int *log_num ) ;
8277#line 148
8278void vhost_discard_vq_desc(struct vhost_virtqueue *vq , int n ) ;
8279#line 150
8280int vhost_add_used(struct vhost_virtqueue *vq , unsigned int head , int len ) ;
8281#line 151
8282int vhost_add_used_n(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
8283 unsigned int count ) ;
8284#line 153
8285void vhost_add_used_and_signal(struct vhost_dev *dev , struct vhost_virtqueue *vq ,
8286 unsigned int head , int len ) ;
8287#line 155
8288void vhost_add_used_and_signal_n(struct vhost_dev *dev , struct vhost_virtqueue *vq ,
8289 struct vring_used_elem *heads , unsigned int count ) ;
8290#line 157
8291void vhost_signal(struct vhost_dev *dev , struct vhost_virtqueue *vq ) ;
8292#line 158
8293void vhost_disable_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) ;
8294#line 159
8295bool vhost_enable_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) ;
8296#line 161
8297int vhost_log_write(struct vhost_virtqueue *vq , struct vhost_log *log , unsigned int log_num ,
8298 u64 len ) ;
8299#line 179 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/vhost/vhost.h"
8300__inline static int vhost_has_feature(struct vhost_dev *dev , int bit )
8301{ unsigned int acked_features ;
8302 unsigned int _________p1 ;
8303 int tmp___7 ;
8304 unsigned int *__cil_tmp6 ;
8305 unsigned int volatile *__cil_tmp7 ;
8306 unsigned int volatile __cil_tmp8 ;
8307 int __cil_tmp9 ;
8308 unsigned int __cil_tmp10 ;
8309 unsigned int __cil_tmp11 ;
8310
8311 {
8312#line 185
8313 __cil_tmp6 = & dev->acked_features;
8314#line 185
8315 __cil_tmp7 = (unsigned int volatile *)__cil_tmp6;
8316#line 185
8317 __cil_tmp8 = *__cil_tmp7;
8318#line 185
8319 _________p1 = (unsigned int )__cil_tmp8;
8320 {
8321#line 185
8322 while (1) {
8323 while_continue: ;
8324 {
8325#line 185
8326 tmp___7 = debug_lockdep_rcu_enabled();
8327 }
8328#line 185
8329 goto while_break;
8330 }
8331 while_break___1: ;
8332 }
8333
8334 while_break: ;
8335 {
8336#line 185
8337 while (1) {
8338 while_continue___0: ;
8339
8340#line 185
8341 goto while_break___0;
8342 }
8343 while_break___2: ;
8344 }
8345
8346 while_break___0:
8347#line 185
8348 acked_features = _________p1;
8349 {
8350#line 186
8351 __cil_tmp9 = 1 << bit;
8352#line 186
8353 __cil_tmp10 = (unsigned int )__cil_tmp9;
8354#line 186
8355 __cil_tmp11 = acked_features & __cil_tmp10;
8356#line 186
8357 return ((int )__cil_tmp11);
8358 }
8359}
8360}
8361#line 43 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8362static void vhost_poll_func(struct file *file , wait_queue_head_t *wqh , poll_table *pt )
8363{ struct vhost_poll *poll ;
8364 poll_table const *__mptr ;
8365 struct vhost_poll *__cil_tmp6 ;
8366 poll_table *__cil_tmp7 ;
8367 unsigned int __cil_tmp8 ;
8368 char *__cil_tmp9 ;
8369 char *__cil_tmp10 ;
8370 wait_queue_t *__cil_tmp11 ;
8371
8372 {
8373 {
8374#line 48
8375 __mptr = (poll_table const *)pt;
8376#line 48
8377 __cil_tmp6 = (struct vhost_poll *)0;
8378#line 48
8379 __cil_tmp7 = & __cil_tmp6->table;
8380#line 48
8381 __cil_tmp8 = (unsigned int )__cil_tmp7;
8382#line 48
8383 __cil_tmp9 = (char *)__mptr;
8384#line 48
8385 __cil_tmp10 = __cil_tmp9 - __cil_tmp8;
8386#line 48
8387 poll = (struct vhost_poll *)__cil_tmp10;
8388#line 49
8389 poll->wqh = wqh;
8390#line 50
8391 __cil_tmp11 = & poll->wait;
8392#line 50
8393 add_wait_queue(wqh, __cil_tmp11);
8394 }
8395#line 51
8396 return;
8397}
8398}
8399#line 53 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8400static int vhost_poll_wakeup(wait_queue_t *wait , unsigned int mode , int sync , void *key )
8401{ struct vhost_poll *poll ;
8402 wait_queue_t const *__mptr ;
8403 struct vhost_poll *__cil_tmp7 ;
8404 wait_queue_t *__cil_tmp8 ;
8405 unsigned int __cil_tmp9 ;
8406 char *__cil_tmp10 ;
8407 char *__cil_tmp11 ;
8408 unsigned long __cil_tmp12 ;
8409 unsigned long __cil_tmp13 ;
8410 unsigned long __cil_tmp14 ;
8411
8412 {
8413#line 56
8414 __mptr = (wait_queue_t const *)wait;
8415#line 56
8416 __cil_tmp7 = (struct vhost_poll *)0;
8417#line 56
8418 __cil_tmp8 = & __cil_tmp7->wait;
8419#line 56
8420 __cil_tmp9 = (unsigned int )__cil_tmp8;
8421#line 56
8422 __cil_tmp10 = (char *)__mptr;
8423#line 56
8424 __cil_tmp11 = __cil_tmp10 - __cil_tmp9;
8425#line 56
8426 poll = (struct vhost_poll *)__cil_tmp11;
8427 {
8428#line 58
8429 __cil_tmp12 = poll->mask;
8430#line 58
8431 __cil_tmp13 = (unsigned long )key;
8432#line 58
8433 __cil_tmp14 = __cil_tmp13 & __cil_tmp12;
8434#line 58
8435 if (! __cil_tmp14) {
8436#line 59
8437 return (0);
8438 } else {
8439
8440 }
8441 }
8442 {
8443#line 61
8444 vhost_poll_queue(poll);
8445 }
8446#line 62
8447 return (0);
8448}
8449}
8450#line 69 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8451static struct lock_class_key __key___7 ;
8452#line 65 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8453static void vhost_work_init(struct vhost_work *work , void (*fn)(struct vhost_work *work ) )
8454{ unsigned int tmp___7 ;
8455 struct list_head *__cil_tmp4 ;
8456 wait_queue_head_t *__cil_tmp5 ;
8457
8458 {
8459 {
8460#line 67
8461 __cil_tmp4 = & work->node;
8462#line 67
8463 INIT_LIST_HEAD(__cil_tmp4);
8464#line 68
8465 work->fn = fn;
8466 }
8467 {
8468#line 69
8469 while (1) {
8470 while_continue: ;
8471 {
8472#line 69
8473 __cil_tmp5 = & work->done;
8474#line 69
8475 __init_waitqueue_head(__cil_tmp5, & __key___7);
8476 }
8477#line 69
8478 goto while_break;
8479 }
8480 while_break___0: ;
8481 }
8482
8483 while_break:
8484#line 70
8485 work->flushing = 0;
8486#line 71
8487 tmp___7 = 0U;
8488#line 71
8489 work->done_seq = tmp___7;
8490#line 71
8491 work->queue_seq = tmp___7;
8492#line 72
8493 return;
8494}
8495}
8496#line 75 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8497void vhost_poll_init(struct vhost_poll *poll , void (*fn)(struct vhost_work *work ) ,
8498 unsigned long mask , struct vhost_dev *dev )
8499{ wait_queue_t *__cil_tmp5 ;
8500 poll_table *__cil_tmp6 ;
8501 struct vhost_work *__cil_tmp7 ;
8502
8503 {
8504 {
8505#line 78
8506 __cil_tmp5 = & poll->wait;
8507#line 78
8508 init_waitqueue_func_entry(__cil_tmp5, & vhost_poll_wakeup);
8509#line 79
8510 __cil_tmp6 = & poll->table;
8511#line 79
8512 init_poll_funcptr(__cil_tmp6, & vhost_poll_func);
8513#line 80
8514 poll->mask = mask;
8515#line 81
8516 poll->dev = dev;
8517#line 83
8518 __cil_tmp7 = & poll->work;
8519#line 83
8520 vhost_work_init(__cil_tmp7, fn);
8521 }
8522#line 84
8523 return;
8524}
8525}
8526#line 88 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8527void vhost_poll_start(struct vhost_poll *poll , struct file *file )
8528{ unsigned long mask ;
8529 unsigned int tmp___7 ;
8530 struct file_operations const *__cil_tmp5 ;
8531 unsigned int (*__cil_tmp6)(struct file * , struct poll_table_struct * ) ;
8532 poll_table *__cil_tmp7 ;
8533 wait_queue_t *__cil_tmp8 ;
8534 void *__cil_tmp9 ;
8535
8536 {
8537 {
8538#line 92
8539 __cil_tmp5 = file->f_op;
8540#line 92
8541 __cil_tmp6 = __cil_tmp5->poll;
8542#line 92
8543 __cil_tmp7 = & poll->table;
8544#line 92
8545 tmp___7 = (*__cil_tmp6)(file, __cil_tmp7);
8546#line 92
8547 mask = (unsigned long )tmp___7;
8548 }
8549#line 93
8550 if (mask) {
8551 {
8552#line 94
8553 __cil_tmp8 = & poll->wait;
8554#line 94
8555 __cil_tmp9 = (void *)mask;
8556#line 94
8557 vhost_poll_wakeup(__cil_tmp8, 0U, 0, __cil_tmp9);
8558 }
8559 } else {
8560
8561 }
8562#line 95
8563 return;
8564}
8565}
8566#line 99 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8567void vhost_poll_stop(struct vhost_poll *poll )
8568{ wait_queue_head_t *__cil_tmp2 ;
8569 wait_queue_t *__cil_tmp3 ;
8570
8571 {
8572 {
8573#line 101
8574 __cil_tmp2 = poll->wqh;
8575#line 101
8576 __cil_tmp3 = & poll->wait;
8577#line 101
8578 remove_wait_queue(__cil_tmp2, __cil_tmp3);
8579 }
8580#line 102
8581 return;
8582}
8583}
8584#line 104 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8585static bool vhost_work_seq_done(struct vhost_dev *dev , struct vhost_work *work ,
8586 unsigned int seq )
8587{ int left ;
8588 spinlock_t *__cil_tmp5 ;
8589 unsigned int __cil_tmp6 ;
8590 unsigned int __cil_tmp7 ;
8591 spinlock_t *__cil_tmp8 ;
8592 int __cil_tmp9 ;
8593
8594 {
8595 {
8596#line 109
8597 __cil_tmp5 = & dev->work_lock;
8598#line 109
8599 spin_lock_irq(__cil_tmp5);
8600#line 110
8601 __cil_tmp6 = work->done_seq;
8602#line 110
8603 __cil_tmp7 = seq - __cil_tmp6;
8604#line 110
8605 left = (int )__cil_tmp7;
8606#line 111
8607 __cil_tmp8 = & dev->work_lock;
8608#line 111
8609 spin_unlock_irq(__cil_tmp8);
8610 }
8611 {
8612#line 112
8613 __cil_tmp9 = left <= 0;
8614#line 112
8615 return ((bool )__cil_tmp9);
8616 }
8617}
8618}
8619#line 115 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8620static void vhost_work_flush(struct vhost_dev *dev , struct vhost_work *work )
8621{ unsigned int seq ;
8622 int flushing ;
8623 bool tmp___7 ;
8624 wait_queue_t __wait ;
8625 struct task_struct *tmp___8 ;
8626 bool tmp___9 ;
8627 long tmp___10 ;
8628 spinlock_t *__cil_tmp10 ;
8629 int __cil_tmp11 ;
8630 spinlock_t *__cil_tmp12 ;
8631 wait_queue_head_t *__cil_tmp13 ;
8632 wait_queue_head_t *__cil_tmp14 ;
8633 spinlock_t *__cil_tmp15 ;
8634 int __cil_tmp16 ;
8635 spinlock_t *__cil_tmp17 ;
8636 int __cil_tmp18 ;
8637 int __cil_tmp19 ;
8638 int __cil_tmp20 ;
8639 long __cil_tmp21 ;
8640
8641 {
8642 {
8643#line 120
8644 __cil_tmp10 = & dev->work_lock;
8645#line 120
8646 spin_lock_irq(__cil_tmp10);
8647#line 121
8648 seq = work->queue_seq;
8649#line 122
8650 __cil_tmp11 = work->flushing;
8651#line 122
8652 work->flushing = __cil_tmp11 + 1;
8653#line 123
8654 __cil_tmp12 = & dev->work_lock;
8655#line 123
8656 spin_unlock_irq(__cil_tmp12);
8657 }
8658 {
8659#line 124
8660 while (1) {
8661 while_continue: ;
8662 {
8663#line 124
8664 tmp___7 = vhost_work_seq_done(dev, work, seq);
8665 }
8666#line 124
8667 if (tmp___7) {
8668#line 124
8669 goto while_break;
8670 } else {
8671
8672 }
8673 {
8674#line 124
8675 while (1) {
8676 while_continue___0: ;
8677 {
8678#line 124
8679 tmp___8 = get_current();
8680#line 124
8681 __wait.flags = 0U;
8682#line 124
8683 __wait.private = (void *)tmp___8;
8684#line 124
8685 __wait.func = & autoremove_wake_function;
8686#line 124
8687 __wait.task_list.next = & __wait.task_list;
8688#line 124
8689 __wait.task_list.prev = & __wait.task_list;
8690 }
8691 {
8692#line 124
8693 while (1) {
8694 while_continue___1: ;
8695 {
8696#line 124
8697 __cil_tmp13 = & work->done;
8698#line 124
8699 prepare_to_wait(__cil_tmp13, & __wait, 2);
8700#line 124
8701 tmp___9 = vhost_work_seq_done(dev, work, seq);
8702 }
8703#line 124
8704 if (tmp___9) {
8705#line 124
8706 goto while_break___1;
8707 } else {
8708
8709 }
8710 {
8711#line 124
8712 schedule();
8713 }
8714 }
8715 while_break___6: ;
8716 }
8717
8718 while_break___1:
8719 {
8720#line 124
8721 __cil_tmp14 = & work->done;
8722#line 124
8723 finish_wait(__cil_tmp14, & __wait);
8724 }
8725#line 124
8726 goto while_break___0;
8727 }
8728 while_break___5: ;
8729 }
8730
8731 while_break___0: ;
8732#line 124
8733 goto while_break;
8734 }
8735 while_break___4: ;
8736 }
8737
8738 while_break:
8739 {
8740#line 125
8741 __cil_tmp15 = & dev->work_lock;
8742#line 125
8743 spin_lock_irq(__cil_tmp15);
8744#line 126
8745 __cil_tmp16 = work->flushing;
8746#line 126
8747 work->flushing = __cil_tmp16 - 1;
8748#line 126
8749 flushing = work->flushing;
8750#line 127
8751 __cil_tmp17 = & dev->work_lock;
8752#line 127
8753 spin_unlock_irq(__cil_tmp17);
8754 }
8755 {
8756#line 128
8757 while (1) {
8758 while_continue___2: ;
8759 {
8760#line 128
8761 __cil_tmp18 = flushing < 0;
8762#line 128
8763 __cil_tmp19 = ! __cil_tmp18;
8764#line 128
8765 __cil_tmp20 = ! __cil_tmp19;
8766#line 128
8767 __cil_tmp21 = (long )__cil_tmp20;
8768#line 128
8769 tmp___10 = __builtin_expect(__cil_tmp21, 0L);
8770 }
8771#line 128
8772 if (tmp___10) {
8773 {
8774#line 128
8775 while (1) {
8776 while_continue___3: ;
8777#line 128
8778 __asm__ volatile ("1:\tud2\n"
8779 ".pushsection __bug_table,\"a\"\n"
8780 "2:\t.long 1b - 2b, %c0 - 2b\n"
8781 "\t.word %c1, 0\n"
8782 "\t.org 2b+%c2\n"
8783 ".popsection": : "i" ("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"),
8784 "i" (128), "i" (12UL));
8785 {
8786#line 128
8787 while (1) {
8788 while_continue___4: ;
8789
8790 }
8791 while_break___9: ;
8792 }
8793
8794#line 128
8795 goto while_break___3;
8796 }
8797 while_break___8: ;
8798 }
8799
8800 while_break___3: ;
8801 } else {
8802
8803 }
8804#line 128
8805 goto while_break___2;
8806 }
8807 while_break___7: ;
8808 }
8809
8810 while_break___2: ;
8811#line 129
8812 return;
8813}
8814}
8815#line 133 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8816void vhost_poll_flush(struct vhost_poll *poll )
8817{ struct vhost_dev *__cil_tmp2 ;
8818 struct vhost_work *__cil_tmp3 ;
8819
8820 {
8821 {
8822#line 135
8823 __cil_tmp2 = poll->dev;
8824#line 135
8825 __cil_tmp3 = & poll->work;
8826#line 135
8827 vhost_work_flush(__cil_tmp2, __cil_tmp3);
8828 }
8829#line 136
8830 return;
8831}
8832}
8833#line 138 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8834__inline static void vhost_work_queue(struct vhost_dev *dev , struct vhost_work *work )
8835{ unsigned long flags ;
8836 raw_spinlock_t *tmp___7 ;
8837 int tmp___8 ;
8838 spinlock_t *__cil_tmp6 ;
8839 struct list_head *__cil_tmp7 ;
8840 struct list_head const *__cil_tmp8 ;
8841 struct list_head *__cil_tmp9 ;
8842 struct list_head *__cil_tmp10 ;
8843 unsigned int __cil_tmp11 ;
8844 struct task_struct *__cil_tmp12 ;
8845 spinlock_t *__cil_tmp13 ;
8846
8847 {
8848 {
8849#line 143
8850 while (1) {
8851 while_continue: ;
8852
8853 {
8854#line 143
8855 while (1) {
8856 while_continue___0: ;
8857 {
8858#line 143
8859 __cil_tmp6 = & dev->work_lock;
8860#line 143
8861 tmp___7 = spinlock_check(__cil_tmp6);
8862#line 143
8863 flags = _raw_spin_lock_irqsave(tmp___7);
8864 }
8865#line 143
8866 goto while_break___0;
8867 }
8868 while_break___2: ;
8869 }
8870
8871 while_break___0: ;
8872#line 143
8873 goto while_break;
8874 }
8875 while_break___1: ;
8876 }
8877
8878 while_break:
8879 {
8880#line 144
8881 __cil_tmp7 = & work->node;
8882#line 144
8883 __cil_tmp8 = (struct list_head const *)__cil_tmp7;
8884#line 144
8885 tmp___8 = list_empty(__cil_tmp8);
8886 }
8887#line 144
8888 if (tmp___8) {
8889 {
8890#line 145
8891 __cil_tmp9 = & work->node;
8892#line 145
8893 __cil_tmp10 = & dev->work_list;
8894#line 145
8895 list_add_tail(__cil_tmp9, __cil_tmp10);
8896#line 146
8897 __cil_tmp11 = work->queue_seq;
8898#line 146
8899 work->queue_seq = __cil_tmp11 + 1U;
8900#line 147
8901 __cil_tmp12 = dev->worker;
8902#line 147
8903 wake_up_process(__cil_tmp12);
8904 }
8905 } else {
8906
8907 }
8908 {
8909#line 149
8910 __cil_tmp13 = & dev->work_lock;
8911#line 149
8912 spin_unlock_irqrestore(__cil_tmp13, flags);
8913 }
8914#line 150
8915 return;
8916}
8917}
8918#line 152 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8919void vhost_poll_queue(struct vhost_poll *poll )
8920{ struct vhost_dev *__cil_tmp2 ;
8921 struct vhost_work *__cil_tmp3 ;
8922
8923 {
8924 {
8925#line 154
8926 __cil_tmp2 = poll->dev;
8927#line 154
8928 __cil_tmp3 = & poll->work;
8929#line 154
8930 vhost_work_queue(__cil_tmp2, __cil_tmp3);
8931 }
8932#line 155
8933 return;
8934}
8935}
8936#line 157 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
8937static void vhost_vq_reset(struct vhost_dev *dev , struct vhost_virtqueue *vq )
8938{ void *__cil_tmp3 ;
8939 void *__cil_tmp4 ;
8940 void *__cil_tmp5 ;
8941 void *__cil_tmp6 ;
8942 void *__cil_tmp7 ;
8943 void *__cil_tmp8 ;
8944 void *__cil_tmp9 ;
8945 void *__cil_tmp10 ;
8946 void *__cil_tmp11 ;
8947
8948 {
8949#line 160
8950 vq->num = 1U;
8951#line 161
8952 __cil_tmp3 = (void *)0;
8953#line 161
8954 vq->desc = (struct vring_desc *)__cil_tmp3;
8955#line 162
8956 __cil_tmp4 = (void *)0;
8957#line 162
8958 vq->avail = (struct vring_avail *)__cil_tmp4;
8959#line 163
8960 __cil_tmp5 = (void *)0;
8961#line 163
8962 vq->used = (struct vring_used *)__cil_tmp5;
8963#line 164
8964 vq->last_avail_idx = (u16 )0;
8965#line 165
8966 vq->avail_idx = (u16 )0;
8967#line 166
8968 vq->last_used_idx = (u16 )0;
8969#line 167
8970 vq->signalled_used = (u16 )0;
8971#line 168
8972 vq->signalled_used_valid = (bool )0;
8973#line 169
8974 vq->used_flags = (u16 )0;
8975#line 170
8976 vq->log_used = (bool )0;
8977#line 171
8978 vq->log_addr = 1152921504606846975ULL;
8979#line 172
8980 vq->vhost_hlen = (size_t )0;
8981#line 173
8982 vq->sock_hlen = (size_t )0;
8983#line 174
8984 vq->private_data = (void *)0;
8985#line 175
8986 vq->log_base = (void *)0;
8987#line 176
8988 __cil_tmp6 = (void *)0;
8989#line 176
8990 vq->error_ctx = (struct eventfd_ctx *)__cil_tmp6;
8991#line 177
8992 __cil_tmp7 = (void *)0;
8993#line 177
8994 vq->error = (struct file *)__cil_tmp7;
8995#line 178
8996 __cil_tmp8 = (void *)0;
8997#line 178
8998 vq->kick = (struct file *)__cil_tmp8;
8999#line 179
9000 __cil_tmp9 = (void *)0;
9001#line 179
9002 vq->call_ctx = (struct eventfd_ctx *)__cil_tmp9;
9003#line 180
9004 __cil_tmp10 = (void *)0;
9005#line 180
9006 vq->call = (struct file *)__cil_tmp10;
9007#line 181
9008 __cil_tmp11 = (void *)0;
9009#line 181
9010 vq->log_ctx = (struct eventfd_ctx *)__cil_tmp11;
9011#line 182
9012 return;
9013}
9014}
9015#line 184 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
9016static int vhost_worker(void *data )
9017{ struct vhost_dev *dev ;
9018 struct vhost_work *work ;
9019 unsigned int seq ;
9020 long volatile __x ;
9021 struct task_struct *tmp___8 ;
9022 u8 volatile *__ptr ;
9023 struct task_struct *tmp___9 ;
9024 u16 volatile *__ptr___0 ;
9025 struct task_struct *tmp___10 ;
9026 u32 volatile *__ptr___1 ;
9027 struct task_struct *tmp___11 ;
9028 u64 volatile *__ptr___2 ;
9029 struct task_struct *tmp___12 ;
9030 struct task_struct *tmp___13 ;
9031 int tmp___14 ;
9032 struct list_head const *__mptr ;
9033 int tmp___15 ;
9034 struct task_struct *tmp___16 ;
9035 void *__cil_tmp20 ;
9036 struct mm_struct *__cil_tmp21 ;
9037 int __cil_tmp22 ;
9038 int __cil_tmp23 ;
9039 int __cil_tmp24 ;
9040 int __cil_tmp25 ;
9041 long volatile *__cil_tmp26 ;
9042 long volatile *__cil_tmp27 ;
9043 long volatile *__cil_tmp28 ;
9044 long volatile *__cil_tmp29 ;
9045 spinlock_t *__cil_tmp30 ;
9046 wait_queue_head_t *__cil_tmp31 ;
9047 void *__cil_tmp32 ;
9048 spinlock_t *__cil_tmp33 ;
9049 struct list_head *__cil_tmp34 ;
9050 struct list_head const *__cil_tmp35 ;
9051 void *__cil_tmp36 ;
9052 struct list_head *__cil_tmp37 ;
9053 struct vhost_work *__cil_tmp38 ;
9054 struct list_head *__cil_tmp39 ;
9055 unsigned int __cil_tmp40 ;
9056 char *__cil_tmp41 ;
9057 char *__cil_tmp42 ;
9058 struct list_head *__cil_tmp43 ;
9059 spinlock_t *__cil_tmp44 ;
9060 void (*__cil_tmp45)(struct vhost_work *work ) ;
9061 struct mm_struct *__cil_tmp46 ;
9062
9063 {
9064 {
9065#line 186
9066 dev = (struct vhost_dev *)data;
9067#line 187
9068 __cil_tmp20 = (void *)0;
9069#line 187
9070 work = (struct vhost_work *)__cil_tmp20;
9071#line 188
9072 seq = seq;
9073#line 190
9074 __cil_tmp21 = dev->mm;
9075#line 190
9076 use_mm(__cil_tmp21);
9077 }
9078 {
9079#line 192
9080 while (1) {
9081 while_continue: ;
9082
9083 {
9084#line 194
9085 while (1) {
9086 while_continue___0: ;
9087#line 194
9088 __x = (long volatile )1;
9089 {
9090#line 194
9091 __cil_tmp22 = (int )8UL;
9092#line 194
9093 if (__cil_tmp22 == 1) {
9094#line 194
9095 goto case_1;
9096 } else {
9097 {
9098#line 194
9099 __cil_tmp23 = (int )8UL;
9100#line 194
9101 if (__cil_tmp23 == 2) {
9102#line 194
9103 goto case_2;
9104 } else {
9105 {
9106#line 194
9107 __cil_tmp24 = (int )8UL;
9108#line 194
9109 if (__cil_tmp24 == 4) {
9110#line 194
9111 goto case_4;
9112 } else {
9113 {
9114#line 194
9115 __cil_tmp25 = (int )8UL;
9116#line 194
9117 if (__cil_tmp25 == 8) {
9118#line 194
9119 goto case_8;
9120 } else {
9121#line 194
9122 goto switch_default;
9123#line 194
9124 if (0) {
9125 case_1:
9126 {
9127#line 194
9128 tmp___9 = get_current();
9129#line 194
9130 __cil_tmp26 = & tmp___9->state;
9131#line 194
9132 __ptr = (u8 volatile *)__cil_tmp26;
9133#line 194
9134
9135 }
9136#line 194
9137 goto switch_break;
9138 case_2:
9139 {
9140#line 194
9141 tmp___10 = get_current();
9142#line 194
9143 __cil_tmp27 = & tmp___10->state;
9144#line 194
9145 __ptr___0 = (u16 volatile *)__cil_tmp27;
9146#line 194
9147 __asm__ volatile ("xchgw %0,%1": "=r" (__x), "+m" (*__ptr___0): "0" (__x): "memory");
9148 }
9149#line 194
9150 goto switch_break;
9151 case_4:
9152 {
9153#line 194
9154 tmp___11 = get_current();
9155#line 194
9156 __cil_tmp28 = & tmp___11->state;
9157#line 194
9158 __ptr___1 = (u32 volatile *)__cil_tmp28;
9159#line 194
9160
9161 }
9162#line 194
9163 goto switch_break;
9164 case_8:
9165 {
9166#line 194
9167 tmp___12 = get_current();
9168#line 194
9169 __cil_tmp29 = & tmp___12->state;
9170#line 194
9171 __ptr___2 = (u64 volatile *)__cil_tmp29;
9172#line 194
9173 __asm__ volatile ("xchgq %0,%1": "=r" (__x), "+m" (*__ptr___2): "0" (__x): "memory");
9174 }
9175#line 194
9176 goto switch_break;
9177 switch_default:
9178 {
9179#line 194
9180 __xchg_wrong_size();
9181 }
9182 } else {
9183 switch_break: ;
9184 }
9185 }
9186 }
9187 }
9188 }
9189 }
9190 }
9191 }
9192 }
9193#line 194
9194 goto while_break___0;
9195 }
9196 while_break___4: ;
9197 }
9198
9199 while_break___0:
9200 {
9201#line 196
9202 __cil_tmp30 = & dev->work_lock;
9203#line 196
9204 spin_lock_irq(__cil_tmp30);
9205 }
9206#line 197
9207 if (work) {
9208#line 198
9209 work->done_seq = seq;
9210#line 199
9211 if (work->flushing) {
9212 {
9213#line 200
9214 __cil_tmp31 = & work->done;
9215#line 200
9216 __cil_tmp32 = (void *)0;
9217#line 200
9218 __wake_up(__cil_tmp31, 3U, 0, __cil_tmp32);
9219 }
9220 } else {
9221
9222 }
9223 } else {
9224
9225 }
9226 {
9227#line 203
9228 tmp___14 = kthread_should_stop();
9229 }
9230#line 203
9231 if (tmp___14) {
9232 {
9233#line 204
9234 __cil_tmp33 = & dev->work_lock;
9235#line 204
9236 spin_unlock_irq(__cil_tmp33);
9237 }
9238 {
9239#line 205
9240 while (1) {
9241 while_continue___1: ;
9242 {
9243#line 205
9244 tmp___13 = get_current();
9245#line 205
9246 tmp___13->state = (long volatile )0;
9247 }
9248#line 205
9249 goto while_break___1;
9250 }
9251 while_break___5: ;
9252 }
9253
9254 while_break___1: ;
9255#line 206
9256 goto while_break;
9257 } else {
9258
9259 }
9260 {
9261#line 208
9262 __cil_tmp34 = & dev->work_list;
9263#line 208
9264 __cil_tmp35 = (struct list_head const *)__cil_tmp34;
9265#line 208
9266 tmp___15 = list_empty(__cil_tmp35);
9267 }
9268#line 208
9269 if (tmp___15) {
9270#line 214
9271 __cil_tmp36 = (void *)0;
9272#line 214
9273 work = (struct vhost_work *)__cil_tmp36;
9274 } else {
9275 {
9276#line 209
9277 __cil_tmp37 = dev->work_list.next;
9278#line 209
9279 __mptr = (struct list_head const *)__cil_tmp37;
9280#line 209
9281 __cil_tmp38 = (struct vhost_work *)0;
9282#line 209
9283 __cil_tmp39 = & __cil_tmp38->node;
9284#line 209
9285 __cil_tmp40 = (unsigned int )__cil_tmp39;
9286#line 209
9287 __cil_tmp41 = (char *)__mptr;
9288#line 209
9289 __cil_tmp42 = __cil_tmp41 - __cil_tmp40;
9290#line 209
9291 work = (struct vhost_work *)__cil_tmp42;
9292#line 211
9293 __cil_tmp43 = & work->node;
9294#line 211
9295 list_del_init(__cil_tmp43);
9296#line 212
9297 seq = work->queue_seq;
9298 }
9299 }
9300 {
9301#line 215
9302 __cil_tmp44 = & dev->work_lock;
9303#line 215
9304 spin_unlock_irq(__cil_tmp44);
9305 }
9306#line 217
9307 if (work) {
9308 {
9309#line 218
9310 while (1) {
9311 while_continue___2: ;
9312 {
9313#line 218
9314 tmp___16 = get_current();
9315#line 218
9316 tmp___16->state = (long volatile )0;
9317 }
9318#line 218
9319 goto while_break___2;
9320 }
9321 while_break___6: ;
9322 }
9323
9324 while_break___2:
9325 {
9326#line 219
9327 __cil_tmp45 = work->fn;
9328#line 219
9329 (*__cil_tmp45)(work);
9330 }
9331 } else {
9332 {
9333#line 221
9334 schedule();
9335 }
9336 }
9337 }
9338 while_break___3: ;
9339 }
9340
9341 while_break:
9342 {
9343#line 224
9344 __cil_tmp46 = dev->mm;
9345#line 224
9346 unuse_mm(__cil_tmp46);
9347 }
9348#line 225
9349 return (0);
9350}
9351}
9352#line 229 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
9353static long vhost_dev_alloc_iovecs(struct vhost_dev *dev )
9354{ int i ;
9355 void *tmp___7 ;
9356 void *tmp___8 ;
9357 void *tmp___9 ;
9358 int __cil_tmp6 ;
9359 unsigned long __cil_tmp7 ;
9360 struct vhost_virtqueue *__cil_tmp8 ;
9361 struct vhost_virtqueue *__cil_tmp9 ;
9362 unsigned long __cil_tmp10 ;
9363 struct vhost_virtqueue *__cil_tmp11 ;
9364 struct vhost_virtqueue *__cil_tmp12 ;
9365 unsigned long __cil_tmp13 ;
9366 struct vhost_virtqueue *__cil_tmp14 ;
9367 struct vhost_virtqueue *__cil_tmp15 ;
9368 struct vhost_virtqueue *__cil_tmp16 ;
9369 struct vhost_virtqueue *__cil_tmp17 ;
9370 struct iovec *__cil_tmp18 ;
9371 struct vhost_virtqueue *__cil_tmp19 ;
9372 struct vhost_virtqueue *__cil_tmp20 ;
9373 struct vhost_log *__cil_tmp21 ;
9374 struct vhost_virtqueue *__cil_tmp22 ;
9375 struct vhost_virtqueue *__cil_tmp23 ;
9376 struct vring_used_elem *__cil_tmp24 ;
9377 struct vhost_virtqueue *__cil_tmp25 ;
9378 struct vhost_virtqueue *__cil_tmp26 ;
9379 struct iovec *__cil_tmp27 ;
9380 void const *__cil_tmp28 ;
9381 struct vhost_virtqueue *__cil_tmp29 ;
9382 struct vhost_virtqueue *__cil_tmp30 ;
9383 struct vhost_log *__cil_tmp31 ;
9384 void const *__cil_tmp32 ;
9385 struct vhost_virtqueue *__cil_tmp33 ;
9386 struct vhost_virtqueue *__cil_tmp34 ;
9387 struct vring_used_elem *__cil_tmp35 ;
9388 void const *__cil_tmp36 ;
9389
9390 {
9391#line 233
9392 i = 0;
9393 {
9394#line 233
9395 while (1) {
9396 while_continue: ;
9397
9398 {
9399#line 233
9400 __cil_tmp6 = dev->nvqs;
9401#line 233
9402 if (i < __cil_tmp6) {
9403
9404 } else {
9405#line 233
9406 goto while_break;
9407 }
9408 }
9409 {
9410#line 234
9411 __cil_tmp7 = 16UL * 1024UL;
9412#line 234
9413 tmp___7 = kmalloc(__cil_tmp7, 208U);
9414#line 234
9415 __cil_tmp8 = dev->vqs;
9416#line 234
9417 __cil_tmp9 = __cil_tmp8 + i;
9418#line 234
9419 __cil_tmp9->indirect = (struct iovec *)tmp___7;
9420#line 236
9421 __cil_tmp10 = 16UL * 1024UL;
9422#line 236
9423 tmp___8 = kmalloc(__cil_tmp10, 208U);
9424#line 236
9425 __cil_tmp11 = dev->vqs;
9426#line 236
9427 __cil_tmp12 = __cil_tmp11 + i;
9428#line 236
9429 __cil_tmp12->log = (struct vhost_log *)tmp___8;
9430#line 238
9431 __cil_tmp13 = 8UL * 1024UL;
9432#line 238
9433 tmp___9 = kmalloc(__cil_tmp13, 208U);
9434#line 238
9435 __cil_tmp14 = dev->vqs;
9436#line 238
9437 __cil_tmp15 = __cil_tmp14 + i;
9438#line 238
9439 __cil_tmp15->heads = (struct vring_used_elem *)tmp___9;
9440 }
9441 {
9442#line 241
9443 __cil_tmp16 = dev->vqs;
9444#line 241
9445 __cil_tmp17 = __cil_tmp16 + i;
9446#line 241
9447 __cil_tmp18 = __cil_tmp17->indirect;
9448#line 241
9449 if (! __cil_tmp18) {
9450#line 243
9451 goto err_nomem;
9452 } else {
9453 {
9454#line 241
9455 __cil_tmp19 = dev->vqs;
9456#line 241
9457 __cil_tmp20 = __cil_tmp19 + i;
9458#line 241
9459 __cil_tmp21 = __cil_tmp20->log;
9460#line 241
9461 if (! __cil_tmp21) {
9462#line 243
9463 goto err_nomem;
9464 } else {
9465 {
9466#line 241
9467 __cil_tmp22 = dev->vqs;
9468#line 241
9469 __cil_tmp23 = __cil_tmp22 + i;
9470#line 241
9471 __cil_tmp24 = __cil_tmp23->heads;
9472#line 241
9473 if (! __cil_tmp24) {
9474#line 243
9475 goto err_nomem;
9476 } else {
9477
9478 }
9479 }
9480 }
9481 }
9482 }
9483 }
9484#line 233
9485 i = i + 1;
9486 }
9487 while_break___1: ;
9488 }
9489
9490 while_break: ;
9491#line 245
9492 return (0L);
9493 err_nomem:
9494 {
9495#line 248
9496 while (1) {
9497 while_continue___0: ;
9498
9499#line 248
9500 if (i >= 0) {
9501
9502 } else {
9503#line 248
9504 goto while_break___0;
9505 }
9506 {
9507#line 249
9508 __cil_tmp25 = dev->vqs;
9509#line 249
9510 __cil_tmp26 = __cil_tmp25 + i;
9511#line 249
9512 __cil_tmp27 = __cil_tmp26->indirect;
9513#line 249
9514 __cil_tmp28 = (void const *)__cil_tmp27;
9515#line 249
9516 kfree(__cil_tmp28);
9517#line 250
9518 __cil_tmp29 = dev->vqs;
9519#line 250
9520 __cil_tmp30 = __cil_tmp29 + i;
9521#line 250
9522 __cil_tmp31 = __cil_tmp30->log;
9523#line 250
9524 __cil_tmp32 = (void const *)__cil_tmp31;
9525#line 250
9526 kfree(__cil_tmp32);
9527#line 251
9528 __cil_tmp33 = dev->vqs;
9529#line 251
9530 __cil_tmp34 = __cil_tmp33 + i;
9531#line 251
9532 __cil_tmp35 = __cil_tmp34->heads;
9533#line 251
9534 __cil_tmp36 = (void const *)__cil_tmp35;
9535#line 251
9536 kfree(__cil_tmp36);
9537#line 248
9538 i = i - 1;
9539 }
9540 }
9541 while_break___2: ;
9542 }
9543
9544 while_break___0: ;
9545#line 253
9546 return (-12L);
9547}
9548}
9549#line 256 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
9550static void vhost_dev_free_iovecs(struct vhost_dev *dev )
9551{ int i ;
9552 int __cil_tmp3 ;
9553 struct vhost_virtqueue *__cil_tmp4 ;
9554 struct vhost_virtqueue *__cil_tmp5 ;
9555 struct iovec *__cil_tmp6 ;
9556 void const *__cil_tmp7 ;
9557 struct vhost_virtqueue *__cil_tmp8 ;
9558 struct vhost_virtqueue *__cil_tmp9 ;
9559 void *__cil_tmp10 ;
9560 struct vhost_virtqueue *__cil_tmp11 ;
9561 struct vhost_virtqueue *__cil_tmp12 ;
9562 struct vhost_log *__cil_tmp13 ;
9563 void const *__cil_tmp14 ;
9564 struct vhost_virtqueue *__cil_tmp15 ;
9565 struct vhost_virtqueue *__cil_tmp16 ;
9566 void *__cil_tmp17 ;
9567 struct vhost_virtqueue *__cil_tmp18 ;
9568 struct vhost_virtqueue *__cil_tmp19 ;
9569 struct vring_used_elem *__cil_tmp20 ;
9570 void const *__cil_tmp21 ;
9571 struct vhost_virtqueue *__cil_tmp22 ;
9572 struct vhost_virtqueue *__cil_tmp23 ;
9573 void *__cil_tmp24 ;
9574
9575 {
9576#line 260
9577 i = 0;
9578 {
9579#line 260
9580 while (1) {
9581 while_continue: ;
9582
9583 {
9584#line 260
9585 __cil_tmp3 = dev->nvqs;
9586#line 260
9587 if (i < __cil_tmp3) {
9588
9589 } else {
9590#line 260
9591 goto while_break;
9592 }
9593 }
9594 {
9595#line 261
9596 __cil_tmp4 = dev->vqs;
9597#line 261
9598 __cil_tmp5 = __cil_tmp4 + i;
9599#line 261
9600 __cil_tmp6 = __cil_tmp5->indirect;
9601#line 261
9602 __cil_tmp7 = (void const *)__cil_tmp6;
9603#line 261
9604 kfree(__cil_tmp7);
9605#line 262
9606 __cil_tmp8 = dev->vqs;
9607#line 262
9608 __cil_tmp9 = __cil_tmp8 + i;
9609#line 262
9610 __cil_tmp10 = (void *)0;
9611#line 262
9612 __cil_tmp9->indirect = (struct iovec *)__cil_tmp10;
9613#line 263
9614 __cil_tmp11 = dev->vqs;
9615#line 263
9616 __cil_tmp12 = __cil_tmp11 + i;
9617#line 263
9618 __cil_tmp13 = __cil_tmp12->log;
9619#line 263
9620 __cil_tmp14 = (void const *)__cil_tmp13;
9621#line 263
9622 kfree(__cil_tmp14);
9623#line 264
9624 __cil_tmp15 = dev->vqs;
9625#line 264
9626 __cil_tmp16 = __cil_tmp15 + i;
9627#line 264
9628 __cil_tmp17 = (void *)0;
9629#line 264
9630 __cil_tmp16->log = (struct vhost_log *)__cil_tmp17;
9631#line 265
9632 __cil_tmp18 = dev->vqs;
9633#line 265
9634 __cil_tmp19 = __cil_tmp18 + i;
9635#line 265
9636 __cil_tmp20 = __cil_tmp19->heads;
9637#line 265
9638 __cil_tmp21 = (void const *)__cil_tmp20;
9639#line 265
9640 kfree(__cil_tmp21);
9641#line 266
9642 __cil_tmp22 = dev->vqs;
9643#line 266
9644 __cil_tmp23 = __cil_tmp22 + i;
9645#line 266
9646 __cil_tmp24 = (void *)0;
9647#line 266
9648 __cil_tmp23->heads = (struct vring_used_elem *)__cil_tmp24;
9649#line 260
9650 i = i + 1;
9651 }
9652 }
9653 while_break___0: ;
9654 }
9655
9656 while_break: ;
9657#line 268
9658 return;
9659}
9660}
9661#line 277 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
9662static struct lock_class_key __key___8 ;
9663#line 282 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
9664static struct lock_class_key __key___9 ;
9665#line 291 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
9666static struct lock_class_key __key___10 ;
9667#line 270 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
9668long vhost_dev_init(struct vhost_dev *dev , struct vhost_virtqueue *vqs , int nvqs )
9669{ int i ;
9670 struct mutex *__cil_tmp5 ;
9671 void *__cil_tmp6 ;
9672 void *__cil_tmp7 ;
9673 void *__cil_tmp8 ;
9674 void *__cil_tmp9 ;
9675 spinlock_t *__cil_tmp10 ;
9676 struct raw_spinlock *__cil_tmp11 ;
9677 struct list_head *__cil_tmp12 ;
9678 void *__cil_tmp13 ;
9679 int __cil_tmp14 ;
9680 struct vhost_virtqueue *__cil_tmp15 ;
9681 struct vhost_virtqueue *__cil_tmp16 ;
9682 void *__cil_tmp17 ;
9683 struct vhost_virtqueue *__cil_tmp18 ;
9684 struct vhost_virtqueue *__cil_tmp19 ;
9685 void *__cil_tmp20 ;
9686 struct vhost_virtqueue *__cil_tmp21 ;
9687 struct vhost_virtqueue *__cil_tmp22 ;
9688 void *__cil_tmp23 ;
9689 struct vhost_virtqueue *__cil_tmp24 ;
9690 struct vhost_virtqueue *__cil_tmp25 ;
9691 struct vhost_virtqueue *__cil_tmp26 ;
9692 struct vhost_virtqueue *__cil_tmp27 ;
9693 struct mutex *__cil_tmp28 ;
9694 struct vhost_virtqueue *__cil_tmp29 ;
9695 struct vhost_virtqueue *__cil_tmp30 ;
9696 struct vhost_virtqueue *__cil_tmp31 ;
9697 struct vhost_virtqueue *__cil_tmp32 ;
9698 struct vhost_virtqueue *__cil_tmp33 ;
9699 struct vhost_virtqueue *__cil_tmp34 ;
9700 struct vhost_poll *__cil_tmp35 ;
9701 struct vhost_virtqueue *__cil_tmp36 ;
9702 struct vhost_virtqueue *__cil_tmp37 ;
9703 void (*__cil_tmp38)(struct vhost_work *work ) ;
9704
9705 {
9706#line 275
9707 dev->vqs = vqs;
9708#line 276
9709 dev->nvqs = nvqs;
9710 {
9711#line 277
9712 while (1) {
9713 while_continue: ;
9714 {
9715#line 277
9716 __cil_tmp5 = & dev->mutex;
9717#line 277
9718 __mutex_init(__cil_tmp5, "&dev->mutex", & __key___8);
9719 }
9720#line 277
9721 goto while_break;
9722 }
9723 while_break___4: ;
9724 }
9725
9726 while_break:
9727#line 278
9728 __cil_tmp6 = (void *)0;
9729#line 278
9730 dev->log_ctx = (struct eventfd_ctx *)__cil_tmp6;
9731#line 279
9732 __cil_tmp7 = (void *)0;
9733#line 279
9734 dev->log_file = (struct file *)__cil_tmp7;
9735#line 280
9736 __cil_tmp8 = (void *)0;
9737#line 280
9738 dev->memory = (struct vhost_memory *)__cil_tmp8;
9739#line 281
9740 __cil_tmp9 = (void *)0;
9741#line 281
9742 dev->mm = (struct mm_struct *)__cil_tmp9;
9743 {
9744#line 282
9745 while (1) {
9746 while_continue___0: ;
9747 {
9748#line 282
9749 __cil_tmp10 = & dev->work_lock;
9750#line 282
9751 spinlock_check(__cil_tmp10);
9752 }
9753 {
9754#line 282
9755 while (1) {
9756 while_continue___1: ;
9757 {
9758#line 282
9759 __cil_tmp11 = & dev->work_lock.__annonCompField18.rlock;
9760#line 282
9761 __raw_spin_lock_init(__cil_tmp11, "&(&dev->work_lock)->rlock", & __key___9);
9762 }
9763#line 282
9764 goto while_break___1;
9765 }
9766 while_break___6: ;
9767 }
9768
9769 while_break___1: ;
9770#line 282
9771 goto while_break___0;
9772 }
9773 while_break___5: ;
9774 }
9775
9776 while_break___0:
9777 {
9778#line 283
9779 __cil_tmp12 = & dev->work_list;
9780#line 283
9781 INIT_LIST_HEAD(__cil_tmp12);
9782#line 284
9783 __cil_tmp13 = (void *)0;
9784#line 284
9785 dev->worker = (struct task_struct *)__cil_tmp13;
9786#line 286
9787 i = 0;
9788 }
9789 {
9790#line 286
9791 while (1) {
9792 while_continue___2: ;
9793
9794 {
9795#line 286
9796 __cil_tmp14 = dev->nvqs;
9797#line 286
9798 if (i < __cil_tmp14) {
9799
9800 } else {
9801#line 286
9802 goto while_break___2;
9803 }
9804 }
9805#line 287
9806 __cil_tmp15 = dev->vqs;
9807#line 287
9808 __cil_tmp16 = __cil_tmp15 + i;
9809#line 287
9810 __cil_tmp17 = (void *)0;
9811#line 287
9812 __cil_tmp16->log = (struct vhost_log *)__cil_tmp17;
9813#line 288
9814 __cil_tmp18 = dev->vqs;
9815#line 288
9816 __cil_tmp19 = __cil_tmp18 + i;
9817#line 288
9818 __cil_tmp20 = (void *)0;
9819#line 288
9820 __cil_tmp19->indirect = (struct iovec *)__cil_tmp20;
9821#line 289
9822 __cil_tmp21 = dev->vqs;
9823#line 289
9824 __cil_tmp22 = __cil_tmp21 + i;
9825#line 289
9826 __cil_tmp23 = (void *)0;
9827#line 289
9828 __cil_tmp22->heads = (struct vring_used_elem *)__cil_tmp23;
9829#line 290
9830 __cil_tmp24 = dev->vqs;
9831#line 290
9832 __cil_tmp25 = __cil_tmp24 + i;
9833#line 290
9834 __cil_tmp25->dev = dev;
9835 {
9836#line 291
9837 while (1) {
9838 while_continue___3: ;
9839 {
9840#line 291
9841 __cil_tmp26 = dev->vqs;
9842#line 291
9843 __cil_tmp27 = __cil_tmp26 + i;
9844#line 291
9845 __cil_tmp28 = & __cil_tmp27->mutex;
9846#line 291
9847 __mutex_init(__cil_tmp28, "&dev->vqs[i].mutex", & __key___10);
9848 }
9849#line 291
9850 goto while_break___3;
9851 }
9852 while_break___8: ;
9853 }
9854
9855 while_break___3:
9856 {
9857#line 292
9858 __cil_tmp29 = dev->vqs;
9859#line 292
9860 __cil_tmp30 = __cil_tmp29 + i;
9861#line 292
9862 vhost_vq_reset(dev, __cil_tmp30);
9863 }
9864 {
9865#line 293
9866 __cil_tmp31 = dev->vqs;
9867#line 293
9868 __cil_tmp32 = __cil_tmp31 + i;
9869#line 293
9870 if (__cil_tmp32->handle_kick) {
9871 {
9872#line 294
9873 __cil_tmp33 = dev->vqs;
9874#line 294
9875 __cil_tmp34 = __cil_tmp33 + i;
9876#line 294
9877 __cil_tmp35 = & __cil_tmp34->poll;
9878#line 294
9879 __cil_tmp36 = dev->vqs;
9880#line 294
9881 __cil_tmp37 = __cil_tmp36 + i;
9882#line 294
9883 __cil_tmp38 = __cil_tmp37->handle_kick;
9884#line 294
9885 vhost_poll_init(__cil_tmp35, __cil_tmp38, 1UL, dev);
9886 }
9887 } else {
9888
9889 }
9890 }
9891#line 286
9892 i = i + 1;
9893 }
9894 while_break___7: ;
9895 }
9896
9897 while_break___2: ;
9898#line 298
9899 return (0L);
9900}
9901}
9902#line 302 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
9903long vhost_dev_check_owner(struct vhost_dev *dev )
9904{ int tmp___8 ;
9905 struct task_struct *tmp___9 ;
9906 struct mm_struct *__cil_tmp4 ;
9907 unsigned long __cil_tmp5 ;
9908 struct mm_struct *__cil_tmp6 ;
9909 unsigned long __cil_tmp7 ;
9910
9911 {
9912 {
9913#line 305
9914 tmp___9 = get_current();
9915 }
9916 {
9917#line 305
9918 __cil_tmp4 = tmp___9->mm;
9919#line 305
9920 __cil_tmp5 = (unsigned long )__cil_tmp4;
9921#line 305
9922 __cil_tmp6 = dev->mm;
9923#line 305
9924 __cil_tmp7 = (unsigned long )__cil_tmp6;
9925#line 305
9926 if (__cil_tmp7 == __cil_tmp5) {
9927#line 305
9928 tmp___8 = 0;
9929 } else {
9930#line 305
9931 tmp___8 = -1;
9932 }
9933 }
9934#line 305
9935 return ((long )tmp___8);
9936}
9937}
9938#line 314 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
9939static void vhost_attach_cgroups_work(struct vhost_work *work )
9940{ struct vhost_attach_cgroups_struct *s ;
9941 struct vhost_work const *__mptr ;
9942 struct task_struct *tmp___7 ;
9943 struct vhost_attach_cgroups_struct *__cil_tmp5 ;
9944 struct vhost_work *__cil_tmp6 ;
9945 unsigned int __cil_tmp7 ;
9946 char *__cil_tmp8 ;
9947 char *__cil_tmp9 ;
9948 struct task_struct *__cil_tmp10 ;
9949
9950 {
9951 {
9952#line 318
9953 __mptr = (struct vhost_work const *)work;
9954#line 318
9955 __cil_tmp5 = (struct vhost_attach_cgroups_struct *)0;
9956#line 318
9957 __cil_tmp6 = & __cil_tmp5->work;
9958#line 318
9959 __cil_tmp7 = (unsigned int )__cil_tmp6;
9960#line 318
9961 __cil_tmp8 = (char *)__mptr;
9962#line 318
9963 __cil_tmp9 = __cil_tmp8 - __cil_tmp7;
9964#line 318
9965 s = (struct vhost_attach_cgroups_struct *)__cil_tmp9;
9966#line 319
9967 tmp___7 = get_current();
9968#line 319
9969 __cil_tmp10 = s->owner;
9970#line 319
9971 s->ret = cgroup_attach_task_all(__cil_tmp10, tmp___7);
9972 }
9973#line 320
9974 return;
9975}
9976}
9977#line 322 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
9978static int vhost_attach_cgroups(struct vhost_dev *dev )
9979{ struct vhost_attach_cgroups_struct attach ;
9980 struct vhost_work *__cil_tmp3 ;
9981 struct vhost_work *__cil_tmp4 ;
9982 struct vhost_work *__cil_tmp5 ;
9983
9984 {
9985 {
9986#line 326
9987 attach.owner = get_current();
9988#line 327
9989 __cil_tmp3 = & attach.work;
9990#line 327
9991 vhost_work_init(__cil_tmp3, & vhost_attach_cgroups_work);
9992#line 328
9993 __cil_tmp4 = & attach.work;
9994#line 328
9995 vhost_work_queue(dev, __cil_tmp4);
9996#line 329
9997 __cil_tmp5 = & attach.work;
9998#line 329
9999 vhost_work_flush(dev, __cil_tmp5);
10000 }
10001#line 330
10002 return (attach.ret);
10003}
10004}
10005#line 334 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10006static long vhost_dev_set_owner(struct vhost_dev *dev )
10007{ struct task_struct *worker ;
10008 int err ;
10009 struct task_struct *tmp___7 ;
10010 struct task_struct *tmp___8 ;
10011 long tmp___9 ;
10012 long tmp___10 ;
10013 long tmp___11 ;
10014 long tmp ;
10015 long tmp___12 ;
10016 long tmp___13 ;
10017 long tmp___14 ;
10018 void *__cil_tmp13 ;
10019 pid_t __cil_tmp14 ;
10020 void const *__cil_tmp15 ;
10021 void const *__cil_tmp16 ;
10022 void *__cil_tmp17 ;
10023 struct mm_struct *__cil_tmp18 ;
10024 void *__cil_tmp19 ;
10025
10026 {
10027#line 340
10028 if (dev->mm) {
10029#line 341
10030 err = -16;
10031#line 342
10032 goto err_mm;
10033 } else {
10034
10035 }
10036 {
10037#line 346
10038 tmp___7 = get_current();
10039#line 346
10040 dev->mm = get_task_mm(tmp___7);
10041#line 347
10042 tmp___8 = get_current();
10043#line 347
10044 __cil_tmp13 = (void *)dev;
10045#line 347
10046 __cil_tmp14 = tmp___8->pid;
10047#line 347
10048 worker = kthread_create_on_node(& vhost_worker, __cil_tmp13, -1, "vhost-%d", __cil_tmp14);
10049#line 348
10050 __cil_tmp15 = (void const *)worker;
10051#line 348
10052 tmp___13 = (long )IS_ERR(__cil_tmp15);
10053#line 348
10054 tmp = tmp___13;
10055#line 348
10056 tmp___10 = tmp;
10057 }
10058#line 348
10059 if (tmp___10) {
10060 {
10061#line 349
10062 __cil_tmp16 = (void const *)worker;
10063#line 349
10064 tmp___14 = (long )PTR_ERR(__cil_tmp16);
10065#line 349
10066 tmp___12 = tmp___14;
10067#line 349
10068 tmp___9 = tmp___12;
10069#line 349
10070 err = (int )tmp___9;
10071 }
10072#line 350
10073 goto err_worker;
10074 } else {
10075
10076 }
10077 {
10078#line 353
10079 dev->worker = worker;
10080#line 354
10081 wake_up_process(worker);
10082#line 356
10083 err = vhost_attach_cgroups(dev);
10084 }
10085#line 357
10086 if (err) {
10087#line 358
10088 goto err_cgroup;
10089 } else {
10090
10091 }
10092 {
10093#line 360
10094 tmp___11 = vhost_dev_alloc_iovecs(dev);
10095#line 360
10096 err = (int )tmp___11;
10097 }
10098#line 361
10099 if (err) {
10100#line 362
10101 goto err_cgroup;
10102 } else {
10103
10104 }
10105#line 364
10106 return (0L);
10107 err_cgroup:
10108 {
10109#line 366
10110 kthread_stop(worker);
10111#line 367
10112 __cil_tmp17 = (void *)0;
10113#line 367
10114 dev->worker = (struct task_struct *)__cil_tmp17;
10115 }
10116 err_worker:
10117#line 369
10118 if (dev->mm) {
10119 {
10120#line 370
10121 __cil_tmp18 = dev->mm;
10122#line 370
10123 mmput(__cil_tmp18);
10124 }
10125 } else {
10126
10127 }
10128#line 371
10129 __cil_tmp19 = (void *)0;
10130#line 371
10131 dev->mm = (struct mm_struct *)__cil_tmp19;
10132 err_mm:
10133#line 373
10134 return ((long )err);
10135}
10136}
10137#line 377 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10138long vhost_dev_reset_owner(struct vhost_dev *dev )
10139{ struct vhost_memory *memory ;
10140 void *tmp___7 ;
10141 struct vhost_memory *__cil_tmp4 ;
10142 struct vhost_memory_region (*__cil_tmp5)[0] ;
10143 unsigned int __cil_tmp6 ;
10144 size_t __cil_tmp7 ;
10145
10146 {
10147 {
10148#line 382
10149 __cil_tmp4 = (struct vhost_memory *)0;
10150#line 382
10151 __cil_tmp5 = & __cil_tmp4->regions;
10152#line 382
10153 __cil_tmp6 = (unsigned int )__cil_tmp5;
10154#line 382
10155 __cil_tmp7 = (size_t )__cil_tmp6;
10156#line 382
10157 tmp___7 = kmalloc(__cil_tmp7, 208U);
10158#line 382
10159 memory = (struct vhost_memory *)tmp___7;
10160 }
10161#line 383
10162 if (! memory) {
10163#line 384
10164 return (-12L);
10165 } else {
10166
10167 }
10168 {
10169#line 386
10170 vhost_dev_cleanup(dev);
10171#line 388
10172 memory->nregions = (__u32 )0;
10173#line 389
10174 dev->memory = memory;
10175 }
10176#line 390
10177 return (0L);
10178}
10179}
10180#line 423 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10181static bool __warned___22 ;
10182#line 394 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10183void vhost_dev_cleanup(struct vhost_dev *dev )
10184{ int i ;
10185 int tmp___7 ;
10186 int tmp___8 ;
10187 int __ret_warn_on ;
10188 int tmp___9 ;
10189 int tmp___10 ;
10190 long tmp___11 ;
10191 int __cil_tmp9 ;
10192 struct vhost_virtqueue *__cil_tmp10 ;
10193 struct vhost_virtqueue *__cil_tmp11 ;
10194 struct vhost_virtqueue *__cil_tmp12 ;
10195 struct vhost_virtqueue *__cil_tmp13 ;
10196 struct vhost_virtqueue *__cil_tmp14 ;
10197 struct vhost_virtqueue *__cil_tmp15 ;
10198 struct vhost_poll *__cil_tmp16 ;
10199 struct vhost_virtqueue *__cil_tmp17 ;
10200 struct vhost_virtqueue *__cil_tmp18 ;
10201 struct vhost_poll *__cil_tmp19 ;
10202 struct vhost_virtqueue *__cil_tmp20 ;
10203 struct vhost_virtqueue *__cil_tmp21 ;
10204 struct vhost_virtqueue *__cil_tmp22 ;
10205 struct vhost_virtqueue *__cil_tmp23 ;
10206 struct eventfd_ctx *__cil_tmp24 ;
10207 struct vhost_virtqueue *__cil_tmp25 ;
10208 struct vhost_virtqueue *__cil_tmp26 ;
10209 struct vhost_virtqueue *__cil_tmp27 ;
10210 struct vhost_virtqueue *__cil_tmp28 ;
10211 struct file *__cil_tmp29 ;
10212 struct vhost_virtqueue *__cil_tmp30 ;
10213 struct vhost_virtqueue *__cil_tmp31 ;
10214 struct vhost_virtqueue *__cil_tmp32 ;
10215 struct vhost_virtqueue *__cil_tmp33 ;
10216 struct file *__cil_tmp34 ;
10217 struct vhost_virtqueue *__cil_tmp35 ;
10218 struct vhost_virtqueue *__cil_tmp36 ;
10219 struct vhost_virtqueue *__cil_tmp37 ;
10220 struct vhost_virtqueue *__cil_tmp38 ;
10221 struct eventfd_ctx *__cil_tmp39 ;
10222 struct vhost_virtqueue *__cil_tmp40 ;
10223 struct vhost_virtqueue *__cil_tmp41 ;
10224 struct vhost_virtqueue *__cil_tmp42 ;
10225 struct vhost_virtqueue *__cil_tmp43 ;
10226 struct file *__cil_tmp44 ;
10227 struct vhost_virtqueue *__cil_tmp45 ;
10228 struct vhost_virtqueue *__cil_tmp46 ;
10229 struct eventfd_ctx *__cil_tmp47 ;
10230 void *__cil_tmp48 ;
10231 struct file *__cil_tmp49 ;
10232 void *__cil_tmp50 ;
10233 struct lockdep_map *__cil_tmp51 ;
10234 int __cil_tmp52 ;
10235 int __cil_tmp53 ;
10236 struct vhost_memory *__cil_tmp54 ;
10237 void const *__cil_tmp55 ;
10238 void *__cil_tmp56 ;
10239 struct list_head *__cil_tmp57 ;
10240 struct list_head const *__cil_tmp58 ;
10241 int __cil_tmp59 ;
10242 int __cil_tmp60 ;
10243 long __cil_tmp61 ;
10244 int __cil_tmp62 ;
10245 int __cil_tmp63 ;
10246 int __cil_tmp64 ;
10247 int __cil_tmp65 ;
10248 long __cil_tmp66 ;
10249 struct task_struct *__cil_tmp67 ;
10250 void *__cil_tmp68 ;
10251 struct mm_struct *__cil_tmp69 ;
10252 void *__cil_tmp70 ;
10253
10254 {
10255#line 398
10256 i = 0;
10257 {
10258#line 398
10259 while (1) {
10260 while_continue: ;
10261
10262 {
10263#line 398
10264 __cil_tmp9 = dev->nvqs;
10265#line 398
10266 if (i < __cil_tmp9) {
10267
10268 } else {
10269#line 398
10270 goto while_break;
10271 }
10272 }
10273 {
10274#line 399
10275 __cil_tmp10 = dev->vqs;
10276#line 399
10277 __cil_tmp11 = __cil_tmp10 + i;
10278#line 399
10279 if (__cil_tmp11->kick) {
10280 {
10281#line 399
10282 __cil_tmp12 = dev->vqs;
10283#line 399
10284 __cil_tmp13 = __cil_tmp12 + i;
10285#line 399
10286 if (__cil_tmp13->handle_kick) {
10287 {
10288#line 400
10289 __cil_tmp14 = dev->vqs;
10290#line 400
10291 __cil_tmp15 = __cil_tmp14 + i;
10292#line 400
10293 __cil_tmp16 = & __cil_tmp15->poll;
10294#line 400
10295 vhost_poll_stop(__cil_tmp16);
10296#line 401
10297 __cil_tmp17 = dev->vqs;
10298#line 401
10299 __cil_tmp18 = __cil_tmp17 + i;
10300#line 401
10301 __cil_tmp19 = & __cil_tmp18->poll;
10302#line 401
10303 vhost_poll_flush(__cil_tmp19);
10304 }
10305 } else {
10306
10307 }
10308 }
10309 } else {
10310
10311 }
10312 }
10313 {
10314#line 403
10315 __cil_tmp20 = dev->vqs;
10316#line 403
10317 __cil_tmp21 = __cil_tmp20 + i;
10318#line 403
10319 if (__cil_tmp21->error_ctx) {
10320 {
10321#line 404
10322 __cil_tmp22 = dev->vqs;
10323#line 404
10324 __cil_tmp23 = __cil_tmp22 + i;
10325#line 404
10326 __cil_tmp24 = __cil_tmp23->error_ctx;
10327#line 404
10328 eventfd_ctx_put(__cil_tmp24);
10329 }
10330 } else {
10331
10332 }
10333 }
10334 {
10335#line 405
10336 __cil_tmp25 = dev->vqs;
10337#line 405
10338 __cil_tmp26 = __cil_tmp25 + i;
10339#line 405
10340 if (__cil_tmp26->error) {
10341 {
10342#line 406
10343 __cil_tmp27 = dev->vqs;
10344#line 406
10345 __cil_tmp28 = __cil_tmp27 + i;
10346#line 406
10347 __cil_tmp29 = __cil_tmp28->error;
10348#line 406
10349 fput(__cil_tmp29);
10350 }
10351 } else {
10352
10353 }
10354 }
10355 {
10356#line 407
10357 __cil_tmp30 = dev->vqs;
10358#line 407
10359 __cil_tmp31 = __cil_tmp30 + i;
10360#line 407
10361 if (__cil_tmp31->kick) {
10362 {
10363#line 408
10364 __cil_tmp32 = dev->vqs;
10365#line 408
10366 __cil_tmp33 = __cil_tmp32 + i;
10367#line 408
10368 __cil_tmp34 = __cil_tmp33->kick;
10369#line 408
10370 fput(__cil_tmp34);
10371 }
10372 } else {
10373
10374 }
10375 }
10376 {
10377#line 409
10378 __cil_tmp35 = dev->vqs;
10379#line 409
10380 __cil_tmp36 = __cil_tmp35 + i;
10381#line 409
10382 if (__cil_tmp36->call_ctx) {
10383 {
10384#line 410
10385 __cil_tmp37 = dev->vqs;
10386#line 410
10387 __cil_tmp38 = __cil_tmp37 + i;
10388#line 410
10389 __cil_tmp39 = __cil_tmp38->call_ctx;
10390#line 410
10391 eventfd_ctx_put(__cil_tmp39);
10392 }
10393 } else {
10394
10395 }
10396 }
10397 {
10398#line 411
10399 __cil_tmp40 = dev->vqs;
10400#line 411
10401 __cil_tmp41 = __cil_tmp40 + i;
10402#line 411
10403 if (__cil_tmp41->call) {
10404 {
10405#line 412
10406 __cil_tmp42 = dev->vqs;
10407#line 412
10408 __cil_tmp43 = __cil_tmp42 + i;
10409#line 412
10410 __cil_tmp44 = __cil_tmp43->call;
10411#line 412
10412 fput(__cil_tmp44);
10413 }
10414 } else {
10415
10416 }
10417 }
10418 {
10419#line 413
10420 __cil_tmp45 = dev->vqs;
10421#line 413
10422 __cil_tmp46 = __cil_tmp45 + i;
10423#line 413
10424 vhost_vq_reset(dev, __cil_tmp46);
10425#line 398
10426 i = i + 1;
10427 }
10428 }
10429 while_break___1: ;
10430 }
10431
10432 while_break:
10433 {
10434#line 415
10435 vhost_dev_free_iovecs(dev);
10436 }
10437#line 416
10438 if (dev->log_ctx) {
10439 {
10440#line 417
10441 __cil_tmp47 = dev->log_ctx;
10442#line 417
10443 eventfd_ctx_put(__cil_tmp47);
10444 }
10445 } else {
10446
10447 }
10448#line 418
10449 __cil_tmp48 = (void *)0;
10450#line 418
10451 dev->log_ctx = (struct eventfd_ctx *)__cil_tmp48;
10452#line 419
10453 if (dev->log_file) {
10454 {
10455#line 420
10456 __cil_tmp49 = dev->log_file;
10457#line 420
10458 fput(__cil_tmp49);
10459 }
10460 } else {
10461
10462 }
10463#line 421
10464 __cil_tmp50 = (void *)0;
10465#line 421
10466 dev->log_file = (struct file *)__cil_tmp50;
10467 {
10468#line 423
10469 while (1) {
10470 while_continue___0: ;
10471 {
10472#line 423
10473 tmp___7 = debug_lockdep_rcu_enabled();
10474 }
10475#line 423
10476 if (tmp___7) {
10477#line 423
10478 if (! __warned___22) {
10479 {
10480#line 423
10481 __cil_tmp51 = & dev->mutex.dep_map;
10482#line 423
10483 tmp___8 = lock_is_held(__cil_tmp51);
10484 }
10485#line 423
10486 if (tmp___8) {
10487
10488 } else {
10489 {
10490#line 423
10491 __warned___22 = (bool )1;
10492#line 423
10493 __cil_tmp52 = (int const )424;
10494#line 423
10495 __cil_tmp53 = (int )__cil_tmp52;
10496#line 423
10497 lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
10498 __cil_tmp53);
10499 }
10500 }
10501 } else {
10502
10503 }
10504 } else {
10505
10506 }
10507#line 423
10508 goto while_break___0;
10509 }
10510 while_break___2: ;
10511 }
10512
10513 while_break___0:
10514 {
10515#line 423
10516 __cil_tmp54 = dev->memory;
10517#line 423
10518 __cil_tmp55 = (void const *)__cil_tmp54;
10519#line 423
10520 kfree(__cil_tmp55);
10521#line 425
10522 __cil_tmp56 = (void *)0;
10523#line 425
10524 dev->memory = (struct vhost_memory *)__cil_tmp56;
10525#line 426
10526 __cil_tmp57 = & dev->work_list;
10527#line 426
10528 __cil_tmp58 = (struct list_head const *)__cil_tmp57;
10529#line 426
10530 tmp___9 = list_empty(__cil_tmp58);
10531 }
10532#line 426
10533 if (tmp___9) {
10534#line 426
10535 tmp___10 = 0;
10536 } else {
10537#line 426
10538 tmp___10 = 1;
10539 }
10540 {
10541#line 426
10542 __ret_warn_on = tmp___10;
10543#line 426
10544 __cil_tmp59 = ! __ret_warn_on;
10545#line 426
10546 __cil_tmp60 = ! __cil_tmp59;
10547#line 426
10548 __cil_tmp61 = (long )__cil_tmp60;
10549#line 426
10550 tmp___11 = __builtin_expect(__cil_tmp61, 0L);
10551 }
10552#line 426
10553 if (tmp___11) {
10554 {
10555#line 426
10556 __cil_tmp62 = (int const )426;
10557#line 426
10558 __cil_tmp63 = (int )__cil_tmp62;
10559#line 426
10560 warn_slowpath_null("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
10561 __cil_tmp63);
10562 }
10563 } else {
10564
10565 }
10566 {
10567#line 426
10568 __cil_tmp64 = ! __ret_warn_on;
10569#line 426
10570 __cil_tmp65 = ! __cil_tmp64;
10571#line 426
10572 __cil_tmp66 = (long )__cil_tmp65;
10573#line 426
10574 __builtin_expect(__cil_tmp66, 0L);
10575 }
10576#line 427
10577 if (dev->worker) {
10578 {
10579#line 428
10580 __cil_tmp67 = dev->worker;
10581#line 428
10582 kthread_stop(__cil_tmp67);
10583#line 429
10584 __cil_tmp68 = (void *)0;
10585#line 429
10586 dev->worker = (struct task_struct *)__cil_tmp68;
10587 }
10588 } else {
10589
10590 }
10591#line 431
10592 if (dev->mm) {
10593 {
10594#line 432
10595 __cil_tmp69 = dev->mm;
10596#line 432
10597 mmput(__cil_tmp69);
10598 }
10599 } else {
10600
10601 }
10602#line 433
10603 __cil_tmp70 = (void *)0;
10604#line 433
10605 dev->mm = (struct mm_struct *)__cil_tmp70;
10606#line 434
10607 return;
10608}
10609}
10610#line 436 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10611static int log_access_ok(void *log_base , u64 addr , unsigned long sz )
10612{ u64 a ;
10613 unsigned long flag ;
10614 unsigned long roksum ;
10615 struct thread_info *tmp___7 ;
10616 int tmp___8 ;
10617 long tmp___9 ;
10618 u64 __cil_tmp10 ;
10619 unsigned long __cil_tmp11 ;
10620 unsigned long __cil_tmp12 ;
10621 u64 __cil_tmp13 ;
10622 unsigned long __cil_tmp14 ;
10623 u64 __cil_tmp15 ;
10624 u64 __cil_tmp16 ;
10625 unsigned long __cil_tmp17 ;
10626 unsigned long __cil_tmp18 ;
10627 unsigned long __cil_tmp19 ;
10628 unsigned long __cil_tmp20 ;
10629 long __cil_tmp21 ;
10630
10631 {
10632#line 438
10633 __cil_tmp10 = addr / 4096ULL;
10634#line 438
10635 a = __cil_tmp10 / 8ULL;
10636 {
10637#line 441
10638 __cil_tmp11 = (unsigned long )log_base;
10639#line 441
10640 __cil_tmp12 = 1152921504606846975UL - __cil_tmp11;
10641#line 441
10642 __cil_tmp13 = (u64 )__cil_tmp12;
10643#line 441
10644 if (a > __cil_tmp13) {
10645#line 443
10646 return (0);
10647 } else {
10648 {
10649#line 441
10650 __cil_tmp14 = (unsigned long )log_base;
10651#line 441
10652 __cil_tmp15 = (u64 )__cil_tmp14;
10653#line 441
10654 __cil_tmp16 = a + __cil_tmp15;
10655#line 441
10656 if (__cil_tmp16 > 1152921504606846975ULL) {
10657#line 443
10658 return (0);
10659 } else {
10660
10661 }
10662 }
10663 }
10664 }
10665 {
10666#line 445
10667 tmp___7 = current_thread_info();
10668#line 445
10669 __cil_tmp17 = sz + 32768UL;
10670#line 445
10671 __cil_tmp18 = __cil_tmp17 - 1UL;
10672#line 445
10673 __cil_tmp19 = __cil_tmp18 / 4096UL;
10674#line 445
10675 __cil_tmp20 = __cil_tmp19 / 8UL;
10676#line 445
10677 __asm__ ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (log_base + a),
10678 "g" ((long )__cil_tmp20), "rm" (tmp___7->addr_limit.seg));
10679 }
10680#line 445
10681 if (flag == 0UL) {
10682#line 445
10683 tmp___8 = 1;
10684 } else {
10685#line 445
10686 tmp___8 = 0;
10687 }
10688 {
10689#line 445
10690 __cil_tmp21 = (long )tmp___8;
10691#line 445
10692 tmp___9 = __builtin_expect(__cil_tmp21, 1L);
10693 }
10694#line 445
10695 return ((int )tmp___9);
10696}
10697}
10698#line 450 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10699static int vq_memory_access_ok(void *log_base , struct vhost_memory *mem , int log_all )
10700{ int i ;
10701 struct vhost_memory_region *m ;
10702 unsigned long a ;
10703 int tmp___7 ;
10704 unsigned long flag ;
10705 unsigned long roksum ;
10706 struct thread_info *tmp___8 ;
10707 int tmp___9 ;
10708 long tmp___10 ;
10709 __u32 __cil_tmp13 ;
10710 __u32 __cil_tmp14 ;
10711 struct vhost_memory_region *__cil_tmp15 ;
10712 __u64 __cil_tmp16 ;
10713 __u64 __cil_tmp17 ;
10714 __u64 __cil_tmp18 ;
10715 long __cil_tmp19 ;
10716 __u64 __cil_tmp20 ;
10717 __u64 __cil_tmp21 ;
10718 unsigned long __cil_tmp22 ;
10719
10720 {
10721#line 455
10722 if (! mem) {
10723#line 456
10724 return (0);
10725 } else {
10726
10727 }
10728#line 458
10729 i = 0;
10730 {
10731#line 458
10732 while (1) {
10733 while_continue: ;
10734
10735 {
10736#line 458
10737 __cil_tmp13 = mem->nregions;
10738#line 458
10739 __cil_tmp14 = (__u32 )i;
10740#line 458
10741 if (__cil_tmp14 < __cil_tmp13) {
10742
10743 } else {
10744#line 458
10745 goto while_break;
10746 }
10747 }
10748#line 459
10749 __cil_tmp15 = & mem->regions[0];
10750#line 459
10751 m = __cil_tmp15 + i;
10752#line 460
10753 __cil_tmp16 = m->userspace_addr;
10754#line 460
10755 a = (unsigned long )__cil_tmp16;
10756 {
10757#line 461
10758 __cil_tmp17 = m->memory_size;
10759#line 461
10760 if (__cil_tmp17 > 1152921504606846975ULL) {
10761#line 462
10762 return (0);
10763 } else {
10764 {
10765#line 463
10766 tmp___8 = current_thread_info();
10767#line 463
10768 __cil_tmp18 = m->memory_size;
10769#line 463
10770 __asm__ ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" ((void *)a),
10771 "g" ((long )__cil_tmp18), "rm" (tmp___8->addr_limit.seg));
10772 }
10773#line 463
10774 if (flag == 0UL) {
10775#line 463
10776 tmp___9 = 1;
10777 } else {
10778#line 463
10779 tmp___9 = 0;
10780 }
10781 {
10782#line 463
10783 __cil_tmp19 = (long )tmp___9;
10784#line 463
10785 tmp___10 = __builtin_expect(__cil_tmp19, 1L);
10786 }
10787#line 463
10788 if (tmp___10) {
10789#line 466
10790 if (log_all) {
10791 {
10792#line 466
10793 __cil_tmp20 = m->guest_phys_addr;
10794#line 466
10795 __cil_tmp21 = m->memory_size;
10796#line 466
10797 __cil_tmp22 = (unsigned long )__cil_tmp21;
10798#line 466
10799 tmp___7 = log_access_ok(log_base, __cil_tmp20, __cil_tmp22);
10800 }
10801#line 466
10802 if (tmp___7) {
10803
10804 } else {
10805#line 469
10806 return (0);
10807 }
10808 } else {
10809
10810 }
10811 } else {
10812#line 465
10813 return (0);
10814 }
10815 }
10816 }
10817#line 458
10818 i = i + 1;
10819 }
10820 while_break___0: ;
10821 }
10822
10823 while_break: ;
10824#line 471
10825 return (1);
10826}
10827}
10828#line 476 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10829static int memory_access_ok(struct vhost_dev *d , struct vhost_memory *mem , int log_all )
10830{ int i ;
10831 int ok ;
10832 int __cil_tmp6 ;
10833 struct vhost_virtqueue *__cil_tmp7 ;
10834 struct vhost_virtqueue *__cil_tmp8 ;
10835 struct mutex *__cil_tmp9 ;
10836 struct vhost_virtqueue *__cil_tmp10 ;
10837 struct vhost_virtqueue *__cil_tmp11 ;
10838 struct vhost_virtqueue *__cil_tmp12 ;
10839 struct vhost_virtqueue *__cil_tmp13 ;
10840 void *__cil_tmp14 ;
10841 struct vhost_virtqueue *__cil_tmp15 ;
10842 struct vhost_virtqueue *__cil_tmp16 ;
10843 struct mutex *__cil_tmp17 ;
10844
10845 {
10846#line 481
10847 i = 0;
10848 {
10849#line 481
10850 while (1) {
10851 while_continue: ;
10852
10853 {
10854#line 481
10855 __cil_tmp6 = d->nvqs;
10856#line 481
10857 if (i < __cil_tmp6) {
10858
10859 } else {
10860#line 481
10861 goto while_break;
10862 }
10863 }
10864 {
10865#line 483
10866 __cil_tmp7 = d->vqs;
10867#line 483
10868 __cil_tmp8 = __cil_tmp7 + i;
10869#line 483
10870 __cil_tmp9 = & __cil_tmp8->mutex;
10871#line 483
10872 mutex_lock_nested(__cil_tmp9, 0U);
10873 }
10874 {
10875#line 485
10876 __cil_tmp10 = d->vqs;
10877#line 485
10878 __cil_tmp11 = __cil_tmp10 + i;
10879#line 485
10880 if (__cil_tmp11->private_data) {
10881 {
10882#line 486
10883 __cil_tmp12 = d->vqs;
10884#line 486
10885 __cil_tmp13 = __cil_tmp12 + i;
10886#line 486
10887 __cil_tmp14 = __cil_tmp13->log_base;
10888#line 486
10889 ok = vq_memory_access_ok(__cil_tmp14, mem, log_all);
10890 }
10891 } else {
10892#line 489
10893 ok = 1;
10894 }
10895 }
10896 {
10897#line 490
10898 __cil_tmp15 = d->vqs;
10899#line 490
10900 __cil_tmp16 = __cil_tmp15 + i;
10901#line 490
10902 __cil_tmp17 = & __cil_tmp16->mutex;
10903#line 490
10904 mutex_unlock(__cil_tmp17);
10905 }
10906#line 491
10907 if (! ok) {
10908#line 492
10909 return (0);
10910 } else {
10911
10912 }
10913#line 481
10914 i = i + 1;
10915 }
10916 while_break___0: ;
10917 }
10918
10919 while_break: ;
10920#line 494
10921 return (1);
10922}
10923}
10924#line 497 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
10925static int vq_access_ok(struct vhost_dev *d , unsigned int num , struct vring_desc *desc ,
10926 struct vring_avail *avail , struct vring_used *used )
10927{ size_t s ;
10928 int tmp___8 ;
10929 int tmp___9 ;
10930 unsigned long flag ;
10931 unsigned long roksum ;
10932 struct thread_info *tmp___10 ;
10933 int tmp___11 ;
10934 long tmp___12 ;
10935 unsigned long flag___0 ;
10936 unsigned long roksum___0 ;
10937 struct thread_info *tmp___13 ;
10938 int tmp___14 ;
10939 long tmp___15 ;
10940 unsigned long flag___1 ;
10941 unsigned long roksum___1 ;
10942 struct thread_info *tmp___16 ;
10943 int tmp___17 ;
10944 long tmp___18 ;
10945 int tmp___19 ;
10946 unsigned long __cil_tmp25 ;
10947 unsigned long __cil_tmp26 ;
10948 long __cil_tmp27 ;
10949 unsigned long __cil_tmp28 ;
10950 unsigned long __cil_tmp29 ;
10951 unsigned long __cil_tmp30 ;
10952 unsigned long __cil_tmp31 ;
10953 long __cil_tmp32 ;
10954 unsigned long __cil_tmp33 ;
10955 unsigned long __cil_tmp34 ;
10956 unsigned long __cil_tmp35 ;
10957 unsigned long __cil_tmp36 ;
10958 long __cil_tmp37 ;
10959
10960 {
10961 {
10962#line 502
10963 tmp___9 = vhost_has_feature(d, 29);
10964 }
10965#line 502
10966 if (tmp___9) {
10967#line 502
10968 tmp___8 = 2;
10969 } else {
10970#line 502
10971 tmp___8 = 0;
10972 }
10973 {
10974#line 502
10975 s = (size_t )tmp___8;
10976#line 503
10977 tmp___10 = current_thread_info();
10978#line 503
10979 __cil_tmp25 = (unsigned long )num;
10980#line 503
10981 __cil_tmp26 = __cil_tmp25 * 16UL;
10982#line 503
10983 __asm__ ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (desc),
10984 "g" ((long )__cil_tmp26), "rm" (tmp___10->addr_limit.seg));
10985 }
10986#line 503
10987 if (flag == 0UL) {
10988#line 503
10989 tmp___11 = 1;
10990 } else {
10991#line 503
10992 tmp___11 = 0;
10993 }
10994 {
10995#line 503
10996 __cil_tmp27 = (long )tmp___11;
10997#line 503
10998 tmp___12 = __builtin_expect(__cil_tmp27, 1L);
10999 }
11000#line 506
11001 if (tmp___12) {
11002 {
11003#line 504
11004 tmp___13 = current_thread_info();
11005#line 504
11006 __cil_tmp28 = (unsigned long )num;
11007#line 504
11008 __cil_tmp29 = __cil_tmp28 * 2UL;
11009#line 504
11010 __cil_tmp30 = 4UL + __cil_tmp29;
11011#line 504
11012 __cil_tmp31 = __cil_tmp30 + s;
11013#line 504
11014 __asm__ ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag___0), "=r" (roksum___0): "1" (avail),
11015 "g" ((long )__cil_tmp31), "rm" (tmp___13->addr_limit.seg));
11016 }
11017#line 504
11018 if (flag___0 == 0UL) {
11019#line 504
11020 tmp___14 = 1;
11021 } else {
11022#line 504
11023 tmp___14 = 0;
11024 }
11025 {
11026#line 504
11027 __cil_tmp32 = (long )tmp___14;
11028#line 504
11029 tmp___15 = __builtin_expect(__cil_tmp32, 1L);
11030 }
11031#line 506
11032 if (tmp___15) {
11033 {
11034#line 506
11035 tmp___16 = current_thread_info();
11036#line 506
11037 __cil_tmp33 = (unsigned long )num;
11038#line 506
11039 __cil_tmp34 = __cil_tmp33 * 8UL;
11040#line 506
11041 __cil_tmp35 = 4UL + __cil_tmp34;
11042#line 506
11043 __cil_tmp36 = __cil_tmp35 + s;
11044#line 506
11045 __asm__ ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag___1),
11046 "=r" (roksum___1): "1" (used), "g" ((long )__cil_tmp36), "rm" (tmp___16->addr_limit.seg));
11047 }
11048#line 506
11049 if (flag___1 == 0UL) {
11050#line 506
11051 tmp___17 = 1;
11052 } else {
11053#line 506
11054 tmp___17 = 0;
11055 }
11056 {
11057#line 506
11058 __cil_tmp37 = (long )tmp___17;
11059#line 506
11060 tmp___18 = __builtin_expect(__cil_tmp37, 1L);
11061 }
11062#line 506
11063 if (tmp___18) {
11064#line 506
11065 tmp___19 = 1;
11066 } else {
11067#line 506
11068 tmp___19 = 0;
11069 }
11070 } else {
11071#line 506
11072 tmp___19 = 0;
11073 }
11074 } else {
11075#line 506
11076 tmp___19 = 0;
11077 }
11078#line 503
11079 return (tmp___19);
11080}
11081}
11082#line 516 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11083static bool __warned___23 ;
11084#line 512 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11085int vhost_log_access_ok(struct vhost_dev *dev )
11086{ struct vhost_memory *mp ;
11087 int tmp___7 ;
11088 int tmp___8 ;
11089 int tmp___9 ;
11090 struct lockdep_map *__cil_tmp6 ;
11091 int __cil_tmp7 ;
11092 int __cil_tmp8 ;
11093
11094 {
11095 {
11096#line 516
11097 while (1) {
11098 while_continue: ;
11099 {
11100#line 516
11101 tmp___7 = debug_lockdep_rcu_enabled();
11102 }
11103#line 516
11104 if (tmp___7) {
11105#line 516
11106 if (! __warned___23) {
11107 {
11108#line 516
11109 __cil_tmp6 = & dev->mutex.dep_map;
11110#line 516
11111 tmp___8 = lock_is_held(__cil_tmp6);
11112 }
11113#line 516
11114 if (tmp___8) {
11115
11116 } else {
11117 {
11118#line 516
11119 __warned___23 = (bool )1;
11120#line 516
11121 __cil_tmp7 = (int const )517;
11122#line 516
11123 __cil_tmp8 = (int )__cil_tmp7;
11124#line 516
11125 lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
11126 __cil_tmp8);
11127 }
11128 }
11129 } else {
11130
11131 }
11132 } else {
11133
11134 }
11135#line 516
11136 goto while_break;
11137 }
11138 while_break___0: ;
11139 }
11140
11141 while_break:
11142 {
11143#line 516
11144 mp = dev->memory;
11145#line 518
11146 tmp___9 = memory_access_ok(dev, mp, 1);
11147 }
11148#line 518
11149 return (tmp___9);
11150}
11151}
11152#line 529 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11153static bool __warned___24 ;
11154#line 523 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11155static int vq_log_access_ok(struct vhost_dev *d , struct vhost_virtqueue *vq , void *log_base )
11156{ struct vhost_memory *mp ;
11157 size_t s ;
11158 int tmp___8 ;
11159 int tmp___9 ;
11160 int tmp___10 ;
11161 int tmp___11 ;
11162 int tmp___12 ;
11163 int tmp___13 ;
11164 int tmp___14 ;
11165 int tmp___15 ;
11166 struct lockdep_map *__cil_tmp14 ;
11167 int __cil_tmp15 ;
11168 int __cil_tmp16 ;
11169 struct vhost_dev *__cil_tmp17 ;
11170 struct vhost_dev *__cil_tmp18 ;
11171 bool __cil_tmp19 ;
11172 u64 __cil_tmp20 ;
11173 unsigned int __cil_tmp21 ;
11174 unsigned long __cil_tmp22 ;
11175 unsigned long __cil_tmp23 ;
11176 unsigned long __cil_tmp24 ;
11177 unsigned long __cil_tmp25 ;
11178
11179 {
11180 {
11181#line 527
11182 tmp___9 = vhost_has_feature(d, 29);
11183 }
11184#line 527
11185 if (tmp___9) {
11186#line 527
11187 tmp___8 = 2;
11188 } else {
11189#line 527
11190 tmp___8 = 0;
11191 }
11192#line 527
11193 s = (size_t )tmp___8;
11194 {
11195#line 529
11196 while (1) {
11197 while_continue: ;
11198 {
11199#line 529
11200 tmp___10 = debug_lockdep_rcu_enabled();
11201 }
11202#line 529
11203 if (tmp___10) {
11204#line 529
11205 if (! __warned___24) {
11206 {
11207#line 529
11208 __cil_tmp14 = & vq->mutex.dep_map;
11209#line 529
11210 tmp___11 = lock_is_held(__cil_tmp14);
11211 }
11212#line 529
11213 if (tmp___11) {
11214
11215 } else {
11216 {
11217#line 529
11218 __warned___24 = (bool )1;
11219#line 529
11220 __cil_tmp15 = (int const )530;
11221#line 529
11222 __cil_tmp16 = (int )__cil_tmp15;
11223#line 529
11224 lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
11225 __cil_tmp16);
11226 }
11227 }
11228 } else {
11229
11230 }
11231 } else {
11232
11233 }
11234#line 529
11235 goto while_break;
11236 }
11237 while_break___0: ;
11238 }
11239
11240 while_break:
11241 {
11242#line 529
11243 __cil_tmp17 = vq->dev;
11244#line 529
11245 mp = __cil_tmp17->memory;
11246#line 531
11247 __cil_tmp18 = vq->dev;
11248#line 531
11249 tmp___12 = vhost_has_feature(__cil_tmp18, 26);
11250#line 531
11251 tmp___13 = vq_memory_access_ok(log_base, mp, tmp___12);
11252 }
11253#line 531
11254 if (tmp___13) {
11255 {
11256#line 531
11257 __cil_tmp19 = vq->log_used;
11258#line 531
11259 if (! __cil_tmp19) {
11260#line 531
11261 tmp___15 = 1;
11262 } else {
11263 {
11264#line 531
11265 __cil_tmp20 = vq->log_addr;
11266#line 531
11267 __cil_tmp21 = vq->num;
11268#line 531
11269 __cil_tmp22 = (unsigned long )__cil_tmp21;
11270#line 531
11271 __cil_tmp23 = __cil_tmp22 * 8UL;
11272#line 531
11273 __cil_tmp24 = 4UL + __cil_tmp23;
11274#line 531
11275 __cil_tmp25 = __cil_tmp24 + s;
11276#line 531
11277 tmp___14 = log_access_ok(log_base, __cil_tmp20, __cil_tmp25);
11278 }
11279#line 531
11280 if (tmp___14) {
11281#line 531
11282 tmp___15 = 1;
11283 } else {
11284#line 531
11285 tmp___15 = 0;
11286 }
11287 }
11288 }
11289 } else {
11290#line 531
11291 tmp___15 = 0;
11292 }
11293#line 531
11294 return (tmp___15);
11295}
11296}
11297#line 540 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11298int vhost_vq_access_ok(struct vhost_virtqueue *vq )
11299{ int tmp___7 ;
11300 int tmp___8 ;
11301 int tmp___9 ;
11302 struct vhost_dev *__cil_tmp5 ;
11303 unsigned int __cil_tmp6 ;
11304 struct vring_desc *__cil_tmp7 ;
11305 struct vring_avail *__cil_tmp8 ;
11306 struct vring_used *__cil_tmp9 ;
11307 struct vhost_dev *__cil_tmp10 ;
11308 void *__cil_tmp11 ;
11309
11310 {
11311 {
11312#line 542
11313 __cil_tmp5 = vq->dev;
11314#line 542
11315 __cil_tmp6 = vq->num;
11316#line 542
11317 __cil_tmp7 = vq->desc;
11318#line 542
11319 __cil_tmp8 = vq->avail;
11320#line 542
11321 __cil_tmp9 = vq->used;
11322#line 542
11323 tmp___7 = vq_access_ok(__cil_tmp5, __cil_tmp6, __cil_tmp7, __cil_tmp8, __cil_tmp9);
11324 }
11325#line 542
11326 if (tmp___7) {
11327 {
11328#line 542
11329 __cil_tmp10 = vq->dev;
11330#line 542
11331 __cil_tmp11 = vq->log_base;
11332#line 542
11333 tmp___8 = vq_log_access_ok(__cil_tmp10, vq, __cil_tmp11);
11334 }
11335#line 542
11336 if (tmp___8) {
11337#line 542
11338 tmp___9 = 1;
11339 } else {
11340#line 542
11341 tmp___9 = 0;
11342 }
11343 } else {
11344#line 542
11345 tmp___9 = 0;
11346 }
11347#line 542
11348 return (tmp___9);
11349}
11350}
11351#line 573 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11352static bool __warned___25 ;
11353#line 546 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11354static long vhost_set_memory(struct vhost_dev *d , struct vhost_memory *m )
11355{ struct vhost_memory mem ;
11356 struct vhost_memory *newmem ;
11357 struct vhost_memory *oldmem ;
11358 unsigned long size ;
11359 unsigned long tmp___7 ;
11360 void *tmp___8 ;
11361 size_t __len ;
11362 void *__ret ;
11363 unsigned long tmp___9 ;
11364 int tmp___10 ;
11365 int tmp___11 ;
11366 int tmp___12 ;
11367 int tmp___13 ;
11368 unsigned long tmp ;
11369 unsigned long tmp___14 ;
11370 unsigned long tmp___15 ;
11371 unsigned long tmp___16 ;
11372 struct vhost_memory *__cil_tmp20 ;
11373 struct vhost_memory_region (*__cil_tmp21)[0] ;
11374 unsigned int __cil_tmp22 ;
11375 void *__cil_tmp23 ;
11376 void const *__cil_tmp24 ;
11377 unsigned long __cil_tmp25 ;
11378 unsigned long __cil_tmp26 ;
11379 unsigned long __cil_tmp27 ;
11380 void *__cil_tmp28 ;
11381 void const *__cil_tmp29 ;
11382 struct vhost_memory_region *__cil_tmp30 ;
11383 void *__cil_tmp31 ;
11384 struct vhost_memory_region *__cil_tmp32 ;
11385 void const *__cil_tmp33 ;
11386 unsigned long __cil_tmp34 ;
11387 unsigned long __cil_tmp35 ;
11388 void const *__cil_tmp36 ;
11389 void const *__cil_tmp37 ;
11390 struct lockdep_map *__cil_tmp38 ;
11391 int __cil_tmp39 ;
11392 int __cil_tmp40 ;
11393 void const *__cil_tmp41 ;
11394
11395 {
11396 {
11397#line 549
11398 __cil_tmp20 = (struct vhost_memory *)0;
11399#line 549
11400 __cil_tmp21 = & __cil_tmp20->regions;
11401#line 549
11402 __cil_tmp22 = (unsigned int )__cil_tmp21;
11403#line 549
11404 size = (unsigned long )__cil_tmp22;
11405#line 551
11406 __cil_tmp23 = (void *)(& mem);
11407#line 551
11408 __cil_tmp24 = (void const *)m;
11409#line 551
11410 tmp___15 = (unsigned long )copy_from_user(__cil_tmp23, __cil_tmp24, size);
11411#line 551
11412 tmp = tmp___15;
11413#line 551
11414 tmp___7 = tmp;
11415 }
11416#line 551
11417 if (tmp___7) {
11418#line 552
11419 return (-14L);
11420 } else {
11421
11422 }
11423#line 553
11424 if (mem.padding) {
11425#line 554
11426 return (-95L);
11427 } else {
11428
11429 }
11430#line 555
11431 if (mem.nregions > 64U) {
11432#line 556
11433 return (-7L);
11434 } else {
11435
11436 }
11437 {
11438#line 557
11439 __cil_tmp25 = (unsigned long )mem.nregions;
11440#line 557
11441 __cil_tmp26 = __cil_tmp25 * 32UL;
11442#line 557
11443 __cil_tmp27 = size + __cil_tmp26;
11444#line 557
11445 tmp___8 = kmalloc(__cil_tmp27, 208U);
11446#line 557
11447 newmem = (struct vhost_memory *)tmp___8;
11448 }
11449#line 558
11450 if (! newmem) {
11451#line 559
11452 return (-12L);
11453 } else {
11454
11455 }
11456 {
11457#line 561
11458 __len = size;
11459#line 561
11460 __cil_tmp28 = (void *)newmem;
11461#line 561
11462 __cil_tmp29 = (void const *)(& mem);
11463#line 561
11464 __ret = __builtin_memcpy(__cil_tmp28, __cil_tmp29, __len);
11465#line 562
11466 __cil_tmp30 = & newmem->regions[0];
11467#line 562
11468 __cil_tmp31 = (void *)__cil_tmp30;
11469#line 562
11470 __cil_tmp32 = & m->regions[0];
11471#line 562
11472 __cil_tmp33 = (void const *)__cil_tmp32;
11473#line 562
11474 __cil_tmp34 = (unsigned long )mem.nregions;
11475#line 562
11476 __cil_tmp35 = __cil_tmp34 * 32UL;
11477#line 562
11478 tmp___16 = (unsigned long )copy_from_user(__cil_tmp31, __cil_tmp33, __cil_tmp35);
11479#line 562
11480 tmp___14 = tmp___16;
11481#line 562
11482 tmp___9 = tmp___14;
11483 }
11484#line 562
11485 if (tmp___9) {
11486 {
11487#line 564
11488 __cil_tmp36 = (void const *)newmem;
11489#line 564
11490 kfree(__cil_tmp36);
11491 }
11492#line 565
11493 return (-14L);
11494 } else {
11495
11496 }
11497 {
11498#line 568
11499 tmp___10 = vhost_has_feature(d, 26);
11500#line 568
11501 tmp___11 = memory_access_ok(d, newmem, tmp___10);
11502 }
11503#line 568
11504 if (tmp___11) {
11505
11506 } else {
11507 {
11508#line 570
11509 __cil_tmp37 = (void const *)newmem;
11510#line 570
11511 kfree(__cil_tmp37);
11512 }
11513#line 571
11514 return (-14L);
11515 }
11516 {
11517#line 573
11518 while (1) {
11519 while_continue: ;
11520 {
11521#line 573
11522 tmp___12 = debug_lockdep_rcu_enabled();
11523 }
11524#line 573
11525 if (tmp___12) {
11526#line 573
11527 if (! __warned___25) {
11528 {
11529#line 573
11530 __cil_tmp38 = & d->mutex.dep_map;
11531#line 573
11532 tmp___13 = lock_is_held(__cil_tmp38);
11533 }
11534#line 573
11535 if (tmp___13) {
11536
11537 } else {
11538 {
11539#line 573
11540 __warned___25 = (bool )1;
11541#line 573
11542 __cil_tmp39 = (int const )574;
11543#line 573
11544 __cil_tmp40 = (int )__cil_tmp39;
11545#line 573
11546 lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
11547 __cil_tmp40);
11548 }
11549 }
11550 } else {
11551
11552 }
11553 } else {
11554
11555 }
11556#line 573
11557 goto while_break;
11558 }
11559 while_break___0: ;
11560 }
11561
11562 while_break:
11563 {
11564#line 573
11565 oldmem = d->memory;
11566#line 575
11567 __asm__ volatile ("": : : "memory");
11568#line 575
11569 d->memory = newmem;
11570#line 576
11571 synchronize_rcu();
11572#line 577
11573 __cil_tmp41 = (void const *)oldmem;
11574#line 577
11575 kfree(__cil_tmp41);
11576 }
11577#line 578
11578 return (0L);
11579}
11580}
11581#line 581 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11582static int init_used(struct vhost_virtqueue *vq , struct vring_used *used )
11583{ int r ;
11584 int __ret_pu ;
11585 __u16 __pu_val ;
11586 int __ret_gu ;
11587 unsigned long __val_gu ;
11588 int __cil_tmp8 ;
11589 int __cil_tmp9 ;
11590 int __cil_tmp10 ;
11591 int __cil_tmp11 ;
11592 int __cil_tmp12 ;
11593 int __cil_tmp13 ;
11594 int __cil_tmp14 ;
11595 int __cil_tmp15 ;
11596
11597 {
11598 {
11599#line 584
11600 might_fault();
11601#line 584
11602 __pu_val = vq->used_flags;
11603 }
11604 {
11605#line 584
11606 __cil_tmp8 = (int )2UL;
11607#line 584
11608 if (__cil_tmp8 == 1) {
11609#line 584
11610 goto case_1;
11611 } else {
11612 {
11613#line 584
11614 __cil_tmp9 = (int )2UL;
11615#line 584
11616 if (__cil_tmp9 == 2) {
11617#line 584
11618 goto case_2;
11619 } else {
11620 {
11621#line 584
11622 __cil_tmp10 = (int )2UL;
11623#line 584
11624 if (__cil_tmp10 == 4) {
11625#line 584
11626 goto case_4;
11627 } else {
11628 {
11629#line 584
11630 __cil_tmp11 = (int )2UL;
11631#line 584
11632 if (__cil_tmp11 == 8) {
11633#line 584
11634 goto case_8;
11635 } else {
11636#line 584
11637 goto switch_default;
11638#line 584
11639 if (0) {
11640 case_1:
11641#line 584
11642 __asm__ volatile ("call __put_user_"
11643 "1": "=a" (__ret_pu): "0" (__pu_val), "c" (& used->flags): "ebx");
11644#line 584
11645 goto switch_break;
11646 case_2:
11647#line 584
11648 __asm__ volatile ("call __put_user_"
11649 "2": "=a" (__ret_pu): "0" (__pu_val), "c" (& used->flags): "ebx");
11650#line 584
11651 goto switch_break;
11652 case_4:
11653#line 584
11654 __asm__ volatile ("call __put_user_"
11655 "4": "=a" (__ret_pu): "0" (__pu_val), "c" (& used->flags): "ebx");
11656#line 584
11657 goto switch_break;
11658 case_8:
11659#line 584
11660 __asm__ volatile ("call __put_user_"
11661 "8": "=a" (__ret_pu): "0" (__pu_val), "c" (& used->flags): "ebx");
11662#line 584
11663 goto switch_break;
11664 switch_default:
11665#line 584
11666 __asm__ volatile ("call __put_user_"
11667 "X": "=a" (__ret_pu): "0" (__pu_val), "c" (& used->flags): "ebx");
11668#line 584
11669 goto switch_break;
11670 } else {
11671 switch_break: ;
11672 }
11673 }
11674 }
11675 }
11676 }
11677 }
11678 }
11679 }
11680 }
11681#line 584
11682 r = __ret_pu;
11683#line 586
11684 if (r) {
11685#line 587
11686 return (r);
11687 } else {
11688
11689 }
11690 {
11691#line 588
11692 vq->signalled_used_valid = (bool )0;
11693#line 589
11694 might_fault();
11695 }
11696 {
11697#line 589
11698 __cil_tmp12 = (int )2UL;
11699#line 589
11700 if (__cil_tmp12 == 1) {
11701#line 589
11702 goto case_1___0;
11703 } else {
11704 {
11705#line 589
11706 __cil_tmp13 = (int )2UL;
11707#line 589
11708 if (__cil_tmp13 == 2) {
11709#line 589
11710 goto case_2___0;
11711 } else {
11712 {
11713#line 589
11714 __cil_tmp14 = (int )2UL;
11715#line 589
11716 if (__cil_tmp14 == 4) {
11717#line 589
11718 goto case_4___0;
11719 } else {
11720 {
11721#line 589
11722 __cil_tmp15 = (int )2UL;
11723#line 589
11724 if (__cil_tmp15 == 8) {
11725#line 589
11726 goto case_8___0;
11727 } else {
11728#line 589
11729 goto switch_default___0;
11730#line 589
11731 if (0) {
11732 case_1___0:
11733#line 589
11734 __asm__ volatile ("call __get_user_"
11735 "1": "=a" (__ret_gu), "=d" (__val_gu): "0" (& used->idx));
11736#line 589
11737 goto switch_break___0;
11738 case_2___0:
11739#line 589
11740 __asm__ volatile ("call __get_user_"
11741 "2": "=a" (__ret_gu), "=d" (__val_gu): "0" (& used->idx));
11742#line 589
11743 goto switch_break___0;
11744 case_4___0:
11745#line 589
11746 __asm__ volatile ("call __get_user_"
11747 "4": "=a" (__ret_gu), "=d" (__val_gu): "0" (& used->idx));
11748#line 589
11749 goto switch_break___0;
11750 case_8___0:
11751#line 589
11752 __asm__ volatile ("call __get_user_"
11753 "8": "=a" (__ret_gu), "=d" (__val_gu): "0" (& used->idx));
11754#line 589
11755 goto switch_break___0;
11756 switch_default___0:
11757#line 589
11758 __asm__ volatile ("call __get_user_"
11759 "X": "=a" (__ret_gu), "=d" (__val_gu): "0" (& used->idx));
11760#line 589
11761 goto switch_break___0;
11762 } else {
11763 switch_break___0: ;
11764 }
11765 }
11766 }
11767 }
11768 }
11769 }
11770 }
11771 }
11772 }
11773#line 589
11774 vq->last_used_idx = (__u16 )__val_gu;
11775#line 589
11776 return (__ret_gu);
11777}
11778}
11779#line 592 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
11780static long vhost_set_vring(struct vhost_dev *d , int ioctl , void *argp )
11781{ struct file *eventfp ;
11782 struct file *filep ;
11783 struct file *pollstart ;
11784 struct file *pollstop ;
11785 struct eventfd_ctx *ctx ;
11786 u32 *idxp ;
11787 struct vhost_virtqueue *vq ;
11788 struct vhost_vring_state s ;
11789 struct vhost_vring_file f ;
11790 struct vhost_vring_addr a ;
11791 u32 idx ;
11792 long r ;
11793 int __ret_gu ;
11794 unsigned long __val_gu ;
11795 unsigned long tmp___7 ;
11796 unsigned long tmp___8 ;
11797 int tmp___9 ;
11798 unsigned long tmp___10 ;
11799 int tmp___11 ;
11800 int tmp___12 ;
11801 int tmp___13 ;
11802 unsigned long tmp___14 ;
11803 struct file *tmp___15 ;
11804 long tmp___16 ;
11805 struct file *tmp___17 ;
11806 unsigned long tmp___18 ;
11807 struct file *tmp___19 ;
11808 long tmp___20 ;
11809 struct eventfd_ctx *tmp___21 ;
11810 unsigned long tmp___22 ;
11811 struct file *tmp___23 ;
11812 long tmp___24 ;
11813 struct eventfd_ctx *tmp___25 ;
11814 unsigned long tmp ;
11815 unsigned long tmp___26 ;
11816 int tmp___27 ;
11817 unsigned long tmp___28 ;
11818 unsigned long tmp___29 ;
11819 long tmp___30 ;
11820 long tmp___31 ;
11821 unsigned long tmp___32 ;
11822 long tmp___33 ;
11823 long tmp___34 ;
11824 unsigned long tmp___35 ;
11825 long tmp___36 ;
11826 long tmp___37 ;
11827 unsigned long tmp___38 ;
11828 unsigned long tmp___39 ;
11829 int tmp___40 ;
11830 unsigned long tmp___41 ;
11831 unsigned long tmp___42 ;
11832 long tmp___43 ;
11833 long tmp___44 ;
11834 unsigned long tmp___45 ;
11835 long tmp___46 ;
11836 long tmp___47 ;
11837 unsigned long tmp___48 ;
11838 long tmp___49 ;
11839 long tmp___50 ;
11840 void *__cil_tmp63 ;
11841 void *__cil_tmp64 ;
11842 void *__cil_tmp65 ;
11843 void *__cil_tmp66 ;
11844 int __cil_tmp67 ;
11845 int __cil_tmp68 ;
11846 int __cil_tmp69 ;
11847 int __cil_tmp70 ;
11848 int __cil_tmp71 ;
11849 u32 __cil_tmp72 ;
11850 struct vhost_virtqueue *__cil_tmp73 ;
11851 struct mutex *__cil_tmp74 ;
11852 unsigned long __cil_tmp75 ;
11853 int __cil_tmp76 ;
11854 unsigned int __cil_tmp77 ;
11855 unsigned int __cil_tmp78 ;
11856 unsigned int __cil_tmp79 ;
11857 unsigned int __cil_tmp80 ;
11858 unsigned long __cil_tmp81 ;
11859 unsigned long __cil_tmp82 ;
11860 unsigned long __cil_tmp83 ;
11861 unsigned long __cil_tmp84 ;
11862 int __cil_tmp85 ;
11863 unsigned int __cil_tmp86 ;
11864 unsigned int __cil_tmp87 ;
11865 unsigned int __cil_tmp88 ;
11866 unsigned int __cil_tmp89 ;
11867 unsigned long __cil_tmp90 ;
11868 unsigned long __cil_tmp91 ;
11869 unsigned long __cil_tmp92 ;
11870 unsigned long __cil_tmp93 ;
11871 int __cil_tmp94 ;
11872 unsigned int __cil_tmp95 ;
11873 unsigned int __cil_tmp96 ;
11874 unsigned int __cil_tmp97 ;
11875 unsigned int __cil_tmp98 ;
11876 unsigned long __cil_tmp99 ;
11877 unsigned long __cil_tmp100 ;
11878 unsigned long __cil_tmp101 ;
11879 unsigned long __cil_tmp102 ;
11880 int __cil_tmp103 ;
11881 unsigned int __cil_tmp104 ;
11882 unsigned int __cil_tmp105 ;
11883 unsigned int __cil_tmp106 ;
11884 unsigned int __cil_tmp107 ;
11885 unsigned long __cil_tmp108 ;
11886 unsigned long __cil_tmp109 ;
11887 unsigned long __cil_tmp110 ;
11888 unsigned long __cil_tmp111 ;
11889 int __cil_tmp112 ;
11890 unsigned int __cil_tmp113 ;
11891 unsigned int __cil_tmp114 ;
11892 unsigned int __cil_tmp115 ;
11893 unsigned int __cil_tmp116 ;
11894 unsigned long __cil_tmp117 ;
11895 unsigned long __cil_tmp118 ;
11896 unsigned long __cil_tmp119 ;
11897 unsigned long __cil_tmp120 ;
11898 int __cil_tmp121 ;
11899 unsigned int __cil_tmp122 ;
11900 unsigned int __cil_tmp123 ;
11901 unsigned int __cil_tmp124 ;
11902 unsigned int __cil_tmp125 ;
11903 unsigned long __cil_tmp126 ;
11904 unsigned long __cil_tmp127 ;
11905 unsigned long __cil_tmp128 ;
11906 unsigned long __cil_tmp129 ;
11907 int __cil_tmp130 ;
11908 unsigned int __cil_tmp131 ;
11909 unsigned int __cil_tmp132 ;
11910 unsigned int __cil_tmp133 ;
11911 unsigned int __cil_tmp134 ;
11912 unsigned long __cil_tmp135 ;
11913 unsigned long __cil_tmp136 ;
11914 unsigned long __cil_tmp137 ;
11915 void *__cil_tmp138 ;
11916 void const *__cil_tmp139 ;
11917 unsigned int __cil_tmp140 ;
11918 void *__cil_tmp141 ;
11919 void const *__cil_tmp142 ;
11920 u16 __cil_tmp143 ;
11921 void const *__cil_tmp144 ;
11922 unsigned int __cil_tmp145 ;
11923 void *__cil_tmp146 ;
11924 void const *__cil_tmp147 ;
11925 unsigned long __cil_tmp148 ;
11926 u64 __cil_tmp149 ;
11927 unsigned long __cil_tmp150 ;
11928 u64 __cil_tmp151 ;
11929 unsigned long __cil_tmp152 ;
11930 u64 __cil_tmp153 ;
11931 unsigned long __cil_tmp154 ;
11932 unsigned long long __cil_tmp155 ;
11933 unsigned long __cil_tmp156 ;
11934 unsigned long long __cil_tmp157 ;
11935 unsigned long __cil_tmp158 ;
11936 unsigned long long __cil_tmp159 ;
11937 unsigned int __cil_tmp160 ;
11938 unsigned long __cil_tmp161 ;
11939 void *__cil_tmp162 ;
11940 struct vring_desc *__cil_tmp163 ;
11941 unsigned long __cil_tmp164 ;
11942 void *__cil_tmp165 ;
11943 struct vring_avail *__cil_tmp166 ;
11944 unsigned long __cil_tmp167 ;
11945 void *__cil_tmp168 ;
11946 struct vring_used *__cil_tmp169 ;
11947 void *__cil_tmp170 ;
11948 unsigned int __cil_tmp171 ;
11949 unsigned long __cil_tmp172 ;
11950 unsigned long __cil_tmp173 ;
11951 unsigned long __cil_tmp174 ;
11952 unsigned long __cil_tmp175 ;
11953 struct vring_used *__cil_tmp176 ;
11954 unsigned int __cil_tmp177 ;
11955 int __cil_tmp178 ;
11956 int __cil_tmp179 ;
11957 unsigned long __cil_tmp180 ;
11958 void *__cil_tmp181 ;
11959 unsigned long __cil_tmp182 ;
11960 void *__cil_tmp183 ;
11961 unsigned long __cil_tmp184 ;
11962 void *__cil_tmp185 ;
11963 void *__cil_tmp186 ;
11964 void const *__cil_tmp187 ;
11965 void *__cil_tmp188 ;
11966 void const *__cil_tmp189 ;
11967 void const *__cil_tmp190 ;
11968 struct file *__cil_tmp191 ;
11969 unsigned long __cil_tmp192 ;
11970 unsigned long __cil_tmp193 ;
11971 void *__cil_tmp194 ;
11972 void const *__cil_tmp195 ;
11973 void *__cil_tmp196 ;
11974 void const *__cil_tmp197 ;
11975 void const *__cil_tmp198 ;
11976 struct file *__cil_tmp199 ;
11977 unsigned long __cil_tmp200 ;
11978 unsigned long __cil_tmp201 ;
11979 void *__cil_tmp202 ;
11980 void *__cil_tmp203 ;
11981 void const *__cil_tmp204 ;
11982 void *__cil_tmp205 ;
11983 void const *__cil_tmp206 ;
11984 void const *__cil_tmp207 ;
11985 struct file *__cil_tmp208 ;
11986 unsigned long __cil_tmp209 ;
11987 unsigned long __cil_tmp210 ;
11988 void *__cil_tmp211 ;
11989 struct vhost_poll *__cil_tmp212 ;
11990 struct vhost_poll *__cil_tmp213 ;
11991 struct file *__cil_tmp214 ;
11992 struct mutex *__cil_tmp215 ;
11993 struct vhost_poll *__cil_tmp216 ;
11994
11995 {
11996 {
11997#line 594
11998 __cil_tmp63 = (void *)0;
11999#line 594
12000 filep = (struct file *)__cil_tmp63;
12001#line 594
12002 __cil_tmp64 = (void *)0;
12003#line 594
12004 pollstart = (struct file *)__cil_tmp64;
12005#line 594
12006 __cil_tmp65 = (void *)0;
12007#line 594
12008 pollstop = (struct file *)__cil_tmp65;
12009#line 596
12010 __cil_tmp66 = (void *)0;
12011#line 596
12012 ctx = (struct eventfd_ctx *)__cil_tmp66;
12013#line 597
12014 idxp = (u32 *)argp;
12015#line 605
12016 might_fault();
12017 }
12018 {
12019#line 605
12020 __cil_tmp67 = (int )4UL;
12021#line 605
12022 if (__cil_tmp67 == 1) {
12023#line 605
12024 goto case_1;
12025 } else {
12026 {
12027#line 605
12028 __cil_tmp68 = (int )4UL;
12029#line 605
12030 if (__cil_tmp68 == 2) {
12031#line 605
12032 goto case_2;
12033 } else {
12034 {
12035#line 605
12036 __cil_tmp69 = (int )4UL;
12037#line 605
12038 if (__cil_tmp69 == 4) {
12039#line 605
12040 goto case_4;
12041 } else {
12042 {
12043#line 605
12044 __cil_tmp70 = (int )4UL;
12045#line 605
12046 if (__cil_tmp70 == 8) {
12047#line 605
12048 goto case_8;
12049 } else {
12050#line 605
12051 goto switch_default;
12052#line 605
12053 if (0) {
12054 case_1:
12055#line 605
12056 __asm__ volatile ("call __get_user_"
12057 "1": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
12058#line 605
12059 goto switch_break;
12060 case_2:
12061#line 605
12062 __asm__ volatile ("call __get_user_"
12063 "2": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
12064#line 605
12065 goto switch_break;
12066 case_4:
12067#line 605
12068 __asm__ volatile ("call __get_user_"
12069 "4": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
12070#line 605
12071 goto switch_break;
12072 case_8:
12073#line 605
12074 __asm__ volatile ("call __get_user_"
12075 "8": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
12076#line 605
12077 goto switch_break;
12078 switch_default:
12079#line 605
12080 __asm__ volatile ("call __get_user_"
12081 "X": "=a" (__ret_gu), "=d" (__val_gu): "0" (idxp));
12082#line 605
12083 goto switch_break;
12084 } else {
12085 switch_break: ;
12086 }
12087 }
12088 }
12089 }
12090 }
12091 }
12092 }
12093 }
12094 }
12095#line 605
12096 idx = (u32 )__val_gu;
12097#line 605
12098 r = (long )__ret_gu;
12099#line 606
12100 if (r < 0L) {
12101#line 607
12102 return (r);
12103 } else {
12104
12105 }
12106 {
12107#line 608
12108 __cil_tmp71 = d->nvqs;
12109#line 608
12110 __cil_tmp72 = (u32 )__cil_tmp71;
12111#line 608
12112 if (idx >= __cil_tmp72) {
12113#line 609
12114 return (-105L);
12115 } else {
12116
12117 }
12118 }
12119 {
12120#line 611
12121 __cil_tmp73 = d->vqs;
12122#line 611
12123 vq = __cil_tmp73 + idx;
12124#line 613
12125 __cil_tmp74 = & vq->mutex;
12126#line 613
12127 mutex_lock_nested(__cil_tmp74, 0U);
12128 }
12129 {
12130#line 616
12131 __cil_tmp75 = 8UL << 16;
12132#line 616
12133 __cil_tmp76 = 175 << 8;
12134#line 616
12135 __cil_tmp77 = (unsigned int )__cil_tmp76;
12136#line 616
12137 __cil_tmp78 = 1U << 30;
12138#line 616
12139 __cil_tmp79 = __cil_tmp78 | __cil_tmp77;
12140#line 616
12141 __cil_tmp80 = __cil_tmp79 | 16U;
12142#line 616
12143 __cil_tmp81 = (unsigned long )__cil_tmp80;
12144#line 616
12145 __cil_tmp82 = __cil_tmp81 | __cil_tmp75;
12146#line 616
12147 __cil_tmp83 = (unsigned long )ioctl;
12148#line 616
12149 if (__cil_tmp83 == __cil_tmp82) {
12150#line 616
12151 goto case_exp;
12152 } else {
12153 {
12154#line 633
12155 __cil_tmp84 = 8UL << 16;
12156#line 633
12157 __cil_tmp85 = 175 << 8;
12158#line 633
12159 __cil_tmp86 = (unsigned int )__cil_tmp85;
12160#line 633
12161 __cil_tmp87 = 1U << 30;
12162#line 633
12163 __cil_tmp88 = __cil_tmp87 | __cil_tmp86;
12164#line 633
12165 __cil_tmp89 = __cil_tmp88 | 18U;
12166#line 633
12167 __cil_tmp90 = (unsigned long )__cil_tmp89;
12168#line 633
12169 __cil_tmp91 = __cil_tmp90 | __cil_tmp84;
12170#line 633
12171 __cil_tmp92 = (unsigned long )ioctl;
12172#line 633
12173 if (__cil_tmp92 == __cil_tmp91) {
12174#line 633
12175 goto case_exp___0;
12176 } else {
12177 {
12178#line 652
12179 __cil_tmp93 = 8UL << 16;
12180#line 652
12181 __cil_tmp94 = 175 << 8;
12182#line 652
12183 __cil_tmp95 = (unsigned int )__cil_tmp94;
12184#line 652
12185 __cil_tmp96 = 3U << 30;
12186#line 652
12187 __cil_tmp97 = __cil_tmp96 | __cil_tmp95;
12188#line 652
12189 __cil_tmp98 = __cil_tmp97 | 18U;
12190#line 652
12191 __cil_tmp99 = (unsigned long )__cil_tmp98;
12192#line 652
12193 __cil_tmp100 = __cil_tmp99 | __cil_tmp93;
12194#line 652
12195 __cil_tmp101 = (unsigned long )ioctl;
12196#line 652
12197 if (__cil_tmp101 == __cil_tmp100) {
12198#line 652
12199 goto case_exp___1;
12200 } else {
12201 {
12202#line 658
12203 __cil_tmp102 = 40UL << 16;
12204#line 658
12205 __cil_tmp103 = 175 << 8;
12206#line 658
12207 __cil_tmp104 = (unsigned int )__cil_tmp103;
12208#line 658
12209 __cil_tmp105 = 1U << 30;
12210#line 658
12211 __cil_tmp106 = __cil_tmp105 | __cil_tmp104;
12212#line 658
12213 __cil_tmp107 = __cil_tmp106 | 17U;
12214#line 658
12215 __cil_tmp108 = (unsigned long )__cil_tmp107;
12216#line 658
12217 __cil_tmp109 = __cil_tmp108 | __cil_tmp102;
12218#line 658
12219 __cil_tmp110 = (unsigned long )ioctl;
12220#line 658
12221 if (__cil_tmp110 == __cil_tmp109) {
12222#line 658
12223 goto case_exp___2;
12224 } else {
12225 {
12226#line 714
12227 __cil_tmp111 = 8UL << 16;
12228#line 714
12229 __cil_tmp112 = 175 << 8;
12230#line 714
12231 __cil_tmp113 = (unsigned int )__cil_tmp112;
12232#line 714
12233 __cil_tmp114 = 1U << 30;
12234#line 714
12235 __cil_tmp115 = __cil_tmp114 | __cil_tmp113;
12236#line 714
12237 __cil_tmp116 = __cil_tmp115 | 32U;
12238#line 714
12239 __cil_tmp117 = (unsigned long )__cil_tmp116;
12240#line 714
12241 __cil_tmp118 = __cil_tmp117 | __cil_tmp111;
12242#line 714
12243 __cil_tmp119 = (unsigned long )ioctl;
12244#line 714
12245 if (__cil_tmp119 == __cil_tmp118) {
12246#line 714
12247 goto case_exp___3;
12248 } else {
12249 {
12250#line 730
12251 __cil_tmp120 = 8UL << 16;
12252#line 730
12253 __cil_tmp121 = 175 << 8;
12254#line 730
12255 __cil_tmp122 = (unsigned int )__cil_tmp121;
12256#line 730
12257 __cil_tmp123 = 1U << 30;
12258#line 730
12259 __cil_tmp124 = __cil_tmp123 | __cil_tmp122;
12260#line 730
12261 __cil_tmp125 = __cil_tmp124 | 33U;
12262#line 730
12263 __cil_tmp126 = (unsigned long )__cil_tmp125;
12264#line 730
12265 __cil_tmp127 = __cil_tmp126 | __cil_tmp120;
12266#line 730
12267 __cil_tmp128 = (unsigned long )ioctl;
12268#line 730
12269 if (__cil_tmp128 == __cil_tmp127) {
12270#line 730
12271 goto case_exp___4;
12272 } else {
12273 {
12274#line 749
12275 __cil_tmp129 = 8UL << 16;
12276#line 749
12277 __cil_tmp130 = 175 << 8;
12278#line 749
12279 __cil_tmp131 = (unsigned int )__cil_tmp130;
12280#line 749
12281 __cil_tmp132 = 1U << 30;
12282#line 749
12283 __cil_tmp133 = __cil_tmp132 | __cil_tmp131;
12284#line 749
12285 __cil_tmp134 = __cil_tmp133 | 34U;
12286#line 749
12287 __cil_tmp135 = (unsigned long )__cil_tmp134;
12288#line 749
12289 __cil_tmp136 = __cil_tmp135 | __cil_tmp129;
12290#line 749
12291 __cil_tmp137 = (unsigned long )ioctl;
12292#line 749
12293 if (__cil_tmp137 == __cil_tmp136) {
12294#line 749
12295 goto case_exp___5;
12296 } else {
12297#line 768
12298 goto switch_default___0;
12299#line 615
12300 if (0) {
12301 case_exp:
12302#line 619
12303 if (vq->private_data) {
12304#line 620
12305 r = -16L;
12306#line 621
12307 goto switch_break___0;
12308 } else {
12309
12310 }
12311 {
12312#line 623
12313 __cil_tmp138 = (void *)(& s);
12314#line 623
12315 __cil_tmp139 = (void const *)argp;
12316#line 623
12317 tmp___38 = (unsigned long )copy_from_user(__cil_tmp138, __cil_tmp139,
12318 8UL);
12319#line 623
12320 tmp = tmp___38;
12321#line 623
12322 tmp___7 = tmp;
12323 }
12324#line 623
12325 if (tmp___7) {
12326#line 624
12327 r = -14L;
12328#line 625
12329 goto switch_break___0;
12330 } else {
12331
12332 }
12333#line 627
12334 if (! s.num) {
12335#line 628
12336 r = -22L;
12337#line 629
12338 goto switch_break___0;
12339 } else
12340#line 627
12341 if (s.num > 65535U) {
12342#line 628
12343 r = -22L;
12344#line 629
12345 goto switch_break___0;
12346 } else {
12347 {
12348#line 627
12349 __cil_tmp140 = s.num - 1U;
12350#line 627
12351 if (s.num & __cil_tmp140) {
12352#line 628
12353 r = -22L;
12354#line 629
12355 goto switch_break___0;
12356 } else {
12357
12358 }
12359 }
12360 }
12361#line 631
12362 vq->num = s.num;
12363#line 632
12364 goto switch_break___0;
12365 case_exp___0:
12366#line 636
12367 if (vq->private_data) {
12368#line 637
12369 r = -16L;
12370#line 638
12371 goto switch_break___0;
12372 } else {
12373
12374 }
12375 {
12376#line 640
12377 __cil_tmp141 = (void *)(& s);
12378#line 640
12379 __cil_tmp142 = (void const *)argp;
12380#line 640
12381 tmp___39 = (unsigned long )copy_from_user(__cil_tmp141, __cil_tmp142,
12382 8UL);
12383#line 640
12384 tmp___26 = tmp___39;
12385#line 640
12386 tmp___8 = tmp___26;
12387 }
12388#line 640
12389 if (tmp___8) {
12390#line 641
12391 r = -14L;
12392#line 642
12393 goto switch_break___0;
12394 } else {
12395
12396 }
12397#line 644
12398 if (s.num > 65535U) {
12399#line 645
12400 r = -22L;
12401#line 646
12402 goto switch_break___0;
12403 } else {
12404
12405 }
12406#line 648
12407 vq->last_avail_idx = (u16 )s.num;
12408#line 650
12409 vq->avail_idx = vq->last_avail_idx;
12410#line 651
12411 goto switch_break___0;
12412 case_exp___1:
12413 {
12414#line 653
12415 s.index = idx;
12416#line 654
12417 __cil_tmp143 = vq->last_avail_idx;
12418#line 654
12419 s.num = (unsigned int )__cil_tmp143;
12420#line 655
12421 __cil_tmp144 = (void const *)(& s);
12422#line 655
12423 __cil_tmp145 = (unsigned int )8UL;
12424#line 655
12425 tmp___40 = (int )copy_to_user(argp, __cil_tmp144, __cil_tmp145);
12426#line 655
12427 tmp___27 = tmp___40;
12428#line 655
12429 tmp___9 = tmp___27;
12430 }
12431#line 655
12432 if (tmp___9) {
12433#line 656
12434 r = -14L;
12435 } else {
12436
12437 }
12438#line 657
12439 goto switch_break___0;
12440 case_exp___2:
12441 {
12442#line 659
12443 __cil_tmp146 = (void *)(& a);
12444#line 659
12445 __cil_tmp147 = (void const *)argp;
12446#line 659
12447 tmp___41 = (unsigned long )copy_from_user(__cil_tmp146, __cil_tmp147,
12448 40UL);
12449#line 659
12450 tmp___28 = tmp___41;
12451#line 659
12452 tmp___10 = tmp___28;
12453 }
12454#line 659
12455 if (tmp___10) {
12456#line 660
12457 r = -14L;
12458#line 661
12459 goto switch_break___0;
12460 } else {
12461
12462 }
12463#line 663
12464 if (a.flags & 4294967294U) {
12465#line 664
12466 r = -95L;
12467#line 665
12468 goto switch_break___0;
12469 } else {
12470
12471 }
12472 {
12473#line 669
12474 __cil_tmp148 = (unsigned long )a.desc_user_addr;
12475#line 669
12476 __cil_tmp149 = (u64 )__cil_tmp148;
12477#line 669
12478 if (__cil_tmp149 != a.desc_user_addr) {
12479#line 672
12480 r = -14L;
12481#line 673
12482 goto switch_break___0;
12483 } else {
12484 {
12485#line 669
12486 __cil_tmp150 = (unsigned long )a.used_user_addr;
12487#line 669
12488 __cil_tmp151 = (u64 )__cil_tmp150;
12489#line 669
12490 if (__cil_tmp151 != a.used_user_addr) {
12491#line 672
12492 r = -14L;
12493#line 673
12494 goto switch_break___0;
12495 } else {
12496 {
12497#line 669
12498 __cil_tmp152 = (unsigned long )a.avail_user_addr;
12499#line 669
12500 __cil_tmp153 = (u64 )__cil_tmp152;
12501#line 669
12502 if (__cil_tmp153 != a.avail_user_addr) {
12503#line 672
12504 r = -14L;
12505#line 673
12506 goto switch_break___0;
12507 } else {
12508
12509 }
12510 }
12511 }
12512 }
12513 }
12514 }
12515 {
12516#line 675
12517 __cil_tmp154 = 2UL - 1UL;
12518#line 675
12519 __cil_tmp155 = (unsigned long long )__cil_tmp154;
12520#line 675
12521 if (a.avail_user_addr & __cil_tmp155) {
12522#line 678
12523 r = -22L;
12524#line 679
12525 goto switch_break___0;
12526 } else {
12527 {
12528#line 675
12529 __cil_tmp156 = 8UL - 1UL;
12530#line 675
12531 __cil_tmp157 = (unsigned long long )__cil_tmp156;
12532#line 675
12533 if (a.used_user_addr & __cil_tmp157) {
12534#line 678
12535 r = -22L;
12536#line 679
12537 goto switch_break___0;
12538 } else {
12539 {
12540#line 675
12541 __cil_tmp158 = 8UL - 1UL;
12542#line 675
12543 __cil_tmp159 = (unsigned long long )__cil_tmp158;
12544#line 675
12545 if (a.log_guest_addr & __cil_tmp159) {
12546#line 678
12547 r = -22L;
12548#line 679
12549 goto switch_break___0;
12550 } else {
12551
12552 }
12553 }
12554 }
12555 }
12556 }
12557 }
12558#line 685
12559 if (vq->private_data) {
12560 {
12561#line 686
12562 __cil_tmp160 = vq->num;
12563#line 686
12564 __cil_tmp161 = (unsigned long )a.desc_user_addr;
12565#line 686
12566 __cil_tmp162 = (void *)__cil_tmp161;
12567#line 686
12568 __cil_tmp163 = (struct vring_desc *)__cil_tmp162;
12569#line 686
12570 __cil_tmp164 = (unsigned long )a.avail_user_addr;
12571#line 686
12572 __cil_tmp165 = (void *)__cil_tmp164;
12573#line 686
12574 __cil_tmp166 = (struct vring_avail *)__cil_tmp165;
12575#line 686
12576 __cil_tmp167 = (unsigned long )a.used_user_addr;
12577#line 686
12578 __cil_tmp168 = (void *)__cil_tmp167;
12579#line 686
12580 __cil_tmp169 = (struct vring_used *)__cil_tmp168;
12581#line 686
12582 tmp___11 = vq_access_ok(d, __cil_tmp160, __cil_tmp163, __cil_tmp166,
12583 __cil_tmp169);
12584 }
12585#line 686
12586 if (tmp___11) {
12587
12588 } else {
12589#line 690
12590 r = -22L;
12591#line 691
12592 goto switch_break___0;
12593 }
12594#line 695
12595 if (a.flags & 1U) {
12596 {
12597#line 695
12598 __cil_tmp170 = vq->log_base;
12599#line 695
12600 __cil_tmp171 = vq->num;
12601#line 695
12602 __cil_tmp172 = (unsigned long )__cil_tmp171;
12603#line 695
12604 __cil_tmp173 = __cil_tmp172 * 8UL;
12605#line 695
12606 __cil_tmp174 = 4UL + __cil_tmp173;
12607#line 695
12608 tmp___12 = log_access_ok(__cil_tmp170, a.log_guest_addr, __cil_tmp174);
12609 }
12610#line 695
12611 if (tmp___12) {
12612
12613 } else {
12614#line 699
12615 r = -22L;
12616#line 700
12617 goto switch_break___0;
12618 }
12619 } else {
12620
12621 }
12622 } else {
12623
12624 }
12625 {
12626#line 704
12627 __cil_tmp175 = (unsigned long )a.used_user_addr;
12628#line 704
12629 __cil_tmp176 = (struct vring_used *)__cil_tmp175;
12630#line 704
12631 tmp___13 = init_used(vq, __cil_tmp176);
12632#line 704
12633 r = (long )tmp___13;
12634 }
12635#line 706
12636 if (r) {
12637#line 707
12638 goto switch_break___0;
12639 } else {
12640
12641 }
12642#line 708
12643 __cil_tmp177 = a.flags & 1U;
12644#line 708
12645 __cil_tmp178 = ! __cil_tmp177;
12646#line 708
12647 __cil_tmp179 = ! __cil_tmp178;
12648#line 708
12649 vq->log_used = (bool )__cil_tmp179;
12650#line 709
12651 __cil_tmp180 = (unsigned long )a.desc_user_addr;
12652#line 709
12653 __cil_tmp181 = (void *)__cil_tmp180;
12654#line 709
12655 vq->desc = (struct vring_desc *)__cil_tmp181;
12656#line 710
12657 __cil_tmp182 = (unsigned long )a.avail_user_addr;
12658#line 710
12659 __cil_tmp183 = (void *)__cil_tmp182;
12660#line 710
12661 vq->avail = (struct vring_avail *)__cil_tmp183;
12662#line 711
12663 vq->log_addr = a.log_guest_addr;
12664#line 712
12665 __cil_tmp184 = (unsigned long )a.used_user_addr;
12666#line 712
12667 __cil_tmp185 = (void *)__cil_tmp184;
12668#line 712
12669 vq->used = (struct vring_used *)__cil_tmp185;
12670#line 713
12671 goto switch_break___0;
12672 case_exp___3:
12673 {
12674#line 715
12675 __cil_tmp186 = (void *)(& f);
12676#line 715
12677 __cil_tmp187 = (void const *)argp;
12678#line 715
12679 tmp___42 = (unsigned long )copy_from_user(__cil_tmp186, __cil_tmp187,
12680 8UL);
12681#line 715
12682 tmp___29 = tmp___42;
12683#line 715
12684 tmp___14 = tmp___29;
12685 }
12686#line 715
12687 if (tmp___14) {
12688#line 716
12689 r = -14L;
12690#line 717
12691 goto switch_break___0;
12692 } else {
12693
12694 }
12695#line 719
12696 if (f.fd == -1) {
12697#line 719
12698 __cil_tmp188 = (void *)0;
12699#line 719
12700 eventfp = (struct file *)__cil_tmp188;
12701 } else {
12702 {
12703#line 719
12704 tmp___15 = eventfd_fget(f.fd);
12705#line 719
12706 eventfp = tmp___15;
12707 }
12708 }
12709 {
12710#line 720
12711 __cil_tmp189 = (void const *)eventfp;
12712#line 720
12713 tmp___43 = (long )IS_ERR(__cil_tmp189);
12714#line 720
12715 tmp___30 = tmp___43;
12716#line 720
12717 tmp___16 = tmp___30;
12718 }
12719#line 720
12720 if (tmp___16) {
12721 {
12722#line 721
12723 __cil_tmp190 = (void const *)eventfp;
12724#line 721
12725 tmp___44 = (long )PTR_ERR(__cil_tmp190);
12726#line 721
12727 tmp___31 = tmp___44;
12728#line 721
12729 r = tmp___31;
12730 }
12731#line 722
12732 goto switch_break___0;
12733 } else {
12734
12735 }
12736 {
12737#line 724
12738 __cil_tmp191 = vq->kick;
12739#line 724
12740 __cil_tmp192 = (unsigned long )__cil_tmp191;
12741#line 724
12742 __cil_tmp193 = (unsigned long )eventfp;
12743#line 724
12744 if (__cil_tmp193 != __cil_tmp192) {
12745#line 725
12746 filep = vq->kick;
12747#line 725
12748 pollstop = filep;
12749#line 726
12750 tmp___17 = eventfp;
12751#line 726
12752 vq->kick = tmp___17;
12753#line 726
12754 pollstart = tmp___17;
12755 } else {
12756#line 728
12757 filep = eventfp;
12758 }
12759 }
12760#line 729
12761 goto switch_break___0;
12762 case_exp___4:
12763 {
12764#line 731
12765 __cil_tmp194 = (void *)(& f);
12766#line 731
12767 __cil_tmp195 = (void const *)argp;
12768#line 731
12769 tmp___45 = (unsigned long )copy_from_user(__cil_tmp194, __cil_tmp195,
12770 8UL);
12771#line 731
12772 tmp___32 = tmp___45;
12773#line 731
12774 tmp___18 = tmp___32;
12775 }
12776#line 731
12777 if (tmp___18) {
12778#line 732
12779 r = -14L;
12780#line 733
12781 goto switch_break___0;
12782 } else {
12783
12784 }
12785#line 735
12786 if (f.fd == -1) {
12787#line 735
12788 __cil_tmp196 = (void *)0;
12789#line 735
12790 eventfp = (struct file *)__cil_tmp196;
12791 } else {
12792 {
12793#line 735
12794 tmp___19 = eventfd_fget(f.fd);
12795#line 735
12796 eventfp = tmp___19;
12797 }
12798 }
12799 {
12800#line 736
12801 __cil_tmp197 = (void const *)eventfp;
12802#line 736
12803 tmp___46 = (long )IS_ERR(__cil_tmp197);
12804#line 736
12805 tmp___33 = tmp___46;
12806#line 736
12807 tmp___20 = tmp___33;
12808 }
12809#line 736
12810 if (tmp___20) {
12811 {
12812#line 737
12813 __cil_tmp198 = (void const *)eventfp;
12814#line 737
12815 tmp___47 = (long )PTR_ERR(__cil_tmp198);
12816#line 737
12817 tmp___34 = tmp___47;
12818#line 737
12819 r = tmp___34;
12820 }
12821#line 738
12822 goto switch_break___0;
12823 } else {
12824
12825 }
12826 {
12827#line 740
12828 __cil_tmp199 = vq->call;
12829#line 740
12830 __cil_tmp200 = (unsigned long )__cil_tmp199;
12831#line 740
12832 __cil_tmp201 = (unsigned long )eventfp;
12833#line 740
12834 if (__cil_tmp201 != __cil_tmp200) {
12835#line 741
12836 filep = vq->call;
12837#line 742
12838 ctx = vq->call_ctx;
12839#line 743
12840 vq->call = eventfp;
12841#line 744
12842 if (eventfp) {
12843 {
12844#line 744
12845 tmp___21 = eventfd_ctx_fileget(eventfp);
12846#line 744
12847 vq->call_ctx = tmp___21;
12848 }
12849 } else {
12850#line 744
12851 __cil_tmp202 = (void *)0;
12852#line 744
12853 vq->call_ctx = (struct eventfd_ctx *)__cil_tmp202;
12854 }
12855 } else {
12856#line 747
12857 filep = eventfp;
12858 }
12859 }
12860#line 748
12861 goto switch_break___0;
12862 case_exp___5:
12863 {
12864#line 750
12865 __cil_tmp203 = (void *)(& f);
12866#line 750
12867 __cil_tmp204 = (void const *)argp;
12868#line 750
12869 tmp___48 = (unsigned long )copy_from_user(__cil_tmp203, __cil_tmp204,
12870 8UL);
12871#line 750
12872 tmp___35 = tmp___48;
12873#line 750
12874 tmp___22 = tmp___35;
12875 }
12876#line 750
12877 if (tmp___22) {
12878#line 751
12879 r = -14L;
12880#line 752
12881 goto switch_break___0;
12882 } else {
12883
12884 }
12885#line 754
12886 if (f.fd == -1) {
12887#line 754
12888 __cil_tmp205 = (void *)0;
12889#line 754
12890 eventfp = (struct file *)__cil_tmp205;
12891 } else {
12892 {
12893#line 754
12894 tmp___23 = eventfd_fget(f.fd);
12895#line 754
12896 eventfp = tmp___23;
12897 }
12898 }
12899 {
12900#line 755
12901 __cil_tmp206 = (void const *)eventfp;
12902#line 755
12903 tmp___49 = (long )IS_ERR(__cil_tmp206);
12904#line 755
12905 tmp___36 = tmp___49;
12906#line 755
12907 tmp___24 = tmp___36;
12908 }
12909#line 755
12910 if (tmp___24) {
12911 {
12912#line 756
12913 __cil_tmp207 = (void const *)eventfp;
12914#line 756
12915 tmp___50 = (long )PTR_ERR(__cil_tmp207);
12916#line 756
12917 tmp___37 = tmp___50;
12918#line 756
12919 r = tmp___37;
12920 }
12921#line 757
12922 goto switch_break___0;
12923 } else {
12924
12925 }
12926 {
12927#line 759
12928 __cil_tmp208 = vq->error;
12929#line 759
12930 __cil_tmp209 = (unsigned long )__cil_tmp208;
12931#line 759
12932 __cil_tmp210 = (unsigned long )eventfp;
12933#line 759
12934 if (__cil_tmp210 != __cil_tmp209) {
12935#line 760
12936 filep = vq->error;
12937#line 761
12938 vq->error = eventfp;
12939#line 762
12940 ctx = vq->error_ctx;
12941#line 763
12942 if (eventfp) {
12943 {
12944#line 763
12945 tmp___25 = eventfd_ctx_fileget(eventfp);
12946#line 763
12947 vq->error_ctx = tmp___25;
12948 }
12949 } else {
12950#line 763
12951 __cil_tmp211 = (void *)0;
12952#line 763
12953 vq->error_ctx = (struct eventfd_ctx *)__cil_tmp211;
12954 }
12955 } else {
12956#line 766
12957 filep = eventfp;
12958 }
12959 }
12960#line 767
12961 goto switch_break___0;
12962 switch_default___0:
12963#line 769
12964 r = -515L;
12965 } else {
12966 switch_break___0: ;
12967 }
12968 }
12969 }
12970 }
12971 }
12972 }
12973 }
12974 }
12975 }
12976 }
12977 }
12978 }
12979 }
12980 }
12981 }
12982#line 772
12983 if (pollstop) {
12984#line 772
12985 if (vq->handle_kick) {
12986 {
12987#line 773
12988 __cil_tmp212 = & vq->poll;
12989#line 773
12990 vhost_poll_stop(__cil_tmp212);
12991 }
12992 } else {
12993
12994 }
12995 } else {
12996
12997 }
12998#line 775
12999 if (ctx) {
13000 {
13001#line 776
13002 eventfd_ctx_put(ctx);
13003 }
13004 } else {
13005
13006 }
13007#line 777
13008 if (filep) {
13009 {
13010#line 778
13011 fput(filep);
13012 }
13013 } else {
13014
13015 }
13016#line 780
13017 if (pollstart) {
13018#line 780
13019 if (vq->handle_kick) {
13020 {
13021#line 781
13022 __cil_tmp213 = & vq->poll;
13023#line 781
13024 __cil_tmp214 = vq->kick;
13025#line 781
13026 vhost_poll_start(__cil_tmp213, __cil_tmp214);
13027 }
13028 } else {
13029
13030 }
13031 } else {
13032
13033 }
13034 {
13035#line 783
13036 __cil_tmp215 = & vq->mutex;
13037#line 783
13038 mutex_unlock(__cil_tmp215);
13039 }
13040#line 785
13041 if (pollstop) {
13042#line 785
13043 if (vq->handle_kick) {
13044 {
13045#line 786
13046 __cil_tmp216 = & vq->poll;
13047#line 786
13048 vhost_poll_flush(__cil_tmp216);
13049 }
13050 } else {
13051
13052 }
13053 } else {
13054
13055 }
13056#line 787
13057 return (r);
13058}
13059}
13060#line 791 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
13061long vhost_dev_ioctl(struct vhost_dev *d , unsigned int ioctl , unsigned long arg )
13062{ void *argp ;
13063 struct file *eventfp ;
13064 struct file *filep ;
13065 struct eventfd_ctx *ctx ;
13066 u64 p ;
13067 long r ;
13068 int i ;
13069 int fd ;
13070 unsigned long tmp___7 ;
13071 struct vhost_virtqueue *vq ;
13072 void *base ;
13073 int tmp___8 ;
13074 int __ret_gu ;
13075 unsigned long __val_gu ;
13076 struct file *tmp___9 ;
13077 long tmp___10 ;
13078 struct eventfd_ctx *tmp___11 ;
13079 unsigned long tmp ;
13080 long tmp___12 ;
13081 long tmp___13 ;
13082 unsigned long tmp___14 ;
13083 long tmp___15 ;
13084 long tmp___16 ;
13085 void *__cil_tmp27 ;
13086 void *__cil_tmp28 ;
13087 int __cil_tmp29 ;
13088 unsigned int __cil_tmp30 ;
13089 unsigned int __cil_tmp31 ;
13090 unsigned long __cil_tmp32 ;
13091 int __cil_tmp33 ;
13092 unsigned int __cil_tmp34 ;
13093 unsigned int __cil_tmp35 ;
13094 unsigned int __cil_tmp36 ;
13095 unsigned int __cil_tmp37 ;
13096 unsigned long __cil_tmp38 ;
13097 unsigned long __cil_tmp39 ;
13098 int __cil_tmp40 ;
13099 unsigned long __cil_tmp41 ;
13100 unsigned long __cil_tmp42 ;
13101 int __cil_tmp43 ;
13102 unsigned int __cil_tmp44 ;
13103 unsigned int __cil_tmp45 ;
13104 unsigned int __cil_tmp46 ;
13105 unsigned int __cil_tmp47 ;
13106 unsigned long __cil_tmp48 ;
13107 unsigned long __cil_tmp49 ;
13108 int __cil_tmp50 ;
13109 unsigned long __cil_tmp51 ;
13110 unsigned long __cil_tmp52 ;
13111 int __cil_tmp53 ;
13112 unsigned int __cil_tmp54 ;
13113 unsigned int __cil_tmp55 ;
13114 unsigned int __cil_tmp56 ;
13115 unsigned int __cil_tmp57 ;
13116 unsigned long __cil_tmp58 ;
13117 unsigned long __cil_tmp59 ;
13118 int __cil_tmp60 ;
13119 unsigned long __cil_tmp61 ;
13120 struct vhost_memory *__cil_tmp62 ;
13121 void *__cil_tmp63 ;
13122 void const *__cil_tmp64 ;
13123 unsigned long __cil_tmp65 ;
13124 u64 __cil_tmp66 ;
13125 int __cil_tmp67 ;
13126 unsigned long __cil_tmp68 ;
13127 struct vhost_virtqueue *__cil_tmp69 ;
13128 struct mutex *__cil_tmp70 ;
13129 struct mutex *__cil_tmp71 ;
13130 int __cil_tmp72 ;
13131 int __cil_tmp73 ;
13132 int __cil_tmp74 ;
13133 int __cil_tmp75 ;
13134 void *__cil_tmp76 ;
13135 void const *__cil_tmp77 ;
13136 void const *__cil_tmp78 ;
13137 struct file *__cil_tmp79 ;
13138 unsigned long __cil_tmp80 ;
13139 unsigned long __cil_tmp81 ;
13140 void *__cil_tmp82 ;
13141 int __cil_tmp83 ;
13142 struct vhost_virtqueue *__cil_tmp84 ;
13143 struct vhost_virtqueue *__cil_tmp85 ;
13144 struct mutex *__cil_tmp86 ;
13145 struct vhost_virtqueue *__cil_tmp87 ;
13146 struct vhost_virtqueue *__cil_tmp88 ;
13147 struct vhost_virtqueue *__cil_tmp89 ;
13148 struct vhost_virtqueue *__cil_tmp90 ;
13149 struct mutex *__cil_tmp91 ;
13150 int __cil_tmp92 ;
13151
13152 {
13153#line 793
13154 argp = (void *)arg;
13155#line 794
13156 __cil_tmp27 = (void *)0;
13157#line 794
13158 filep = (struct file *)__cil_tmp27;
13159#line 795
13160 __cil_tmp28 = (void *)0;
13161#line 795
13162 ctx = (struct eventfd_ctx *)__cil_tmp28;
13163 {
13164#line 801
13165 __cil_tmp29 = 175 << 8;
13166#line 801
13167 __cil_tmp30 = (unsigned int )__cil_tmp29;
13168#line 801
13169 __cil_tmp31 = __cil_tmp30 | 1U;
13170#line 801
13171 if (ioctl == __cil_tmp31) {
13172 {
13173#line 802
13174 r = vhost_dev_set_owner(d);
13175 }
13176#line 803
13177 goto done;
13178 } else {
13179
13180 }
13181 }
13182 {
13183#line 807
13184 r = vhost_dev_check_owner(d);
13185 }
13186#line 808
13187 if (r) {
13188#line 809
13189 goto done;
13190 } else {
13191
13192 }
13193 {
13194#line 812
13195 __cil_tmp32 = 8UL << 16;
13196#line 812
13197 __cil_tmp33 = 175 << 8;
13198#line 812
13199 __cil_tmp34 = (unsigned int )__cil_tmp33;
13200#line 812
13201 __cil_tmp35 = 1U << 30;
13202#line 812
13203 __cil_tmp36 = __cil_tmp35 | __cil_tmp34;
13204#line 812
13205 __cil_tmp37 = __cil_tmp36 | 3U;
13206#line 812
13207 __cil_tmp38 = (unsigned long )__cil_tmp37;
13208#line 812
13209 __cil_tmp39 = __cil_tmp38 | __cil_tmp32;
13210#line 812
13211 __cil_tmp40 = (int )ioctl;
13212#line 812
13213 __cil_tmp41 = (unsigned long )__cil_tmp40;
13214#line 812
13215 if (__cil_tmp41 == __cil_tmp39) {
13216#line 812
13217 goto case_exp;
13218 } else {
13219 {
13220#line 815
13221 __cil_tmp42 = 8UL << 16;
13222#line 815
13223 __cil_tmp43 = 175 << 8;
13224#line 815
13225 __cil_tmp44 = (unsigned int )__cil_tmp43;
13226#line 815
13227 __cil_tmp45 = 1U << 30;
13228#line 815
13229 __cil_tmp46 = __cil_tmp45 | __cil_tmp44;
13230#line 815
13231 __cil_tmp47 = __cil_tmp46 | 4U;
13232#line 815
13233 __cil_tmp48 = (unsigned long )__cil_tmp47;
13234#line 815
13235 __cil_tmp49 = __cil_tmp48 | __cil_tmp42;
13236#line 815
13237 __cil_tmp50 = (int )ioctl;
13238#line 815
13239 __cil_tmp51 = (unsigned long )__cil_tmp50;
13240#line 815
13241 if (__cil_tmp51 == __cil_tmp49) {
13242#line 815
13243 goto case_exp___0;
13244 } else {
13245 {
13246#line 837
13247 __cil_tmp52 = 4UL << 16;
13248#line 837
13249 __cil_tmp53 = 175 << 8;
13250#line 837
13251 __cil_tmp54 = (unsigned int )__cil_tmp53;
13252#line 837
13253 __cil_tmp55 = 1U << 30;
13254#line 837
13255 __cil_tmp56 = __cil_tmp55 | __cil_tmp54;
13256#line 837
13257 __cil_tmp57 = __cil_tmp56 | 7U;
13258#line 837
13259 __cil_tmp58 = (unsigned long )__cil_tmp57;
13260#line 837
13261 __cil_tmp59 = __cil_tmp58 | __cil_tmp52;
13262#line 837
13263 __cil_tmp60 = (int )ioctl;
13264#line 837
13265 __cil_tmp61 = (unsigned long )__cil_tmp60;
13266#line 837
13267 if (__cil_tmp61 == __cil_tmp59) {
13268#line 837
13269 goto case_exp___1;
13270 } else {
13271#line 863
13272 goto switch_default___0;
13273#line 811
13274 if (0) {
13275 case_exp:
13276 {
13277#line 813
13278 __cil_tmp62 = (struct vhost_memory *)argp;
13279#line 813
13280 r = vhost_set_memory(d, __cil_tmp62);
13281 }
13282#line 814
13283 goto switch_break;
13284 case_exp___0:
13285 {
13286#line 816
13287 __cil_tmp63 = (void *)(& p);
13288#line 816
13289 __cil_tmp64 = (void const *)argp;
13290#line 816
13291 tmp___14 = (unsigned long )copy_from_user(__cil_tmp63, __cil_tmp64, 8UL);
13292#line 816
13293 tmp = tmp___14;
13294#line 816
13295 tmp___7 = tmp;
13296 }
13297#line 816
13298 if (tmp___7) {
13299#line 817
13300 r = -14L;
13301#line 818
13302 goto switch_break;
13303 } else {
13304
13305 }
13306 {
13307#line 820
13308 __cil_tmp65 = (unsigned long )p;
13309#line 820
13310 __cil_tmp66 = (u64 )__cil_tmp65;
13311#line 820
13312 if (__cil_tmp66 != p) {
13313#line 821
13314 r = -14L;
13315#line 822
13316 goto switch_break;
13317 } else {
13318
13319 }
13320 }
13321#line 824
13322 i = 0;
13323 {
13324#line 824
13325 while (1) {
13326 while_continue: ;
13327
13328 {
13329#line 824
13330 __cil_tmp67 = d->nvqs;
13331#line 824
13332 if (i < __cil_tmp67) {
13333
13334 } else {
13335#line 824
13336 goto while_break;
13337 }
13338 }
13339 {
13340#line 826
13341 __cil_tmp68 = (unsigned long )p;
13342#line 826
13343 base = (void *)__cil_tmp68;
13344#line 827
13345 __cil_tmp69 = d->vqs;
13346#line 827
13347 vq = __cil_tmp69 + i;
13348#line 828
13349 __cil_tmp70 = & vq->mutex;
13350#line 828
13351 mutex_lock_nested(__cil_tmp70, 0U);
13352 }
13353#line 830
13354 if (vq->private_data) {
13355 {
13356#line 830
13357 tmp___8 = vq_log_access_ok(d, vq, base);
13358 }
13359#line 830
13360 if (tmp___8) {
13361#line 833
13362 vq->log_base = base;
13363 } else {
13364#line 831
13365 r = -14L;
13366 }
13367 } else {
13368#line 833
13369 vq->log_base = base;
13370 }
13371 {
13372#line 834
13373 __cil_tmp71 = & vq->mutex;
13374#line 834
13375 mutex_unlock(__cil_tmp71);
13376#line 824
13377 i = i + 1;
13378 }
13379 }
13380 while_break___1: ;
13381 }
13382
13383 while_break: ;
13384#line 836
13385 goto switch_break;
13386 case_exp___1:
13387 {
13388#line 838
13389 might_fault();
13390 }
13391 {
13392#line 838
13393 __cil_tmp72 = (int )4UL;
13394#line 838
13395 if (__cil_tmp72 == 1) {
13396#line 838
13397 goto case_1;
13398 } else {
13399 {
13400#line 838
13401 __cil_tmp73 = (int )4UL;
13402#line 838
13403 if (__cil_tmp73 == 2) {
13404#line 838
13405 goto case_2;
13406 } else {
13407 {
13408#line 838
13409 __cil_tmp74 = (int )4UL;
13410#line 838
13411 if (__cil_tmp74 == 4) {
13412#line 838
13413 goto case_4;
13414 } else {
13415 {
13416#line 838
13417 __cil_tmp75 = (int )4UL;
13418#line 838
13419 if (__cil_tmp75 == 8) {
13420#line 838
13421 goto case_8;
13422 } else {
13423#line 838
13424 goto switch_default;
13425#line 838
13426 if (0) {
13427 case_1:
13428#line 838
13429 __asm__ volatile ("call __get_user_"
13430 "1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
13431#line 838
13432 goto switch_break___0;
13433 case_2:
13434#line 838
13435 __asm__ volatile ("call __get_user_"
13436 "2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
13437#line 838
13438 goto switch_break___0;
13439 case_4:
13440#line 838
13441 __asm__ volatile ("call __get_user_"
13442 "4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
13443#line 838
13444 goto switch_break___0;
13445 case_8:
13446#line 838
13447 __asm__ volatile ("call __get_user_"
13448 "8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
13449#line 838
13450 goto switch_break___0;
13451 switch_default:
13452#line 838
13453 __asm__ volatile ("call __get_user_"
13454 "X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)argp));
13455#line 838
13456 goto switch_break___0;
13457 } else {
13458 switch_break___0: ;
13459 }
13460 }
13461 }
13462 }
13463 }
13464 }
13465 }
13466 }
13467 }
13468#line 838
13469 fd = (int )__val_gu;
13470#line 838
13471 r = (long )__ret_gu;
13472#line 839
13473 if (r < 0L) {
13474#line 840
13475 goto switch_break;
13476 } else {
13477
13478 }
13479#line 841
13480 if (fd == -1) {
13481#line 841
13482 __cil_tmp76 = (void *)0;
13483#line 841
13484 eventfp = (struct file *)__cil_tmp76;
13485 } else {
13486 {
13487#line 841
13488 tmp___9 = eventfd_fget(fd);
13489#line 841
13490 eventfp = tmp___9;
13491 }
13492 }
13493 {
13494#line 842
13495 __cil_tmp77 = (void const *)eventfp;
13496#line 842
13497 tmp___15 = (long )IS_ERR(__cil_tmp77);
13498#line 842
13499 tmp___12 = tmp___15;
13500#line 842
13501 tmp___10 = tmp___12;
13502 }
13503#line 842
13504 if (tmp___10) {
13505 {
13506#line 843
13507 __cil_tmp78 = (void const *)eventfp;
13508#line 843
13509 tmp___16 = (long )PTR_ERR(__cil_tmp78);
13510#line 843
13511 tmp___13 = tmp___16;
13512#line 843
13513 r = tmp___13;
13514 }
13515#line 844
13516 goto switch_break;
13517 } else {
13518
13519 }
13520 {
13521#line 846
13522 __cil_tmp79 = d->log_file;
13523#line 846
13524 __cil_tmp80 = (unsigned long )__cil_tmp79;
13525#line 846
13526 __cil_tmp81 = (unsigned long )eventfp;
13527#line 846
13528 if (__cil_tmp81 != __cil_tmp80) {
13529#line 847
13530 filep = d->log_file;
13531#line 848
13532 ctx = d->log_ctx;
13533#line 849
13534 if (eventfp) {
13535 {
13536#line 849
13537 tmp___11 = eventfd_ctx_fileget(eventfp);
13538#line 849
13539 d->log_ctx = tmp___11;
13540 }
13541 } else {
13542#line 849
13543 __cil_tmp82 = (void *)0;
13544#line 849
13545 d->log_ctx = (struct eventfd_ctx *)__cil_tmp82;
13546 }
13547 } else {
13548#line 852
13549 filep = eventfp;
13550 }
13551 }
13552#line 853
13553 i = 0;
13554 {
13555#line 853
13556 while (1) {
13557 while_continue___0: ;
13558
13559 {
13560#line 853
13561 __cil_tmp83 = d->nvqs;
13562#line 853
13563 if (i < __cil_tmp83) {
13564
13565 } else {
13566#line 853
13567 goto while_break___0;
13568 }
13569 }
13570 {
13571#line 854
13572 __cil_tmp84 = d->vqs;
13573#line 854
13574 __cil_tmp85 = __cil_tmp84 + i;
13575#line 854
13576 __cil_tmp86 = & __cil_tmp85->mutex;
13577#line 854
13578 mutex_lock_nested(__cil_tmp86, 0U);
13579#line 855
13580 __cil_tmp87 = d->vqs;
13581#line 855
13582 __cil_tmp88 = __cil_tmp87 + i;
13583#line 855
13584 __cil_tmp88->log_ctx = d->log_ctx;
13585#line 856
13586 __cil_tmp89 = d->vqs;
13587#line 856
13588 __cil_tmp90 = __cil_tmp89 + i;
13589#line 856
13590 __cil_tmp91 = & __cil_tmp90->mutex;
13591#line 856
13592 mutex_unlock(__cil_tmp91);
13593#line 853
13594 i = i + 1;
13595 }
13596 }
13597 while_break___2: ;
13598 }
13599
13600 while_break___0: ;
13601#line 858
13602 if (ctx) {
13603 {
13604#line 859
13605 eventfd_ctx_put(ctx);
13606 }
13607 } else {
13608
13609 }
13610#line 860
13611 if (filep) {
13612 {
13613#line 861
13614 fput(filep);
13615 }
13616 } else {
13617
13618 }
13619#line 862
13620 goto switch_break;
13621 switch_default___0:
13622 {
13623#line 864
13624 __cil_tmp92 = (int )ioctl;
13625#line 864
13626 r = vhost_set_vring(d, __cil_tmp92, argp);
13627 }
13628#line 865
13629 goto switch_break;
13630 } else {
13631 switch_break: ;
13632 }
13633 }
13634 }
13635 }
13636 }
13637 }
13638 }
13639 done:
13640#line 868
13641 return (r);
13642}
13643}
13644#line 871 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
13645static struct vhost_memory_region const *find_region(struct vhost_memory *mem ,
13646 __u64 addr , __u32 len )
13647{ struct vhost_memory_region *reg ;
13648 int i ;
13649 __u32 __cil_tmp6 ;
13650 __u32 __cil_tmp7 ;
13651 struct vhost_memory_region *__cil_tmp8 ;
13652 __u64 __cil_tmp9 ;
13653 __u64 __cil_tmp10 ;
13654 __u64 __cil_tmp11 ;
13655 __u64 __cil_tmp12 ;
13656 __u64 __cil_tmp13 ;
13657 void *__cil_tmp14 ;
13658
13659 {
13660#line 879
13661 i = 0;
13662 {
13663#line 879
13664 while (1) {
13665 while_continue: ;
13666
13667 {
13668#line 879
13669 __cil_tmp6 = mem->nregions;
13670#line 879
13671 __cil_tmp7 = (__u32 )i;
13672#line 879
13673 if (__cil_tmp7 < __cil_tmp6) {
13674
13675 } else {
13676#line 879
13677 goto while_break;
13678 }
13679 }
13680#line 880
13681 __cil_tmp8 = & mem->regions[0];
13682#line 880
13683 reg = __cil_tmp8 + i;
13684 {
13685#line 881
13686 __cil_tmp9 = reg->guest_phys_addr;
13687#line 881
13688 if (__cil_tmp9 <= addr) {
13689 {
13690#line 881
13691 __cil_tmp10 = reg->memory_size;
13692#line 881
13693 __cil_tmp11 = reg->guest_phys_addr;
13694#line 881
13695 __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
13696#line 881
13697 __cil_tmp13 = __cil_tmp12 - 1ULL;
13698#line 881
13699 if (__cil_tmp13 >= addr) {
13700#line 883
13701 return ((struct vhost_memory_region const *)reg);
13702 } else {
13703
13704 }
13705 }
13706 } else {
13707
13708 }
13709 }
13710#line 879
13711 i = i + 1;
13712 }
13713 while_break___0: ;
13714 }
13715
13716 while_break: ;
13717 {
13718#line 885
13719 __cil_tmp14 = (void *)0;
13720#line 885
13721 return ((struct vhost_memory_region const *)__cil_tmp14);
13722 }
13723}
13724}
13725#line 892 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
13726static int set_bit_to_user(int nr , void *addr )
13727{ unsigned long log ;
13728 struct page *page ;
13729 void *base ;
13730 int bit ;
13731 int r ;
13732 long tmp___7 ;
13733 unsigned long __cil_tmp9 ;
13734 unsigned long __cil_tmp10 ;
13735 unsigned long __cil_tmp11 ;
13736 unsigned long __cil_tmp12 ;
13737 unsigned long __cil_tmp13 ;
13738 int __cil_tmp14 ;
13739 int __cil_tmp15 ;
13740 int __cil_tmp16 ;
13741 long __cil_tmp17 ;
13742 unsigned int __cil_tmp18 ;
13743 unsigned long volatile *__cil_tmp19 ;
13744
13745 {
13746 {
13747#line 894
13748 log = (unsigned long )addr;
13749#line 897
13750 __cil_tmp9 = 1UL << 12;
13751#line 897
13752 __cil_tmp10 = log % __cil_tmp9;
13753#line 897
13754 __cil_tmp11 = __cil_tmp10 * 8UL;
13755#line 897
13756 __cil_tmp12 = (unsigned long )nr;
13757#line 897
13758 __cil_tmp13 = __cil_tmp12 + __cil_tmp11;
13759#line 897
13760 bit = (int )__cil_tmp13;
13761#line 900
13762 r = get_user_pages_fast(log, 1, 1, & page);
13763 }
13764#line 901
13765 if (r < 0) {
13766#line 902
13767 return (r);
13768 } else {
13769
13770 }
13771 {
13772#line 903
13773 while (1) {
13774 while_continue: ;
13775 {
13776#line 903
13777 __cil_tmp14 = r != 1;
13778#line 903
13779 __cil_tmp15 = ! __cil_tmp14;
13780#line 903
13781 __cil_tmp16 = ! __cil_tmp15;
13782#line 903
13783 __cil_tmp17 = (long )__cil_tmp16;
13784#line 903
13785 tmp___7 = __builtin_expect(__cil_tmp17, 0L);
13786 }
13787#line 903
13788 if (tmp___7) {
13789 {
13790#line 903
13791 while (1) {
13792 while_continue___0: ;
13793#line 903
13794 __asm__ volatile ("1:\tud2\n"
13795 ".pushsection __bug_table,\"a\"\n"
13796 "2:\t.long 1b - 2b, %c0 - 2b\n"
13797 "\t.word %c1, 0\n"
13798 "\t.org 2b+%c2\n"
13799 ".popsection": : "i" ("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"),
13800 "i" (903), "i" (12UL));
13801 {
13802#line 903
13803 while (1) {
13804 while_continue___1: ;
13805
13806 }
13807 while_break___5: ;
13808 }
13809
13810#line 903
13811 goto while_break___0;
13812 }
13813 while_break___4: ;
13814 }
13815
13816 while_break___0: ;
13817 } else {
13818
13819 }
13820#line 903
13821 goto while_break;
13822 }
13823 while_break___3: ;
13824 }
13825
13826 while_break:
13827 {
13828#line 904
13829 base = __kmap_atomic(page);
13830#line 905
13831 __cil_tmp18 = (unsigned int )bit;
13832#line 905
13833 __cil_tmp19 = (unsigned long volatile *)base;
13834#line 905
13835 set_bit(__cil_tmp18, __cil_tmp19);
13836 }
13837 {
13838#line 906
13839 while (1) {
13840 while_continue___2: ;
13841 {
13842#line 906
13843 __kunmap_atomic(base);
13844 }
13845#line 906
13846 goto while_break___2;
13847 }
13848 while_break___6: ;
13849 }
13850
13851 while_break___2:
13852 {
13853#line 907
13854 set_page_dirty_lock(page);
13855#line 908
13856 put_page(page);
13857 }
13858#line 909
13859 return (0);
13860}
13861}
13862#line 912 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
13863static int log_write(void *log_base , u64 write_address , u64 write_length )
13864{ u64 write_page ;
13865 int r ;
13866 u64 base ;
13867 u64 log ;
13868 int bit ;
13869 unsigned long long __cil_tmp9 ;
13870 unsigned long __cil_tmp10 ;
13871 u64 __cil_tmp11 ;
13872 unsigned long long __cil_tmp12 ;
13873 unsigned long __cil_tmp13 ;
13874 u64 __cil_tmp14 ;
13875 unsigned long __cil_tmp15 ;
13876 void *__cil_tmp16 ;
13877
13878 {
13879#line 915
13880 write_page = write_address / 4096ULL;
13881#line 918
13882 if (! write_length) {
13883#line 919
13884 return (0);
13885 } else {
13886
13887 }
13888#line 920
13889 __cil_tmp9 = write_address % 4096ULL;
13890#line 920
13891 write_length = write_length + __cil_tmp9;
13892 {
13893#line 921
13894 while (1) {
13895 while_continue: ;
13896#line 922
13897 __cil_tmp10 = (unsigned long )log_base;
13898#line 922
13899 base = (u64 )__cil_tmp10;
13900#line 923
13901 __cil_tmp11 = write_page / 8ULL;
13902#line 923
13903 log = base + __cil_tmp11;
13904#line 924
13905 __cil_tmp12 = write_page % 8ULL;
13906#line 924
13907 bit = (int )__cil_tmp12;
13908 {
13909#line 925
13910 __cil_tmp13 = (unsigned long )log;
13911#line 925
13912 __cil_tmp14 = (u64 )__cil_tmp13;
13913#line 925
13914 if (__cil_tmp14 != log) {
13915#line 926
13916 return (-14);
13917 } else {
13918
13919 }
13920 }
13921 {
13922#line 927
13923 __cil_tmp15 = (unsigned long )log;
13924#line 927
13925 __cil_tmp16 = (void *)__cil_tmp15;
13926#line 927
13927 r = set_bit_to_user(bit, __cil_tmp16);
13928 }
13929#line 928
13930 if (r < 0) {
13931#line 929
13932 return (r);
13933 } else {
13934
13935 }
13936#line 930
13937 if (write_length <= 4096ULL) {
13938#line 931
13939 goto while_break;
13940 } else {
13941
13942 }
13943#line 932
13944 write_length = write_length - 4096ULL;
13945#line 933
13946 write_page = write_page + 1ULL;
13947 }
13948 while_break___0: ;
13949 }
13950
13951 while_break: ;
13952#line 935
13953 return (r);
13954}
13955}
13956#line 938 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
13957int vhost_log_write(struct vhost_virtqueue *vq , struct vhost_log *log , unsigned int log_num ,
13958 u64 len )
13959{ int i ;
13960 int r ;
13961 u64 l ;
13962 u64 _min1 ;
13963 u64 _min2 ;
13964 u64 tmp___7 ;
13965 unsigned int __cil_tmp11 ;
13966 struct vhost_log *__cil_tmp12 ;
13967 void *__cil_tmp13 ;
13968 struct vhost_log *__cil_tmp14 ;
13969 u64 __cil_tmp15 ;
13970 struct eventfd_ctx *__cil_tmp16 ;
13971
13972 {
13973#line 944
13974 __asm__ volatile ("": : : "memory");
13975#line 945
13976 i = 0;
13977 {
13978#line 945
13979 while (1) {
13980 while_continue: ;
13981
13982 {
13983#line 945
13984 __cil_tmp11 = (unsigned int )i;
13985#line 945
13986 if (__cil_tmp11 < log_num) {
13987
13988 } else {
13989#line 945
13990 goto while_break;
13991 }
13992 }
13993#line 946
13994 __cil_tmp12 = log + i;
13995#line 946
13996 _min1 = __cil_tmp12->len;
13997#line 946
13998 _min2 = len;
13999#line 946
14000 if (_min1 < _min2) {
14001#line 946
14002 tmp___7 = _min1;
14003 } else {
14004#line 946
14005 tmp___7 = _min2;
14006 }
14007 {
14008#line 946
14009 l = tmp___7;
14010#line 947
14011 __cil_tmp13 = vq->log_base;
14012#line 947
14013 __cil_tmp14 = log + i;
14014#line 947
14015 __cil_tmp15 = __cil_tmp14->addr;
14016#line 947
14017 r = log_write(__cil_tmp13, __cil_tmp15, l);
14018 }
14019#line 948
14020 if (r < 0) {
14021#line 949
14022 return (r);
14023 } else {
14024
14025 }
14026#line 950
14027 len = len - l;
14028#line 951
14029 if (! len) {
14030#line 952
14031 if (vq->log_ctx) {
14032 {
14033#line 953
14034 __cil_tmp16 = vq->log_ctx;
14035#line 953
14036 eventfd_signal(__cil_tmp16, 1);
14037 }
14038 } else {
14039
14040 }
14041#line 954
14042 return (0);
14043 } else {
14044
14045 }
14046#line 945
14047 i = i + 1;
14048 }
14049 while_break___1: ;
14050 }
14051
14052 while_break: ;
14053 {
14054#line 958
14055 while (1) {
14056 while_continue___0: ;
14057#line 958
14058 __asm__ volatile ("1:\tud2\n"
14059 ".pushsection __bug_table,\"a\"\n"
14060 "2:\t.long 1b - 2b, %c0 - 2b\n"
14061 "\t.word %c1, 0\n"
14062 "\t.org 2b+%c2\n"
14063 ".popsection": : "i" ("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"),
14064 "i" (958), "i" (12UL));
14065 {
14066#line 958
14067 while (1) {
14068 while_continue___1: ;
14069
14070 }
14071 while_break___3: ;
14072 }
14073
14074#line 958
14075 goto while_break___0;
14076 }
14077 while_break___2: ;
14078 }
14079
14080 while_break___0: ;
14081#line 959
14082 return (0);
14083}
14084}
14085#line 973 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14086static bool __warned___26 ;
14087#line 962 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14088static int translate_desc(struct vhost_dev *dev , u64 addr , u32 len , struct iovec *iov ,
14089 int iov_size )
14090{ struct vhost_memory_region const *reg ;
14091 struct vhost_memory *mem ;
14092 struct iovec *_iov ;
14093 u64 s ;
14094 int ret ;
14095 struct vhost_memory *_________p1 ;
14096 int tmp___7 ;
14097 int tmp___8 ;
14098 u64 size ;
14099 long tmp___9 ;
14100 long tmp___10 ;
14101 u64 _min1 ;
14102 u64 _min2 ;
14103 u64 tmp___11 ;
14104 struct vhost_memory **__cil_tmp20 ;
14105 struct vhost_memory * volatile *__cil_tmp21 ;
14106 struct vhost_memory * volatile __cil_tmp22 ;
14107 int __cil_tmp23 ;
14108 int __cil_tmp24 ;
14109 u64 __cil_tmp25 ;
14110 int __cil_tmp26 ;
14111 int __cil_tmp27 ;
14112 int __cil_tmp28 ;
14113 long __cil_tmp29 ;
14114 int __cil_tmp30 ;
14115 int __cil_tmp31 ;
14116 int __cil_tmp32 ;
14117 long __cil_tmp33 ;
14118 __u64 __cil_tmp34 ;
14119 __u64 __cil_tmp35 ;
14120 __u64 __cil_tmp36 ;
14121 __u64 __cil_tmp37 ;
14122 __u64 __cil_tmp38 ;
14123 __u64 __cil_tmp39 ;
14124 __u64 __cil_tmp40 ;
14125 __u64 __cil_tmp41 ;
14126 __u64 __cil_tmp42 ;
14127 __u64 __cil_tmp43 ;
14128 unsigned long __cil_tmp44 ;
14129
14130 {
14131 {
14132#line 968
14133 s = (u64 )0;
14134#line 969
14135 ret = 0;
14136#line 971
14137 rcu_read_lock();
14138#line 973
14139 __cil_tmp20 = & dev->memory;
14140#line 973
14141 __cil_tmp21 = (struct vhost_memory * volatile *)__cil_tmp20;
14142#line 973
14143 __cil_tmp22 = *__cil_tmp21;
14144#line 973
14145 _________p1 = (struct vhost_memory *)__cil_tmp22;
14146 }
14147 {
14148#line 973
14149 while (1) {
14150 while_continue: ;
14151 {
14152#line 973
14153 tmp___7 = debug_lockdep_rcu_enabled();
14154 }
14155#line 973
14156 if (tmp___7) {
14157#line 973
14158 if (! __warned___26) {
14159 {
14160#line 973
14161 tmp___8 = rcu_read_lock_held();
14162 }
14163#line 973
14164 if (tmp___8) {
14165
14166 } else {
14167 {
14168#line 973
14169 __warned___26 = (bool )1;
14170#line 973
14171 __cil_tmp23 = (int const )973;
14172#line 973
14173 __cil_tmp24 = (int )__cil_tmp23;
14174#line 973
14175 lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14176 __cil_tmp24);
14177 }
14178 }
14179 } else {
14180
14181 }
14182 } else {
14183
14184 }
14185#line 973
14186 goto while_break;
14187 }
14188 while_break___2: ;
14189 }
14190
14191 while_break: ;
14192 {
14193#line 973
14194 while (1) {
14195 while_continue___0: ;
14196
14197#line 973
14198 goto while_break___0;
14199 }
14200 while_break___3: ;
14201 }
14202
14203 while_break___0:
14204#line 973
14205 mem = _________p1;
14206 {
14207#line 974
14208 while (1) {
14209 while_continue___1: ;
14210
14211 {
14212#line 974
14213 __cil_tmp25 = (u64 )len;
14214#line 974
14215 if (__cil_tmp25 > s) {
14216
14217 } else {
14218#line 974
14219 goto while_break___1;
14220 }
14221 }
14222 {
14223#line 976
14224 __cil_tmp26 = ret >= iov_size;
14225#line 976
14226 __cil_tmp27 = ! __cil_tmp26;
14227#line 976
14228 __cil_tmp28 = ! __cil_tmp27;
14229#line 976
14230 __cil_tmp29 = (long )__cil_tmp28;
14231#line 976
14232 tmp___9 = __builtin_expect(__cil_tmp29, 0L);
14233 }
14234#line 976
14235 if (tmp___9) {
14236#line 977
14237 ret = -105;
14238#line 978
14239 goto while_break___1;
14240 } else {
14241
14242 }
14243 {
14244#line 980
14245 reg = find_region(mem, addr, len);
14246#line 981
14247 __cil_tmp30 = ! reg;
14248#line 981
14249 __cil_tmp31 = ! __cil_tmp30;
14250#line 981
14251 __cil_tmp32 = ! __cil_tmp31;
14252#line 981
14253 __cil_tmp33 = (long )__cil_tmp32;
14254#line 981
14255 tmp___10 = __builtin_expect(__cil_tmp33, 0L);
14256 }
14257#line 981
14258 if (tmp___10) {
14259#line 982
14260 ret = -14;
14261#line 983
14262 goto while_break___1;
14263 } else {
14264
14265 }
14266#line 985
14267 _iov = iov + ret;
14268#line 986
14269 __cil_tmp34 = reg->guest_phys_addr;
14270#line 986
14271 __cil_tmp35 = (__u64 const )addr;
14272#line 986
14273 __cil_tmp36 = reg->memory_size;
14274#line 986
14275 __cil_tmp37 = __cil_tmp36 - __cil_tmp35;
14276#line 986
14277 __cil_tmp38 = __cil_tmp37 + __cil_tmp34;
14278#line 986
14279 size = (u64 )__cil_tmp38;
14280#line 987
14281 _min1 = (u64 )len;
14282#line 987
14283 _min2 = size;
14284#line 987
14285 if (_min1 < _min2) {
14286#line 987
14287 tmp___11 = _min1;
14288 } else {
14289#line 987
14290 tmp___11 = _min2;
14291 }
14292#line 987
14293 _iov->iov_len = (__kernel_size_t )tmp___11;
14294#line 988
14295 __cil_tmp39 = reg->guest_phys_addr;
14296#line 988
14297 __cil_tmp40 = (__u64 const )addr;
14298#line 988
14299 __cil_tmp41 = reg->userspace_addr;
14300#line 988
14301 __cil_tmp42 = __cil_tmp41 + __cil_tmp40;
14302#line 988
14303 __cil_tmp43 = __cil_tmp42 - __cil_tmp39;
14304#line 988
14305 __cil_tmp44 = (unsigned long )__cil_tmp43;
14306#line 988
14307 _iov->iov_base = (void *)__cil_tmp44;
14308#line 990
14309 s = s + size;
14310#line 991
14311 addr = addr + size;
14312#line 992
14313 ret = ret + 1;
14314 }
14315 while_break___4: ;
14316 }
14317
14318 while_break___1:
14319 {
14320#line 995
14321 rcu_read_unlock();
14322 }
14323#line 996
14324 return (ret);
14325}
14326}
14327#line 1002 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14328static unsigned int next_desc(struct vring_desc *desc )
14329{ unsigned int next ;
14330 __u16 __cil_tmp3 ;
14331 int __cil_tmp4 ;
14332 int __cil_tmp5 ;
14333 __u16 __cil_tmp6 ;
14334
14335 {
14336 {
14337#line 1007
14338 __cil_tmp3 = desc->flags;
14339#line 1007
14340 __cil_tmp4 = (int )__cil_tmp3;
14341#line 1007
14342 __cil_tmp5 = __cil_tmp4 & 1;
14343#line 1007
14344 if (! __cil_tmp5) {
14345#line 1008
14346 return (4294967295U);
14347 } else {
14348
14349 }
14350 }
14351#line 1011
14352 __cil_tmp6 = desc->next;
14353#line 1011
14354 next = (unsigned int )__cil_tmp6;
14355 {
14356#line 1015
14357 while (1) {
14358 while_continue: ;
14359
14360#line 1015
14361 goto while_break;
14362 }
14363 while_break___0: ;
14364 }
14365
14366 while_break: ;
14367#line 1017
14368 return (next);
14369}
14370}
14371#line 1032
14372static int get_indirect(struct vhost_dev *dev , struct vhost_virtqueue *vq , struct iovec *iov ,
14373 unsigned int iov_size , unsigned int *out_num , unsigned int *in_num ,
14374 struct vhost_log *log , unsigned int *log_num , struct vring_desc *indirect ) ;
14375#line 1032 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14376static struct _ddebug descriptor __attribute__((__used__, __section__("__verbose"),
14377__aligned__(8))) = {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14378 "Invalid length in indirect descriptor: len 0x%llx not multiple of 0x%zx\n", 1035U,
14379 0U, (char)0};
14380#line 1042 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14381static struct _ddebug descriptor___0 __attribute__((__used__, __section__("__verbose"),
14382__aligned__(8))) = {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14383 "Translation failure %d in indirect.\n", 1042U, 0U, (char)0};
14384#line 1054 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14385static struct _ddebug descriptor___1 __attribute__((__used__, __section__("__verbose"),
14386__aligned__(8))) = {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14387 "Indirect buffer length too big: %d\n", 1055U, 0U, (char)0};
14388#line 1062 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14389static struct _ddebug descriptor___2 __attribute__((__used__, __section__("__verbose"),
14390__aligned__(8))) = {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14391 "Loop detected: last one at %u indirect size %u\n", 1064U, 0U, (char)0};
14392#line 1069 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14393static struct _ddebug descriptor___3 __attribute__((__used__, __section__("__verbose"),
14394__aligned__(8))) = {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14395 "Failed indirect descriptor: idx %d, %zx\n", 1070U, 0U, (char)0};
14396#line 1074 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14397static struct _ddebug descriptor___4 __attribute__((__used__, __section__("__verbose"),
14398__aligned__(8))) = {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14399 "Nested indirect descriptor: idx %d, %zx\n", 1075U, 0U, (char)0};
14400#line 1082 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14401static struct _ddebug descriptor___5 __attribute__((__used__, __section__("__verbose"),
14402__aligned__(8))) = {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14403 "Translation failure %d indirect idx %d\n", 1083U, 0U, (char)0};
14404#line 1098 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14405static struct _ddebug descriptor___6 __attribute__((__used__, __section__("__verbose"),
14406__aligned__(8))) = {"vhost_net", "get_indirect", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
14407 "Indirect descriptor has out after in: idx %d\n", 1099U, 0U, (char)0};
14408#line 1020 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
14409static int get_indirect(struct vhost_dev *dev , struct vhost_virtqueue *vq , struct iovec *iov ,
14410 unsigned int iov_size , unsigned int *out_num , unsigned int *in_num ,
14411 struct vhost_log *log , unsigned int *log_num , struct vring_desc *indirect )
14412{ struct vring_desc desc ;
14413 unsigned int i ;
14414 unsigned int count ;
14415 unsigned int found ;
14416 int ret ;
14417 long tmp___7 ;
14418 long tmp___8 ;
14419 long tmp___9 ;
14420 long tmp___10 ;
14421 long tmp___11 ;
14422 long tmp___12 ;
14423 unsigned int iov_count ;
14424 long tmp___13 ;
14425 int tmp___14 ;
14426 long tmp___15 ;
14427 long tmp___16 ;
14428 int tmp___17 ;
14429 int tmp___18 ;
14430 long tmp___19 ;
14431 long tmp___20 ;
14432 long tmp___21 ;
14433 long tmp___22 ;
14434 long tmp___23 ;
14435 long tmp___24 ;
14436 long tmp___25 ;
14437 long tmp___26 ;
14438 __u32 __cil_tmp36 ;
14439 unsigned long __cil_tmp37 ;
14440 unsigned long __cil_tmp38 ;
14441 int __cil_tmp39 ;
14442 int __cil_tmp40 ;
14443 long __cil_tmp41 ;
14444 int __cil_tmp42 ;
14445 int __cil_tmp43 ;
14446 long __cil_tmp44 ;
14447 __u32 __cil_tmp45 ;
14448 unsigned long long __cil_tmp46 ;
14449 struct eventfd_ctx *__cil_tmp47 ;
14450 __u64 __cil_tmp48 ;
14451 __u32 __cil_tmp49 ;
14452 struct iovec *__cil_tmp50 ;
14453 int __cil_tmp51 ;
14454 int __cil_tmp52 ;
14455 int __cil_tmp53 ;
14456 long __cil_tmp54 ;
14457 int __cil_tmp55 ;
14458 int __cil_tmp56 ;
14459 long __cil_tmp57 ;
14460 struct eventfd_ctx *__cil_tmp58 ;
14461 __u32 __cil_tmp59 ;
14462 unsigned long __cil_tmp60 ;
14463 unsigned long __cil_tmp61 ;
14464 int __cil_tmp62 ;
14465 int __cil_tmp63 ;
14466 int __cil_tmp64 ;
14467 long __cil_tmp65 ;
14468 int __cil_tmp66 ;
14469 int __cil_tmp67 ;
14470 long __cil_tmp68 ;
14471 __u32 __cil_tmp69 ;
14472 struct eventfd_ctx *__cil_tmp70 ;
14473 unsigned int __cil_tmp71 ;
14474 unsigned int __cil_tmp72 ;
14475 long __cil_tmp73 ;
14476 int __cil_tmp74 ;
14477 int __cil_tmp75 ;
14478 long __cil_tmp76 ;
14479 struct eventfd_ctx *__cil_tmp77 ;
14480 unsigned char *__cil_tmp78 ;
14481 struct iovec *__cil_tmp79 ;
14482 int __cil_tmp80 ;
14483 long __cil_tmp81 ;
14484 int __cil_tmp82 ;
14485 int __cil_tmp83 ;
14486 long __cil_tmp84 ;
14487 unsigned long __cil_tmp85 ;
14488 unsigned long __cil_tmp86 ;
14489 __u64 __cil_tmp87 ;
14490 size_t __cil_tmp88 ;
14491 size_t __cil_tmp89 ;
14492 struct eventfd_ctx *__cil_tmp90 ;
14493 int __cil_tmp91 ;
14494 int __cil_tmp92 ;
14495 int __cil_tmp93 ;
14496 int __cil_tmp94 ;
14497 long __cil_tmp95 ;
14498 int __cil_tmp96 ;
14499 int __cil_tmp97 ;
14500 long __cil_tmp98 ;
14501 unsigned long __cil_tmp99 ;
14502 unsigned long __cil_tmp100 ;
14503 __u64 __cil_tmp101 ;
14504 size_t __cil_tmp102 ;
14505 size_t __cil_tmp103 ;
14506 struct eventfd_ctx *__cil_tmp104 ;
14507 struct iovec *__cil_tmp105 ;
14508 unsigned int __cil_tmp106 ;
14509 int __cil_tmp107 ;
14510 int __cil_tmp108 ;
14511 int __cil_tmp109 ;
14512 int __cil_tmp110 ;
14513 long __cil_tmp111 ;
14514 int __cil_tmp112 ;
14515 int __cil_tmp113 ;
14516 long __cil_tmp114 ;
14517 struct eventfd_ctx *__cil_tmp115 ;
14518 int __cil_tmp116 ;
14519 unsigned int __cil_tmp117 ;
14520 unsigned int __cil_tmp118 ;
14521 int __cil_tmp119 ;
14522 int __cil_tmp120 ;
14523 long __cil_tmp121 ;
14524 unsigned int __cil_tmp122 ;
14525 struct vhost_log *__cil_tmp123 ;
14526 unsigned int __cil_tmp124 ;
14527 struct vhost_log *__cil_tmp125 ;
14528 unsigned int __cil_tmp126 ;
14529 unsigned int __cil_tmp127 ;
14530 int __cil_tmp128 ;
14531 int __cil_tmp129 ;
14532 long __cil_tmp130 ;
14533 int __cil_tmp131 ;
14534 int __cil_tmp132 ;
14535 long __cil_tmp133 ;
14536 struct eventfd_ctx *__cil_tmp134 ;
14537 unsigned int __cil_tmp135 ;
14538 unsigned int __cil_tmp136 ;
14539
14540 {
14541 {
14542#line 1027
14543 i = 0U;
14544#line 1027
14545 found = 0U;
14546#line 1031
14547 __cil_tmp36 = indirect->len;
14548#line 1031
14549 __cil_tmp37 = (unsigned long )__cil_tmp36;
14550#line 1031
14551 __cil_tmp38 = __cil_tmp37 % 16UL;
14552#line 1031
14553 __cil_tmp39 = ! __cil_tmp38;
14554#line 1031
14555 __cil_tmp40 = ! __cil_tmp39;
14556#line 1031
14557 __cil_tmp41 = (long )__cil_tmp40;
14558#line 1031
14559 tmp___8 = __builtin_expect(__cil_tmp41, 0L);
14560 }
14561#line 1031
14562 if (tmp___8) {
14563 {
14564#line 1032
14565 while (1) {
14566 while_continue: ;
14567
14568 {
14569#line 1032
14570 while (1) {
14571 while_continue___0: ;
14572 {
14573#line 1032
14574 __cil_tmp42 = ! descriptor.enabled;
14575#line 1032
14576 __cil_tmp43 = ! __cil_tmp42;
14577#line 1032
14578 __cil_tmp44 = (long )__cil_tmp43;
14579#line 1032
14580 tmp___7 = __builtin_expect(__cil_tmp44, 0L);
14581 }
14582#line 1032
14583 if (tmp___7) {
14584 {
14585#line 1032
14586 __cil_tmp45 = indirect->len;
14587#line 1032
14588 __cil_tmp46 = (unsigned long long )__cil_tmp45;
14589#line 1032
14590 __dynamic_pr_debug(& descriptor, "Invalid length in indirect descriptor: len 0x%llx not multiple of 0x%zx\n",
14591 __cil_tmp46, 16UL);
14592 }
14593 } else {
14594
14595 }
14596#line 1032
14597 goto while_break___0;
14598 }
14599 while_break___18: ;
14600 }
14601
14602 while_break___0: ;
14603#line 1032
14604 if (vq->error_ctx) {
14605 {
14606#line 1032
14607 __cil_tmp47 = vq->error_ctx;
14608#line 1032
14609 eventfd_signal(__cil_tmp47, 1);
14610 }
14611 } else {
14612
14613 }
14614#line 1032
14615 goto while_break;
14616 }
14617 while_break___17: ;
14618 }
14619
14620 while_break: ;
14621#line 1036
14622 return (-22);
14623 } else {
14624
14625 }
14626 {
14627#line 1039
14628 __cil_tmp48 = indirect->addr;
14629#line 1039
14630 __cil_tmp49 = indirect->len;
14631#line 1039
14632 __cil_tmp50 = vq->indirect;
14633#line 1039
14634 ret = translate_desc(dev, __cil_tmp48, __cil_tmp49, __cil_tmp50, 1024);
14635#line 1041
14636 __cil_tmp51 = ret < 0;
14637#line 1041
14638 __cil_tmp52 = ! __cil_tmp51;
14639#line 1041
14640 __cil_tmp53 = ! __cil_tmp52;
14641#line 1041
14642 __cil_tmp54 = (long )__cil_tmp53;
14643#line 1041
14644 tmp___10 = __builtin_expect(__cil_tmp54, 0L);
14645 }
14646#line 1041
14647 if (tmp___10) {
14648 {
14649#line 1042
14650 while (1) {
14651 while_continue___1: ;
14652
14653 {
14654#line 1042
14655 while (1) {
14656 while_continue___2: ;
14657 {
14658#line 1042
14659 __cil_tmp55 = ! descriptor___0.enabled;
14660#line 1042
14661 __cil_tmp56 = ! __cil_tmp55;
14662#line 1042
14663 __cil_tmp57 = (long )__cil_tmp56;
14664#line 1042
14665 tmp___9 = __builtin_expect(__cil_tmp57, 0L);
14666 }
14667#line 1042
14668 if (tmp___9) {
14669 {
14670#line 1042
14671 __dynamic_pr_debug(& descriptor___0, "Translation failure %d in indirect.\n",
14672 ret);
14673 }
14674 } else {
14675
14676 }
14677#line 1042
14678 goto while_break___2;
14679 }
14680 while_break___20: ;
14681 }
14682
14683 while_break___2: ;
14684#line 1042
14685 if (vq->error_ctx) {
14686 {
14687#line 1042
14688 __cil_tmp58 = vq->error_ctx;
14689#line 1042
14690 eventfd_signal(__cil_tmp58, 1);
14691 }
14692 } else {
14693
14694 }
14695#line 1042
14696 goto while_break___1;
14697 }
14698 while_break___19: ;
14699 }
14700
14701 while_break___1: ;
14702#line 1043
14703 return (ret);
14704 } else {
14705
14706 }
14707 {
14708#line 1048
14709 while (1) {
14710 while_continue___3: ;
14711
14712#line 1048
14713 goto while_break___3;
14714 }
14715 while_break___21: ;
14716 }
14717
14718 while_break___3:
14719 {
14720#line 1050
14721 __cil_tmp59 = indirect->len;
14722#line 1050
14723 __cil_tmp60 = (unsigned long )__cil_tmp59;
14724#line 1050
14725 __cil_tmp61 = __cil_tmp60 / 16UL;
14726#line 1050
14727 count = (unsigned int )__cil_tmp61;
14728#line 1053
14729 __cil_tmp62 = count > 65536U;
14730#line 1053
14731 __cil_tmp63 = ! __cil_tmp62;
14732#line 1053
14733 __cil_tmp64 = ! __cil_tmp63;
14734#line 1053
14735 __cil_tmp65 = (long )__cil_tmp64;
14736#line 1053
14737 tmp___12 = __builtin_expect(__cil_tmp65, 0L);
14738 }
14739#line 1053
14740 if (tmp___12) {
14741 {
14742#line 1054
14743 while (1) {
14744 while_continue___4: ;
14745
14746 {
14747#line 1054
14748 while (1) {
14749 while_continue___5: ;
14750 {
14751#line 1054
14752 __cil_tmp66 = ! descriptor___1.enabled;
14753#line 1054
14754 __cil_tmp67 = ! __cil_tmp66;
14755#line 1054
14756 __cil_tmp68 = (long )__cil_tmp67;
14757#line 1054
14758 tmp___11 = __builtin_expect(__cil_tmp68, 0L);
14759 }
14760#line 1054
14761 if (tmp___11) {
14762 {
14763#line 1054
14764 __cil_tmp69 = indirect->len;
14765#line 1054
14766 __dynamic_pr_debug(& descriptor___1, "Indirect buffer length too big: %d\n",
14767 __cil_tmp69);
14768 }
14769 } else {
14770
14771 }
14772#line 1054
14773 goto while_break___5;
14774 }
14775 while_break___23: ;
14776 }
14777
14778 while_break___5: ;
14779#line 1054
14780 if (vq->error_ctx) {
14781 {
14782#line 1054
14783 __cil_tmp70 = vq->error_ctx;
14784#line 1054
14785 eventfd_signal(__cil_tmp70, 1);
14786 }
14787 } else {
14788
14789 }
14790#line 1054
14791 goto while_break___4;
14792 }
14793 while_break___22: ;
14794 }
14795
14796 while_break___4: ;
14797#line 1056
14798 return (-7);
14799 } else {
14800
14801 }
14802 {
14803#line 1059
14804 while (1) {
14805 while_continue___6: ;
14806#line 1060
14807 __cil_tmp71 = *out_num;
14808#line 1060
14809 __cil_tmp72 = *in_num;
14810#line 1060
14811 iov_count = __cil_tmp72 + __cil_tmp71;
14812#line 1061
14813 found = found + 1U;
14814#line 1061
14815 if (found > count) {
14816#line 1061
14817 tmp___14 = 1;
14818 } else {
14819#line 1061
14820 tmp___14 = 0;
14821 }
14822 {
14823#line 1061
14824 __cil_tmp73 = (long )tmp___14;
14825#line 1061
14826 tmp___15 = __builtin_expect(__cil_tmp73, 0L);
14827 }
14828#line 1061
14829 if (tmp___15) {
14830 {
14831#line 1062
14832 while (1) {
14833 while_continue___7: ;
14834
14835 {
14836#line 1062
14837 while (1) {
14838 while_continue___8: ;
14839 {
14840#line 1062
14841 __cil_tmp74 = ! descriptor___2.enabled;
14842#line 1062
14843 __cil_tmp75 = ! __cil_tmp74;
14844#line 1062
14845 __cil_tmp76 = (long )__cil_tmp75;
14846#line 1062
14847 tmp___13 = __builtin_expect(__cil_tmp76, 0L);
14848 }
14849#line 1062
14850 if (tmp___13) {
14851 {
14852#line 1062
14853 __dynamic_pr_debug(& descriptor___2, "Loop detected: last one at %u indirect size %u\n",
14854 i, count);
14855 }
14856 } else {
14857
14858 }
14859#line 1062
14860 goto while_break___8;
14861 }
14862 while_break___26: ;
14863 }
14864
14865 while_break___8: ;
14866#line 1062
14867 if (vq->error_ctx) {
14868 {
14869#line 1062
14870 __cil_tmp77 = vq->error_ctx;
14871#line 1062
14872 eventfd_signal(__cil_tmp77, 1);
14873 }
14874 } else {
14875
14876 }
14877#line 1062
14878 goto while_break___7;
14879 }
14880 while_break___25: ;
14881 }
14882
14883 while_break___7: ;
14884#line 1065
14885 return (-22);
14886 } else {
14887
14888 }
14889 {
14890#line 1067
14891 __cil_tmp78 = (unsigned char *)(& desc);
14892#line 1067
14893 __cil_tmp79 = vq->indirect;
14894#line 1067
14895 __cil_tmp80 = (int )16UL;
14896#line 1067
14897 tmp___17 = memcpy_fromiovec(__cil_tmp78, __cil_tmp79, __cil_tmp80);
14898 }
14899#line 1067
14900 if (tmp___17) {
14901#line 1067
14902 tmp___18 = 1;
14903 } else {
14904#line 1067
14905 tmp___18 = 0;
14906 }
14907 {
14908#line 1067
14909 __cil_tmp81 = (long )tmp___18;
14910#line 1067
14911 tmp___19 = __builtin_expect(__cil_tmp81, 0L);
14912 }
14913#line 1067
14914 if (tmp___19) {
14915 {
14916#line 1069
14917 while (1) {
14918 while_continue___9: ;
14919
14920 {
14921#line 1069
14922 while (1) {
14923 while_continue___10: ;
14924 {
14925#line 1069
14926 __cil_tmp82 = ! descriptor___3.enabled;
14927#line 1069
14928 __cil_tmp83 = ! __cil_tmp82;
14929#line 1069
14930 __cil_tmp84 = (long )__cil_tmp83;
14931#line 1069
14932 tmp___16 = __builtin_expect(__cil_tmp84, 0L);
14933 }
14934#line 1069
14935 if (tmp___16) {
14936 {
14937#line 1069
14938 __cil_tmp85 = (unsigned long )i;
14939#line 1069
14940 __cil_tmp86 = __cil_tmp85 * 16UL;
14941#line 1069
14942 __cil_tmp87 = indirect->addr;
14943#line 1069
14944 __cil_tmp88 = (size_t )__cil_tmp87;
14945#line 1069
14946 __cil_tmp89 = __cil_tmp88 + __cil_tmp86;
14947#line 1069
14948 __dynamic_pr_debug(& descriptor___3, "Failed indirect descriptor: idx %d, %zx\n",
14949 i, __cil_tmp89);
14950 }
14951 } else {
14952
14953 }
14954#line 1069
14955 goto while_break___10;
14956 }
14957 while_break___28: ;
14958 }
14959
14960 while_break___10: ;
14961#line 1069
14962 if (vq->error_ctx) {
14963 {
14964#line 1069
14965 __cil_tmp90 = vq->error_ctx;
14966#line 1069
14967 eventfd_signal(__cil_tmp90, 1);
14968 }
14969 } else {
14970
14971 }
14972#line 1069
14973 goto while_break___9;
14974 }
14975 while_break___27: ;
14976 }
14977
14978 while_break___9: ;
14979#line 1071
14980 return (-22);
14981 } else {
14982
14983 }
14984 {
14985#line 1073
14986 __cil_tmp91 = (int )desc.flags;
14987#line 1073
14988 __cil_tmp92 = __cil_tmp91 & 4;
14989#line 1073
14990 __cil_tmp93 = ! __cil_tmp92;
14991#line 1073
14992 __cil_tmp94 = ! __cil_tmp93;
14993#line 1073
14994 __cil_tmp95 = (long )__cil_tmp94;
14995#line 1073
14996 tmp___21 = __builtin_expect(__cil_tmp95, 0L);
14997 }
14998#line 1073
14999 if (tmp___21) {
15000 {
15001#line 1074
15002 while (1) {
15003 while_continue___11: ;
15004
15005 {
15006#line 1074
15007 while (1) {
15008 while_continue___12: ;
15009 {
15010#line 1074
15011 __cil_tmp96 = ! descriptor___4.enabled;
15012#line 1074
15013 __cil_tmp97 = ! __cil_tmp96;
15014#line 1074
15015 __cil_tmp98 = (long )__cil_tmp97;
15016#line 1074
15017 tmp___20 = __builtin_expect(__cil_tmp98, 0L);
15018 }
15019#line 1074
15020 if (tmp___20) {
15021 {
15022#line 1074
15023 __cil_tmp99 = (unsigned long )i;
15024#line 1074
15025 __cil_tmp100 = __cil_tmp99 * 16UL;
15026#line 1074
15027 __cil_tmp101 = indirect->addr;
15028#line 1074
15029 __cil_tmp102 = (size_t )__cil_tmp101;
15030#line 1074
15031 __cil_tmp103 = __cil_tmp102 + __cil_tmp100;
15032#line 1074
15033 __dynamic_pr_debug(& descriptor___4, "Nested indirect descriptor: idx %d, %zx\n",
15034 i, __cil_tmp103);
15035 }
15036 } else {
15037
15038 }
15039#line 1074
15040 goto while_break___12;
15041 }
15042 while_break___30: ;
15043 }
15044
15045 while_break___12: ;
15046#line 1074
15047 if (vq->error_ctx) {
15048 {
15049#line 1074
15050 __cil_tmp104 = vq->error_ctx;
15051#line 1074
15052 eventfd_signal(__cil_tmp104, 1);
15053 }
15054 } else {
15055
15056 }
15057#line 1074
15058 goto while_break___11;
15059 }
15060 while_break___29: ;
15061 }
15062
15063 while_break___11: ;
15064#line 1076
15065 return (-22);
15066 } else {
15067
15068 }
15069 {
15070#line 1079
15071 __cil_tmp105 = iov + iov_count;
15072#line 1079
15073 __cil_tmp106 = iov_size - iov_count;
15074#line 1079
15075 __cil_tmp107 = (int )__cil_tmp106;
15076#line 1079
15077 ret = translate_desc(dev, desc.addr, desc.len, __cil_tmp105, __cil_tmp107);
15078#line 1081
15079 __cil_tmp108 = ret < 0;
15080#line 1081
15081 __cil_tmp109 = ! __cil_tmp108;
15082#line 1081
15083 __cil_tmp110 = ! __cil_tmp109;
15084#line 1081
15085 __cil_tmp111 = (long )__cil_tmp110;
15086#line 1081
15087 tmp___23 = __builtin_expect(__cil_tmp111, 0L);
15088 }
15089#line 1081
15090 if (tmp___23) {
15091 {
15092#line 1082
15093 while (1) {
15094 while_continue___13: ;
15095
15096 {
15097#line 1082
15098 while (1) {
15099 while_continue___14: ;
15100 {
15101#line 1082
15102 __cil_tmp112 = ! descriptor___5.enabled;
15103#line 1082
15104 __cil_tmp113 = ! __cil_tmp112;
15105#line 1082
15106 __cil_tmp114 = (long )__cil_tmp113;
15107#line 1082
15108 tmp___22 = __builtin_expect(__cil_tmp114, 0L);
15109 }
15110#line 1082
15111 if (tmp___22) {
15112 {
15113#line 1082
15114 __dynamic_pr_debug(& descriptor___5, "Translation failure %d indirect idx %d\n",
15115 ret, i);
15116 }
15117 } else {
15118
15119 }
15120#line 1082
15121 goto while_break___14;
15122 }
15123 while_break___32: ;
15124 }
15125
15126 while_break___14: ;
15127#line 1082
15128 if (vq->error_ctx) {
15129 {
15130#line 1082
15131 __cil_tmp115 = vq->error_ctx;
15132#line 1082
15133 eventfd_signal(__cil_tmp115, 1);
15134 }
15135 } else {
15136
15137 }
15138#line 1082
15139 goto while_break___13;
15140 }
15141 while_break___31: ;
15142 }
15143
15144 while_break___13: ;
15145#line 1084
15146 return (ret);
15147 } else {
15148
15149 }
15150 {
15151#line 1087
15152 __cil_tmp116 = (int )desc.flags;
15153#line 1087
15154 if (__cil_tmp116 & 2) {
15155 {
15156#line 1088
15157 __cil_tmp117 = (unsigned int )ret;
15158#line 1088
15159 __cil_tmp118 = *in_num;
15160#line 1088
15161 *in_num = __cil_tmp118 + __cil_tmp117;
15162#line 1089
15163 __cil_tmp119 = ! log;
15164#line 1089
15165 __cil_tmp120 = ! __cil_tmp119;
15166#line 1089
15167 __cil_tmp121 = (long )__cil_tmp120;
15168#line 1089
15169 tmp___24 = __builtin_expect(__cil_tmp121, 0L);
15170 }
15171#line 1089
15172 if (tmp___24) {
15173#line 1090
15174 __cil_tmp122 = *log_num;
15175#line 1090
15176 __cil_tmp123 = log + __cil_tmp122;
15177#line 1090
15178 __cil_tmp123->addr = desc.addr;
15179#line 1091
15180 __cil_tmp124 = *log_num;
15181#line 1091
15182 __cil_tmp125 = log + __cil_tmp124;
15183#line 1091
15184 __cil_tmp125->len = (u64 )desc.len;
15185#line 1092
15186 __cil_tmp126 = *log_num;
15187#line 1092
15188 *log_num = __cil_tmp126 + 1U;
15189 } else {
15190
15191 }
15192 } else {
15193 {
15194#line 1097
15195 __cil_tmp127 = *in_num;
15196#line 1097
15197 __cil_tmp128 = ! __cil_tmp127;
15198#line 1097
15199 __cil_tmp129 = ! __cil_tmp128;
15200#line 1097
15201 __cil_tmp130 = (long )__cil_tmp129;
15202#line 1097
15203 tmp___26 = __builtin_expect(__cil_tmp130, 0L);
15204 }
15205#line 1097
15206 if (tmp___26) {
15207 {
15208#line 1098
15209 while (1) {
15210 while_continue___15: ;
15211
15212 {
15213#line 1098
15214 while (1) {
15215 while_continue___16: ;
15216 {
15217#line 1098
15218 __cil_tmp131 = ! descriptor___6.enabled;
15219#line 1098
15220 __cil_tmp132 = ! __cil_tmp131;
15221#line 1098
15222 __cil_tmp133 = (long )__cil_tmp132;
15223#line 1098
15224 tmp___25 = __builtin_expect(__cil_tmp133, 0L);
15225 }
15226#line 1098
15227 if (tmp___25) {
15228 {
15229#line 1098
15230 __dynamic_pr_debug(& descriptor___6, "Indirect descriptor has out after in: idx %d\n",
15231 i);
15232 }
15233 } else {
15234
15235 }
15236#line 1098
15237 goto while_break___16;
15238 }
15239 while_break___34: ;
15240 }
15241
15242 while_break___16: ;
15243#line 1098
15244 if (vq->error_ctx) {
15245 {
15246#line 1098
15247 __cil_tmp134 = vq->error_ctx;
15248#line 1098
15249 eventfd_signal(__cil_tmp134, 1);
15250 }
15251 } else {
15252
15253 }
15254#line 1098
15255 goto while_break___15;
15256 }
15257 while_break___33: ;
15258 }
15259
15260 while_break___15: ;
15261#line 1100
15262 return (-22);
15263 } else {
15264
15265 }
15266#line 1102
15267 __cil_tmp135 = (unsigned int )ret;
15268#line 1102
15269 __cil_tmp136 = *out_num;
15270#line 1102
15271 *out_num = __cil_tmp136 + __cil_tmp135;
15272 }
15273 }
15274 {
15275#line 1059
15276 i = next_desc(& desc);
15277 }
15278#line 1059
15279 if (i != 4294967295U) {
15280
15281 } else {
15282#line 1059
15283 goto while_break___6;
15284 }
15285 }
15286 while_break___24: ;
15287 }
15288
15289 while_break___6: ;
15290#line 1105
15291 return (0);
15292}
15293}
15294#line 1129 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15295static struct _ddebug descriptor___7 __attribute__((__used__, __section__("__verbose"),
15296__aligned__(8))) = {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15297 "Failed to access avail idx at %p\n", 1130U, 0U, (char)0};
15298#line 1135 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15299static struct _ddebug descriptor___8 __attribute__((__used__, __section__("__verbose"),
15300__aligned__(8))) = {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15301 "Guest moved used index from %u to %u", 1136U, 0U, (char)0};
15302#line 1151 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15303static struct _ddebug descriptor___9 __attribute__((__used__, __section__("__verbose"),
15304__aligned__(8))) = {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15305 "Failed to read head: idx %d address %p\n", 1153U, 0U, (char)0};
15306#line 1159 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15307static struct _ddebug descriptor___10 __attribute__((__used__, __section__("__verbose"),
15308__aligned__(8))) = {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15309 "Guest says index %u > %u is available", 1160U, 0U, (char)0};
15310#line 1173 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15311static struct _ddebug descriptor___11 __attribute__((__used__, __section__("__verbose"),
15312__aligned__(8))) = {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15313 "Desc index is %u > %u, head = %u", 1174U, 0U, (char)0};
15314#line 1178 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15315static struct _ddebug descriptor___12 __attribute__((__used__, __section__("__verbose"),
15316__aligned__(8))) = {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15317 "Loop detected: last one at %u vq size %u head %u\n", 1180U, 0U, (char)0};
15318#line 1185 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15319static struct _ddebug descriptor___13 __attribute__((__used__, __section__("__verbose"),
15320__aligned__(8))) = {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15321 "Failed to get descriptor: idx %d addr %p\n", 1186U, 0U, (char)0};
15322#line 1194 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15323static struct _ddebug descriptor___14 __attribute__((__used__, __section__("__verbose"),
15324__aligned__(8))) = {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15325 "Failure detected in indirect descriptor at idx %d\n", 1195U, 0U, (char)0};
15326#line 1204 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15327static struct _ddebug descriptor___15 __attribute__((__used__, __section__("__verbose"),
15328__aligned__(8))) = {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15329 "Translation failure %d descriptor idx %d\n", 1205U, 0U, (char)0};
15330#line 1221 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15331static struct _ddebug descriptor___16 __attribute__((__used__, __section__("__verbose"),
15332__aligned__(8))) = {"vhost_net", "vhost_get_vq_desc", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
15333 "Descriptor has out after in: idx %d\n", 1222U, 0U, (char)0};
15334#line 1116 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
15335int vhost_get_vq_desc(struct vhost_dev *dev , struct vhost_virtqueue *vq , struct iovec *iov ,
15336 unsigned int iov_size , unsigned int *out_num , unsigned int *in_num ,
15337 struct vhost_log *log , unsigned int *log_num )
15338{ struct vring_desc desc ;
15339 unsigned int i ;
15340 unsigned int head ;
15341 unsigned int found ;
15342 u16 last_avail_idx ;
15343 int ret ;
15344 long tmp___7 ;
15345 int __gu_err ;
15346 unsigned long __gu_val ;
15347 int tmp___8 ;
15348 int tmp___9 ;
15349 long tmp___10 ;
15350 long tmp___11 ;
15351 long tmp___12 ;
15352 long tmp___13 ;
15353 int __gu_err___0 ;
15354 unsigned long __gu_val___0 ;
15355 int tmp___14 ;
15356 int tmp___15 ;
15357 long tmp___16 ;
15358 long tmp___17 ;
15359 long tmp___18 ;
15360 unsigned int tmp___19 ;
15361 long tmp___20 ;
15362 unsigned int iov_count ;
15363 long tmp___21 ;
15364 long tmp___22 ;
15365 long tmp___23 ;
15366 int tmp___24 ;
15367 long tmp___25 ;
15368 long tmp___26 ;
15369 long tmp___27 ;
15370 long tmp___28 ;
15371 long tmp___29 ;
15372 long tmp___30 ;
15373 long tmp___31 ;
15374 long tmp___32 ;
15375 long tmp___33 ;
15376 long tmp___34 ;
15377 long tmp___35 ;
15378 int tmp ;
15379 int tmp___36 ;
15380 int __cil_tmp51 ;
15381 int __cil_tmp52 ;
15382 int __cil_tmp53 ;
15383 int __cil_tmp54 ;
15384 struct vring_avail *__cil_tmp55 ;
15385 __u16 *__cil_tmp56 ;
15386 struct __large_struct *__cil_tmp57 ;
15387 struct vring_avail *__cil_tmp58 ;
15388 __u16 *__cil_tmp59 ;
15389 struct __large_struct *__cil_tmp60 ;
15390 struct vring_avail *__cil_tmp61 ;
15391 __u16 *__cil_tmp62 ;
15392 struct __large_struct *__cil_tmp63 ;
15393 struct vring_avail *__cil_tmp64 ;
15394 __u16 *__cil_tmp65 ;
15395 struct __large_struct *__cil_tmp66 ;
15396 long __cil_tmp67 ;
15397 int __cil_tmp68 ;
15398 int __cil_tmp69 ;
15399 long __cil_tmp70 ;
15400 struct vring_avail *__cil_tmp71 ;
15401 __u16 *__cil_tmp72 ;
15402 struct eventfd_ctx *__cil_tmp73 ;
15403 unsigned int __cil_tmp74 ;
15404 int __cil_tmp75 ;
15405 u16 __cil_tmp76 ;
15406 int __cil_tmp77 ;
15407 int __cil_tmp78 ;
15408 u16 __cil_tmp79 ;
15409 unsigned int __cil_tmp80 ;
15410 int __cil_tmp81 ;
15411 int __cil_tmp82 ;
15412 int __cil_tmp83 ;
15413 long __cil_tmp84 ;
15414 int __cil_tmp85 ;
15415 int __cil_tmp86 ;
15416 long __cil_tmp87 ;
15417 int __cil_tmp88 ;
15418 u16 __cil_tmp89 ;
15419 int __cil_tmp90 ;
15420 struct eventfd_ctx *__cil_tmp91 ;
15421 int __cil_tmp92 ;
15422 u16 __cil_tmp93 ;
15423 int __cil_tmp94 ;
15424 unsigned int __cil_tmp95 ;
15425 int __cil_tmp96 ;
15426 int __cil_tmp97 ;
15427 int __cil_tmp98 ;
15428 int __cil_tmp99 ;
15429 struct vring_avail *__cil_tmp100 ;
15430 __u16 *__cil_tmp101 ;
15431 struct __large_struct *__cil_tmp102 ;
15432 struct vring_avail *__cil_tmp103 ;
15433 __u16 *__cil_tmp104 ;
15434 struct __large_struct *__cil_tmp105 ;
15435 struct vring_avail *__cil_tmp106 ;
15436 __u16 *__cil_tmp107 ;
15437 struct __large_struct *__cil_tmp108 ;
15438 struct vring_avail *__cil_tmp109 ;
15439 __u16 *__cil_tmp110 ;
15440 struct __large_struct *__cil_tmp111 ;
15441 __u16 __cil_tmp112 ;
15442 long __cil_tmp113 ;
15443 int __cil_tmp114 ;
15444 int __cil_tmp115 ;
15445 long __cil_tmp116 ;
15446 int __cil_tmp117 ;
15447 struct vring_avail *__cil_tmp118 ;
15448 __u16 *__cil_tmp119 ;
15449 struct eventfd_ctx *__cil_tmp120 ;
15450 unsigned int __cil_tmp121 ;
15451 int __cil_tmp122 ;
15452 int __cil_tmp123 ;
15453 int __cil_tmp124 ;
15454 long __cil_tmp125 ;
15455 int __cil_tmp126 ;
15456 int __cil_tmp127 ;
15457 long __cil_tmp128 ;
15458 unsigned int __cil_tmp129 ;
15459 struct eventfd_ctx *__cil_tmp130 ;
15460 int __cil_tmp131 ;
15461 int __cil_tmp132 ;
15462 long __cil_tmp133 ;
15463 unsigned int __cil_tmp134 ;
15464 unsigned int __cil_tmp135 ;
15465 unsigned int __cil_tmp136 ;
15466 int __cil_tmp137 ;
15467 int __cil_tmp138 ;
15468 int __cil_tmp139 ;
15469 long __cil_tmp140 ;
15470 int __cil_tmp141 ;
15471 int __cil_tmp142 ;
15472 long __cil_tmp143 ;
15473 unsigned int __cil_tmp144 ;
15474 struct eventfd_ctx *__cil_tmp145 ;
15475 unsigned int __cil_tmp146 ;
15476 long __cil_tmp147 ;
15477 int __cil_tmp148 ;
15478 int __cil_tmp149 ;
15479 long __cil_tmp150 ;
15480 unsigned int __cil_tmp151 ;
15481 struct eventfd_ctx *__cil_tmp152 ;
15482 void *__cil_tmp153 ;
15483 struct vring_desc *__cil_tmp154 ;
15484 struct vring_desc *__cil_tmp155 ;
15485 void const *__cil_tmp156 ;
15486 unsigned int __cil_tmp157 ;
15487 int __cil_tmp158 ;
15488 int __cil_tmp159 ;
15489 long __cil_tmp160 ;
15490 int __cil_tmp161 ;
15491 int __cil_tmp162 ;
15492 long __cil_tmp163 ;
15493 struct vring_desc *__cil_tmp164 ;
15494 struct vring_desc *__cil_tmp165 ;
15495 struct eventfd_ctx *__cil_tmp166 ;
15496 int __cil_tmp167 ;
15497 int __cil_tmp168 ;
15498 int __cil_tmp169 ;
15499 int __cil_tmp170 ;
15500 long __cil_tmp171 ;
15501 int __cil_tmp172 ;
15502 int __cil_tmp173 ;
15503 long __cil_tmp174 ;
15504 struct eventfd_ctx *__cil_tmp175 ;
15505 struct iovec *__cil_tmp176 ;
15506 unsigned int __cil_tmp177 ;
15507 int __cil_tmp178 ;
15508 int __cil_tmp179 ;
15509 int __cil_tmp180 ;
15510 int __cil_tmp181 ;
15511 long __cil_tmp182 ;
15512 int __cil_tmp183 ;
15513 int __cil_tmp184 ;
15514 long __cil_tmp185 ;
15515 struct eventfd_ctx *__cil_tmp186 ;
15516 int __cil_tmp187 ;
15517 unsigned int __cil_tmp188 ;
15518 unsigned int __cil_tmp189 ;
15519 int __cil_tmp190 ;
15520 int __cil_tmp191 ;
15521 long __cil_tmp192 ;
15522 unsigned int __cil_tmp193 ;
15523 struct vhost_log *__cil_tmp194 ;
15524 unsigned int __cil_tmp195 ;
15525 struct vhost_log *__cil_tmp196 ;
15526 unsigned int __cil_tmp197 ;
15527 unsigned int __cil_tmp198 ;
15528 int __cil_tmp199 ;
15529 int __cil_tmp200 ;
15530 long __cil_tmp201 ;
15531 int __cil_tmp202 ;
15532 int __cil_tmp203 ;
15533 long __cil_tmp204 ;
15534 struct eventfd_ctx *__cil_tmp205 ;
15535 unsigned int __cil_tmp206 ;
15536 unsigned int __cil_tmp207 ;
15537 u16 __cil_tmp208 ;
15538 int __cil_tmp209 ;
15539 int __cil_tmp210 ;
15540 u16 __cil_tmp211 ;
15541 int __cil_tmp212 ;
15542 int __cil_tmp213 ;
15543 int __cil_tmp214 ;
15544 int __cil_tmp215 ;
15545 int __cil_tmp216 ;
15546 long __cil_tmp217 ;
15547
15548 {
15549#line 1122
15550 found = 0U;
15551#line 1127
15552 last_avail_idx = vq->last_avail_idx;
15553 {
15554#line 1128
15555 while (1) {
15556 while_continue: ;
15557#line 1128
15558 __gu_err = 0;
15559 {
15560#line 1128
15561 __cil_tmp51 = (int )2UL;
15562#line 1128
15563 if (__cil_tmp51 == 1) {
15564#line 1128
15565 goto case_1;
15566 } else {
15567 {
15568#line 1128
15569 __cil_tmp52 = (int )2UL;
15570#line 1128
15571 if (__cil_tmp52 == 2) {
15572#line 1128
15573 goto case_2;
15574 } else {
15575 {
15576#line 1128
15577 __cil_tmp53 = (int )2UL;
15578#line 1128
15579 if (__cil_tmp53 == 4) {
15580#line 1128
15581 goto case_4;
15582 } else {
15583 {
15584#line 1128
15585 __cil_tmp54 = (int )2UL;
15586#line 1128
15587 if (__cil_tmp54 == 8) {
15588#line 1128
15589 goto case_8;
15590 } else {
15591#line 1128
15592 goto switch_default;
15593#line 1128
15594 if (0) {
15595 case_1:
15596#line 1128
15597 __cil_tmp55 = vq->avail;
15598#line 1128
15599 __cil_tmp56 = & __cil_tmp55->idx;
15600#line 1128
15601 __cil_tmp57 = (struct __large_struct *)__cil_tmp56;
15602#line 1128
15603 __asm__ volatile ("1:\tmov"
15604 "b"
15605 " %2,%"
15606 "b"
15607 "1\n"
15608 "2:\n"
15609 ".section .fixup,\"ax\"\n"
15610 "3:\tmov %3,%0\n"
15611 "\txor"
15612 "b"
15613 " %"
15614 "b"
15615 "1,%"
15616 "b"
15617 "1\n"
15618 "\tjmp 2b\n"
15619 ".previous\n"
15620 " .section __ex_table,\"a\"\n"
15621 " "
15622 ".balign 8"
15623 " "
15624 "\n"
15625 " "
15626 ".quad"
15627 " "
15628 "1b"
15629 ","
15630 "3b"
15631 "\n"
15632 " .previous\n": "=r" (__gu_err), "=q" (__gu_val): "m" (*__cil_tmp57),
15633 "i" (-14), "0" (__gu_err));
15634#line 1128
15635 goto switch_break;
15636 case_2:
15637#line 1128
15638 __cil_tmp58 = vq->avail;
15639#line 1128
15640 __cil_tmp59 = & __cil_tmp58->idx;
15641#line 1128
15642 __cil_tmp60 = (struct __large_struct *)__cil_tmp59;
15643#line 1128
15644 __asm__ volatile ("1:\tmov"
15645 "w"
15646 " %2,%"
15647 "w"
15648 "1\n"
15649 "2:\n"
15650 ".section .fixup,\"ax\"\n"
15651 "3:\tmov %3,%0\n"
15652 "\txor"
15653 "w"
15654 " %"
15655 "w"
15656 "1,%"
15657 "w"
15658 "1\n"
15659 "\tjmp 2b\n"
15660 ".previous\n"
15661 " .section __ex_table,\"a\"\n"
15662 " "
15663 ".balign 8"
15664 " "
15665 "\n"
15666 " "
15667 ".quad"
15668 " "
15669 "1b"
15670 ","
15671 "3b"
15672 "\n"
15673 " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp60),
15674 "i" (-14), "0" (__gu_err));
15675#line 1128
15676 goto switch_break;
15677 case_4:
15678#line 1128
15679 __cil_tmp61 = vq->avail;
15680#line 1128
15681 __cil_tmp62 = & __cil_tmp61->idx;
15682#line 1128
15683 __cil_tmp63 = (struct __large_struct *)__cil_tmp62;
15684#line 1128
15685 __asm__ volatile ("1:\tmov"
15686 "l"
15687 " %2,%"
15688 "k"
15689 "1\n"
15690 "2:\n"
15691 ".section .fixup,\"ax\"\n"
15692 "3:\tmov %3,%0\n"
15693 "\txor"
15694 "l"
15695 " %"
15696 "k"
15697 "1,%"
15698 "k"
15699 "1\n"
15700 "\tjmp 2b\n"
15701 ".previous\n"
15702 " .section __ex_table,\"a\"\n"
15703 " "
15704 ".balign 8"
15705 " "
15706 "\n"
15707 " "
15708 ".quad"
15709 " "
15710 "1b"
15711 ","
15712 "3b"
15713 "\n"
15714 " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp63),
15715 "i" (-14), "0" (__gu_err));
15716#line 1128
15717 goto switch_break;
15718 case_8:
15719#line 1128
15720 __cil_tmp64 = vq->avail;
15721#line 1128
15722 __cil_tmp65 = & __cil_tmp64->idx;
15723#line 1128
15724 __cil_tmp66 = (struct __large_struct *)__cil_tmp65;
15725#line 1128
15726 __asm__ volatile ("1:\tmov"
15727 "q"
15728 " %2,%"
15729 ""
15730 "1\n"
15731 "2:\n"
15732 ".section .fixup,\"ax\"\n"
15733 "3:\tmov %3,%0\n"
15734 "\txor"
15735 "q"
15736 " %"
15737 ""
15738 "1,%"
15739 ""
15740 "1\n"
15741 "\tjmp 2b\n"
15742 ".previous\n"
15743 " .section __ex_table,\"a\"\n"
15744 " "
15745 ".balign 8"
15746 " "
15747 "\n"
15748 " "
15749 ".quad"
15750 " "
15751 "1b"
15752 ","
15753 "3b"
15754 "\n"
15755 " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp66),
15756 "i" (-14), "0" (__gu_err));
15757#line 1128
15758 goto switch_break;
15759 switch_default:
15760 {
15761#line 1128
15762 tmp___8 = __get_user_bad();
15763#line 1128
15764 __gu_val = (unsigned long )tmp___8;
15765 }
15766 } else {
15767 switch_break: ;
15768 }
15769 }
15770 }
15771 }
15772 }
15773 }
15774 }
15775 }
15776 }
15777#line 1128
15778 goto while_break;
15779 }
15780 while_break___24: ;
15781 }
15782
15783 while_break:
15784#line 1128
15785 vq->avail_idx = (__u16 )__gu_val;
15786#line 1128
15787 if (__gu_err) {
15788#line 1128
15789 tmp___9 = 1;
15790 } else {
15791#line 1128
15792 tmp___9 = 0;
15793 }
15794 {
15795#line 1128
15796 __cil_tmp67 = (long )tmp___9;
15797#line 1128
15798 tmp___10 = __builtin_expect(__cil_tmp67, 0L);
15799 }
15800#line 1128
15801 if (tmp___10) {
15802 {
15803#line 1129
15804 while (1) {
15805 while_continue___0: ;
15806
15807 {
15808#line 1129
15809 while (1) {
15810 while_continue___1: ;
15811 {
15812#line 1129
15813 __cil_tmp68 = ! descriptor___7.enabled;
15814#line 1129
15815 __cil_tmp69 = ! __cil_tmp68;
15816#line 1129
15817 __cil_tmp70 = (long )__cil_tmp69;
15818#line 1129
15819 tmp___7 = __builtin_expect(__cil_tmp70, 0L);
15820 }
15821#line 1129
15822 if (tmp___7) {
15823 {
15824#line 1129
15825 __cil_tmp71 = vq->avail;
15826#line 1129
15827 __cil_tmp72 = & __cil_tmp71->idx;
15828#line 1129
15829 __dynamic_pr_debug(& descriptor___7, "Failed to access avail idx at %p\n",
15830 __cil_tmp72);
15831 }
15832 } else {
15833
15834 }
15835#line 1129
15836 goto while_break___1;
15837 }
15838 while_break___26: ;
15839 }
15840
15841 while_break___1: ;
15842#line 1129
15843 if (vq->error_ctx) {
15844 {
15845#line 1129
15846 __cil_tmp73 = vq->error_ctx;
15847#line 1129
15848 eventfd_signal(__cil_tmp73, 1);
15849 }
15850 } else {
15851
15852 }
15853#line 1129
15854 goto while_break___0;
15855 }
15856 while_break___25: ;
15857 }
15858
15859 while_break___0: ;
15860#line 1131
15861 return (-14);
15862 } else {
15863
15864 }
15865 {
15866#line 1134
15867 __cil_tmp74 = vq->num;
15868#line 1134
15869 __cil_tmp75 = (int )last_avail_idx;
15870#line 1134
15871 __cil_tmp76 = vq->avail_idx;
15872#line 1134
15873 __cil_tmp77 = (int )__cil_tmp76;
15874#line 1134
15875 __cil_tmp78 = __cil_tmp77 - __cil_tmp75;
15876#line 1134
15877 __cil_tmp79 = (u16 )__cil_tmp78;
15878#line 1134
15879 __cil_tmp80 = (unsigned int )__cil_tmp79;
15880#line 1134
15881 __cil_tmp81 = __cil_tmp80 > __cil_tmp74;
15882#line 1134
15883 __cil_tmp82 = ! __cil_tmp81;
15884#line 1134
15885 __cil_tmp83 = ! __cil_tmp82;
15886#line 1134
15887 __cil_tmp84 = (long )__cil_tmp83;
15888#line 1134
15889 tmp___12 = __builtin_expect(__cil_tmp84, 0L);
15890 }
15891#line 1134
15892 if (tmp___12) {
15893 {
15894#line 1135
15895 while (1) {
15896 while_continue___2: ;
15897
15898 {
15899#line 1135
15900 while (1) {
15901 while_continue___3: ;
15902 {
15903#line 1135
15904 __cil_tmp85 = ! descriptor___8.enabled;
15905#line 1135
15906 __cil_tmp86 = ! __cil_tmp85;
15907#line 1135
15908 __cil_tmp87 = (long )__cil_tmp86;
15909#line 1135
15910 tmp___11 = __builtin_expect(__cil_tmp87, 0L);
15911 }
15912#line 1135
15913 if (tmp___11) {
15914 {
15915#line 1135
15916 __cil_tmp88 = (int )last_avail_idx;
15917#line 1135
15918 __cil_tmp89 = vq->avail_idx;
15919#line 1135
15920 __cil_tmp90 = (int )__cil_tmp89;
15921#line 1135
15922 __dynamic_pr_debug(& descriptor___8, "Guest moved used index from %u to %u",
15923 __cil_tmp88, __cil_tmp90);
15924 }
15925 } else {
15926
15927 }
15928#line 1135
15929 goto while_break___3;
15930 }
15931 while_break___28: ;
15932 }
15933
15934 while_break___3: ;
15935#line 1135
15936 if (vq->error_ctx) {
15937 {
15938#line 1135
15939 __cil_tmp91 = vq->error_ctx;
15940#line 1135
15941 eventfd_signal(__cil_tmp91, 1);
15942 }
15943 } else {
15944
15945 }
15946#line 1135
15947 goto while_break___2;
15948 }
15949 while_break___27: ;
15950 }
15951
15952 while_break___2: ;
15953#line 1137
15954 return (-14);
15955 } else {
15956
15957 }
15958 {
15959#line 1141
15960 __cil_tmp92 = (int )last_avail_idx;
15961#line 1141
15962 __cil_tmp93 = vq->avail_idx;
15963#line 1141
15964 __cil_tmp94 = (int )__cil_tmp93;
15965#line 1141
15966 if (__cil_tmp94 == __cil_tmp92) {
15967 {
15968#line 1142
15969 __cil_tmp95 = vq->num;
15970#line 1142
15971 return ((int )__cil_tmp95);
15972 }
15973 } else {
15974
15975 }
15976 }
15977#line 1145
15978 __asm__ volatile ("": : : "memory");
15979 {
15980#line 1149
15981 while (1) {
15982 while_continue___4: ;
15983#line 1149
15984 __gu_err___0 = 0;
15985 {
15986#line 1149
15987 __cil_tmp96 = (int )2UL;
15988#line 1149
15989 if (__cil_tmp96 == 1) {
15990#line 1149
15991 goto case_1___0;
15992 } else {
15993 {
15994#line 1149
15995 __cil_tmp97 = (int )2UL;
15996#line 1149
15997 if (__cil_tmp97 == 2) {
15998#line 1149
15999 goto case_2___0;
16000 } else {
16001 {
16002#line 1149
16003 __cil_tmp98 = (int )2UL;
16004#line 1149
16005 if (__cil_tmp98 == 4) {
16006#line 1149
16007 goto case_4___0;
16008 } else {
16009 {
16010#line 1149
16011 __cil_tmp99 = (int )2UL;
16012#line 1149
16013 if (__cil_tmp99 == 8) {
16014#line 1149
16015 goto case_8___0;
16016 } else {
16017#line 1149
16018 goto switch_default___0;
16019#line 1149
16020 if (0) {
16021 case_1___0:
16022#line 1149
16023 __cil_tmp100 = vq->avail;
16024#line 1149
16025 __cil_tmp101 = & __cil_tmp100->ring[(unsigned int )last_avail_idx % vq->num];
16026#line 1149
16027 __cil_tmp102 = (struct __large_struct *)__cil_tmp101;
16028#line 1149
16029 __asm__ volatile ("1:\tmov"
16030 "b"
16031 " %2,%"
16032 "b"
16033 "1\n"
16034 "2:\n"
16035 ".section .fixup,\"ax\"\n"
16036 "3:\tmov %3,%0\n"
16037 "\txor"
16038 "b"
16039 " %"
16040 "b"
16041 "1,%"
16042 "b"
16043 "1\n"
16044 "\tjmp 2b\n"
16045 ".previous\n"
16046 " .section __ex_table,\"a\"\n"
16047 " "
16048 ".balign 8"
16049 " "
16050 "\n"
16051 " "
16052 ".quad"
16053 " "
16054 "1b"
16055 ","
16056 "3b"
16057 "\n"
16058 " .previous\n": "=r" (__gu_err___0), "=q" (__gu_val___0): "m" (*__cil_tmp102),
16059 "i" (-14), "0" (__gu_err___0));
16060#line 1149
16061 goto switch_break___0;
16062 case_2___0:
16063#line 1149
16064 __cil_tmp103 = vq->avail;
16065#line 1149
16066 __cil_tmp104 = & __cil_tmp103->ring[(unsigned int )last_avail_idx % vq->num];
16067#line 1149
16068 __cil_tmp105 = (struct __large_struct *)__cil_tmp104;
16069#line 1149
16070 __asm__ volatile ("1:\tmov"
16071 "w"
16072 " %2,%"
16073 "w"
16074 "1\n"
16075 "2:\n"
16076 ".section .fixup,\"ax\"\n"
16077 "3:\tmov %3,%0\n"
16078 "\txor"
16079 "w"
16080 " %"
16081 "w"
16082 "1,%"
16083 "w"
16084 "1\n"
16085 "\tjmp 2b\n"
16086 ".previous\n"
16087 " .section __ex_table,\"a\"\n"
16088 " "
16089 ".balign 8"
16090 " "
16091 "\n"
16092 " "
16093 ".quad"
16094 " "
16095 "1b"
16096 ","
16097 "3b"
16098 "\n"
16099 " .previous\n": "=r" (__gu_err___0), "=r" (__gu_val___0): "m" (*__cil_tmp105),
16100 "i" (-14), "0" (__gu_err___0));
16101#line 1149
16102 goto switch_break___0;
16103 case_4___0:
16104#line 1149
16105 __cil_tmp106 = vq->avail;
16106#line 1149
16107 __cil_tmp107 = & __cil_tmp106->ring[(unsigned int )last_avail_idx % vq->num];
16108#line 1149
16109 __cil_tmp108 = (struct __large_struct *)__cil_tmp107;
16110#line 1149
16111 __asm__ volatile ("1:\tmov"
16112 "l"
16113 " %2,%"
16114 "k"
16115 "1\n"
16116 "2:\n"
16117 ".section .fixup,\"ax\"\n"
16118 "3:\tmov %3,%0\n"
16119 "\txor"
16120 "l"
16121 " %"
16122 "k"
16123 "1,%"
16124 "k"
16125 "1\n"
16126 "\tjmp 2b\n"
16127 ".previous\n"
16128 " .section __ex_table,\"a\"\n"
16129 " "
16130 ".balign 8"
16131 " "
16132 "\n"
16133 " "
16134 ".quad"
16135 " "
16136 "1b"
16137 ","
16138 "3b"
16139 "\n"
16140 " .previous\n": "=r" (__gu_err___0), "=r" (__gu_val___0): "m" (*__cil_tmp108),
16141 "i" (-14), "0" (__gu_err___0));
16142#line 1149
16143 goto switch_break___0;
16144 case_8___0:
16145#line 1149
16146 __cil_tmp109 = vq->avail;
16147#line 1149
16148 __cil_tmp110 = & __cil_tmp109->ring[(unsigned int )last_avail_idx % vq->num];
16149#line 1149
16150 __cil_tmp111 = (struct __large_struct *)__cil_tmp110;
16151#line 1149
16152 __asm__ volatile ("1:\tmov"
16153 "q"
16154 " %2,%"
16155 ""
16156 "1\n"
16157 "2:\n"
16158 ".section .fixup,\"ax\"\n"
16159 "3:\tmov %3,%0\n"
16160 "\txor"
16161 "q"
16162 " %"
16163 ""
16164 "1,%"
16165 ""
16166 "1\n"
16167 "\tjmp 2b\n"
16168 ".previous\n"
16169 " .section __ex_table,\"a\"\n"
16170 " "
16171 ".balign 8"
16172 " "
16173 "\n"
16174 " "
16175 ".quad"
16176 " "
16177 "1b"
16178 ","
16179 "3b"
16180 "\n"
16181 " .previous\n": "=r" (__gu_err___0), "=r" (__gu_val___0): "m" (*__cil_tmp111),
16182 "i" (-14), "0" (__gu_err___0));
16183#line 1149
16184 goto switch_break___0;
16185 switch_default___0:
16186 {
16187#line 1149
16188 tmp___14 = __get_user_bad();
16189#line 1149
16190 __gu_val___0 = (unsigned long )tmp___14;
16191 }
16192 } else {
16193 switch_break___0: ;
16194 }
16195 }
16196 }
16197 }
16198 }
16199 }
16200 }
16201 }
16202 }
16203#line 1149
16204 goto while_break___4;
16205 }
16206 while_break___29: ;
16207 }
16208
16209 while_break___4:
16210#line 1149
16211 __cil_tmp112 = (__u16 )__gu_val___0;
16212#line 1149
16213 head = (unsigned int )__cil_tmp112;
16214#line 1149
16215 if (__gu_err___0) {
16216#line 1149
16217 tmp___15 = 1;
16218 } else {
16219#line 1149
16220 tmp___15 = 0;
16221 }
16222 {
16223#line 1149
16224 __cil_tmp113 = (long )tmp___15;
16225#line 1149
16226 tmp___16 = __builtin_expect(__cil_tmp113, 0L);
16227 }
16228#line 1149
16229 if (tmp___16) {
16230 {
16231#line 1151
16232 while (1) {
16233 while_continue___5: ;
16234
16235 {
16236#line 1151
16237 while (1) {
16238 while_continue___6: ;
16239 {
16240#line 1151
16241 __cil_tmp114 = ! descriptor___9.enabled;
16242#line 1151
16243 __cil_tmp115 = ! __cil_tmp114;
16244#line 1151
16245 __cil_tmp116 = (long )__cil_tmp115;
16246#line 1151
16247 tmp___13 = __builtin_expect(__cil_tmp116, 0L);
16248 }
16249#line 1151
16250 if (tmp___13) {
16251 {
16252#line 1151
16253 __cil_tmp117 = (int )last_avail_idx;
16254#line 1151
16255 __cil_tmp118 = vq->avail;
16256#line 1151
16257 __cil_tmp119 = & __cil_tmp118->ring[(unsigned int )last_avail_idx % vq->num];
16258#line 1151
16259 __dynamic_pr_debug(& descriptor___9, "Failed to read head: idx %d address %p\n",
16260 __cil_tmp117, __cil_tmp119);
16261 }
16262 } else {
16263
16264 }
16265#line 1151
16266 goto while_break___6;
16267 }
16268 while_break___31: ;
16269 }
16270
16271 while_break___6: ;
16272#line 1151
16273 if (vq->error_ctx) {
16274 {
16275#line 1151
16276 __cil_tmp120 = vq->error_ctx;
16277#line 1151
16278 eventfd_signal(__cil_tmp120, 1);
16279 }
16280 } else {
16281
16282 }
16283#line 1151
16284 goto while_break___5;
16285 }
16286 while_break___30: ;
16287 }
16288
16289 while_break___5: ;
16290#line 1154
16291 return (-14);
16292 } else {
16293
16294 }
16295 {
16296#line 1158
16297 __cil_tmp121 = vq->num;
16298#line 1158
16299 __cil_tmp122 = head >= __cil_tmp121;
16300#line 1158
16301 __cil_tmp123 = ! __cil_tmp122;
16302#line 1158
16303 __cil_tmp124 = ! __cil_tmp123;
16304#line 1158
16305 __cil_tmp125 = (long )__cil_tmp124;
16306#line 1158
16307 tmp___18 = __builtin_expect(__cil_tmp125, 0L);
16308 }
16309#line 1158
16310 if (tmp___18) {
16311 {
16312#line 1159
16313 while (1) {
16314 while_continue___7: ;
16315
16316 {
16317#line 1159
16318 while (1) {
16319 while_continue___8: ;
16320 {
16321#line 1159
16322 __cil_tmp126 = ! descriptor___10.enabled;
16323#line 1159
16324 __cil_tmp127 = ! __cil_tmp126;
16325#line 1159
16326 __cil_tmp128 = (long )__cil_tmp127;
16327#line 1159
16328 tmp___17 = __builtin_expect(__cil_tmp128, 0L);
16329 }
16330#line 1159
16331 if (tmp___17) {
16332 {
16333#line 1159
16334 __cil_tmp129 = vq->num;
16335#line 1159
16336 __dynamic_pr_debug(& descriptor___10, "Guest says index %u > %u is available",
16337 head, __cil_tmp129);
16338 }
16339 } else {
16340
16341 }
16342#line 1159
16343 goto while_break___8;
16344 }
16345 while_break___33: ;
16346 }
16347
16348 while_break___8: ;
16349#line 1159
16350 if (vq->error_ctx) {
16351 {
16352#line 1159
16353 __cil_tmp130 = vq->error_ctx;
16354#line 1159
16355 eventfd_signal(__cil_tmp130, 1);
16356 }
16357 } else {
16358
16359 }
16360#line 1159
16361 goto while_break___7;
16362 }
16363 while_break___32: ;
16364 }
16365
16366 while_break___7: ;
16367#line 1161
16368 return (-22);
16369 } else {
16370
16371 }
16372 {
16373#line 1165
16374 tmp___19 = 0U;
16375#line 1165
16376 *in_num = tmp___19;
16377#line 1165
16378 *out_num = tmp___19;
16379#line 1166
16380 __cil_tmp131 = ! log;
16381#line 1166
16382 __cil_tmp132 = ! __cil_tmp131;
16383#line 1166
16384 __cil_tmp133 = (long )__cil_tmp132;
16385#line 1166
16386 tmp___20 = __builtin_expect(__cil_tmp133, 0L);
16387 }
16388#line 1166
16389 if (tmp___20) {
16390#line 1167
16391 *log_num = 0U;
16392 } else {
16393
16394 }
16395#line 1169
16396 i = head;
16397 {
16398#line 1170
16399 while (1) {
16400 while_continue___9: ;
16401 {
16402#line 1171
16403 __cil_tmp134 = *out_num;
16404#line 1171
16405 __cil_tmp135 = *in_num;
16406#line 1171
16407 iov_count = __cil_tmp135 + __cil_tmp134;
16408#line 1172
16409 __cil_tmp136 = vq->num;
16410#line 1172
16411 __cil_tmp137 = i >= __cil_tmp136;
16412#line 1172
16413 __cil_tmp138 = ! __cil_tmp137;
16414#line 1172
16415 __cil_tmp139 = ! __cil_tmp138;
16416#line 1172
16417 __cil_tmp140 = (long )__cil_tmp139;
16418#line 1172
16419 tmp___22 = __builtin_expect(__cil_tmp140, 0L);
16420 }
16421#line 1172
16422 if (tmp___22) {
16423 {
16424#line 1173
16425 while (1) {
16426 while_continue___10: ;
16427
16428 {
16429#line 1173
16430 while (1) {
16431 while_continue___11: ;
16432 {
16433#line 1173
16434 __cil_tmp141 = ! descriptor___11.enabled;
16435#line 1173
16436 __cil_tmp142 = ! __cil_tmp141;
16437#line 1173
16438 __cil_tmp143 = (long )__cil_tmp142;
16439#line 1173
16440 tmp___21 = __builtin_expect(__cil_tmp143, 0L);
16441 }
16442#line 1173
16443 if (tmp___21) {
16444 {
16445#line 1173
16446 __cil_tmp144 = vq->num;
16447#line 1173
16448 __dynamic_pr_debug(& descriptor___11, "Desc index is %u > %u, head = %u",
16449 i, __cil_tmp144, head);
16450 }
16451 } else {
16452
16453 }
16454#line 1173
16455 goto while_break___11;
16456 }
16457 while_break___36: ;
16458 }
16459
16460 while_break___11: ;
16461#line 1173
16462 if (vq->error_ctx) {
16463 {
16464#line 1173
16465 __cil_tmp145 = vq->error_ctx;
16466#line 1173
16467 eventfd_signal(__cil_tmp145, 1);
16468 }
16469 } else {
16470
16471 }
16472#line 1173
16473 goto while_break___10;
16474 }
16475 while_break___35: ;
16476 }
16477
16478 while_break___10: ;
16479#line 1175
16480 return (-22);
16481 } else {
16482
16483 }
16484#line 1177
16485 found = found + 1U;
16486 {
16487#line 1177
16488 __cil_tmp146 = vq->num;
16489#line 1177
16490 if (found > __cil_tmp146) {
16491#line 1177
16492 tmp___24 = 1;
16493 } else {
16494#line 1177
16495 tmp___24 = 0;
16496 }
16497 }
16498 {
16499#line 1177
16500 __cil_tmp147 = (long )tmp___24;
16501#line 1177
16502 tmp___25 = __builtin_expect(__cil_tmp147, 0L);
16503 }
16504#line 1177
16505 if (tmp___25) {
16506 {
16507#line 1178
16508 while (1) {
16509 while_continue___12: ;
16510
16511 {
16512#line 1178
16513 while (1) {
16514 while_continue___13: ;
16515 {
16516#line 1178
16517 __cil_tmp148 = ! descriptor___12.enabled;
16518#line 1178
16519 __cil_tmp149 = ! __cil_tmp148;
16520#line 1178
16521 __cil_tmp150 = (long )__cil_tmp149;
16522#line 1178
16523 tmp___23 = __builtin_expect(__cil_tmp150, 0L);
16524 }
16525#line 1178
16526 if (tmp___23) {
16527 {
16528#line 1178
16529 __cil_tmp151 = vq->num;
16530#line 1178
16531 __dynamic_pr_debug(& descriptor___12, "Loop detected: last one at %u vq size %u head %u\n",
16532 i, __cil_tmp151, head);
16533 }
16534 } else {
16535
16536 }
16537#line 1178
16538 goto while_break___13;
16539 }
16540 while_break___38: ;
16541 }
16542
16543 while_break___13: ;
16544#line 1178
16545 if (vq->error_ctx) {
16546 {
16547#line 1178
16548 __cil_tmp152 = vq->error_ctx;
16549#line 1178
16550 eventfd_signal(__cil_tmp152, 1);
16551 }
16552 } else {
16553
16554 }
16555#line 1178
16556 goto while_break___12;
16557 }
16558 while_break___37: ;
16559 }
16560
16561 while_break___12: ;
16562#line 1181
16563 return (-22);
16564 } else {
16565
16566 }
16567 {
16568#line 1183
16569 __cil_tmp153 = (void *)(& desc);
16570#line 1183
16571 __cil_tmp154 = vq->desc;
16572#line 1183
16573 __cil_tmp155 = __cil_tmp154 + i;
16574#line 1183
16575 __cil_tmp156 = (void const *)__cil_tmp155;
16576#line 1183
16577 __cil_tmp157 = (unsigned int )16UL;
16578#line 1183
16579 tmp___36 = (int )__copy_from_user(__cil_tmp153, __cil_tmp156, __cil_tmp157);
16580#line 1183
16581 tmp = tmp___36;
16582#line 1183
16583 ret = tmp;
16584#line 1184
16585 __cil_tmp158 = ! ret;
16586#line 1184
16587 __cil_tmp159 = ! __cil_tmp158;
16588#line 1184
16589 __cil_tmp160 = (long )__cil_tmp159;
16590#line 1184
16591 tmp___27 = __builtin_expect(__cil_tmp160, 0L);
16592 }
16593#line 1184
16594 if (tmp___27) {
16595 {
16596#line 1185
16597 while (1) {
16598 while_continue___14: ;
16599
16600 {
16601#line 1185
16602 while (1) {
16603 while_continue___15: ;
16604 {
16605#line 1185
16606 __cil_tmp161 = ! descriptor___13.enabled;
16607#line 1185
16608 __cil_tmp162 = ! __cil_tmp161;
16609#line 1185
16610 __cil_tmp163 = (long )__cil_tmp162;
16611#line 1185
16612 tmp___26 = __builtin_expect(__cil_tmp163, 0L);
16613 }
16614#line 1185
16615 if (tmp___26) {
16616 {
16617#line 1185
16618 __cil_tmp164 = vq->desc;
16619#line 1185
16620 __cil_tmp165 = __cil_tmp164 + i;
16621#line 1185
16622 __dynamic_pr_debug(& descriptor___13, "Failed to get descriptor: idx %d addr %p\n",
16623 i, __cil_tmp165);
16624 }
16625 } else {
16626
16627 }
16628#line 1185
16629 goto while_break___15;
16630 }
16631 while_break___40: ;
16632 }
16633
16634 while_break___15: ;
16635#line 1185
16636 if (vq->error_ctx) {
16637 {
16638#line 1185
16639 __cil_tmp166 = vq->error_ctx;
16640#line 1185
16641 eventfd_signal(__cil_tmp166, 1);
16642 }
16643 } else {
16644
16645 }
16646#line 1185
16647 goto while_break___14;
16648 }
16649 while_break___39: ;
16650 }
16651
16652 while_break___14: ;
16653#line 1187
16654 return (-14);
16655 } else {
16656
16657 }
16658 {
16659#line 1189
16660 __cil_tmp167 = (int )desc.flags;
16661#line 1189
16662 if (__cil_tmp167 & 4) {
16663 {
16664#line 1190
16665 ret = get_indirect(dev, vq, iov, iov_size, out_num, in_num, log, log_num, & desc);
16666#line 1193
16667 __cil_tmp168 = ret < 0;
16668#line 1193
16669 __cil_tmp169 = ! __cil_tmp168;
16670#line 1193
16671 __cil_tmp170 = ! __cil_tmp169;
16672#line 1193
16673 __cil_tmp171 = (long )__cil_tmp170;
16674#line 1193
16675 tmp___29 = __builtin_expect(__cil_tmp171, 0L);
16676 }
16677#line 1193
16678 if (tmp___29) {
16679 {
16680#line 1194
16681 while (1) {
16682 while_continue___16: ;
16683
16684 {
16685#line 1194
16686 while (1) {
16687 while_continue___17: ;
16688 {
16689#line 1194
16690 __cil_tmp172 = ! descriptor___14.enabled;
16691#line 1194
16692 __cil_tmp173 = ! __cil_tmp172;
16693#line 1194
16694 __cil_tmp174 = (long )__cil_tmp173;
16695#line 1194
16696 tmp___28 = __builtin_expect(__cil_tmp174, 0L);
16697 }
16698#line 1194
16699 if (tmp___28) {
16700 {
16701#line 1194
16702 __dynamic_pr_debug(& descriptor___14, "Failure detected in indirect descriptor at idx %d\n",
16703 i);
16704 }
16705 } else {
16706
16707 }
16708#line 1194
16709 goto while_break___17;
16710 }
16711 while_break___42: ;
16712 }
16713
16714 while_break___17: ;
16715#line 1194
16716 if (vq->error_ctx) {
16717 {
16718#line 1194
16719 __cil_tmp175 = vq->error_ctx;
16720#line 1194
16721 eventfd_signal(__cil_tmp175, 1);
16722 }
16723 } else {
16724
16725 }
16726#line 1194
16727 goto while_break___16;
16728 }
16729 while_break___41: ;
16730 }
16731
16732 while_break___16: ;
16733#line 1196
16734 return (ret);
16735 } else {
16736
16737 }
16738#line 1198
16739 goto __Cont;
16740 } else {
16741
16742 }
16743 }
16744 {
16745#line 1201
16746 __cil_tmp176 = iov + iov_count;
16747#line 1201
16748 __cil_tmp177 = iov_size - iov_count;
16749#line 1201
16750 __cil_tmp178 = (int )__cil_tmp177;
16751#line 1201
16752 ret = translate_desc(dev, desc.addr, desc.len, __cil_tmp176, __cil_tmp178);
16753#line 1203
16754 __cil_tmp179 = ret < 0;
16755#line 1203
16756 __cil_tmp180 = ! __cil_tmp179;
16757#line 1203
16758 __cil_tmp181 = ! __cil_tmp180;
16759#line 1203
16760 __cil_tmp182 = (long )__cil_tmp181;
16761#line 1203
16762 tmp___31 = __builtin_expect(__cil_tmp182, 0L);
16763 }
16764#line 1203
16765 if (tmp___31) {
16766 {
16767#line 1204
16768 while (1) {
16769 while_continue___18: ;
16770
16771 {
16772#line 1204
16773 while (1) {
16774 while_continue___19: ;
16775 {
16776#line 1204
16777 __cil_tmp183 = ! descriptor___15.enabled;
16778#line 1204
16779 __cil_tmp184 = ! __cil_tmp183;
16780#line 1204
16781 __cil_tmp185 = (long )__cil_tmp184;
16782#line 1204
16783 tmp___30 = __builtin_expect(__cil_tmp185, 0L);
16784 }
16785#line 1204
16786 if (tmp___30) {
16787 {
16788#line 1204
16789 __dynamic_pr_debug(& descriptor___15, "Translation failure %d descriptor idx %d\n",
16790 ret, i);
16791 }
16792 } else {
16793
16794 }
16795#line 1204
16796 goto while_break___19;
16797 }
16798 while_break___44: ;
16799 }
16800
16801 while_break___19: ;
16802#line 1204
16803 if (vq->error_ctx) {
16804 {
16805#line 1204
16806 __cil_tmp186 = vq->error_ctx;
16807#line 1204
16808 eventfd_signal(__cil_tmp186, 1);
16809 }
16810 } else {
16811
16812 }
16813#line 1204
16814 goto while_break___18;
16815 }
16816 while_break___43: ;
16817 }
16818
16819 while_break___18: ;
16820#line 1206
16821 return (ret);
16822 } else {
16823
16824 }
16825 {
16826#line 1208
16827 __cil_tmp187 = (int )desc.flags;
16828#line 1208
16829 if (__cil_tmp187 & 2) {
16830 {
16831#line 1211
16832 __cil_tmp188 = (unsigned int )ret;
16833#line 1211
16834 __cil_tmp189 = *in_num;
16835#line 1211
16836 *in_num = __cil_tmp189 + __cil_tmp188;
16837#line 1212
16838 __cil_tmp190 = ! log;
16839#line 1212
16840 __cil_tmp191 = ! __cil_tmp190;
16841#line 1212
16842 __cil_tmp192 = (long )__cil_tmp191;
16843#line 1212
16844 tmp___32 = __builtin_expect(__cil_tmp192, 0L);
16845 }
16846#line 1212
16847 if (tmp___32) {
16848#line 1213
16849 __cil_tmp193 = *log_num;
16850#line 1213
16851 __cil_tmp194 = log + __cil_tmp193;
16852#line 1213
16853 __cil_tmp194->addr = desc.addr;
16854#line 1214
16855 __cil_tmp195 = *log_num;
16856#line 1214
16857 __cil_tmp196 = log + __cil_tmp195;
16858#line 1214
16859 __cil_tmp196->len = (u64 )desc.len;
16860#line 1215
16861 __cil_tmp197 = *log_num;
16862#line 1215
16863 *log_num = __cil_tmp197 + 1U;
16864 } else {
16865
16866 }
16867 } else {
16868 {
16869#line 1220
16870 __cil_tmp198 = *in_num;
16871#line 1220
16872 __cil_tmp199 = ! __cil_tmp198;
16873#line 1220
16874 __cil_tmp200 = ! __cil_tmp199;
16875#line 1220
16876 __cil_tmp201 = (long )__cil_tmp200;
16877#line 1220
16878 tmp___34 = __builtin_expect(__cil_tmp201, 0L);
16879 }
16880#line 1220
16881 if (tmp___34) {
16882 {
16883#line 1221
16884 while (1) {
16885 while_continue___20: ;
16886
16887 {
16888#line 1221
16889 while (1) {
16890 while_continue___21: ;
16891 {
16892#line 1221
16893 __cil_tmp202 = ! descriptor___16.enabled;
16894#line 1221
16895 __cil_tmp203 = ! __cil_tmp202;
16896#line 1221
16897 __cil_tmp204 = (long )__cil_tmp203;
16898#line 1221
16899 tmp___33 = __builtin_expect(__cil_tmp204, 0L);
16900 }
16901#line 1221
16902 if (tmp___33) {
16903 {
16904#line 1221
16905 __dynamic_pr_debug(& descriptor___16, "Descriptor has out after in: idx %d\n",
16906 i);
16907 }
16908 } else {
16909
16910 }
16911#line 1221
16912 goto while_break___21;
16913 }
16914 while_break___46: ;
16915 }
16916
16917 while_break___21: ;
16918#line 1221
16919 if (vq->error_ctx) {
16920 {
16921#line 1221
16922 __cil_tmp205 = vq->error_ctx;
16923#line 1221
16924 eventfd_signal(__cil_tmp205, 1);
16925 }
16926 } else {
16927
16928 }
16929#line 1221
16930 goto while_break___20;
16931 }
16932 while_break___45: ;
16933 }
16934
16935 while_break___20: ;
16936#line 1223
16937 return (-22);
16938 } else {
16939
16940 }
16941#line 1225
16942 __cil_tmp206 = (unsigned int )ret;
16943#line 1225
16944 __cil_tmp207 = *out_num;
16945#line 1225
16946 *out_num = __cil_tmp207 + __cil_tmp206;
16947 }
16948 }
16949 __Cont:
16950 {
16951#line 1170
16952 i = next_desc(& desc);
16953 }
16954#line 1170
16955 if (i != 4294967295U) {
16956
16957 } else {
16958#line 1170
16959 goto while_break___9;
16960 }
16961 }
16962 while_break___34: ;
16963 }
16964
16965 while_break___9:
16966#line 1230
16967 __cil_tmp208 = vq->last_avail_idx;
16968#line 1230
16969 __cil_tmp209 = (int )__cil_tmp208;
16970#line 1230
16971 __cil_tmp210 = __cil_tmp209 + 1;
16972#line 1230
16973 vq->last_avail_idx = (u16 )__cil_tmp210;
16974 {
16975#line 1234
16976 while (1) {
16977 while_continue___22: ;
16978 {
16979#line 1234
16980 __cil_tmp211 = vq->used_flags;
16981#line 1234
16982 __cil_tmp212 = (int )__cil_tmp211;
16983#line 1234
16984 __cil_tmp213 = __cil_tmp212 & 1;
16985#line 1234
16986 __cil_tmp214 = ! __cil_tmp213;
16987#line 1234
16988 __cil_tmp215 = ! __cil_tmp214;
16989#line 1234
16990 __cil_tmp216 = ! __cil_tmp215;
16991#line 1234
16992 __cil_tmp217 = (long )__cil_tmp216;
16993#line 1234
16994 tmp___35 = __builtin_expect(__cil_tmp217, 0L);
16995 }
16996#line 1234
16997 if (tmp___35) {
16998 {
16999#line 1234
17000 while (1) {
17001 while_continue___23: ;
17002#line 1234
17003 __asm__ volatile ("1:\tud2\n"
17004 ".pushsection __bug_table,\"a\"\n"
17005 "2:\t.long 1b - 2b, %c0 - 2b\n"
17006 "\t.word %c1, 0\n"
17007 "\t.org 2b+%c2\n"
17008 ".popsection": : "i" ("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"),
17009 "i" (1234), "i" (12UL));
17010 {
17011#line 1234
17012 while (1) {
17013 while_continue___24: ;
17014
17015 }
17016 while_break___49: ;
17017 }
17018
17019#line 1234
17020 goto while_break___23;
17021 }
17022 while_break___48: ;
17023 }
17024
17025 while_break___23: ;
17026 } else {
17027
17028 }
17029#line 1234
17030 goto while_break___22;
17031 }
17032 while_break___47: ;
17033 }
17034
17035 while_break___22: ;
17036#line 1235
17037 return ((int )head);
17038}
17039}
17040#line 1239 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
17041void vhost_discard_vq_desc(struct vhost_virtqueue *vq , int n )
17042{ u16 __cil_tmp3 ;
17043 int __cil_tmp4 ;
17044 int __cil_tmp5 ;
17045
17046 {
17047#line 1241
17048 __cil_tmp3 = vq->last_avail_idx;
17049#line 1241
17050 __cil_tmp4 = (int )__cil_tmp3;
17051#line 1241
17052 __cil_tmp5 = __cil_tmp4 - n;
17053#line 1241
17054 vq->last_avail_idx = (u16 )__cil_tmp5;
17055#line 1242
17056 return;
17057}
17058}
17059#line 1254 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
17060static struct _ddebug descriptor___17 __attribute__((__used__, __section__("__verbose"),
17061__aligned__(8))) = {"vhost_net", "vhost_add_used", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
17062 "Failed to write used id", 1254U, 0U, (char)0};
17063#line 1258 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
17064static struct _ddebug descriptor___18 __attribute__((__used__, __section__("__verbose"),
17065__aligned__(8))) = {"vhost_net", "vhost_add_used", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
17066 "Failed to write used len", 1258U, 0U, (char)0};
17067#line 1264 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
17068static struct _ddebug descriptor___19 __attribute__((__used__, __section__("__verbose"),
17069__aligned__(8))) = {"vhost_net", "vhost_add_used", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
17070 "Failed to increment used idx", 1264U, 0U, (char)0};
17071#line 1246 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
17072int vhost_add_used(struct vhost_virtqueue *vq , unsigned int head , int len )
17073{ struct vring_used_elem *used ;
17074 long tmp___7 ;
17075 int __pu_err ;
17076 long tmp___8 ;
17077 int __pu_err___0 ;
17078 long tmp___9 ;
17079 int __pu_err___1 ;
17080 long tmp___10 ;
17081 long tmp___11 ;
17082 struct vring_used *__cil_tmp13 ;
17083 int __cil_tmp14 ;
17084 int __cil_tmp15 ;
17085 int __cil_tmp16 ;
17086 int __cil_tmp17 ;
17087 __u32 *__cil_tmp18 ;
17088 struct __large_struct *__cil_tmp19 ;
17089 __u32 *__cil_tmp20 ;
17090 struct __large_struct *__cil_tmp21 ;
17091 __u32 *__cil_tmp22 ;
17092 struct __large_struct *__cil_tmp23 ;
17093 __u32 *__cil_tmp24 ;
17094 struct __large_struct *__cil_tmp25 ;
17095 int __cil_tmp26 ;
17096 int __cil_tmp27 ;
17097 long __cil_tmp28 ;
17098 struct eventfd_ctx *__cil_tmp29 ;
17099 int __cil_tmp30 ;
17100 int __cil_tmp31 ;
17101 int __cil_tmp32 ;
17102 int __cil_tmp33 ;
17103 __u32 *__cil_tmp34 ;
17104 struct __large_struct *__cil_tmp35 ;
17105 __u32 *__cil_tmp36 ;
17106 struct __large_struct *__cil_tmp37 ;
17107 __u32 *__cil_tmp38 ;
17108 struct __large_struct *__cil_tmp39 ;
17109 __u32 *__cil_tmp40 ;
17110 struct __large_struct *__cil_tmp41 ;
17111 int __cil_tmp42 ;
17112 int __cil_tmp43 ;
17113 long __cil_tmp44 ;
17114 struct eventfd_ctx *__cil_tmp45 ;
17115 int __cil_tmp46 ;
17116 int __cil_tmp47 ;
17117 int __cil_tmp48 ;
17118 int __cil_tmp49 ;
17119 u16 __cil_tmp50 ;
17120 int __cil_tmp51 ;
17121 int __cil_tmp52 ;
17122 struct vring_used *__cil_tmp53 ;
17123 __u16 *__cil_tmp54 ;
17124 struct __large_struct *__cil_tmp55 ;
17125 u16 __cil_tmp56 ;
17126 int __cil_tmp57 ;
17127 int __cil_tmp58 ;
17128 struct vring_used *__cil_tmp59 ;
17129 __u16 *__cil_tmp60 ;
17130 struct __large_struct *__cil_tmp61 ;
17131 u16 __cil_tmp62 ;
17132 int __cil_tmp63 ;
17133 int __cil_tmp64 ;
17134 struct vring_used *__cil_tmp65 ;
17135 __u16 *__cil_tmp66 ;
17136 struct __large_struct *__cil_tmp67 ;
17137 u16 __cil_tmp68 ;
17138 int __cil_tmp69 ;
17139 int __cil_tmp70 ;
17140 struct vring_used *__cil_tmp71 ;
17141 __u16 *__cil_tmp72 ;
17142 struct __large_struct *__cil_tmp73 ;
17143 int __cil_tmp74 ;
17144 int __cil_tmp75 ;
17145 long __cil_tmp76 ;
17146 struct eventfd_ctx *__cil_tmp77 ;
17147 bool __cil_tmp78 ;
17148 int __cil_tmp79 ;
17149 int __cil_tmp80 ;
17150 long __cil_tmp81 ;
17151 void *__cil_tmp82 ;
17152 struct vring_used *__cil_tmp83 ;
17153 void *__cil_tmp84 ;
17154 void *__cil_tmp85 ;
17155 int __cil_tmp86 ;
17156 u64 __cil_tmp87 ;
17157 u64 __cil_tmp88 ;
17158 u64 __cil_tmp89 ;
17159 u64 __cil_tmp90 ;
17160 void *__cil_tmp91 ;
17161 struct vring_used *__cil_tmp92 ;
17162 __u16 *__cil_tmp93 ;
17163 unsigned int __cil_tmp94 ;
17164 u64 __cil_tmp95 ;
17165 u64 __cil_tmp96 ;
17166 u64 __cil_tmp97 ;
17167 u64 __cil_tmp98 ;
17168 struct eventfd_ctx *__cil_tmp99 ;
17169 u16 __cil_tmp100 ;
17170 int __cil_tmp101 ;
17171 int __cil_tmp102 ;
17172 u16 __cil_tmp103 ;
17173 int __cil_tmp104 ;
17174 u16 __cil_tmp105 ;
17175 int __cil_tmp106 ;
17176 int __cil_tmp107 ;
17177 int __cil_tmp108 ;
17178 int __cil_tmp109 ;
17179 long __cil_tmp110 ;
17180
17181 {
17182#line 1252
17183 __cil_tmp13 = vq->used;
17184#line 1252
17185 used = & __cil_tmp13->ring[(unsigned int )vq->last_used_idx % vq->num];
17186 {
17187#line 1253
17188 while (1) {
17189 while_continue: ;
17190#line 1253
17191 __pu_err = 0;
17192 {
17193#line 1253
17194 __cil_tmp14 = (int )4UL;
17195#line 1253
17196 if (__cil_tmp14 == 1) {
17197#line 1253
17198 goto case_1;
17199 } else {
17200 {
17201#line 1253
17202 __cil_tmp15 = (int )4UL;
17203#line 1253
17204 if (__cil_tmp15 == 2) {
17205#line 1253
17206 goto case_2;
17207 } else {
17208 {
17209#line 1253
17210 __cil_tmp16 = (int )4UL;
17211#line 1253
17212 if (__cil_tmp16 == 4) {
17213#line 1253
17214 goto case_4;
17215 } else {
17216 {
17217#line 1253
17218 __cil_tmp17 = (int )4UL;
17219#line 1253
17220 if (__cil_tmp17 == 8) {
17221#line 1253
17222 goto case_8;
17223 } else {
17224#line 1253
17225 goto switch_default;
17226#line 1253
17227 if (0) {
17228 case_1:
17229#line 1253
17230 __cil_tmp18 = & used->id;
17231#line 1253
17232 __cil_tmp19 = (struct __large_struct *)__cil_tmp18;
17233#line 1253
17234 __asm__ volatile ("1:\tmov"
17235 "b"
17236 " %"
17237 "b"
17238 "1,%2\n"
17239 "2:\n"
17240 ".section .fixup,\"ax\"\n"
17241 "3:\tmov %3,%0\n"
17242 "\tjmp 2b\n"
17243 ".previous\n"
17244 " .section __ex_table,\"a\"\n"
17245 " "
17246 ".balign 8"
17247 " "
17248 "\n"
17249 " "
17250 ".quad"
17251 " "
17252 "1b"
17253 ","
17254 "3b"
17255 "\n"
17256 " .previous\n": "=r" (__pu_err): "iq" (head), "m" (*__cil_tmp19),
17257 "i" (-14), "0" (__pu_err));
17258#line 1253
17259 goto switch_break;
17260 case_2:
17261#line 1253
17262 __cil_tmp20 = & used->id;
17263#line 1253
17264 __cil_tmp21 = (struct __large_struct *)__cil_tmp20;
17265#line 1253
17266 __asm__ volatile ("1:\tmov"
17267 "w"
17268 " %"
17269 "w"
17270 "1,%2\n"
17271 "2:\n"
17272 ".section .fixup,\"ax\"\n"
17273 "3:\tmov %3,%0\n"
17274 "\tjmp 2b\n"
17275 ".previous\n"
17276 " .section __ex_table,\"a\"\n"
17277 " "
17278 ".balign 8"
17279 " "
17280 "\n"
17281 " "
17282 ".quad"
17283 " "
17284 "1b"
17285 ","
17286 "3b"
17287 "\n"
17288 " .previous\n": "=r" (__pu_err): "ir" (head), "m" (*__cil_tmp21),
17289 "i" (-14), "0" (__pu_err));
17290#line 1253
17291 goto switch_break;
17292 case_4:
17293#line 1253
17294 __cil_tmp22 = & used->id;
17295#line 1253
17296 __cil_tmp23 = (struct __large_struct *)__cil_tmp22;
17297#line 1253
17298 __asm__ volatile ("1:\tmov"
17299 "l"
17300 " %"
17301 "k"
17302 "1,%2\n"
17303 "2:\n"
17304 ".section .fixup,\"ax\"\n"
17305 "3:\tmov %3,%0\n"
17306 "\tjmp 2b\n"
17307 ".previous\n"
17308 " .section __ex_table,\"a\"\n"
17309 " "
17310 ".balign 8"
17311 " "
17312 "\n"
17313 " "
17314 ".quad"
17315 " "
17316 "1b"
17317 ","
17318 "3b"
17319 "\n"
17320 " .previous\n": "=r" (__pu_err): "ir" (head), "m" (*__cil_tmp23),
17321 "i" (-14), "0" (__pu_err));
17322#line 1253
17323 goto switch_break;
17324 case_8:
17325#line 1253
17326 __cil_tmp24 = & used->id;
17327#line 1253
17328 __cil_tmp25 = (struct __large_struct *)__cil_tmp24;
17329#line 1253
17330
17331
17332
17333
17334
17335
17336
17337
17338
17339
17340
17341
17342
17343
17344
17345
17346
17347
17348
17349
17350
17351
17352
17353
17354#line 1253
17355 goto switch_break;
17356 switch_default:
17357 {
17358#line 1253
17359 __put_user_bad();
17360 }
17361 } else {
17362 switch_break: ;
17363 }
17364 }
17365 }
17366 }
17367 }
17368 }
17369 }
17370 }
17371 }
17372#line 1253
17373 goto while_break;
17374 }
17375 while_break___8: ;
17376 }
17377
17378 while_break: ;
17379#line 1253
17380 if (__pu_err) {
17381 {
17382#line 1254
17383 while (1) {
17384 while_continue___0: ;
17385
17386 {
17387#line 1254
17388 while (1) {
17389 while_continue___1: ;
17390 {
17391#line 1254
17392 __cil_tmp26 = ! descriptor___17.enabled;
17393#line 1254
17394 __cil_tmp27 = ! __cil_tmp26;
17395#line 1254
17396 __cil_tmp28 = (long )__cil_tmp27;
17397#line 1254
17398 tmp___7 = __builtin_expect(__cil_tmp28, 0L);
17399 }
17400#line 1254
17401 if (tmp___7) {
17402 {
17403#line 1254
17404 __dynamic_pr_debug(& descriptor___17, "Failed to write used id");
17405 }
17406 } else {
17407
17408 }
17409#line 1254
17410 goto while_break___1;
17411 }
17412 while_break___10: ;
17413 }
17414
17415 while_break___1: ;
17416#line 1254
17417 if (vq->error_ctx) {
17418 {
17419#line 1254
17420 __cil_tmp29 = vq->error_ctx;
17421#line 1254
17422 eventfd_signal(__cil_tmp29, 1);
17423 }
17424 } else {
17425
17426 }
17427#line 1254
17428 goto while_break___0;
17429 }
17430 while_break___9: ;
17431 }
17432
17433 while_break___0: ;
17434#line 1255
17435 return (-14);
17436 } else {
17437
17438 }
17439 {
17440#line 1257
17441 while (1) {
17442 while_continue___2: ;
17443#line 1257
17444 __pu_err___0 = 0;
17445 {
17446#line 1257
17447 __cil_tmp30 = (int )4UL;
17448#line 1257
17449 if (__cil_tmp30 == 1) {
17450#line 1257
17451 goto case_1___0;
17452 } else {
17453 {
17454#line 1257
17455 __cil_tmp31 = (int )4UL;
17456#line 1257
17457 if (__cil_tmp31 == 2) {
17458#line 1257
17459 goto case_2___0;
17460 } else {
17461 {
17462#line 1257
17463 __cil_tmp32 = (int )4UL;
17464#line 1257
17465 if (__cil_tmp32 == 4) {
17466#line 1257
17467 goto case_4___0;
17468 } else {
17469 {
17470#line 1257
17471 __cil_tmp33 = (int )4UL;
17472#line 1257
17473 if (__cil_tmp33 == 8) {
17474#line 1257
17475 goto case_8___0;
17476 } else {
17477#line 1257
17478 goto switch_default___0;
17479#line 1257
17480 if (0) {
17481 case_1___0:
17482#line 1257
17483 __cil_tmp34 = & used->len;
17484#line 1257
17485 __cil_tmp35 = (struct __large_struct *)__cil_tmp34;
17486#line 1257
17487 __asm__ volatile ("1:\tmov"
17488 "b"
17489 " %"
17490 "b"
17491 "1,%2\n"
17492 "2:\n"
17493 ".section .fixup,\"ax\"\n"
17494 "3:\tmov %3,%0\n"
17495 "\tjmp 2b\n"
17496 ".previous\n"
17497 " .section __ex_table,\"a\"\n"
17498 " "
17499 ".balign 8"
17500 " "
17501 "\n"
17502 " "
17503 ".quad"
17504 " "
17505 "1b"
17506 ","
17507 "3b"
17508 "\n"
17509 " .previous\n": "=r" (__pu_err___0): "iq" ((__u32 )len),
17510 "m" (*__cil_tmp35), "i" (-14), "0" (__pu_err___0));
17511#line 1257
17512 goto switch_break___0;
17513 case_2___0:
17514#line 1257
17515 __cil_tmp36 = & used->len;
17516#line 1257
17517 __cil_tmp37 = (struct __large_struct *)__cil_tmp36;
17518#line 1257
17519 __asm__ volatile ("1:\tmov"
17520 "w"
17521 " %"
17522 "w"
17523 "1,%2\n"
17524 "2:\n"
17525 ".section .fixup,\"ax\"\n"
17526 "3:\tmov %3,%0\n"
17527 "\tjmp 2b\n"
17528 ".previous\n"
17529 " .section __ex_table,\"a\"\n"
17530 " "
17531 ".balign 8"
17532 " "
17533 "\n"
17534 " "
17535 ".quad"
17536 " "
17537 "1b"
17538 ","
17539 "3b"
17540 "\n"
17541 " .previous\n": "=r" (__pu_err___0): "ir" ((__u32 )len),
17542 "m" (*__cil_tmp37), "i" (-14), "0" (__pu_err___0));
17543#line 1257
17544 goto switch_break___0;
17545 case_4___0:
17546#line 1257
17547 __cil_tmp38 = & used->len;
17548#line 1257
17549 __cil_tmp39 = (struct __large_struct *)__cil_tmp38;
17550#line 1257
17551 __asm__ volatile ("1:\tmov"
17552 "l"
17553 " %"
17554 "k"
17555 "1,%2\n"
17556 "2:\n"
17557 ".section .fixup,\"ax\"\n"
17558 "3:\tmov %3,%0\n"
17559 "\tjmp 2b\n"
17560 ".previous\n"
17561 " .section __ex_table,\"a\"\n"
17562 " "
17563 ".balign 8"
17564 " "
17565 "\n"
17566 " "
17567 ".quad"
17568 " "
17569 "1b"
17570 ","
17571 "3b"
17572 "\n"
17573 " .previous\n": "=r" (__pu_err___0): "ir" ((__u32 )len),
17574 "m" (*__cil_tmp39), "i" (-14), "0" (__pu_err___0));
17575#line 1257
17576 goto switch_break___0;
17577 case_8___0:
17578#line 1257
17579 __cil_tmp40 = & used->len;
17580#line 1257
17581 __cil_tmp41 = (struct __large_struct *)__cil_tmp40;
17582#line 1257
17583
17584
17585
17586
17587
17588
17589
17590
17591
17592
17593
17594
17595
17596
17597
17598
17599
17600
17601
17602
17603
17604
17605
17606
17607#line 1257
17608 goto switch_break___0;
17609 switch_default___0:
17610 {
17611#line 1257
17612 __put_user_bad();
17613 }
17614 } else {
17615 switch_break___0: ;
17616 }
17617 }
17618 }
17619 }
17620 }
17621 }
17622 }
17623 }
17624 }
17625#line 1257
17626 goto while_break___2;
17627 }
17628 while_break___11: ;
17629 }
17630
17631 while_break___2: ;
17632#line 1257
17633 if (__pu_err___0) {
17634 {
17635#line 1258
17636 while (1) {
17637 while_continue___3: ;
17638
17639 {
17640#line 1258
17641 while (1) {
17642 while_continue___4: ;
17643 {
17644#line 1258
17645 __cil_tmp42 = ! descriptor___18.enabled;
17646#line 1258
17647 __cil_tmp43 = ! __cil_tmp42;
17648#line 1258
17649 __cil_tmp44 = (long )__cil_tmp43;
17650#line 1258
17651 tmp___8 = __builtin_expect(__cil_tmp44, 0L);
17652 }
17653#line 1258
17654 if (tmp___8) {
17655 {
17656#line 1258
17657 __dynamic_pr_debug(& descriptor___18, "Failed to write used len");
17658 }
17659 } else {
17660
17661 }
17662#line 1258
17663 goto while_break___4;
17664 }
17665 while_break___13: ;
17666 }
17667
17668 while_break___4: ;
17669#line 1258
17670 if (vq->error_ctx) {
17671 {
17672#line 1258
17673 __cil_tmp45 = vq->error_ctx;
17674#line 1258
17675 eventfd_signal(__cil_tmp45, 1);
17676 }
17677 } else {
17678
17679 }
17680#line 1258
17681 goto while_break___3;
17682 }
17683 while_break___12: ;
17684 }
17685
17686 while_break___3: ;
17687#line 1259
17688 return (-14);
17689 } else {
17690
17691 }
17692#line 1262
17693 __asm__ volatile ("": : : "memory");
17694 {
17695#line 1263
17696 while (1) {
17697 while_continue___5: ;
17698#line 1263
17699 __pu_err___1 = 0;
17700 {
17701#line 1263
17702 __cil_tmp46 = (int )2UL;
17703#line 1263
17704 if (__cil_tmp46 == 1) {
17705#line 1263
17706 goto case_1___1;
17707 } else {
17708 {
17709#line 1263
17710 __cil_tmp47 = (int )2UL;
17711#line 1263
17712 if (__cil_tmp47 == 2) {
17713#line 1263
17714 goto case_2___1;
17715 } else {
17716 {
17717#line 1263
17718 __cil_tmp48 = (int )2UL;
17719#line 1263
17720 if (__cil_tmp48 == 4) {
17721#line 1263
17722 goto case_4___1;
17723 } else {
17724 {
17725#line 1263
17726 __cil_tmp49 = (int )2UL;
17727#line 1263
17728 if (__cil_tmp49 == 8) {
17729#line 1263
17730 goto case_8___1;
17731 } else {
17732#line 1263
17733 goto switch_default___1;
17734#line 1263
17735 if (0) {
17736 case_1___1:
17737#line 1263
17738 __cil_tmp50 = vq->last_used_idx;
17739#line 1263
17740 __cil_tmp51 = (int )__cil_tmp50;
17741#line 1263
17742 __cil_tmp52 = __cil_tmp51 + 1;
17743#line 1263
17744 __cil_tmp53 = vq->used;
17745#line 1263
17746 __cil_tmp54 = & __cil_tmp53->idx;
17747#line 1263
17748 __cil_tmp55 = (struct __large_struct *)__cil_tmp54;
17749#line 1263
17750 __asm__ volatile ("1:\tmov"
17751 "b"
17752 " %"
17753 "b"
17754 "1,%2\n"
17755 "2:\n"
17756 ".section .fixup,\"ax\"\n"
17757 "3:\tmov %3,%0\n"
17758 "\tjmp 2b\n"
17759 ".previous\n"
17760 " .section __ex_table,\"a\"\n"
17761 " "
17762 ".balign 8"
17763 " "
17764 "\n"
17765 " "
17766 ".quad"
17767 " "
17768 "1b"
17769 ","
17770 "3b"
17771 "\n"
17772 " .previous\n": "=r" (__pu_err___1): "iq" ((__u16 )__cil_tmp52),
17773 "m" (*__cil_tmp55), "i" (-14), "0" (__pu_err___1));
17774#line 1263
17775 goto switch_break___1;
17776 case_2___1:
17777#line 1263
17778 __cil_tmp56 = vq->last_used_idx;
17779#line 1263
17780 __cil_tmp57 = (int )__cil_tmp56;
17781#line 1263
17782 __cil_tmp58 = __cil_tmp57 + 1;
17783#line 1263
17784 __cil_tmp59 = vq->used;
17785#line 1263
17786 __cil_tmp60 = & __cil_tmp59->idx;
17787#line 1263
17788 __cil_tmp61 = (struct __large_struct *)__cil_tmp60;
17789#line 1263
17790 __asm__ volatile ("1:\tmov"
17791 "w"
17792 " %"
17793 "w"
17794 "1,%2\n"
17795 "2:\n"
17796 ".section .fixup,\"ax\"\n"
17797 "3:\tmov %3,%0\n"
17798 "\tjmp 2b\n"
17799 ".previous\n"
17800 " .section __ex_table,\"a\"\n"
17801 " "
17802 ".balign 8"
17803 " "
17804 "\n"
17805 " "
17806 ".quad"
17807 " "
17808 "1b"
17809 ","
17810 "3b"
17811 "\n"
17812 " .previous\n": "=r" (__pu_err___1): "ir" ((__u16 )__cil_tmp58),
17813 "m" (*__cil_tmp61), "i" (-14), "0" (__pu_err___1));
17814#line 1263
17815 goto switch_break___1;
17816 case_4___1:
17817#line 1263
17818 __cil_tmp62 = vq->last_used_idx;
17819#line 1263
17820 __cil_tmp63 = (int )__cil_tmp62;
17821#line 1263
17822 __cil_tmp64 = __cil_tmp63 + 1;
17823#line 1263
17824 __cil_tmp65 = vq->used;
17825#line 1263
17826 __cil_tmp66 = & __cil_tmp65->idx;
17827#line 1263
17828 __cil_tmp67 = (struct __large_struct *)__cil_tmp66;
17829#line 1263
17830 __asm__ volatile ("1:\tmov"
17831 "l"
17832 " %"
17833 "k"
17834 "1,%2\n"
17835 "2:\n"
17836 ".section .fixup,\"ax\"\n"
17837 "3:\tmov %3,%0\n"
17838 "\tjmp 2b\n"
17839 ".previous\n"
17840 " .section __ex_table,\"a\"\n"
17841 " "
17842 ".balign 8"
17843 " "
17844 "\n"
17845 " "
17846 ".quad"
17847 " "
17848 "1b"
17849 ","
17850 "3b"
17851 "\n"
17852 " .previous\n": "=r" (__pu_err___1): "ir" ((__u16 )__cil_tmp64),
17853 "m" (*__cil_tmp67), "i" (-14), "0" (__pu_err___1));
17854#line 1263
17855 goto switch_break___1;
17856 case_8___1:
17857#line 1263
17858 __cil_tmp68 = vq->last_used_idx;
17859#line 1263
17860 __cil_tmp69 = (int )__cil_tmp68;
17861#line 1263
17862 __cil_tmp70 = __cil_tmp69 + 1;
17863#line 1263
17864 __cil_tmp71 = vq->used;
17865#line 1263
17866 __cil_tmp72 = & __cil_tmp71->idx;
17867#line 1263
17868 __cil_tmp73 = (struct __large_struct *)__cil_tmp72;
17869#line 1263
17870
17871
17872
17873
17874
17875
17876
17877
17878
17879
17880
17881
17882
17883
17884
17885
17886
17887
17888
17889
17890
17891
17892
17893
17894#line 1263
17895 goto switch_break___1;
17896 switch_default___1:
17897 {
17898#line 1263
17899 __put_user_bad();
17900 }
17901 } else {
17902 switch_break___1: ;
17903 }
17904 }
17905 }
17906 }
17907 }
17908 }
17909 }
17910 }
17911 }
17912#line 1263
17913 goto while_break___5;
17914 }
17915 while_break___14: ;
17916 }
17917
17918 while_break___5: ;
17919#line 1263
17920 if (__pu_err___1) {
17921 {
17922#line 1264
17923 while (1) {
17924 while_continue___6: ;
17925
17926 {
17927#line 1264
17928 while (1) {
17929 while_continue___7: ;
17930 {
17931#line 1264
17932 __cil_tmp74 = ! descriptor___19.enabled;
17933#line 1264
17934 __cil_tmp75 = ! __cil_tmp74;
17935#line 1264
17936 __cil_tmp76 = (long )__cil_tmp75;
17937#line 1264
17938 tmp___9 = __builtin_expect(__cil_tmp76, 0L);
17939 }
17940#line 1264
17941 if (tmp___9) {
17942 {
17943#line 1264
17944 __dynamic_pr_debug(& descriptor___19, "Failed to increment used idx");
17945 }
17946 } else {
17947
17948 }
17949#line 1264
17950 goto while_break___7;
17951 }
17952 while_break___16: ;
17953 }
17954
17955 while_break___7: ;
17956#line 1264
17957 if (vq->error_ctx) {
17958 {
17959#line 1264
17960 __cil_tmp77 = vq->error_ctx;
17961#line 1264
17962 eventfd_signal(__cil_tmp77, 1);
17963 }
17964 } else {
17965
17966 }
17967#line 1264
17968 goto while_break___6;
17969 }
17970 while_break___15: ;
17971 }
17972
17973 while_break___6: ;
17974#line 1265
17975 return (-14);
17976 } else {
17977
17978 }
17979 {
17980#line 1267
17981 __cil_tmp78 = vq->log_used;
17982#line 1267
17983 __cil_tmp79 = ! __cil_tmp78;
17984#line 1267
17985 __cil_tmp80 = ! __cil_tmp79;
17986#line 1267
17987 __cil_tmp81 = (long )__cil_tmp80;
17988#line 1267
17989 tmp___10 = __builtin_expect(__cil_tmp81, 0L);
17990 }
17991#line 1267
17992 if (tmp___10) {
17993 {
17994#line 1269
17995 __asm__ volatile ("": : : "memory");
17996#line 1271
17997 __cil_tmp82 = vq->log_base;
17998#line 1271
17999 __cil_tmp83 = vq->used;
18000#line 1271
18001 __cil_tmp84 = (void *)__cil_tmp83;
18002#line 1271
18003 __cil_tmp85 = (void *)used;
18004#line 1271
18005 __cil_tmp86 = __cil_tmp85 - __cil_tmp84;
18006#line 1271
18007 __cil_tmp87 = (u64 )__cil_tmp86;
18008#line 1271
18009 __cil_tmp88 = vq->log_addr;
18010#line 1271
18011 __cil_tmp89 = __cil_tmp88 + __cil_tmp87;
18012#line 1271
18013 __cil_tmp90 = (u64 )8UL;
18014#line 1271
18015 log_write(__cil_tmp82, __cil_tmp89, __cil_tmp90);
18016#line 1276
18017 __cil_tmp91 = vq->log_base;
18018#line 1276
18019 __cil_tmp92 = (struct vring_used *)0;
18020#line 1276
18021 __cil_tmp93 = & __cil_tmp92->idx;
18022#line 1276
18023 __cil_tmp94 = (unsigned int )__cil_tmp93;
18024#line 1276
18025 __cil_tmp95 = (u64 )__cil_tmp94;
18026#line 1276
18027 __cil_tmp96 = vq->log_addr;
18028#line 1276
18029 __cil_tmp97 = __cil_tmp96 + __cil_tmp95;
18030#line 1276
18031 __cil_tmp98 = (u64 )2UL;
18032#line 1276
18033 log_write(__cil_tmp91, __cil_tmp97, __cil_tmp98);
18034 }
18035#line 1279
18036 if (vq->log_ctx) {
18037 {
18038#line 1280
18039 __cil_tmp99 = vq->log_ctx;
18040#line 1280
18041 eventfd_signal(__cil_tmp99, 1);
18042 }
18043 } else {
18044
18045 }
18046 } else {
18047
18048 }
18049 {
18050#line 1282
18051 __cil_tmp100 = vq->last_used_idx;
18052#line 1282
18053 __cil_tmp101 = (int )__cil_tmp100;
18054#line 1282
18055 __cil_tmp102 = __cil_tmp101 + 1;
18056#line 1282
18057 vq->last_used_idx = (u16 )__cil_tmp102;
18058#line 1287
18059 __cil_tmp103 = vq->signalled_used;
18060#line 1287
18061 __cil_tmp104 = (int )__cil_tmp103;
18062#line 1287
18063 __cil_tmp105 = vq->last_used_idx;
18064#line 1287
18065 __cil_tmp106 = (int )__cil_tmp105;
18066#line 1287
18067 __cil_tmp107 = __cil_tmp106 == __cil_tmp104;
18068#line 1287
18069 __cil_tmp108 = ! __cil_tmp107;
18070#line 1287
18071 __cil_tmp109 = ! __cil_tmp108;
18072#line 1287
18073 __cil_tmp110 = (long )__cil_tmp109;
18074#line 1287
18075 tmp___11 = __builtin_expect(__cil_tmp110, 0L);
18076 }
18077#line 1287
18078 if (tmp___11) {
18079#line 1288
18080 vq->signalled_used_valid = (bool )0;
18081 } else {
18082
18083 }
18084#line 1289
18085 return (0);
18086}
18087}
18088#line 1303
18089static int __vhost_add_used_n(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
18090 unsigned int count ) ;
18091#line 1303 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18092static struct _ddebug descriptor___20 __attribute__((__used__, __section__("__verbose"),
18093__aligned__(8))) = {"vhost_net", "__vhost_add_used_n", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
18094 "Failed to write used", 1303U, 0U, (char)0};
18095#line 1292 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18096static int __vhost_add_used_n(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
18097 unsigned int count )
18098{ struct vring_used_elem *used ;
18099 u16 old ;
18100 u16 new ;
18101 int start ;
18102 long tmp___7 ;
18103 int tmp___8 ;
18104 long tmp___9 ;
18105 u16 tmp___10 ;
18106 long tmp___11 ;
18107 int tmp ;
18108 int tmp___12 ;
18109 unsigned int __cil_tmp15 ;
18110 u16 __cil_tmp16 ;
18111 unsigned int __cil_tmp17 ;
18112 unsigned int __cil_tmp18 ;
18113 struct vring_used *__cil_tmp19 ;
18114 struct vring_used_elem *__cil_tmp20 ;
18115 void *__cil_tmp21 ;
18116 void const *__cil_tmp22 ;
18117 unsigned long __cil_tmp23 ;
18118 unsigned long __cil_tmp24 ;
18119 unsigned int __cil_tmp25 ;
18120 int __cil_tmp26 ;
18121 int __cil_tmp27 ;
18122 long __cil_tmp28 ;
18123 struct eventfd_ctx *__cil_tmp29 ;
18124 bool __cil_tmp30 ;
18125 int __cil_tmp31 ;
18126 int __cil_tmp32 ;
18127 long __cil_tmp33 ;
18128 void *__cil_tmp34 ;
18129 struct vring_used *__cil_tmp35 ;
18130 void *__cil_tmp36 ;
18131 void *__cil_tmp37 ;
18132 int __cil_tmp38 ;
18133 u64 __cil_tmp39 ;
18134 u64 __cil_tmp40 ;
18135 u64 __cil_tmp41 ;
18136 unsigned long __cil_tmp42 ;
18137 unsigned long __cil_tmp43 ;
18138 u64 __cil_tmp44 ;
18139 u16 __cil_tmp45 ;
18140 unsigned int __cil_tmp46 ;
18141 unsigned int __cil_tmp47 ;
18142 int __cil_tmp48 ;
18143 int __cil_tmp49 ;
18144 int __cil_tmp50 ;
18145 u16 __cil_tmp51 ;
18146 int __cil_tmp52 ;
18147 u16 __cil_tmp53 ;
18148 int __cil_tmp54 ;
18149 int __cil_tmp55 ;
18150 int __cil_tmp56 ;
18151 u16 __cil_tmp57 ;
18152 int __cil_tmp58 ;
18153 int __cil_tmp59 ;
18154 int __cil_tmp60 ;
18155 int __cil_tmp61 ;
18156 long __cil_tmp62 ;
18157
18158 {
18159 {
18160#line 1300
18161 __cil_tmp15 = vq->num;
18162#line 1300
18163 __cil_tmp16 = vq->last_used_idx;
18164#line 1300
18165 __cil_tmp17 = (unsigned int )__cil_tmp16;
18166#line 1300
18167 __cil_tmp18 = __cil_tmp17 % __cil_tmp15;
18168#line 1300
18169 start = (int )__cil_tmp18;
18170#line 1301
18171 __cil_tmp19 = vq->used;
18172#line 1301
18173 __cil_tmp20 = & __cil_tmp19->ring[0];
18174#line 1301
18175 used = __cil_tmp20 + start;
18176#line 1302
18177 __cil_tmp21 = (void *)used;
18178#line 1302
18179 __cil_tmp22 = (void const *)heads;
18180#line 1302
18181 __cil_tmp23 = (unsigned long )count;
18182#line 1302
18183 __cil_tmp24 = __cil_tmp23 * 8UL;
18184#line 1302
18185 __cil_tmp25 = (unsigned int )__cil_tmp24;
18186#line 1302
18187 tmp___12 = (int )__copy_to_user(__cil_tmp21, __cil_tmp22, __cil_tmp25);
18188#line 1302
18189 tmp = tmp___12;
18190#line 1302
18191 tmp___8 = tmp;
18192 }
18193#line 1302
18194 if (tmp___8) {
18195 {
18196#line 1303
18197 while (1) {
18198 while_continue: ;
18199
18200 {
18201#line 1303
18202 while (1) {
18203 while_continue___0: ;
18204 {
18205#line 1303
18206 __cil_tmp26 = ! descriptor___20.enabled;
18207#line 1303
18208 __cil_tmp27 = ! __cil_tmp26;
18209#line 1303
18210 __cil_tmp28 = (long )__cil_tmp27;
18211#line 1303
18212 tmp___7 = __builtin_expect(__cil_tmp28, 0L);
18213 }
18214#line 1303
18215 if (tmp___7) {
18216 {
18217#line 1303
18218 __dynamic_pr_debug(& descriptor___20, "Failed to write used");
18219 }
18220 } else {
18221
18222 }
18223#line 1303
18224 goto while_break___0;
18225 }
18226 while_break___2: ;
18227 }
18228
18229 while_break___0: ;
18230#line 1303
18231 if (vq->error_ctx) {
18232 {
18233#line 1303
18234 __cil_tmp29 = vq->error_ctx;
18235#line 1303
18236 eventfd_signal(__cil_tmp29, 1);
18237 }
18238 } else {
18239
18240 }
18241#line 1303
18242 goto while_break;
18243 }
18244 while_break___1: ;
18245 }
18246
18247 while_break: ;
18248#line 1304
18249 return (-14);
18250 } else {
18251
18252 }
18253 {
18254#line 1306
18255 __cil_tmp30 = vq->log_used;
18256#line 1306
18257 __cil_tmp31 = ! __cil_tmp30;
18258#line 1306
18259 __cil_tmp32 = ! __cil_tmp31;
18260#line 1306
18261 __cil_tmp33 = (long )__cil_tmp32;
18262#line 1306
18263 tmp___9 = __builtin_expect(__cil_tmp33, 0L);
18264 }
18265#line 1306
18266 if (tmp___9) {
18267 {
18268#line 1308
18269 __asm__ volatile ("": : : "memory");
18270#line 1310
18271 __cil_tmp34 = vq->log_base;
18272#line 1310
18273 __cil_tmp35 = vq->used;
18274#line 1310
18275 __cil_tmp36 = (void *)__cil_tmp35;
18276#line 1310
18277 __cil_tmp37 = (void *)used;
18278#line 1310
18279 __cil_tmp38 = __cil_tmp37 - __cil_tmp36;
18280#line 1310
18281 __cil_tmp39 = (u64 )__cil_tmp38;
18282#line 1310
18283 __cil_tmp40 = vq->log_addr;
18284#line 1310
18285 __cil_tmp41 = __cil_tmp40 + __cil_tmp39;
18286#line 1310
18287 __cil_tmp42 = (unsigned long )count;
18288#line 1310
18289 __cil_tmp43 = __cil_tmp42 * 8UL;
18290#line 1310
18291 __cil_tmp44 = (u64 )__cil_tmp43;
18292#line 1310
18293 log_write(__cil_tmp34, __cil_tmp41, __cil_tmp44);
18294 }
18295 } else {
18296
18297 }
18298 {
18299#line 1315
18300 old = vq->last_used_idx;
18301#line 1316
18302 __cil_tmp45 = vq->last_used_idx;
18303#line 1316
18304 __cil_tmp46 = (unsigned int )__cil_tmp45;
18305#line 1316
18306 __cil_tmp47 = __cil_tmp46 + count;
18307#line 1316
18308 tmp___10 = (u16 )__cil_tmp47;
18309#line 1316
18310 vq->last_used_idx = tmp___10;
18311#line 1316
18312 new = tmp___10;
18313#line 1321
18314 __cil_tmp48 = (int )old;
18315#line 1321
18316 __cil_tmp49 = (int )new;
18317#line 1321
18318 __cil_tmp50 = __cil_tmp49 - __cil_tmp48;
18319#line 1321
18320 __cil_tmp51 = (u16 )__cil_tmp50;
18321#line 1321
18322 __cil_tmp52 = (int )__cil_tmp51;
18323#line 1321
18324 __cil_tmp53 = vq->signalled_used;
18325#line 1321
18326 __cil_tmp54 = (int )__cil_tmp53;
18327#line 1321
18328 __cil_tmp55 = (int )new;
18329#line 1321
18330 __cil_tmp56 = __cil_tmp55 - __cil_tmp54;
18331#line 1321
18332 __cil_tmp57 = (u16 )__cil_tmp56;
18333#line 1321
18334 __cil_tmp58 = (int )__cil_tmp57;
18335#line 1321
18336 __cil_tmp59 = __cil_tmp58 < __cil_tmp52;
18337#line 1321
18338 __cil_tmp60 = ! __cil_tmp59;
18339#line 1321
18340 __cil_tmp61 = ! __cil_tmp60;
18341#line 1321
18342 __cil_tmp62 = (long )__cil_tmp61;
18343#line 1321
18344 tmp___11 = __builtin_expect(__cil_tmp62, 0L);
18345 }
18346#line 1321
18347 if (tmp___11) {
18348#line 1322
18349 vq->signalled_used_valid = (bool )0;
18350 } else {
18351
18352 }
18353#line 1323
18354 return (0);
18355}
18356}
18357#line 1347 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18358static struct _ddebug descriptor___21 __attribute__((__used__, __section__("__verbose"),
18359__aligned__(8))) = {"vhost_net", "vhost_add_used_n", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
18360 "Failed to increment used idx", 1347U, 0U, (char)0};
18361#line 1328 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18362int vhost_add_used_n(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
18363 unsigned int count )
18364{ int start ;
18365 int n ;
18366 int r ;
18367 long tmp___7 ;
18368 int __ret_pu ;
18369 __u16 __pu_val ;
18370 long tmp___8 ;
18371 unsigned int __cil_tmp11 ;
18372 u16 __cil_tmp12 ;
18373 unsigned int __cil_tmp13 ;
18374 unsigned int __cil_tmp14 ;
18375 unsigned int __cil_tmp15 ;
18376 unsigned int __cil_tmp16 ;
18377 unsigned int __cil_tmp17 ;
18378 unsigned int __cil_tmp18 ;
18379 unsigned int __cil_tmp19 ;
18380 unsigned int __cil_tmp20 ;
18381 int __cil_tmp21 ;
18382 int __cil_tmp22 ;
18383 int __cil_tmp23 ;
18384 int __cil_tmp24 ;
18385 struct vring_used *__cil_tmp25 ;
18386 struct vring_used *__cil_tmp26 ;
18387 struct vring_used *__cil_tmp27 ;
18388 struct vring_used *__cil_tmp28 ;
18389 struct vring_used *__cil_tmp29 ;
18390 int __cil_tmp30 ;
18391 int __cil_tmp31 ;
18392 long __cil_tmp32 ;
18393 struct eventfd_ctx *__cil_tmp33 ;
18394 bool __cil_tmp34 ;
18395 int __cil_tmp35 ;
18396 int __cil_tmp36 ;
18397 long __cil_tmp37 ;
18398 void *__cil_tmp38 ;
18399 struct vring_used *__cil_tmp39 ;
18400 __u16 *__cil_tmp40 ;
18401 unsigned int __cil_tmp41 ;
18402 u64 __cil_tmp42 ;
18403 u64 __cil_tmp43 ;
18404 u64 __cil_tmp44 ;
18405 u64 __cil_tmp45 ;
18406 struct eventfd_ctx *__cil_tmp46 ;
18407
18408 {
18409#line 1333
18410 __cil_tmp11 = vq->num;
18411#line 1333
18412 __cil_tmp12 = vq->last_used_idx;
18413#line 1333
18414 __cil_tmp13 = (unsigned int )__cil_tmp12;
18415#line 1333
18416 __cil_tmp14 = __cil_tmp13 % __cil_tmp11;
18417#line 1333
18418 start = (int )__cil_tmp14;
18419#line 1334
18420 __cil_tmp15 = (unsigned int )start;
18421#line 1334
18422 __cil_tmp16 = vq->num;
18423#line 1334
18424 __cil_tmp17 = __cil_tmp16 - __cil_tmp15;
18425#line 1334
18426 n = (int )__cil_tmp17;
18427 {
18428#line 1335
18429 __cil_tmp18 = (unsigned int )n;
18430#line 1335
18431 if (__cil_tmp18 < count) {
18432 {
18433#line 1336
18434 __cil_tmp19 = (unsigned int )n;
18435#line 1336
18436 r = __vhost_add_used_n(vq, heads, __cil_tmp19);
18437 }
18438#line 1337
18439 if (r < 0) {
18440#line 1338
18441 return (r);
18442 } else {
18443
18444 }
18445#line 1339
18446 heads = heads + n;
18447#line 1340
18448 __cil_tmp20 = (unsigned int )n;
18449#line 1340
18450 count = count - __cil_tmp20;
18451 } else {
18452
18453 }
18454 }
18455 {
18456#line 1342
18457 r = __vhost_add_used_n(vq, heads, count);
18458#line 1345
18459 __asm__ volatile ("": : : "memory");
18460#line 1346
18461 might_fault();
18462#line 1346
18463 __pu_val = vq->last_used_idx;
18464 }
18465 {
18466#line 1346
18467 __cil_tmp21 = (int )2UL;
18468#line 1346
18469 if (__cil_tmp21 == 1) {
18470#line 1346
18471 goto case_1;
18472 } else {
18473 {
18474#line 1346
18475 __cil_tmp22 = (int )2UL;
18476#line 1346
18477 if (__cil_tmp22 == 2) {
18478#line 1346
18479 goto case_2;
18480 } else {
18481 {
18482#line 1346
18483 __cil_tmp23 = (int )2UL;
18484#line 1346
18485 if (__cil_tmp23 == 4) {
18486#line 1346
18487 goto case_4;
18488 } else {
18489 {
18490#line 1346
18491 __cil_tmp24 = (int )2UL;
18492#line 1346
18493 if (__cil_tmp24 == 8) {
18494#line 1346
18495 goto case_8;
18496 } else {
18497#line 1346
18498 goto switch_default;
18499#line 1346
18500 if (0) {
18501 case_1:
18502#line 1346
18503 __cil_tmp25 = vq->used;
18504#line 1346
18505 __asm__ volatile ("call __put_user_"
18506 "1": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp25->idx): "ebx");
18507#line 1346
18508 goto switch_break;
18509 case_2:
18510#line 1346
18511 __cil_tmp26 = vq->used;
18512#line 1346
18513 __asm__ volatile ("call __put_user_"
18514 "2": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp26->idx): "ebx");
18515#line 1346
18516 goto switch_break;
18517 case_4:
18518#line 1346
18519 __cil_tmp27 = vq->used;
18520#line 1346
18521 __asm__ volatile ("call __put_user_"
18522 "4": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp27->idx): "ebx");
18523#line 1346
18524 goto switch_break;
18525 case_8:
18526#line 1346
18527 __cil_tmp28 = vq->used;
18528#line 1346
18529 __asm__ volatile ("call __put_user_"
18530 "8": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp28->idx): "ebx");
18531#line 1346
18532 goto switch_break;
18533 switch_default:
18534#line 1346
18535 __cil_tmp29 = vq->used;
18536#line 1346
18537 __asm__ volatile ("call __put_user_"
18538 "X": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp29->idx): "ebx");
18539#line 1346
18540 goto switch_break;
18541 } else {
18542 switch_break: ;
18543 }
18544 }
18545 }
18546 }
18547 }
18548 }
18549 }
18550 }
18551 }
18552#line 1346
18553 if (__ret_pu) {
18554 {
18555#line 1347
18556 while (1) {
18557 while_continue: ;
18558
18559 {
18560#line 1347
18561 while (1) {
18562 while_continue___0: ;
18563 {
18564#line 1347
18565 __cil_tmp30 = ! descriptor___21.enabled;
18566#line 1347
18567 __cil_tmp31 = ! __cil_tmp30;
18568#line 1347
18569 __cil_tmp32 = (long )__cil_tmp31;
18570#line 1347
18571 tmp___7 = __builtin_expect(__cil_tmp32, 0L);
18572 }
18573#line 1347
18574 if (tmp___7) {
18575 {
18576#line 1347
18577 __dynamic_pr_debug(& descriptor___21, "Failed to increment used idx");
18578 }
18579 } else {
18580
18581 }
18582#line 1347
18583 goto while_break___0;
18584 }
18585 while_break___2: ;
18586 }
18587
18588 while_break___0: ;
18589#line 1347
18590 if (vq->error_ctx) {
18591 {
18592#line 1347
18593 __cil_tmp33 = vq->error_ctx;
18594#line 1347
18595 eventfd_signal(__cil_tmp33, 1);
18596 }
18597 } else {
18598
18599 }
18600#line 1347
18601 goto while_break;
18602 }
18603 while_break___1: ;
18604 }
18605
18606 while_break: ;
18607#line 1348
18608 return (-14);
18609 } else {
18610
18611 }
18612 {
18613#line 1350
18614 __cil_tmp34 = vq->log_used;
18615#line 1350
18616 __cil_tmp35 = ! __cil_tmp34;
18617#line 1350
18618 __cil_tmp36 = ! __cil_tmp35;
18619#line 1350
18620 __cil_tmp37 = (long )__cil_tmp36;
18621#line 1350
18622 tmp___8 = __builtin_expect(__cil_tmp37, 0L);
18623 }
18624#line 1350
18625 if (tmp___8) {
18626 {
18627#line 1352
18628 __cil_tmp38 = vq->log_base;
18629#line 1352
18630 __cil_tmp39 = (struct vring_used *)0;
18631#line 1352
18632 __cil_tmp40 = & __cil_tmp39->idx;
18633#line 1352
18634 __cil_tmp41 = (unsigned int )__cil_tmp40;
18635#line 1352
18636 __cil_tmp42 = (u64 )__cil_tmp41;
18637#line 1352
18638 __cil_tmp43 = vq->log_addr;
18639#line 1352
18640 __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
18641#line 1352
18642 __cil_tmp45 = (u64 )2UL;
18643#line 1352
18644 log_write(__cil_tmp38, __cil_tmp44, __cil_tmp45);
18645 }
18646#line 1355
18647 if (vq->log_ctx) {
18648 {
18649#line 1356
18650 __cil_tmp46 = vq->log_ctx;
18651#line 1356
18652 eventfd_signal(__cil_tmp46, 1);
18653 }
18654 } else {
18655
18656 }
18657 } else {
18658
18659 }
18660#line 1358
18661 return (r);
18662}
18663}
18664#line 1377
18665static bool vhost_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq ) ;
18666#line 1377 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18667static struct _ddebug descriptor___22 __attribute__((__used__, __section__("__verbose"),
18668__aligned__(8))) = {"vhost_net", "vhost_notify", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
18669 "Failed to get flags", 1377U, 0U, (char)0};
18670#line 1391 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18671static struct _ddebug descriptor___23 __attribute__((__used__, __section__("__verbose"),
18672__aligned__(8))) = {"vhost_net", "vhost_notify", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
18673 "Failed to get used event idx", 1391U, 0U, (char)0};
18674#line 1361 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
18675static bool vhost_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq )
18676{ __u16 old ;
18677 __u16 new ;
18678 __u16 event ;
18679 bool v ;
18680 int tmp___7 ;
18681 long tmp___8 ;
18682 __u16 flags ;
18683 long tmp___9 ;
18684 int __gu_err ;
18685 unsigned long __gu_val ;
18686 int tmp___10 ;
18687 int tmp___11 ;
18688 u16 tmp___12 ;
18689 long tmp___13 ;
18690 long tmp___14 ;
18691 int __ret_gu ;
18692 unsigned long __val_gu ;
18693 int tmp___15 ;
18694 u16 __cil_tmp21 ;
18695 int __cil_tmp22 ;
18696 u16 __cil_tmp23 ;
18697 int __cil_tmp24 ;
18698 int __cil_tmp25 ;
18699 int __cil_tmp26 ;
18700 int __cil_tmp27 ;
18701 long __cil_tmp28 ;
18702 int __cil_tmp29 ;
18703 int __cil_tmp30 ;
18704 int __cil_tmp31 ;
18705 int __cil_tmp32 ;
18706 struct vring_avail *__cil_tmp33 ;
18707 __u16 *__cil_tmp34 ;
18708 struct __large_struct *__cil_tmp35 ;
18709 struct vring_avail *__cil_tmp36 ;
18710 __u16 *__cil_tmp37 ;
18711 struct __large_struct *__cil_tmp38 ;
18712 struct vring_avail *__cil_tmp39 ;
18713 __u16 *__cil_tmp40 ;
18714 struct __large_struct *__cil_tmp41 ;
18715 struct vring_avail *__cil_tmp42 ;
18716 __u16 *__cil_tmp43 ;
18717 struct __large_struct *__cil_tmp44 ;
18718 int __cil_tmp45 ;
18719 int __cil_tmp46 ;
18720 long __cil_tmp47 ;
18721 struct eventfd_ctx *__cil_tmp48 ;
18722 int __cil_tmp49 ;
18723 int __cil_tmp50 ;
18724 int __cil_tmp51 ;
18725 int __cil_tmp52 ;
18726 int __cil_tmp53 ;
18727 int __cil_tmp54 ;
18728 long __cil_tmp55 ;
18729 int __cil_tmp56 ;
18730 int __cil_tmp57 ;
18731 int __cil_tmp58 ;
18732 int __cil_tmp59 ;
18733 struct vring_avail *__cil_tmp60 ;
18734 struct vring_avail *__cil_tmp61 ;
18735 struct vring_avail *__cil_tmp62 ;
18736 struct vring_avail *__cil_tmp63 ;
18737 struct vring_avail *__cil_tmp64 ;
18738 int __cil_tmp65 ;
18739 int __cil_tmp66 ;
18740 long __cil_tmp67 ;
18741 struct eventfd_ctx *__cil_tmp68 ;
18742
18743 {
18744 {
18745#line 1368
18746 __asm__ volatile ("mfence": : : "memory");
18747#line 1370
18748 tmp___7 = vhost_has_feature(dev, 24);
18749 }
18750#line 1370
18751 if (tmp___7) {
18752 {
18753#line 1370
18754 __cil_tmp21 = vq->last_avail_idx;
18755#line 1370
18756 __cil_tmp22 = (int )__cil_tmp21;
18757#line 1370
18758 __cil_tmp23 = vq->avail_idx;
18759#line 1370
18760 __cil_tmp24 = (int )__cil_tmp23;
18761#line 1370
18762 __cil_tmp25 = __cil_tmp24 == __cil_tmp22;
18763#line 1370
18764 __cil_tmp26 = ! __cil_tmp25;
18765#line 1370
18766 __cil_tmp27 = ! __cil_tmp26;
18767#line 1370
18768 __cil_tmp28 = (long )__cil_tmp27;
18769#line 1370
18770 tmp___8 = __builtin_expect(__cil_tmp28, 0L);
18771 }
18772#line 1370
18773 if (tmp___8) {
18774#line 1372
18775 return ((bool )1);
18776 } else {
18777
18778 }
18779 } else {
18780
18781 }
18782 {
18783#line 1374
18784 tmp___11 = vhost_has_feature(dev, 29);
18785 }
18786#line 1374
18787 if (tmp___11) {
18788
18789 } else {
18790 {
18791#line 1376
18792 while (1) {
18793 while_continue: ;
18794#line 1376
18795 __gu_err = 0;
18796 {
18797#line 1376
18798 __cil_tmp29 = (int )2UL;
18799#line 1376
18800 if (__cil_tmp29 == 1) {
18801#line 1376
18802 goto case_1;
18803 } else {
18804 {
18805#line 1376
18806 __cil_tmp30 = (int )2UL;
18807#line 1376
18808 if (__cil_tmp30 == 2) {
18809#line 1376
18810 goto case_2;
18811 } else {
18812 {
18813#line 1376
18814 __cil_tmp31 = (int )2UL;
18815#line 1376
18816 if (__cil_tmp31 == 4) {
18817#line 1376
18818 goto case_4;
18819 } else {
18820 {
18821#line 1376
18822 __cil_tmp32 = (int )2UL;
18823#line 1376
18824 if (__cil_tmp32 == 8) {
18825#line 1376
18826 goto case_8;
18827 } else {
18828#line 1376
18829 goto switch_default;
18830#line 1376
18831 if (0) {
18832 case_1:
18833#line 1376
18834 __cil_tmp33 = vq->avail;
18835#line 1376
18836 __cil_tmp34 = & __cil_tmp33->flags;
18837#line 1376
18838 __cil_tmp35 = (struct __large_struct *)__cil_tmp34;
18839#line 1376
18840 __asm__ volatile ("1:\tmov"
18841 "b"
18842 " %2,%"
18843 "b"
18844 "1\n"
18845 "2:\n"
18846 ".section .fixup,\"ax\"\n"
18847 "3:\tmov %3,%0\n"
18848 "\txor"
18849 "b"
18850 " %"
18851 "b"
18852 "1,%"
18853 "b"
18854 "1\n"
18855 "\tjmp 2b\n"
18856 ".previous\n"
18857 " .section __ex_table,\"a\"\n"
18858 " "
18859 ".balign 8"
18860 " "
18861 "\n"
18862 " "
18863 ".quad"
18864 " "
18865 "1b"
18866 ","
18867 "3b"
18868 "\n"
18869 " .previous\n": "=r" (__gu_err), "=q" (__gu_val): "m" (*__cil_tmp35),
18870 "i" (-14), "0" (__gu_err));
18871#line 1376
18872 goto switch_break;
18873 case_2:
18874#line 1376
18875 __cil_tmp36 = vq->avail;
18876#line 1376
18877 __cil_tmp37 = & __cil_tmp36->flags;
18878#line 1376
18879 __cil_tmp38 = (struct __large_struct *)__cil_tmp37;
18880#line 1376
18881 __asm__ volatile ("1:\tmov"
18882 "w"
18883 " %2,%"
18884 "w"
18885 "1\n"
18886 "2:\n"
18887 ".section .fixup,\"ax\"\n"
18888 "3:\tmov %3,%0\n"
18889 "\txor"
18890 "w"
18891 " %"
18892 "w"
18893 "1,%"
18894 "w"
18895 "1\n"
18896 "\tjmp 2b\n"
18897 ".previous\n"
18898 " .section __ex_table,\"a\"\n"
18899 " "
18900 ".balign 8"
18901 " "
18902 "\n"
18903 " "
18904 ".quad"
18905 " "
18906 "1b"
18907 ","
18908 "3b"
18909 "\n"
18910 " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp38),
18911 "i" (-14), "0" (__gu_err));
18912#line 1376
18913 goto switch_break;
18914 case_4:
18915#line 1376
18916 __cil_tmp39 = vq->avail;
18917#line 1376
18918 __cil_tmp40 = & __cil_tmp39->flags;
18919#line 1376
18920 __cil_tmp41 = (struct __large_struct *)__cil_tmp40;
18921#line 1376
18922 __asm__ volatile ("1:\tmov"
18923 "l"
18924 " %2,%"
18925 "k"
18926 "1\n"
18927 "2:\n"
18928 ".section .fixup,\"ax\"\n"
18929 "3:\tmov %3,%0\n"
18930 "\txor"
18931 "l"
18932 " %"
18933 "k"
18934 "1,%"
18935 "k"
18936 "1\n"
18937 "\tjmp 2b\n"
18938 ".previous\n"
18939 " .section __ex_table,\"a\"\n"
18940 " "
18941 ".balign 8"
18942 " "
18943 "\n"
18944 " "
18945 ".quad"
18946 " "
18947 "1b"
18948 ","
18949 "3b"
18950 "\n"
18951 " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp41),
18952 "i" (-14), "0" (__gu_err));
18953#line 1376
18954 goto switch_break;
18955 case_8:
18956#line 1376
18957 __cil_tmp42 = vq->avail;
18958#line 1376
18959 __cil_tmp43 = & __cil_tmp42->flags;
18960#line 1376
18961 __cil_tmp44 = (struct __large_struct *)__cil_tmp43;
18962#line 1376
18963 __asm__ volatile ("1:\tmov"
18964 "q"
18965 " %2,%"
18966 ""
18967 "1\n"
18968 "2:\n"
18969 ".section .fixup,\"ax\"\n"
18970 "3:\tmov %3,%0\n"
18971 "\txor"
18972 "q"
18973 " %"
18974 ""
18975 "1,%"
18976 ""
18977 "1\n"
18978 "\tjmp 2b\n"
18979 ".previous\n"
18980 " .section __ex_table,\"a\"\n"
18981 " "
18982 ".balign 8"
18983 " "
18984 "\n"
18985 " "
18986 ".quad"
18987 " "
18988 "1b"
18989 ","
18990 "3b"
18991 "\n"
18992 " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp44),
18993 "i" (-14), "0" (__gu_err));
18994#line 1376
18995 goto switch_break;
18996 switch_default:
18997 {
18998#line 1376
18999 tmp___10 = __get_user_bad();
19000#line 1376
19001 __gu_val = (unsigned long )tmp___10;
19002 }
19003 } else {
19004 switch_break: ;
19005 }
19006 }
19007 }
19008 }
19009 }
19010 }
19011 }
19012 }
19013 }
19014#line 1376
19015 goto while_break;
19016 }
19017 while_break___4: ;
19018 }
19019
19020 while_break:
19021#line 1376
19022 flags = (__u16 )__gu_val;
19023#line 1376
19024 if (__gu_err) {
19025 {
19026#line 1377
19027 while (1) {
19028 while_continue___0: ;
19029
19030 {
19031#line 1377
19032 while (1) {
19033 while_continue___1: ;
19034 {
19035#line 1377
19036 __cil_tmp45 = ! descriptor___22.enabled;
19037#line 1377
19038 __cil_tmp46 = ! __cil_tmp45;
19039#line 1377
19040 __cil_tmp47 = (long )__cil_tmp46;
19041#line 1377
19042 tmp___9 = __builtin_expect(__cil_tmp47, 0L);
19043 }
19044#line 1377
19045 if (tmp___9) {
19046 {
19047#line 1377
19048 __dynamic_pr_debug(& descriptor___22, "Failed to get flags");
19049 }
19050 } else {
19051
19052 }
19053#line 1377
19054 goto while_break___1;
19055 }
19056 while_break___6: ;
19057 }
19058
19059 while_break___1: ;
19060#line 1377
19061 if (vq->error_ctx) {
19062 {
19063#line 1377
19064 __cil_tmp48 = vq->error_ctx;
19065#line 1377
19066 eventfd_signal(__cil_tmp48, 1);
19067 }
19068 } else {
19069
19070 }
19071#line 1377
19072 goto while_break___0;
19073 }
19074 while_break___5: ;
19075 }
19076
19077 while_break___0: ;
19078#line 1378
19079 return ((bool )1);
19080 } else {
19081
19082 }
19083 {
19084#line 1380
19085 __cil_tmp49 = (int )flags;
19086#line 1380
19087 __cil_tmp50 = __cil_tmp49 & 1;
19088#line 1380
19089 __cil_tmp51 = ! __cil_tmp50;
19090#line 1380
19091 return ((bool )__cil_tmp51);
19092 }
19093 }
19094 {
19095#line 1382
19096 old = vq->signalled_used;
19097#line 1383
19098 v = vq->signalled_used_valid;
19099#line 1384
19100 tmp___12 = vq->last_used_idx;
19101#line 1384
19102 vq->signalled_used = tmp___12;
19103#line 1384
19104 new = tmp___12;
19105#line 1385
19106 vq->signalled_used_valid = (bool )1;
19107#line 1387
19108 __cil_tmp52 = ! v;
19109#line 1387
19110 __cil_tmp53 = ! __cil_tmp52;
19111#line 1387
19112 __cil_tmp54 = ! __cil_tmp53;
19113#line 1387
19114 __cil_tmp55 = (long )__cil_tmp54;
19115#line 1387
19116 tmp___13 = __builtin_expect(__cil_tmp55, 0L);
19117 }
19118#line 1387
19119 if (tmp___13) {
19120#line 1388
19121 return ((bool )1);
19122 } else {
19123
19124 }
19125 {
19126#line 1390
19127 might_fault();
19128 }
19129 {
19130#line 1390
19131 __cil_tmp56 = (int )2UL;
19132#line 1390
19133 if (__cil_tmp56 == 1) {
19134#line 1390
19135 goto case_1___0;
19136 } else {
19137 {
19138#line 1390
19139 __cil_tmp57 = (int )2UL;
19140#line 1390
19141 if (__cil_tmp57 == 2) {
19142#line 1390
19143 goto case_2___0;
19144 } else {
19145 {
19146#line 1390
19147 __cil_tmp58 = (int )2UL;
19148#line 1390
19149 if (__cil_tmp58 == 4) {
19150#line 1390
19151 goto case_4___0;
19152 } else {
19153 {
19154#line 1390
19155 __cil_tmp59 = (int )2UL;
19156#line 1390
19157 if (__cil_tmp59 == 8) {
19158#line 1390
19159 goto case_8___0;
19160 } else {
19161#line 1390
19162 goto switch_default___0;
19163#line 1390
19164 if (0) {
19165 case_1___0:
19166#line 1390
19167 __cil_tmp60 = vq->avail;
19168#line 1390
19169 __asm__ volatile ("call __get_user_"
19170 "1": "=a" (__ret_gu), "=d" (__val_gu): "0" (& __cil_tmp60->ring[vq->num]));
19171#line 1390
19172 goto switch_break___0;
19173 case_2___0:
19174#line 1390
19175 __cil_tmp61 = vq->avail;
19176#line 1390
19177 __asm__ volatile ("call __get_user_"
19178 "2": "=a" (__ret_gu), "=d" (__val_gu): "0" (& __cil_tmp61->ring[vq->num]));
19179#line 1390
19180 goto switch_break___0;
19181 case_4___0:
19182#line 1390
19183 __cil_tmp62 = vq->avail;
19184#line 1390
19185 __asm__ volatile ("call __get_user_"
19186 "4": "=a" (__ret_gu), "=d" (__val_gu): "0" (& __cil_tmp62->ring[vq->num]));
19187#line 1390
19188 goto switch_break___0;
19189 case_8___0:
19190#line 1390
19191 __cil_tmp63 = vq->avail;
19192#line 1390
19193 __asm__ volatile ("call __get_user_"
19194 "8": "=a" (__ret_gu), "=d" (__val_gu): "0" (& __cil_tmp63->ring[vq->num]));
19195#line 1390
19196 goto switch_break___0;
19197 switch_default___0:
19198#line 1390
19199 __cil_tmp64 = vq->avail;
19200#line 1390
19201 __asm__ volatile ("call __get_user_"
19202 "X": "=a" (__ret_gu), "=d" (__val_gu): "0" (& __cil_tmp64->ring[vq->num]));
19203#line 1390
19204 goto switch_break___0;
19205 } else {
19206 switch_break___0: ;
19207 }
19208 }
19209 }
19210 }
19211 }
19212 }
19213 }
19214 }
19215 }
19216#line 1390
19217 event = (u16 )__val_gu;
19218#line 1390
19219 if (__ret_gu) {
19220 {
19221#line 1391
19222 while (1) {
19223 while_continue___2: ;
19224
19225 {
19226#line 1391
19227 while (1) {
19228 while_continue___3: ;
19229 {
19230#line 1391
19231 __cil_tmp65 = ! descriptor___23.enabled;
19232#line 1391
19233 __cil_tmp66 = ! __cil_tmp65;
19234#line 1391
19235 __cil_tmp67 = (long )__cil_tmp66;
19236#line 1391
19237 tmp___14 = __builtin_expect(__cil_tmp67, 0L);
19238 }
19239#line 1391
19240 if (tmp___14) {
19241 {
19242#line 1391
19243 __dynamic_pr_debug(& descriptor___23, "Failed to get used event idx");
19244 }
19245 } else {
19246
19247 }
19248#line 1391
19249 goto while_break___3;
19250 }
19251 while_break___8: ;
19252 }
19253
19254 while_break___3: ;
19255#line 1391
19256 if (vq->error_ctx) {
19257 {
19258#line 1391
19259 __cil_tmp68 = vq->error_ctx;
19260#line 1391
19261 eventfd_signal(__cil_tmp68, 1);
19262 }
19263 } else {
19264
19265 }
19266#line 1391
19267 goto while_break___2;
19268 }
19269 while_break___7: ;
19270 }
19271
19272 while_break___2: ;
19273#line 1392
19274 return ((bool )1);
19275 } else {
19276
19277 }
19278 {
19279#line 1394
19280 tmp___15 = vring_need_event(event, new, old);
19281 }
19282#line 1394
19283 return ((bool )tmp___15);
19284}
19285}
19286#line 1398 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19287void vhost_signal(struct vhost_dev *dev , struct vhost_virtqueue *vq )
19288{ bool tmp___7 ;
19289 struct eventfd_ctx *__cil_tmp4 ;
19290
19291 {
19292#line 1401
19293 if (vq->call_ctx) {
19294 {
19295#line 1401
19296 tmp___7 = vhost_notify(dev, vq);
19297 }
19298#line 1401
19299 if (tmp___7) {
19300 {
19301#line 1402
19302 __cil_tmp4 = vq->call_ctx;
19303#line 1402
19304 eventfd_signal(__cil_tmp4, 1);
19305 }
19306 } else {
19307
19308 }
19309 } else {
19310
19311 }
19312#line 1403
19313 return;
19314}
19315}
19316#line 1406 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19317void vhost_add_used_and_signal(struct vhost_dev *dev , struct vhost_virtqueue *vq ,
19318 unsigned int head , int len )
19319{
19320
19321 {
19322 {
19323#line 1410
19324 vhost_add_used(vq, head, len);
19325#line 1411
19326 vhost_signal(dev, vq);
19327 }
19328#line 1412
19329 return;
19330}
19331}
19332#line 1415 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19333void vhost_add_used_and_signal_n(struct vhost_dev *dev , struct vhost_virtqueue *vq ,
19334 struct vring_used_elem *heads , unsigned int count )
19335{
19336
19337 {
19338 {
19339#line 1419
19340 vhost_add_used_n(vq, heads, count);
19341#line 1420
19342 vhost_signal(dev, vq);
19343 }
19344#line 1421
19345 return;
19346}
19347}
19348#line 1435 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19349static struct _ddebug descriptor___24 __attribute__((__used__, __section__("__verbose"),
19350__aligned__(8))) = {"vhost_net", "vhost_enable_notify", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
19351 "Failed to enable notification at %p: %d\n", 1436U, 0U, (char)0};
19352#line 1442 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19353static struct _ddebug descriptor___25 __attribute__((__used__, __section__("__verbose"),
19354__aligned__(8))) = {"vhost_net", "vhost_enable_notify", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
19355 "Failed to update avail event index at %p: %d\n", 1443U, 0U, (char)0};
19356#line 1466 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19357static struct _ddebug descriptor___26 __attribute__((__used__, __section__("__verbose"),
19358__aligned__(8))) = {"vhost_net", "vhost_enable_notify", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
19359 "Failed to check avail idx at %p: %d\n", 1467U, 0U, (char)0};
19360#line 1424 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
19361bool vhost_enable_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq )
19362{ u16 avail_idx ;
19363 int r ;
19364 int __ret_pu ;
19365 __u16 __pu_val ;
19366 long tmp___7 ;
19367 int __ret_pu___0 ;
19368 u16 __pu_val___0 ;
19369 long tmp___8 ;
19370 int tmp___9 ;
19371 void *used ;
19372 int tmp___11 ;
19373 long tmp___12 ;
19374 int __gu_err ;
19375 unsigned long __gu_val ;
19376 int tmp___13 ;
19377 long tmp___14 ;
19378 u16 __cil_tmp19 ;
19379 int __cil_tmp20 ;
19380 int __cil_tmp21 ;
19381 u16 __cil_tmp22 ;
19382 int __cil_tmp23 ;
19383 int __cil_tmp24 ;
19384 int __cil_tmp25 ;
19385 int __cil_tmp26 ;
19386 int __cil_tmp27 ;
19387 int __cil_tmp28 ;
19388 struct vring_used *__cil_tmp29 ;
19389 struct vring_used_elem *__cil_tmp30 ;
19390 struct vring_used *__cil_tmp31 ;
19391 struct vring_used_elem *__cil_tmp32 ;
19392 struct vring_used *__cil_tmp33 ;
19393 struct vring_used_elem *__cil_tmp34 ;
19394 struct vring_used *__cil_tmp35 ;
19395 struct vring_used_elem *__cil_tmp36 ;
19396 struct vring_used *__cil_tmp37 ;
19397 struct vring_used_elem *__cil_tmp38 ;
19398 int __cil_tmp39 ;
19399 int __cil_tmp40 ;
19400 long __cil_tmp41 ;
19401 struct vring_used *__cil_tmp42 ;
19402 struct vring_used_elem *__cil_tmp43 ;
19403 u16 *__cil_tmp44 ;
19404 struct eventfd_ctx *__cil_tmp45 ;
19405 int __cil_tmp46 ;
19406 int __cil_tmp47 ;
19407 int __cil_tmp48 ;
19408 int __cil_tmp49 ;
19409 struct vring_used *__cil_tmp50 ;
19410 struct vring_used *__cil_tmp51 ;
19411 struct vring_used *__cil_tmp52 ;
19412 struct vring_used *__cil_tmp53 ;
19413 struct vring_used *__cil_tmp54 ;
19414 int __cil_tmp55 ;
19415 int __cil_tmp56 ;
19416 long __cil_tmp57 ;
19417 struct vring_used *__cil_tmp58 ;
19418 __u16 *__cil_tmp59 ;
19419 struct eventfd_ctx *__cil_tmp60 ;
19420 bool __cil_tmp61 ;
19421 int __cil_tmp62 ;
19422 int __cil_tmp63 ;
19423 long __cil_tmp64 ;
19424 struct vring_used *__cil_tmp65 ;
19425 __u16 *__cil_tmp66 ;
19426 struct vring_used *__cil_tmp67 ;
19427 struct vring_used_elem *__cil_tmp68 ;
19428 u16 *__cil_tmp69 ;
19429 void *__cil_tmp70 ;
19430 struct vring_used *__cil_tmp71 ;
19431 void *__cil_tmp72 ;
19432 int __cil_tmp73 ;
19433 u64 __cil_tmp74 ;
19434 u64 __cil_tmp75 ;
19435 u64 __cil_tmp76 ;
19436 u64 __cil_tmp77 ;
19437 struct eventfd_ctx *__cil_tmp78 ;
19438 int __cil_tmp79 ;
19439 int __cil_tmp80 ;
19440 int __cil_tmp81 ;
19441 int __cil_tmp82 ;
19442 struct vring_avail *__cil_tmp83 ;
19443 __u16 *__cil_tmp84 ;
19444 struct __large_struct *__cil_tmp85 ;
19445 struct vring_avail *__cil_tmp86 ;
19446 __u16 *__cil_tmp87 ;
19447 struct __large_struct *__cil_tmp88 ;
19448 struct vring_avail *__cil_tmp89 ;
19449 __u16 *__cil_tmp90 ;
19450 struct __large_struct *__cil_tmp91 ;
19451 struct vring_avail *__cil_tmp92 ;
19452 __u16 *__cil_tmp93 ;
19453 struct __large_struct *__cil_tmp94 ;
19454 int __cil_tmp95 ;
19455 int __cil_tmp96 ;
19456 long __cil_tmp97 ;
19457 struct vring_avail *__cil_tmp98 ;
19458 __u16 *__cil_tmp99 ;
19459 struct eventfd_ctx *__cil_tmp100 ;
19460 u16 __cil_tmp101 ;
19461 int __cil_tmp102 ;
19462 int __cil_tmp103 ;
19463 int __cil_tmp104 ;
19464
19465 {
19466 {
19467#line 1429
19468 __cil_tmp19 = vq->used_flags;
19469#line 1429
19470 __cil_tmp20 = (int )__cil_tmp19;
19471#line 1429
19472 __cil_tmp21 = __cil_tmp20 & 1;
19473#line 1429
19474 if (! __cil_tmp21) {
19475#line 1430
19476 return ((bool )0);
19477 } else {
19478
19479 }
19480 }
19481 {
19482#line 1431
19483 __cil_tmp22 = vq->used_flags;
19484#line 1431
19485 __cil_tmp23 = (int )__cil_tmp22;
19486#line 1431
19487 __cil_tmp24 = __cil_tmp23 & -2;
19488#line 1431
19489 vq->used_flags = (u16 )__cil_tmp24;
19490#line 1432
19491 tmp___9 = vhost_has_feature(dev, 29);
19492 }
19493#line 1432
19494 if (tmp___9) {
19495 {
19496#line 1440
19497 might_fault();
19498#line 1440
19499 __pu_val___0 = vq->avail_idx;
19500 }
19501 {
19502#line 1440
19503 __cil_tmp25 = (int )2UL;
19504#line 1440
19505 if (__cil_tmp25 == 1) {
19506#line 1440
19507 goto case_1;
19508 } else {
19509 {
19510#line 1440
19511 __cil_tmp26 = (int )2UL;
19512#line 1440
19513 if (__cil_tmp26 == 2) {
19514#line 1440
19515 goto case_2;
19516 } else {
19517 {
19518#line 1440
19519 __cil_tmp27 = (int )2UL;
19520#line 1440
19521 if (__cil_tmp27 == 4) {
19522#line 1440
19523 goto case_4;
19524 } else {
19525 {
19526#line 1440
19527 __cil_tmp28 = (int )2UL;
19528#line 1440
19529 if (__cil_tmp28 == 8) {
19530#line 1440
19531 goto case_8;
19532 } else {
19533#line 1440
19534 goto switch_default;
19535#line 1440
19536 if (0) {
19537 case_1:
19538#line 1440
19539 __cil_tmp29 = vq->used;
19540#line 1440
19541 __cil_tmp30 = & __cil_tmp29->ring[vq->num];
19542#line 1440
19543 __asm__ volatile ("call __put_user_"
19544 "1": "=a" (__ret_pu___0): "0" (__pu_val___0), "c" ((u16 *)__cil_tmp30): "ebx");
19545#line 1440
19546 goto switch_break;
19547 case_2:
19548#line 1440
19549 __cil_tmp31 = vq->used;
19550#line 1440
19551 __cil_tmp32 = & __cil_tmp31->ring[vq->num];
19552#line 1440
19553 __asm__ volatile ("call __put_user_"
19554 "2": "=a" (__ret_pu___0): "0" (__pu_val___0), "c" ((u16 *)__cil_tmp32): "ebx");
19555#line 1440
19556 goto switch_break;
19557 case_4:
19558#line 1440
19559 __cil_tmp33 = vq->used;
19560#line 1440
19561 __cil_tmp34 = & __cil_tmp33->ring[vq->num];
19562#line 1440
19563 __asm__ volatile ("call __put_user_"
19564 "4": "=a" (__ret_pu___0): "0" (__pu_val___0), "c" ((u16 *)__cil_tmp34): "ebx");
19565#line 1440
19566 goto switch_break;
19567 case_8:
19568#line 1440
19569 __cil_tmp35 = vq->used;
19570#line 1440
19571 __cil_tmp36 = & __cil_tmp35->ring[vq->num];
19572#line 1440
19573 __asm__ volatile ("call __put_user_"
19574 "8": "=a" (__ret_pu___0): "0" (__pu_val___0), "c" ((u16 *)__cil_tmp36): "ebx");
19575#line 1440
19576 goto switch_break;
19577 switch_default:
19578#line 1440
19579 __cil_tmp37 = vq->used;
19580#line 1440
19581 __cil_tmp38 = & __cil_tmp37->ring[vq->num];
19582#line 1440
19583 __asm__ volatile ("call __put_user_"
19584 "X": "=a" (__ret_pu___0): "0" (__pu_val___0), "c" ((u16 *)__cil_tmp38): "ebx");
19585#line 1440
19586 goto switch_break;
19587 } else {
19588 switch_break: ;
19589 }
19590 }
19591 }
19592 }
19593 }
19594 }
19595 }
19596 }
19597 }
19598#line 1440
19599 r = __ret_pu___0;
19600#line 1441
19601 if (r) {
19602 {
19603#line 1442
19604 while (1) {
19605 while_continue: ;
19606
19607 {
19608#line 1442
19609 while (1) {
19610 while_continue___0: ;
19611 {
19612#line 1442
19613 __cil_tmp39 = ! descriptor___25.enabled;
19614#line 1442
19615 __cil_tmp40 = ! __cil_tmp39;
19616#line 1442
19617 __cil_tmp41 = (long )__cil_tmp40;
19618#line 1442
19619 tmp___8 = __builtin_expect(__cil_tmp41, 0L);
19620 }
19621#line 1442
19622 if (tmp___8) {
19623 {
19624#line 1442
19625 __cil_tmp42 = vq->used;
19626#line 1442
19627 __cil_tmp43 = & __cil_tmp42->ring[vq->num];
19628#line 1442
19629 __cil_tmp44 = (u16 *)__cil_tmp43;
19630#line 1442
19631 __dynamic_pr_debug(& descriptor___25, "Failed to update avail event index at %p: %d\n",
19632 __cil_tmp44, r);
19633 }
19634 } else {
19635
19636 }
19637#line 1442
19638 goto while_break___0;
19639 }
19640 while_break___7: ;
19641 }
19642
19643 while_break___0: ;
19644#line 1442
19645 if (vq->error_ctx) {
19646 {
19647#line 1442
19648 __cil_tmp45 = vq->error_ctx;
19649#line 1442
19650 eventfd_signal(__cil_tmp45, 1);
19651 }
19652 } else {
19653
19654 }
19655#line 1442
19656 goto while_break;
19657 }
19658 while_break___6: ;
19659 }
19660
19661 while_break: ;
19662#line 1444
19663 return ((bool )0);
19664 } else {
19665
19666 }
19667 } else {
19668 {
19669#line 1433
19670 might_fault();
19671#line 1433
19672 __pu_val = vq->used_flags;
19673 }
19674 {
19675#line 1433
19676 __cil_tmp46 = (int )2UL;
19677#line 1433
19678 if (__cil_tmp46 == 1) {
19679#line 1433
19680 goto case_1___0;
19681 } else {
19682 {
19683#line 1433
19684 __cil_tmp47 = (int )2UL;
19685#line 1433
19686 if (__cil_tmp47 == 2) {
19687#line 1433
19688 goto case_2___0;
19689 } else {
19690 {
19691#line 1433
19692 __cil_tmp48 = (int )2UL;
19693#line 1433
19694 if (__cil_tmp48 == 4) {
19695#line 1433
19696 goto case_4___0;
19697 } else {
19698 {
19699#line 1433
19700 __cil_tmp49 = (int )2UL;
19701#line 1433
19702 if (__cil_tmp49 == 8) {
19703#line 1433
19704 goto case_8___0;
19705 } else {
19706#line 1433
19707 goto switch_default___0;
19708#line 1433
19709 if (0) {
19710 case_1___0:
19711#line 1433
19712 __cil_tmp50 = vq->used;
19713#line 1433
19714 __asm__ volatile ("call __put_user_"
19715 "1": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp50->flags): "ebx");
19716#line 1433
19717 goto switch_break___0;
19718 case_2___0:
19719#line 1433
19720 __cil_tmp51 = vq->used;
19721#line 1433
19722 __asm__ volatile ("call __put_user_"
19723 "2": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp51->flags): "ebx");
19724#line 1433
19725 goto switch_break___0;
19726 case_4___0:
19727#line 1433
19728 __cil_tmp52 = vq->used;
19729#line 1433
19730 __asm__ volatile ("call __put_user_"
19731 "4": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp52->flags): "ebx");
19732#line 1433
19733 goto switch_break___0;
19734 case_8___0:
19735#line 1433
19736 __cil_tmp53 = vq->used;
19737#line 1433
19738 __asm__ volatile ("call __put_user_"
19739 "8": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp53->flags): "ebx");
19740#line 1433
19741 goto switch_break___0;
19742 switch_default___0:
19743#line 1433
19744 __cil_tmp54 = vq->used;
19745#line 1433
19746 __asm__ volatile ("call __put_user_"
19747 "X": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp54->flags): "ebx");
19748#line 1433
19749 goto switch_break___0;
19750 } else {
19751 switch_break___0: ;
19752 }
19753 }
19754 }
19755 }
19756 }
19757 }
19758 }
19759 }
19760 }
19761#line 1433
19762 r = __ret_pu;
19763#line 1434
19764 if (r) {
19765 {
19766#line 1435
19767 while (1) {
19768 while_continue___1: ;
19769
19770 {
19771#line 1435
19772 while (1) {
19773 while_continue___2: ;
19774 {
19775#line 1435
19776 __cil_tmp55 = ! descriptor___24.enabled;
19777#line 1435
19778 __cil_tmp56 = ! __cil_tmp55;
19779#line 1435
19780 __cil_tmp57 = (long )__cil_tmp56;
19781#line 1435
19782 tmp___7 = __builtin_expect(__cil_tmp57, 0L);
19783 }
19784#line 1435
19785 if (tmp___7) {
19786 {
19787#line 1435
19788 __cil_tmp58 = vq->used;
19789#line 1435
19790 __cil_tmp59 = & __cil_tmp58->flags;
19791#line 1435
19792 __dynamic_pr_debug(& descriptor___24, "Failed to enable notification at %p: %d\n",
19793 __cil_tmp59, r);
19794 }
19795 } else {
19796
19797 }
19798#line 1435
19799 goto while_break___2;
19800 }
19801 while_break___9: ;
19802 }
19803
19804 while_break___2: ;
19805#line 1435
19806 if (vq->error_ctx) {
19807 {
19808#line 1435
19809 __cil_tmp60 = vq->error_ctx;
19810#line 1435
19811 eventfd_signal(__cil_tmp60, 1);
19812 }
19813 } else {
19814
19815 }
19816#line 1435
19817 goto while_break___1;
19818 }
19819 while_break___8: ;
19820 }
19821
19822 while_break___1: ;
19823#line 1437
19824 return ((bool )0);
19825 } else {
19826
19827 }
19828 }
19829 {
19830#line 1447
19831 __cil_tmp61 = vq->log_used;
19832#line 1447
19833 __cil_tmp62 = ! __cil_tmp61;
19834#line 1447
19835 __cil_tmp63 = ! __cil_tmp62;
19836#line 1447
19837 __cil_tmp64 = (long )__cil_tmp63;
19838#line 1447
19839 tmp___12 = __builtin_expect(__cil_tmp64, 0L);
19840 }
19841#line 1447
19842 if (tmp___12) {
19843 {
19844#line 1450
19845 __asm__ volatile ("": : : "memory");
19846#line 1451
19847 tmp___11 = vhost_has_feature(dev, 29);
19848 }
19849#line 1451
19850 if (tmp___11) {
19851#line 1451
19852 __cil_tmp65 = vq->used;
19853#line 1451
19854 __cil_tmp66 = & __cil_tmp65->flags;
19855#line 1451
19856 used = (void *)__cil_tmp66;
19857 } else {
19858#line 1451
19859 __cil_tmp67 = vq->used;
19860#line 1451
19861 __cil_tmp68 = & __cil_tmp67->ring[vq->num];
19862#line 1451
19863 __cil_tmp69 = (u16 *)__cil_tmp68;
19864#line 1451
19865 used = (void *)__cil_tmp69;
19866 }
19867 {
19868#line 1455
19869 __cil_tmp70 = vq->log_base;
19870#line 1455
19871 __cil_tmp71 = vq->used;
19872#line 1455
19873 __cil_tmp72 = (void *)__cil_tmp71;
19874#line 1455
19875 __cil_tmp73 = used - __cil_tmp72;
19876#line 1455
19877 __cil_tmp74 = (u64 )__cil_tmp73;
19878#line 1455
19879 __cil_tmp75 = vq->log_addr;
19880#line 1455
19881 __cil_tmp76 = __cil_tmp75 + __cil_tmp74;
19882#line 1455
19883 __cil_tmp77 = (u64 )2UL;
19884#line 1455
19885 log_write(__cil_tmp70, __cil_tmp76, __cil_tmp77);
19886 }
19887#line 1458
19888 if (vq->log_ctx) {
19889 {
19890#line 1459
19891 __cil_tmp78 = vq->log_ctx;
19892#line 1459
19893 eventfd_signal(__cil_tmp78, 1);
19894 }
19895 } else {
19896
19897 }
19898 } else {
19899
19900 }
19901#line 1463
19902 __asm__ volatile ("mfence": : : "memory");
19903 {
19904#line 1464
19905 while (1) {
19906 while_continue___3: ;
19907#line 1464
19908 __gu_err = 0;
19909 {
19910#line 1464
19911 __cil_tmp79 = (int )2UL;
19912#line 1464
19913 if (__cil_tmp79 == 1) {
19914#line 1464
19915 goto case_1___1;
19916 } else {
19917 {
19918#line 1464
19919 __cil_tmp80 = (int )2UL;
19920#line 1464
19921 if (__cil_tmp80 == 2) {
19922#line 1464
19923 goto case_2___1;
19924 } else {
19925 {
19926#line 1464
19927 __cil_tmp81 = (int )2UL;
19928#line 1464
19929 if (__cil_tmp81 == 4) {
19930#line 1464
19931 goto case_4___1;
19932 } else {
19933 {
19934#line 1464
19935 __cil_tmp82 = (int )2UL;
19936#line 1464
19937 if (__cil_tmp82 == 8) {
19938#line 1464
19939 goto case_8___1;
19940 } else {
19941#line 1464
19942 goto switch_default___1;
19943#line 1464
19944 if (0) {
19945 case_1___1:
19946#line 1464
19947 __cil_tmp83 = vq->avail;
19948#line 1464
19949 __cil_tmp84 = & __cil_tmp83->idx;
19950#line 1464
19951 __cil_tmp85 = (struct __large_struct *)__cil_tmp84;
19952#line 1464
19953 __asm__ volatile ("1:\tmov"
19954 "b"
19955 " %2,%"
19956 "b"
19957 "1\n"
19958 "2:\n"
19959 ".section .fixup,\"ax\"\n"
19960 "3:\tmov %3,%0\n"
19961 "\txor"
19962 "b"
19963 " %"
19964 "b"
19965 "1,%"
19966 "b"
19967 "1\n"
19968 "\tjmp 2b\n"
19969 ".previous\n"
19970 " .section __ex_table,\"a\"\n"
19971 " "
19972 ".balign 8"
19973 " "
19974 "\n"
19975 " "
19976 ".quad"
19977 " "
19978 "1b"
19979 ","
19980 "3b"
19981 "\n"
19982 " .previous\n": "=r" (__gu_err), "=q" (__gu_val): "m" (*__cil_tmp85),
19983 "i" (-14), "0" (__gu_err));
19984#line 1464
19985 goto switch_break___1;
19986 case_2___1:
19987#line 1464
19988 __cil_tmp86 = vq->avail;
19989#line 1464
19990 __cil_tmp87 = & __cil_tmp86->idx;
19991#line 1464
19992 __cil_tmp88 = (struct __large_struct *)__cil_tmp87;
19993#line 1464
19994 __asm__ volatile ("1:\tmov"
19995 "w"
19996 " %2,%"
19997 "w"
19998 "1\n"
19999 "2:\n"
20000 ".section .fixup,\"ax\"\n"
20001 "3:\tmov %3,%0\n"
20002 "\txor"
20003 "w"
20004 " %"
20005 "w"
20006 "1,%"
20007 "w"
20008 "1\n"
20009 "\tjmp 2b\n"
20010 ".previous\n"
20011 " .section __ex_table,\"a\"\n"
20012 " "
20013 ".balign 8"
20014 " "
20015 "\n"
20016 " "
20017 ".quad"
20018 " "
20019 "1b"
20020 ","
20021 "3b"
20022 "\n"
20023 " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp88),
20024 "i" (-14), "0" (__gu_err));
20025#line 1464
20026 goto switch_break___1;
20027 case_4___1:
20028#line 1464
20029 __cil_tmp89 = vq->avail;
20030#line 1464
20031 __cil_tmp90 = & __cil_tmp89->idx;
20032#line 1464
20033 __cil_tmp91 = (struct __large_struct *)__cil_tmp90;
20034#line 1464
20035 __asm__ volatile ("1:\tmov"
20036 "l"
20037 " %2,%"
20038 "k"
20039 "1\n"
20040 "2:\n"
20041 ".section .fixup,\"ax\"\n"
20042 "3:\tmov %3,%0\n"
20043 "\txor"
20044 "l"
20045 " %"
20046 "k"
20047 "1,%"
20048 "k"
20049 "1\n"
20050 "\tjmp 2b\n"
20051 ".previous\n"
20052 " .section __ex_table,\"a\"\n"
20053 " "
20054 ".balign 8"
20055 " "
20056 "\n"
20057 " "
20058 ".quad"
20059 " "
20060 "1b"
20061 ","
20062 "3b"
20063 "\n"
20064 " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp91),
20065 "i" (-14), "0" (__gu_err));
20066#line 1464
20067 goto switch_break___1;
20068 case_8___1:
20069#line 1464
20070 __cil_tmp92 = vq->avail;
20071#line 1464
20072 __cil_tmp93 = & __cil_tmp92->idx;
20073#line 1464
20074 __cil_tmp94 = (struct __large_struct *)__cil_tmp93;
20075#line 1464
20076 __asm__ volatile ("1:\tmov"
20077 "q"
20078 " %2,%"
20079 ""
20080 "1\n"
20081 "2:\n"
20082 ".section .fixup,\"ax\"\n"
20083 "3:\tmov %3,%0\n"
20084 "\txor"
20085 "q"
20086 " %"
20087 ""
20088 "1,%"
20089 ""
20090 "1\n"
20091 "\tjmp 2b\n"
20092 ".previous\n"
20093 " .section __ex_table,\"a\"\n"
20094 " "
20095 ".balign 8"
20096 " "
20097 "\n"
20098 " "
20099 ".quad"
20100 " "
20101 "1b"
20102 ","
20103 "3b"
20104 "\n"
20105 " .previous\n": "=r" (__gu_err), "=r" (__gu_val): "m" (*__cil_tmp94),
20106 "i" (-14), "0" (__gu_err));
20107#line 1464
20108 goto switch_break___1;
20109 switch_default___1:
20110 {
20111#line 1464
20112 tmp___13 = __get_user_bad();
20113#line 1464
20114 __gu_val = (unsigned long )tmp___13;
20115 }
20116 } else {
20117 switch_break___1: ;
20118 }
20119 }
20120 }
20121 }
20122 }
20123 }
20124 }
20125 }
20126 }
20127#line 1464
20128 goto while_break___3;
20129 }
20130 while_break___10: ;
20131 }
20132
20133 while_break___3:
20134#line 1464
20135 avail_idx = (__u16 )__gu_val;
20136#line 1464
20137 r = __gu_err;
20138#line 1465
20139 if (r) {
20140 {
20141#line 1466
20142 while (1) {
20143 while_continue___4: ;
20144
20145 {
20146#line 1466
20147 while (1) {
20148 while_continue___5: ;
20149 {
20150#line 1466
20151 __cil_tmp95 = ! descriptor___26.enabled;
20152#line 1466
20153 __cil_tmp96 = ! __cil_tmp95;
20154#line 1466
20155 __cil_tmp97 = (long )__cil_tmp96;
20156#line 1466
20157 tmp___14 = __builtin_expect(__cil_tmp97, 0L);
20158 }
20159#line 1466
20160 if (tmp___14) {
20161 {
20162#line 1466
20163 __cil_tmp98 = vq->avail;
20164#line 1466
20165 __cil_tmp99 = & __cil_tmp98->idx;
20166#line 1466
20167 __dynamic_pr_debug(& descriptor___26, "Failed to check avail idx at %p: %d\n",
20168 __cil_tmp99, r);
20169 }
20170 } else {
20171
20172 }
20173#line 1466
20174 goto while_break___5;
20175 }
20176 while_break___12: ;
20177 }
20178
20179 while_break___5: ;
20180#line 1466
20181 if (vq->error_ctx) {
20182 {
20183#line 1466
20184 __cil_tmp100 = vq->error_ctx;
20185#line 1466
20186 eventfd_signal(__cil_tmp100, 1);
20187 }
20188 } else {
20189
20190 }
20191#line 1466
20192 goto while_break___4;
20193 }
20194 while_break___11: ;
20195 }
20196
20197 while_break___4: ;
20198#line 1468
20199 return ((bool )0);
20200 } else {
20201
20202 }
20203 {
20204#line 1471
20205 __cil_tmp101 = vq->avail_idx;
20206#line 1471
20207 __cil_tmp102 = (int )__cil_tmp101;
20208#line 1471
20209 __cil_tmp103 = (int )avail_idx;
20210#line 1471
20211 __cil_tmp104 = __cil_tmp103 != __cil_tmp102;
20212#line 1471
20213 return ((bool )__cil_tmp104);
20214 }
20215}
20216}
20217#line 1485 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
20218static struct _ddebug descriptor___27 __attribute__((__used__, __section__("__verbose"),
20219__aligned__(8))) = {"vhost_net", "vhost_disable_notify", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c",
20220 "Failed to enable notification at %p: %d\n", 1486U, 0U, (char)0};
20221#line 1475 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/vhost.c.common.c"
20222void vhost_disable_notify(struct vhost_dev *dev , struct vhost_virtqueue *vq )
20223{ int r ;
20224 int __ret_pu ;
20225 __u16 __pu_val ;
20226 long tmp___7 ;
20227 int tmp___8 ;
20228 u16 __cil_tmp8 ;
20229 int __cil_tmp9 ;
20230 u16 __cil_tmp10 ;
20231 int __cil_tmp11 ;
20232 int __cil_tmp12 ;
20233 int __cil_tmp13 ;
20234 int __cil_tmp14 ;
20235 int __cil_tmp15 ;
20236 int __cil_tmp16 ;
20237 struct vring_used *__cil_tmp17 ;
20238 struct vring_used *__cil_tmp18 ;
20239 struct vring_used *__cil_tmp19 ;
20240 struct vring_used *__cil_tmp20 ;
20241 struct vring_used *__cil_tmp21 ;
20242 int __cil_tmp22 ;
20243 int __cil_tmp23 ;
20244 long __cil_tmp24 ;
20245 struct vring_used *__cil_tmp25 ;
20246 __u16 *__cil_tmp26 ;
20247 struct eventfd_ctx *__cil_tmp27 ;
20248
20249 {
20250 {
20251#line 1479
20252 __cil_tmp8 = vq->used_flags;
20253#line 1479
20254 __cil_tmp9 = (int )__cil_tmp8;
20255#line 1479
20256 if (__cil_tmp9 & 1) {
20257#line 1480
20258 return;
20259 } else {
20260
20261 }
20262 }
20263 {
20264#line 1481
20265 __cil_tmp10 = vq->used_flags;
20266#line 1481
20267 __cil_tmp11 = (int )__cil_tmp10;
20268#line 1481
20269 __cil_tmp12 = __cil_tmp11 | 1;
20270#line 1481
20271 vq->used_flags = (u16 )__cil_tmp12;
20272#line 1482
20273 tmp___8 = vhost_has_feature(dev, 29);
20274 }
20275#line 1482
20276 if (tmp___8) {
20277
20278 } else {
20279 {
20280#line 1483
20281 might_fault();
20282#line 1483
20283 __pu_val = vq->used_flags;
20284 }
20285 {
20286#line 1483
20287 __cil_tmp13 = (int )2UL;
20288#line 1483
20289 if (__cil_tmp13 == 1) {
20290#line 1483
20291 goto case_1;
20292 } else {
20293 {
20294#line 1483
20295 __cil_tmp14 = (int )2UL;
20296#line 1483
20297 if (__cil_tmp14 == 2) {
20298#line 1483
20299 goto case_2;
20300 } else {
20301 {
20302#line 1483
20303 __cil_tmp15 = (int )2UL;
20304#line 1483
20305 if (__cil_tmp15 == 4) {
20306#line 1483
20307 goto case_4;
20308 } else {
20309 {
20310#line 1483
20311 __cil_tmp16 = (int )2UL;
20312#line 1483
20313 if (__cil_tmp16 == 8) {
20314#line 1483
20315 goto case_8;
20316 } else {
20317#line 1483
20318 goto switch_default;
20319#line 1483
20320 if (0) {
20321 case_1:
20322#line 1483
20323 __cil_tmp17 = vq->used;
20324#line 1483
20325 __asm__ volatile ("call __put_user_"
20326 "1": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp17->flags): "ebx");
20327#line 1483
20328 goto switch_break;
20329 case_2:
20330#line 1483
20331 __cil_tmp18 = vq->used;
20332#line 1483
20333 __asm__ volatile ("call __put_user_"
20334 "2": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp18->flags): "ebx");
20335#line 1483
20336 goto switch_break;
20337 case_4:
20338#line 1483
20339 __cil_tmp19 = vq->used;
20340#line 1483
20341 __asm__ volatile ("call __put_user_"
20342 "4": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp19->flags): "ebx");
20343#line 1483
20344 goto switch_break;
20345 case_8:
20346#line 1483
20347 __cil_tmp20 = vq->used;
20348#line 1483
20349 __asm__ volatile ("call __put_user_"
20350 "8": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp20->flags): "ebx");
20351#line 1483
20352 goto switch_break;
20353 switch_default:
20354#line 1483
20355 __cil_tmp21 = vq->used;
20356#line 1483
20357 __asm__ volatile ("call __put_user_"
20358 "X": "=a" (__ret_pu): "0" (__pu_val), "c" (& __cil_tmp21->flags): "ebx");
20359#line 1483
20360 goto switch_break;
20361 } else {
20362 switch_break: ;
20363 }
20364 }
20365 }
20366 }
20367 }
20368 }
20369 }
20370 }
20371 }
20372#line 1483
20373 r = __ret_pu;
20374#line 1484
20375 if (r) {
20376 {
20377#line 1485
20378 while (1) {
20379 while_continue: ;
20380
20381 {
20382#line 1485
20383 while (1) {
20384 while_continue___0: ;
20385 {
20386#line 1485
20387 __cil_tmp22 = ! descriptor___27.enabled;
20388#line 1485
20389 __cil_tmp23 = ! __cil_tmp22;
20390#line 1485
20391 __cil_tmp24 = (long )__cil_tmp23;
20392#line 1485
20393 tmp___7 = __builtin_expect(__cil_tmp24, 0L);
20394 }
20395#line 1485
20396 if (tmp___7) {
20397 {
20398#line 1485
20399 __cil_tmp25 = vq->used;
20400#line 1485
20401 __cil_tmp26 = & __cil_tmp25->flags;
20402#line 1485
20403 __dynamic_pr_debug(& descriptor___27, "Failed to enable notification at %p: %d\n",
20404 __cil_tmp26, r);
20405 }
20406 } else {
20407
20408 }
20409#line 1485
20410 goto while_break___0;
20411 }
20412 while_break___2: ;
20413 }
20414
20415 while_break___0: ;
20416#line 1485
20417 if (vq->error_ctx) {
20418 {
20419#line 1485
20420 __cil_tmp27 = vq->error_ctx;
20421#line 1485
20422 eventfd_signal(__cil_tmp27, 1);
20423 }
20424 } else {
20425
20426 }
20427#line 1485
20428 goto while_break;
20429 }
20430 while_break___1: ;
20431 }
20432
20433 while_break: ;
20434 } else {
20435
20436 }
20437 }
20438#line 1488
20439 return;
20440}
20441}
20442#line 5 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/engine-blast-assert.h"
20443void ldv_blast_assert(void)
20444{
20445
20446 {
20447 ERROR:
20448#line 6
20449 goto ERROR;
20450}
20451}
20452#line 7 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/engine-blast.h"
20453extern void *ldv_undefined_pointer(void) ;
20454#line 1332 "include/linux/usb.h"
20455struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags ) __attribute__((__ldv_model__)) ;
20456#line 1333
20457void usb_free_urb(struct urb *urb ) __attribute__((__ldv_model__)) ;
20458#line 1377
20459void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
20460 dma_addr_t *dma ) __attribute__((__ldv_model__)) ;
20461#line 1379
20462void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma ) __attribute__((__ldv_model__)) ;
20463#line 10 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20464void ldv_assume_stop(void) __attribute__((__ldv_model_inline__)) ;
20465#line 17
20466void ldv_check_final_state(void) __attribute__((__ldv_model__)) ;
20467#line 22
20468void ldv_assume_stop(void) __attribute__((__ldv_model_inline__)) ;
20469#line 22 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20470void ldv_assume_stop(void)
20471{
20472
20473 {
20474 LDV_STOP:
20475#line 23
20476 goto LDV_STOP;
20477}
20478}
20479#line 29 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20480int ldv_urb_state = 0;
20481#line 31 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20482int ldv_coherent_state = 0;
20483#line 62
20484void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
20485 dma_addr_t *dma ) __attribute__((__ldv_model__)) ;
20486#line 62 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20487void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
20488 dma_addr_t *dma )
20489{ void *arbitrary_memory ;
20490 void *tmp___7 ;
20491
20492 {
20493 {
20494#line 64
20495 while (1) {
20496 while_continue: ;
20497 {
20498#line 64
20499 tmp___7 = ldv_undefined_pointer();
20500#line 64
20501 arbitrary_memory = tmp___7;
20502 }
20503#line 64
20504 if (! arbitrary_memory) {
20505#line 64
20506 return ((void *)0);
20507 } else {
20508
20509 }
20510#line 64
20511 ldv_coherent_state = ldv_coherent_state + 1;
20512#line 64
20513 return (arbitrary_memory);
20514#line 64
20515 goto while_break;
20516 }
20517 while_break___0: ;
20518 }
20519
20520 while_break: ;
20521#line 65
20522 return ((void *)0);
20523}
20524}
20525#line 68
20526void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma ) __attribute__((__ldv_model__)) ;
20527#line 68 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20528void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma )
20529{ void *__cil_tmp5 ;
20530 unsigned long __cil_tmp6 ;
20531 unsigned long __cil_tmp7 ;
20532 int __cil_tmp8 ;
20533
20534 {
20535 {
20536#line 70
20537 while (1) {
20538 while_continue: ;
20539
20540 {
20541#line 70
20542 __cil_tmp5 = (void *)0;
20543#line 70
20544 __cil_tmp6 = (unsigned long )__cil_tmp5;
20545#line 70
20546 __cil_tmp7 = (unsigned long )addr;
20547#line 70
20548 __cil_tmp8 = __cil_tmp7 != __cil_tmp6;
20549#line 70
20550 if (! __cil_tmp8) {
20551 {
20552#line 70
20553 ldv_assume_stop();
20554 }
20555 } else {
20556
20557 }
20558 }
20559#line 70
20560 if (addr) {
20561#line 70
20562 if (ldv_coherent_state >= 1) {
20563
20564 } else {
20565 {
20566#line 70
20567 ldv_blast_assert();
20568 }
20569 }
20570#line 70
20571 ldv_coherent_state = ldv_coherent_state - 1;
20572 } else {
20573
20574 }
20575#line 70
20576 goto while_break;
20577 }
20578 while_break___0: ;
20579 }
20580
20581 while_break: ;
20582#line 71
20583 return;
20584}
20585}
20586#line 74
20587struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags ) __attribute__((__ldv_model__)) ;
20588#line 74 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20589struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags )
20590{ void *arbitrary_memory ;
20591 void *tmp___7 ;
20592 void *__cil_tmp5 ;
20593
20594 {
20595 {
20596#line 75
20597 while (1) {
20598 while_continue: ;
20599 {
20600#line 75
20601 tmp___7 = ldv_undefined_pointer();
20602#line 75
20603 arbitrary_memory = tmp___7;
20604 }
20605#line 75
20606 if (! arbitrary_memory) {
20607 {
20608#line 75
20609 __cil_tmp5 = (void *)0;
20610#line 75
20611 return ((struct urb *)__cil_tmp5);
20612 }
20613 } else {
20614
20615 }
20616#line 75
20617 ldv_urb_state = ldv_urb_state + 1;
20618#line 75
20619 return ((struct urb *)arbitrary_memory);
20620#line 75
20621 goto while_break;
20622 }
20623 while_break___0: ;
20624 }
20625
20626 while_break: ;
20627#line 76
20628 return ((struct urb *)0);
20629}
20630}
20631#line 79
20632void usb_free_urb(struct urb *urb ) __attribute__((__ldv_model__)) ;
20633#line 79 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20634void usb_free_urb(struct urb *urb )
20635{ struct urb *__cil_tmp2 ;
20636 unsigned long __cil_tmp3 ;
20637 unsigned long __cil_tmp4 ;
20638 int __cil_tmp5 ;
20639
20640 {
20641 {
20642#line 80
20643 while (1) {
20644 while_continue: ;
20645
20646 {
20647#line 80
20648 __cil_tmp2 = (struct urb *)0;
20649#line 80
20650 __cil_tmp3 = (unsigned long )__cil_tmp2;
20651#line 80
20652 __cil_tmp4 = (unsigned long )urb;
20653#line 80
20654 __cil_tmp5 = __cil_tmp4 != __cil_tmp3;
20655#line 80
20656 if (! __cil_tmp5) {
20657 {
20658#line 80
20659 ldv_assume_stop();
20660 }
20661 } else {
20662
20663 }
20664 }
20665#line 80
20666 if (urb) {
20667#line 80
20668 if (ldv_urb_state >= 1) {
20669
20670 } else {
20671 {
20672#line 80
20673 ldv_blast_assert();
20674 }
20675 }
20676#line 80
20677 ldv_urb_state = ldv_urb_state - 1;
20678 } else {
20679
20680 }
20681#line 80
20682 goto while_break;
20683 }
20684 while_break___0: ;
20685 }
20686
20687 while_break: ;
20688#line 81
20689 return;
20690}
20691}
20692#line 84
20693void ldv_check_final_state(void) __attribute__((__ldv_model__)) ;
20694#line 84 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
20695void ldv_check_final_state(void)
20696{
20697
20698 {
20699#line 86
20700 if (ldv_urb_state == 0) {
20701
20702 } else {
20703 {
20704#line 86
20705 ldv_blast_assert();
20706 }
20707 }
20708#line 88
20709 if (ldv_coherent_state == 0) {
20710
20711 } else {
20712 {
20713#line 88
20714 ldv_blast_assert();
20715 }
20716 }
20717#line 89
20718 return;
20719}
20720}
20721#line 22 "include/linux/err.h"
20722__inline static void * __attribute__((__warn_unused_result__)) ERR_PTR(long error )
20723{
20724
20725 {
20726#line 24
20727 return ((void *)error);
20728}
20729}
20730#line 23 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
20731__inline static int atomic_read(atomic_t const *v )
20732{ int const *__cil_tmp2 ;
20733 int volatile *__cil_tmp3 ;
20734 int volatile __cil_tmp4 ;
20735
20736 {
20737 {
20738#line 25
20739 __cil_tmp2 = & v->counter;
20740#line 25
20741 __cil_tmp3 = (int volatile *)__cil_tmp2;
20742#line 25
20743 __cil_tmp4 = *__cil_tmp3;
20744#line 25
20745 return ((int )__cil_tmp4);
20746 }
20747}
20748}
20749#line 43 "include/linux/uio.h"
20750__inline static size_t iov_length(struct iovec const *iov , unsigned long nr_segs )
20751{ unsigned long seg ;
20752 size_t ret ;
20753 struct iovec const *__cil_tmp5 ;
20754 __kernel_size_t __cil_tmp6 ;
20755 size_t __cil_tmp7 ;
20756
20757 {
20758#line 46
20759 ret = (size_t )0;
20760#line 48
20761 seg = 0UL;
20762 {
20763#line 48
20764 while (1) {
20765 while_continue: ;
20766
20767#line 48
20768 if (seg < nr_segs) {
20769
20770 } else {
20771#line 48
20772 goto while_break;
20773 }
20774#line 49
20775 __cil_tmp5 = iov + seg;
20776#line 49
20777 __cil_tmp6 = __cil_tmp5->iov_len;
20778#line 49
20779 __cil_tmp7 = (size_t )__cil_tmp6;
20780#line 49
20781 ret = ret + __cil_tmp7;
20782#line 48
20783 seg = seg + 1UL;
20784 }
20785 while_break___0: ;
20786 }
20787
20788 while_break: ;
20789#line 50
20790 return (ret);
20791}
20792}
20793#line 327 "include/linux/socket.h"
20794extern int memcpy_toiovecend(struct iovec const *v , unsigned char *kdata , int offset ,
20795 int len ) ;
20796#line 2336 "include/linux/fs.h"
20797extern loff_t noop_llseek(struct file *file , loff_t offset , int origin ) ;
20798#line 198 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
20799__inline static void *compat_ptr(compat_uptr_t uptr )
20800{ unsigned long __cil_tmp2 ;
20801
20802 {
20803 {
20804#line 200
20805 __cil_tmp2 = (unsigned long )uptr;
20806#line 200
20807 return ((void *)__cil_tmp2);
20808 }
20809}
20810}
20811#line 30 "include/linux/file.h"
20812extern struct file *fget(unsigned int fd ) ;
20813#line 79 "include/linux/module.h"
20814int init_module(void) ;
20815#line 80
20816void cleanup_module(void) ;
20817#line 99
20818extern struct module __this_module ;
20819#line 248 "include/linux/net.h"
20820extern struct socket *sockfd_lookup(int fd , int *err ) ;
20821#line 808 "include/linux/skbuff.h"
20822__inline static struct sk_buff *skb_peek(struct sk_buff_head *list_ )
20823{ struct sk_buff *list ;
20824 struct sk_buff *__cil_tmp3 ;
20825 struct sk_buff *__cil_tmp4 ;
20826 unsigned long __cil_tmp5 ;
20827 unsigned long __cil_tmp6 ;
20828 void *__cil_tmp7 ;
20829
20830 {
20831#line 810
20832 __cil_tmp3 = (struct sk_buff *)list_;
20833#line 810
20834 list = __cil_tmp3->next;
20835 {
20836#line 811
20837 __cil_tmp4 = (struct sk_buff *)list_;
20838#line 811
20839 __cil_tmp5 = (unsigned long )__cil_tmp4;
20840#line 811
20841 __cil_tmp6 = (unsigned long )list;
20842#line 811
20843 if (__cil_tmp6 == __cil_tmp5) {
20844#line 812
20845 __cil_tmp7 = (void *)0;
20846#line 812
20847 list = (struct sk_buff *)__cil_tmp7;
20848 } else {
20849
20850 }
20851 }
20852#line 813
20853 return (list);
20854}
20855}
20856#line 58 "include/linux/miscdevice.h"
20857extern int misc_register(struct miscdevice *misc ) ;
20858#line 59
20859extern int misc_deregister(struct miscdevice *misc ) ;
20860#line 96 "include/linux/if_tun.h"
20861extern struct socket *tun_get_socket(struct file * ) ;
20862#line 12 "include/linux/if_macvlan.h"
20863extern struct socket *macvtap_get_socket(struct file * ) ;
20864#line 59 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
20865static int move_iovec_hdr(struct iovec *from , struct iovec *to , size_t len , int iov_count )
20866{ int seg ;
20867 size_t size ;
20868 __kernel_size_t _min1 ;
20869 size_t _min2 ;
20870 __kernel_size_t tmp___7 ;
20871 __kernel_size_t __cil_tmp10 ;
20872 void *__cil_tmp11 ;
20873
20874 {
20875#line 62
20876 seg = 0;
20877 {
20878#line 65
20879 while (1) {
20880 while_continue: ;
20881
20882#line 65
20883 if (len) {
20884#line 65
20885 if (seg < iov_count) {
20886
20887 } else {
20888#line 65
20889 goto while_break;
20890 }
20891 } else {
20892#line 65
20893 goto while_break;
20894 }
20895#line 66
20896 _min1 = from->iov_len;
20897#line 66
20898 _min2 = len;
20899#line 66
20900 if (_min1 < _min2) {
20901#line 66
20902 tmp___7 = _min1;
20903 } else {
20904#line 66
20905 tmp___7 = _min2;
20906 }
20907#line 66
20908 size = tmp___7;
20909#line 67
20910 to->iov_base = from->iov_base;
20911#line 68
20912 to->iov_len = size;
20913#line 69
20914 __cil_tmp10 = from->iov_len;
20915#line 69
20916 from->iov_len = __cil_tmp10 - size;
20917#line 70
20918 __cil_tmp11 = from->iov_base;
20919#line 70
20920 from->iov_base = __cil_tmp11 + size;
20921#line 71
20922 len = len - size;
20923#line 72
20924 from = from + 1;
20925#line 73
20926 to = to + 1;
20927#line 74
20928 seg = seg + 1;
20929 }
20930 while_break___0: ;
20931 }
20932
20933 while_break: ;
20934#line 76
20935 return (seg);
20936}
20937}
20938#line 79 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
20939static void copy_iovec_hdr(struct iovec const *from , struct iovec *to , size_t len ,
20940 int iovcount )
20941{ int seg ;
20942 size_t size ;
20943 __kernel_size_t _min1 ;
20944 size_t _min2 ;
20945 __kernel_size_t tmp___7 ;
20946 __kernel_size_t __cil_tmp10 ;
20947 void *__cil_tmp11 ;
20948
20949 {
20950#line 82
20951 seg = 0;
20952 {
20953#line 85
20954 while (1) {
20955 while_continue: ;
20956
20957#line 85
20958 if (len) {
20959#line 85
20960 if (seg < iovcount) {
20961
20962 } else {
20963#line 85
20964 goto while_break;
20965 }
20966 } else {
20967#line 85
20968 goto while_break;
20969 }
20970#line 86
20971 __cil_tmp10 = from->iov_len;
20972#line 86
20973 _min1 = (__kernel_size_t )__cil_tmp10;
20974#line 86
20975 _min2 = len;
20976#line 86
20977 if (_min1 < _min2) {
20978#line 86
20979 tmp___7 = _min1;
20980 } else {
20981#line 86
20982 tmp___7 = _min2;
20983 }
20984#line 86
20985 size = tmp___7;
20986#line 87
20987 __cil_tmp11 = from->iov_base;
20988#line 87
20989 to->iov_base = (void *)__cil_tmp11;
20990#line 88
20991 to->iov_len = size;
20992#line 89
20993 len = len - size;
20994#line 90
20995 from = from + 1;
20996#line 91
20997 to = to + 1;
20998#line 92
20999 seg = seg + 1;
21000 }
21001 while_break___0: ;
21002 }
21003
21004 while_break: ;
21005#line 94
21006 return;
21007}
21008}
21009#line 97 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21010static void tx_poll_stop(struct vhost_net *net )
21011{ long tmp___7 ;
21012 enum vhost_net_poll_state __cil_tmp3 ;
21013 unsigned int __cil_tmp4 ;
21014 int __cil_tmp5 ;
21015 int __cil_tmp6 ;
21016 int __cil_tmp7 ;
21017 long __cil_tmp8 ;
21018 struct vhost_poll *__cil_tmp9 ;
21019 struct vhost_poll *__cil_tmp10 ;
21020
21021 {
21022 {
21023#line 99
21024 __cil_tmp3 = net->tx_poll_state;
21025#line 99
21026 __cil_tmp4 = (unsigned int )__cil_tmp3;
21027#line 99
21028 __cil_tmp5 = __cil_tmp4 != 1U;
21029#line 99
21030 __cil_tmp6 = ! __cil_tmp5;
21031#line 99
21032 __cil_tmp7 = ! __cil_tmp6;
21033#line 99
21034 __cil_tmp8 = (long )__cil_tmp7;
21035#line 99
21036 tmp___7 = __builtin_expect(__cil_tmp8, 1L);
21037 }
21038#line 99
21039 if (tmp___7) {
21040#line 100
21041 return;
21042 } else {
21043
21044 }
21045 {
21046#line 101
21047 __cil_tmp9 = & net->poll[0];
21048#line 101
21049 __cil_tmp10 = __cil_tmp9 + 1;
21050#line 101
21051 vhost_poll_stop(__cil_tmp10);
21052#line 102
21053 net->tx_poll_state = (enum vhost_net_poll_state )2;
21054 }
21055#line 103
21056 return;
21057}
21058}
21059#line 106 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21060static void tx_poll_start(struct vhost_net *net , struct socket *sock )
21061{ long tmp___7 ;
21062 enum vhost_net_poll_state __cil_tmp4 ;
21063 unsigned int __cil_tmp5 ;
21064 int __cil_tmp6 ;
21065 int __cil_tmp7 ;
21066 int __cil_tmp8 ;
21067 long __cil_tmp9 ;
21068 struct vhost_poll *__cil_tmp10 ;
21069 struct vhost_poll *__cil_tmp11 ;
21070 struct file *__cil_tmp12 ;
21071
21072 {
21073 {
21074#line 108
21075 __cil_tmp4 = net->tx_poll_state;
21076#line 108
21077 __cil_tmp5 = (unsigned int )__cil_tmp4;
21078#line 108
21079 __cil_tmp6 = __cil_tmp5 != 2U;
21080#line 108
21081 __cil_tmp7 = ! __cil_tmp6;
21082#line 108
21083 __cil_tmp8 = ! __cil_tmp7;
21084#line 108
21085 __cil_tmp9 = (long )__cil_tmp8;
21086#line 108
21087 tmp___7 = __builtin_expect(__cil_tmp9, 0L);
21088 }
21089#line 108
21090 if (tmp___7) {
21091#line 109
21092 return;
21093 } else {
21094
21095 }
21096 {
21097#line 110
21098 __cil_tmp10 = & net->poll[0];
21099#line 110
21100 __cil_tmp11 = __cil_tmp10 + 1;
21101#line 110
21102 __cil_tmp12 = sock->file;
21103#line 110
21104 vhost_poll_start(__cil_tmp11, __cil_tmp12);
21105#line 111
21106 net->tx_poll_state = (enum vhost_net_poll_state )1;
21107 }
21108#line 112
21109 return;
21110}
21111}
21112#line 135 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21113static bool __warned___29 ;
21114#line 177
21115static void handle_tx(struct vhost_net *net ) ;
21116#line 177 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21117static struct _ddebug descriptor___28 __attribute__((__used__, __section__("__verbose"),
21118__aligned__(8))) = {"vhost_net", "handle_tx", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
21119 "Unexpected descriptor format for TX: out %d, int %d\n", 178U, 0U, (char)0};
21120#line 187 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21121static struct _ddebug descriptor___29 __attribute__((__used__, __section__("__verbose"),
21122__aligned__(8))) = {"vhost_net", "handle_tx", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
21123 "Unexpected header len for TX: %zd expected %zd\n", 189U, 0U, (char)0};
21124#line 200 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21125static struct _ddebug descriptor___30 __attribute__((__used__, __section__("__verbose"),
21126__aligned__(8))) = {"vhost_net", "handle_tx", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
21127 "Truncated TX packet: len %d != %zd\n", 201U, 0U, (char)0};
21128#line 116 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21129static void handle_tx(struct vhost_net *net )
21130{ struct vhost_virtqueue *vq ;
21131 unsigned int out ;
21132 unsigned int in ;
21133 unsigned int s ;
21134 int head ;
21135 struct msghdr msg ;
21136 size_t len ;
21137 size_t total_len ;
21138 int err ;
21139 int wmem ;
21140 size_t hdr_size ;
21141 struct socket *sock ;
21142 void *_________p1 ;
21143 int tmp___7 ;
21144 int tmp___8 ;
21145 long tmp___9 ;
21146 bool tmp___10 ;
21147 int tmp___11 ;
21148 long tmp___12 ;
21149 long tmp___13 ;
21150 int tmp___14 ;
21151 size_t tmp___15 ;
21152 long tmp___16 ;
21153 long tmp___17 ;
21154 long tmp___18 ;
21155 long tmp___19 ;
21156 struct vhost_virtqueue *__cil_tmp28 ;
21157 void **__cil_tmp29 ;
21158 void * volatile *__cil_tmp30 ;
21159 void * volatile __cil_tmp31 ;
21160 struct sock *__cil_tmp32 ;
21161 atomic_t *__cil_tmp33 ;
21162 atomic_t const *__cil_tmp34 ;
21163 struct sock *__cil_tmp35 ;
21164 int __cil_tmp36 ;
21165 struct mutex *__cil_tmp37 ;
21166 struct mutex *__cil_tmp38 ;
21167 struct mutex *__cil_tmp39 ;
21168 struct vhost_dev *__cil_tmp40 ;
21169 struct sock *__cil_tmp41 ;
21170 int __cil_tmp42 ;
21171 int __cil_tmp43 ;
21172 struct vhost_dev *__cil_tmp44 ;
21173 struct iovec *__cil_tmp45 ;
21174 unsigned long __cil_tmp46 ;
21175 unsigned long __cil_tmp47 ;
21176 unsigned int __cil_tmp48 ;
21177 void *__cil_tmp49 ;
21178 struct vhost_log *__cil_tmp50 ;
21179 void *__cil_tmp51 ;
21180 unsigned int *__cil_tmp52 ;
21181 int __cil_tmp53 ;
21182 int __cil_tmp54 ;
21183 int __cil_tmp55 ;
21184 long __cil_tmp56 ;
21185 unsigned int __cil_tmp57 ;
21186 unsigned int __cil_tmp58 ;
21187 struct sock *__cil_tmp59 ;
21188 atomic_t *__cil_tmp60 ;
21189 atomic_t const *__cil_tmp61 ;
21190 struct sock *__cil_tmp62 ;
21191 int __cil_tmp63 ;
21192 int __cil_tmp64 ;
21193 int __cil_tmp65 ;
21194 unsigned long *__cil_tmp66 ;
21195 unsigned long volatile *__cil_tmp67 ;
21196 struct vhost_dev *__cil_tmp68 ;
21197 long __cil_tmp69 ;
21198 struct vhost_dev *__cil_tmp70 ;
21199 int __cil_tmp71 ;
21200 int __cil_tmp72 ;
21201 long __cil_tmp73 ;
21202 struct eventfd_ctx *__cil_tmp74 ;
21203 struct iovec *__cil_tmp75 ;
21204 struct iovec *__cil_tmp76 ;
21205 int __cil_tmp77 ;
21206 struct iovec *__cil_tmp78 ;
21207 struct iovec const *__cil_tmp79 ;
21208 unsigned long __cil_tmp80 ;
21209 int __cil_tmp81 ;
21210 int __cil_tmp82 ;
21211 long __cil_tmp83 ;
21212 struct iovec *__cil_tmp84 ;
21213 struct iovec const *__cil_tmp85 ;
21214 unsigned long __cil_tmp86 ;
21215 struct eventfd_ctx *__cil_tmp87 ;
21216 struct proto_ops const *__cil_tmp88 ;
21217 int (*__cil_tmp89)(struct kiocb *iocb , struct socket *sock , struct msghdr *m ,
21218 size_t total_len ) ;
21219 void *__cil_tmp90 ;
21220 struct kiocb *__cil_tmp91 ;
21221 int __cil_tmp92 ;
21222 int __cil_tmp93 ;
21223 int __cil_tmp94 ;
21224 long __cil_tmp95 ;
21225 size_t __cil_tmp96 ;
21226 int __cil_tmp97 ;
21227 int __cil_tmp98 ;
21228 long __cil_tmp99 ;
21229 struct vhost_dev *__cil_tmp100 ;
21230 unsigned int __cil_tmp101 ;
21231 int __cil_tmp102 ;
21232 int __cil_tmp103 ;
21233 int __cil_tmp104 ;
21234 long __cil_tmp105 ;
21235 struct vhost_poll *__cil_tmp106 ;
21236 struct mutex *__cil_tmp107 ;
21237
21238 {
21239#line 118
21240 __cil_tmp28 = net->dev.vqs;
21241#line 118
21242 vq = __cil_tmp28 + 1;
21243#line 121
21244 msg.msg_name = (void *)0;
21245#line 121
21246 msg.msg_namelen = 0;
21247#line 121
21248 msg.msg_iov = & vq->iov[0];
21249#line 121
21250 msg.msg_iovlen = 0UL;
21251#line 121
21252 msg.msg_control = (void *)0;
21253#line 121
21254 msg.msg_controllen = (__kernel_size_t )0;
21255#line 121
21256 msg.msg_flags = 64U;
21257#line 129
21258 total_len = (size_t )0;
21259#line 135
21260 __cil_tmp29 = & vq->private_data;
21261#line 135
21262 __cil_tmp30 = (void * volatile *)__cil_tmp29;
21263#line 135
21264 __cil_tmp31 = *__cil_tmp30;
21265#line 135
21266 _________p1 = (void *)__cil_tmp31;
21267 {
21268#line 135
21269 while (1) {
21270 while_continue: ;
21271 {
21272#line 135
21273 tmp___7 = debug_lockdep_rcu_enabled();
21274 }
21275#line 135
21276 if (tmp___7) {
21277#line 135
21278 if (! __warned___29) {
21279 {
21280#line 135
21281 tmp___8 = rcu_read_lock_held();
21282 }
21283 } else {
21284
21285 }
21286 } else {
21287
21288 }
21289#line 135
21290 goto while_break;
21291 }
21292 while_break___7: ;
21293 }
21294
21295 while_break: ;
21296 {
21297#line 135
21298 while (1) {
21299 while_continue___0: ;
21300
21301#line 135
21302 goto while_break___0;
21303 }
21304 while_break___8: ;
21305 }
21306
21307 while_break___0:
21308#line 135
21309 sock = (struct socket *)_________p1;
21310#line 136
21311 if (! sock) {
21312#line 137
21313 return;
21314 } else {
21315
21316 }
21317 {
21318#line 139
21319 __cil_tmp32 = sock->sk;
21320#line 139
21321 __cil_tmp33 = & __cil_tmp32->sk_wmem_alloc;
21322#line 139
21323 __cil_tmp34 = (atomic_t const *)__cil_tmp33;
21324#line 139
21325 wmem = atomic_read(__cil_tmp34);
21326 }
21327 {
21328#line 140
21329 __cil_tmp35 = sock->sk;
21330#line 140
21331 __cil_tmp36 = __cil_tmp35->sk_sndbuf;
21332#line 140
21333 if (wmem >= __cil_tmp36) {
21334 {
21335#line 141
21336 __cil_tmp37 = & vq->mutex;
21337#line 141
21338 mutex_lock_nested(__cil_tmp37, 0U);
21339#line 142
21340 tx_poll_start(net, sock);
21341#line 143
21342 __cil_tmp38 = & vq->mutex;
21343#line 143
21344 mutex_unlock(__cil_tmp38);
21345 }
21346#line 144
21347 return;
21348 } else {
21349
21350 }
21351 }
21352 {
21353#line 147
21354 __cil_tmp39 = & vq->mutex;
21355#line 147
21356 mutex_lock_nested(__cil_tmp39, 0U);
21357#line 148
21358 __cil_tmp40 = & net->dev;
21359#line 148
21360 vhost_disable_notify(__cil_tmp40, vq);
21361 }
21362 {
21363#line 150
21364 __cil_tmp41 = sock->sk;
21365#line 150
21366 __cil_tmp42 = __cil_tmp41->sk_sndbuf;
21367#line 150
21368 __cil_tmp43 = __cil_tmp42 / 2;
21369#line 150
21370 if (wmem < __cil_tmp43) {
21371 {
21372#line 151
21373 tx_poll_stop(net);
21374 }
21375 } else {
21376
21377 }
21378 }
21379#line 152
21380 hdr_size = vq->vhost_hlen;
21381 {
21382#line 154
21383 while (1) {
21384 while_continue___1: ;
21385 {
21386#line 155
21387 __cil_tmp44 = & net->dev;
21388#line 155
21389 __cil_tmp45 = & vq->iov[0];
21390#line 155
21391 __cil_tmp46 = 16384UL / 16UL;
21392#line 155
21393 __cil_tmp47 = __cil_tmp46 + 0UL;
21394#line 155
21395 __cil_tmp48 = (unsigned int )__cil_tmp47;
21396#line 155
21397 __cil_tmp49 = (void *)0;
21398#line 155
21399 __cil_tmp50 = (struct vhost_log *)__cil_tmp49;
21400#line 155
21401 __cil_tmp51 = (void *)0;
21402#line 155
21403 __cil_tmp52 = (unsigned int *)__cil_tmp51;
21404#line 155
21405 head = vhost_get_vq_desc(__cil_tmp44, vq, __cil_tmp45, __cil_tmp48, & out, & in,
21406 __cil_tmp50, __cil_tmp52);
21407#line 160
21408 __cil_tmp53 = head < 0;
21409#line 160
21410 __cil_tmp54 = ! __cil_tmp53;
21411#line 160
21412 __cil_tmp55 = ! __cil_tmp54;
21413#line 160
21414 __cil_tmp56 = (long )__cil_tmp55;
21415#line 160
21416 tmp___9 = __builtin_expect(__cil_tmp56, 0L);
21417 }
21418#line 160
21419 if (tmp___9) {
21420#line 161
21421 goto while_break___1;
21422 } else {
21423
21424 }
21425 {
21426#line 163
21427 __cil_tmp57 = vq->num;
21428#line 163
21429 __cil_tmp58 = (unsigned int )head;
21430#line 163
21431 if (__cil_tmp58 == __cil_tmp57) {
21432 {
21433#line 164
21434 __cil_tmp59 = sock->sk;
21435#line 164
21436 __cil_tmp60 = & __cil_tmp59->sk_wmem_alloc;
21437#line 164
21438 __cil_tmp61 = (atomic_t const *)__cil_tmp60;
21439#line 164
21440 wmem = atomic_read(__cil_tmp61);
21441 }
21442 {
21443#line 165
21444 __cil_tmp62 = sock->sk;
21445#line 165
21446 __cil_tmp63 = __cil_tmp62->sk_sndbuf;
21447#line 165
21448 __cil_tmp64 = __cil_tmp63 * 3;
21449#line 165
21450 __cil_tmp65 = __cil_tmp64 / 4;
21451#line 165
21452 if (wmem >= __cil_tmp65) {
21453 {
21454#line 166
21455 tx_poll_start(net, sock);
21456#line 167
21457 __cil_tmp66 = & sock->flags;
21458#line 167
21459 __cil_tmp67 = (unsigned long volatile *)__cil_tmp66;
21460#line 167
21461 set_bit(0U, __cil_tmp67);
21462 }
21463#line 168
21464 goto while_break___1;
21465 } else {
21466
21467 }
21468 }
21469 {
21470#line 170
21471 __cil_tmp68 = & net->dev;
21472#line 170
21473 tmp___10 = vhost_enable_notify(__cil_tmp68, vq);
21474 }
21475#line 170
21476 if (tmp___10) {
21477#line 170
21478 tmp___11 = 1;
21479 } else {
21480#line 170
21481 tmp___11 = 0;
21482 }
21483 {
21484#line 170
21485 __cil_tmp69 = (long )tmp___11;
21486#line 170
21487 tmp___12 = __builtin_expect(__cil_tmp69, 0L);
21488 }
21489#line 170
21490 if (tmp___12) {
21491 {
21492#line 171
21493 __cil_tmp70 = & net->dev;
21494#line 171
21495 vhost_disable_notify(__cil_tmp70, vq);
21496 }
21497#line 172
21498 goto __Cont;
21499 } else {
21500
21501 }
21502#line 174
21503 goto while_break___1;
21504 } else {
21505
21506 }
21507 }
21508#line 176
21509 if (in) {
21510 {
21511#line 177
21512 while (1) {
21513 while_continue___2: ;
21514
21515 {
21516#line 177
21517 while (1) {
21518 while_continue___3: ;
21519 {
21520#line 177
21521 __cil_tmp71 = ! descriptor___28.enabled;
21522#line 177
21523 __cil_tmp72 = ! __cil_tmp71;
21524#line 177
21525 __cil_tmp73 = (long )__cil_tmp72;
21526#line 177
21527 tmp___13 = __builtin_expect(__cil_tmp73, 0L);
21528 }
21529#line 177
21530 if (tmp___13) {
21531 {
21532#line 177
21533 __dynamic_pr_debug(& descriptor___28, "Unexpected descriptor format for TX: out %d, int %d\n",
21534 out, in);
21535 }
21536 } else {
21537
21538 }
21539#line 177
21540 goto while_break___3;
21541 }
21542 while_break___11: ;
21543 }
21544
21545 while_break___3: ;
21546#line 177
21547 if (vq->error_ctx) {
21548 {
21549#line 177
21550 __cil_tmp74 = vq->error_ctx;
21551#line 177
21552 eventfd_signal(__cil_tmp74, 1);
21553 }
21554 } else {
21555
21556 }
21557#line 177
21558 goto while_break___2;
21559 }
21560 while_break___10: ;
21561 }
21562
21563 while_break___2: ;
21564#line 179
21565 goto while_break___1;
21566 } else {
21567
21568 }
21569 {
21570#line 182
21571 __cil_tmp75 = & vq->iov[0];
21572#line 182
21573 __cil_tmp76 = & vq->hdr[0];
21574#line 182
21575 __cil_tmp77 = (int )out;
21576#line 182
21577 tmp___14 = move_iovec_hdr(__cil_tmp75, __cil_tmp76, hdr_size, __cil_tmp77);
21578#line 182
21579 s = (unsigned int )tmp___14;
21580#line 183
21581 msg.msg_iovlen = (__kernel_size_t )out;
21582#line 184
21583 __cil_tmp78 = & vq->iov[0];
21584#line 184
21585 __cil_tmp79 = (struct iovec const *)__cil_tmp78;
21586#line 184
21587 __cil_tmp80 = (unsigned long )out;
21588#line 184
21589 len = iov_length(__cil_tmp79, __cil_tmp80);
21590 }
21591#line 186
21592 if (! len) {
21593 {
21594#line 187
21595 while (1) {
21596 while_continue___4: ;
21597
21598 {
21599#line 187
21600 while (1) {
21601 while_continue___5: ;
21602 {
21603#line 187
21604 __cil_tmp81 = ! descriptor___29.enabled;
21605#line 187
21606 __cil_tmp82 = ! __cil_tmp81;
21607#line 187
21608 __cil_tmp83 = (long )__cil_tmp82;
21609#line 187
21610 tmp___16 = __builtin_expect(__cil_tmp83, 0L);
21611 }
21612#line 187
21613 if (tmp___16) {
21614 {
21615#line 187
21616 __cil_tmp84 = & vq->hdr[0];
21617#line 187
21618 __cil_tmp85 = (struct iovec const *)__cil_tmp84;
21619#line 187
21620 __cil_tmp86 = (unsigned long )s;
21621#line 187
21622 tmp___15 = iov_length(__cil_tmp85, __cil_tmp86);
21623#line 187
21624 __dynamic_pr_debug(& descriptor___29, "Unexpected header len for TX: %zd expected %zd\n",
21625 tmp___15, hdr_size);
21626 }
21627 } else {
21628
21629 }
21630#line 187
21631 goto while_break___5;
21632 }
21633 while_break___13: ;
21634 }
21635
21636 while_break___5: ;
21637#line 187
21638 if (vq->error_ctx) {
21639 {
21640#line 187
21641 __cil_tmp87 = vq->error_ctx;
21642#line 187
21643 eventfd_signal(__cil_tmp87, 1);
21644 }
21645 } else {
21646
21647 }
21648#line 187
21649 goto while_break___4;
21650 }
21651 while_break___12: ;
21652 }
21653
21654 while_break___4: ;
21655#line 190
21656 goto while_break___1;
21657 } else {
21658
21659 }
21660 {
21661#line 193
21662 __cil_tmp88 = sock->ops;
21663#line 193
21664 __cil_tmp89 = __cil_tmp88->sendmsg;
21665#line 193
21666 __cil_tmp90 = (void *)0;
21667#line 193
21668 __cil_tmp91 = (struct kiocb *)__cil_tmp90;
21669#line 193
21670 err = (*__cil_tmp89)(__cil_tmp91, sock, & msg, len);
21671#line 194
21672 __cil_tmp92 = err < 0;
21673#line 194
21674 __cil_tmp93 = ! __cil_tmp92;
21675#line 194
21676 __cil_tmp94 = ! __cil_tmp93;
21677#line 194
21678 __cil_tmp95 = (long )__cil_tmp94;
21679#line 194
21680 tmp___17 = __builtin_expect(__cil_tmp95, 0L);
21681 }
21682#line 194
21683 if (tmp___17) {
21684 {
21685#line 195
21686 vhost_discard_vq_desc(vq, 1);
21687#line 196
21688 tx_poll_start(net, sock);
21689 }
21690#line 197
21691 goto while_break___1;
21692 } else {
21693
21694 }
21695 {
21696#line 199
21697 __cil_tmp96 = (size_t )err;
21698#line 199
21699 if (__cil_tmp96 != len) {
21700 {
21701#line 200
21702 while (1) {
21703 while_continue___6: ;
21704 {
21705#line 200
21706 __cil_tmp97 = ! descriptor___30.enabled;
21707#line 200
21708 __cil_tmp98 = ! __cil_tmp97;
21709#line 200
21710 __cil_tmp99 = (long )__cil_tmp98;
21711#line 200
21712 tmp___18 = __builtin_expect(__cil_tmp99, 0L);
21713 }
21714#line 200
21715 if (tmp___18) {
21716 {
21717#line 200
21718 __dynamic_pr_debug(& descriptor___30, "Truncated TX packet: len %d != %zd\n",
21719 err, len);
21720 }
21721 } else {
21722
21723 }
21724#line 200
21725 goto while_break___6;
21726 }
21727 while_break___14: ;
21728 }
21729
21730 while_break___6: ;
21731 } else {
21732
21733 }
21734 }
21735 {
21736#line 202
21737 __cil_tmp100 = & net->dev;
21738#line 202
21739 __cil_tmp101 = (unsigned int )head;
21740#line 202
21741 vhost_add_used_and_signal(__cil_tmp100, vq, __cil_tmp101, 0);
21742#line 203
21743 total_len = total_len + len;
21744#line 204
21745 __cil_tmp102 = total_len >= 524288UL;
21746#line 204
21747 __cil_tmp103 = ! __cil_tmp102;
21748#line 204
21749 __cil_tmp104 = ! __cil_tmp103;
21750#line 204
21751 __cil_tmp105 = (long )__cil_tmp104;
21752#line 204
21753 tmp___19 = __builtin_expect(__cil_tmp105, 0L);
21754 }
21755#line 204
21756 if (tmp___19) {
21757 {
21758#line 205
21759 __cil_tmp106 = & vq->poll;
21760#line 205
21761 vhost_poll_queue(__cil_tmp106);
21762 }
21763#line 206
21764 goto while_break___1;
21765 } else {
21766
21767 }
21768 __Cont: ;
21769 }
21770 while_break___9: ;
21771 }
21772
21773 while_break___1:
21774 {
21775#line 210
21776 __cil_tmp107 = & vq->mutex;
21777#line 210
21778 mutex_unlock(__cil_tmp107);
21779 }
21780#line 211
21781 return;
21782}
21783}
21784#line 213 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21785static int peek_head_len(struct sock *sk )
21786{ struct sk_buff *head ;
21787 int len ;
21788 unsigned long flags ;
21789 raw_spinlock_t *tmp___7 ;
21790 long tmp___8 ;
21791 spinlock_t *__cil_tmp7 ;
21792 struct sk_buff_head *__cil_tmp8 ;
21793 int __cil_tmp9 ;
21794 int __cil_tmp10 ;
21795 long __cil_tmp11 ;
21796 unsigned int __cil_tmp12 ;
21797 spinlock_t *__cil_tmp13 ;
21798
21799 {
21800#line 216
21801 len = 0;
21802 {
21803#line 219
21804 while (1) {
21805 while_continue: ;
21806
21807 {
21808#line 219
21809 while (1) {
21810 while_continue___0: ;
21811 {
21812#line 219
21813 __cil_tmp7 = & sk->sk_receive_queue.lock;
21814#line 219
21815 tmp___7 = spinlock_check(__cil_tmp7);
21816#line 219
21817 flags = _raw_spin_lock_irqsave(tmp___7);
21818 }
21819#line 219
21820 goto while_break___0;
21821 }
21822 while_break___2: ;
21823 }
21824
21825 while_break___0: ;
21826#line 219
21827 goto while_break;
21828 }
21829 while_break___1: ;
21830 }
21831
21832 while_break:
21833 {
21834#line 220
21835 __cil_tmp8 = & sk->sk_receive_queue;
21836#line 220
21837 head = skb_peek(__cil_tmp8);
21838#line 221
21839 __cil_tmp9 = ! head;
21840#line 221
21841 __cil_tmp10 = ! __cil_tmp9;
21842#line 221
21843 __cil_tmp11 = (long )__cil_tmp10;
21844#line 221
21845 tmp___8 = __builtin_expect(__cil_tmp11, 1L);
21846 }
21847#line 221
21848 if (tmp___8) {
21849#line 222
21850 __cil_tmp12 = head->len;
21851#line 222
21852 len = (int )__cil_tmp12;
21853 } else {
21854
21855 }
21856 {
21857#line 223
21858 __cil_tmp13 = & sk->sk_receive_queue.lock;
21859#line 223
21860 spin_unlock_irqrestore(__cil_tmp13, flags);
21861 }
21862#line 224
21863 return (len);
21864}
21865}
21866#line 264
21867static int get_rx_bufs(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
21868 int datalen , unsigned int *iovcount , struct vhost_log *log ,
21869 unsigned int *log_num , unsigned int quota ) ;
21870#line 264 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21871static struct _ddebug descriptor___31 __attribute__((__used__, __section__("__verbose"),
21872__aligned__(8))) = {"vhost_net", "get_rx_bufs", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
21873 "unexpected descriptor format for RX: out %d, in %d\n", 265U, 0U, (char)0};
21874#line 237 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
21875static int get_rx_bufs(struct vhost_virtqueue *vq , struct vring_used_elem *heads ,
21876 int datalen , unsigned int *iovcount , struct vhost_log *log ,
21877 unsigned int *log_num , unsigned int quota )
21878{ unsigned int out ;
21879 unsigned int in ;
21880 int seg ;
21881 int headcount ;
21882 unsigned int d ;
21883 int r ;
21884 int nlogs ;
21885 long tmp___7 ;
21886 int tmp___8 ;
21887 long tmp___9 ;
21888 int tmp___10 ;
21889 long tmp___11 ;
21890 long tmp___12 ;
21891 size_t tmp___13 ;
21892 long tmp___14 ;
21893 unsigned int __cil_tmp23 ;
21894 int __cil_tmp24 ;
21895 int __cil_tmp25 ;
21896 int __cil_tmp26 ;
21897 long __cil_tmp27 ;
21898 struct vhost_dev *__cil_tmp28 ;
21899 struct iovec *__cil_tmp29 ;
21900 struct iovec *__cil_tmp30 ;
21901 unsigned long __cil_tmp31 ;
21902 unsigned long __cil_tmp32 ;
21903 unsigned long __cil_tmp33 ;
21904 unsigned long __cil_tmp34 ;
21905 unsigned int __cil_tmp35 ;
21906 unsigned int __cil_tmp36 ;
21907 long __cil_tmp37 ;
21908 int __cil_tmp38 ;
21909 int __cil_tmp39 ;
21910 long __cil_tmp40 ;
21911 struct eventfd_ctx *__cil_tmp41 ;
21912 int __cil_tmp42 ;
21913 int __cil_tmp43 ;
21914 long __cil_tmp44 ;
21915 unsigned int __cil_tmp45 ;
21916 unsigned int __cil_tmp46 ;
21917 unsigned int __cil_tmp47 ;
21918 unsigned int __cil_tmp48 ;
21919 struct vring_used_elem *__cil_tmp49 ;
21920 struct iovec *__cil_tmp50 ;
21921 struct iovec *__cil_tmp51 ;
21922 struct iovec const *__cil_tmp52 ;
21923 unsigned long __cil_tmp53 ;
21924 struct vring_used_elem *__cil_tmp54 ;
21925 struct vring_used_elem *__cil_tmp55 ;
21926 __u32 __cil_tmp56 ;
21927 __u32 __cil_tmp57 ;
21928 __u32 __cil_tmp58 ;
21929 unsigned int __cil_tmp59 ;
21930 unsigned int __cil_tmp60 ;
21931 int __cil_tmp61 ;
21932 struct vring_used_elem *__cil_tmp62 ;
21933 __u32 __cil_tmp63 ;
21934 int __cil_tmp64 ;
21935 struct vring_used_elem *__cil_tmp65 ;
21936 __u32 __cil_tmp66 ;
21937 int __cil_tmp67 ;
21938 int __cil_tmp68 ;
21939 long __cil_tmp69 ;
21940
21941 {
21942#line 246
21943 seg = 0;
21944#line 247
21945 headcount = 0;
21946#line 249
21947 nlogs = 0;
21948 {
21949#line 251
21950 while (1) {
21951 while_continue: ;
21952
21953#line 251
21954 if (datalen > 0) {
21955 {
21956#line 251
21957 __cil_tmp23 = (unsigned int )headcount;
21958#line 251
21959 if (__cil_tmp23 < quota) {
21960
21961 } else {
21962#line 251
21963 goto while_break;
21964 }
21965 }
21966 } else {
21967#line 251
21968 goto while_break;
21969 }
21970 {
21971#line 252
21972 __cil_tmp24 = seg >= 1024;
21973#line 252
21974 __cil_tmp25 = ! __cil_tmp24;
21975#line 252
21976 __cil_tmp26 = ! __cil_tmp25;
21977#line 252
21978 __cil_tmp27 = (long )__cil_tmp26;
21979#line 252
21980 tmp___7 = __builtin_expect(__cil_tmp27, 0L);
21981 }
21982#line 252
21983 if (tmp___7) {
21984#line 253
21985 r = -105;
21986#line 254
21987 goto err;
21988 } else {
21989
21990 }
21991 {
21992#line 256
21993 __cil_tmp28 = vq->dev;
21994#line 256
21995 __cil_tmp29 = & vq->iov[0];
21996#line 256
21997 __cil_tmp30 = __cil_tmp29 + seg;
21998#line 256
21999 __cil_tmp31 = (unsigned long )seg;
22000#line 256
22001 __cil_tmp32 = 16384UL / 16UL;
22002#line 256
22003 __cil_tmp33 = __cil_tmp32 + 0UL;
22004#line 256
22005 __cil_tmp34 = __cil_tmp33 - __cil_tmp31;
22006#line 256
22007 __cil_tmp35 = (unsigned int )__cil_tmp34;
22008#line 256
22009 tmp___8 = vhost_get_vq_desc(__cil_tmp28, vq, __cil_tmp30, __cil_tmp35, & out,
22010 & in, log, log_num);
22011#line 256
22012 d = (unsigned int )tmp___8;
22013 }
22014 {
22015#line 259
22016 __cil_tmp36 = vq->num;
22017#line 259
22018 if (d == __cil_tmp36) {
22019#line 260
22020 r = 0;
22021#line 261
22022 goto err;
22023 } else {
22024
22025 }
22026 }
22027#line 263
22028 if (out) {
22029#line 263
22030 tmp___10 = 1;
22031 } else
22032#line 263
22033 if (in <= 0U) {
22034#line 263
22035 tmp___10 = 1;
22036 } else {
22037#line 263
22038 tmp___10 = 0;
22039 }
22040 {
22041#line 263
22042 __cil_tmp37 = (long )tmp___10;
22043#line 263
22044 tmp___11 = __builtin_expect(__cil_tmp37, 0L);
22045 }
22046#line 263
22047 if (tmp___11) {
22048 {
22049#line 264
22050 while (1) {
22051 while_continue___0: ;
22052
22053 {
22054#line 264
22055 while (1) {
22056 while_continue___1: ;
22057 {
22058#line 264
22059 __cil_tmp38 = ! descriptor___31.enabled;
22060#line 264
22061 __cil_tmp39 = ! __cil_tmp38;
22062#line 264
22063 __cil_tmp40 = (long )__cil_tmp39;
22064#line 264
22065 tmp___9 = __builtin_expect(__cil_tmp40, 0L);
22066 }
22067#line 264
22068 if (tmp___9) {
22069 {
22070#line 264
22071 __dynamic_pr_debug(& descriptor___31, "unexpected descriptor format for RX: out %d, in %d\n",
22072 out, in);
22073 }
22074 } else {
22075
22076 }
22077#line 264
22078 goto while_break___1;
22079 }
22080 while_break___4: ;
22081 }
22082
22083 while_break___1: ;
22084#line 264
22085 if (vq->error_ctx) {
22086 {
22087#line 264
22088 __cil_tmp41 = vq->error_ctx;
22089#line 264
22090 eventfd_signal(__cil_tmp41, 1);
22091 }
22092 } else {
22093
22094 }
22095#line 264
22096 goto while_break___0;
22097 }
22098 while_break___3: ;
22099 }
22100
22101 while_break___0:
22102#line 266
22103 r = -22;
22104#line 267
22105 goto err;
22106 } else {
22107
22108 }
22109 {
22110#line 269
22111 __cil_tmp42 = ! log;
22112#line 269
22113 __cil_tmp43 = ! __cil_tmp42;
22114#line 269
22115 __cil_tmp44 = (long )__cil_tmp43;
22116#line 269
22117 tmp___12 = __builtin_expect(__cil_tmp44, 0L);
22118 }
22119#line 269
22120 if (tmp___12) {
22121#line 270
22122 __cil_tmp45 = *log_num;
22123#line 270
22124 __cil_tmp46 = (unsigned int )nlogs;
22125#line 270
22126 __cil_tmp47 = __cil_tmp46 + __cil_tmp45;
22127#line 270
22128 nlogs = (int )__cil_tmp47;
22129#line 271
22130 __cil_tmp48 = *log_num;
22131#line 271
22132 log = log + __cil_tmp48;
22133 } else {
22134
22135 }
22136 {
22137#line 273
22138 __cil_tmp49 = heads + headcount;
22139#line 273
22140 __cil_tmp49->id = d;
22141#line 274
22142 __cil_tmp50 = & vq->iov[0];
22143#line 274
22144 __cil_tmp51 = __cil_tmp50 + seg;
22145#line 274
22146 __cil_tmp52 = (struct iovec const *)__cil_tmp51;
22147#line 274
22148 __cil_tmp53 = (unsigned long )in;
22149#line 274
22150 tmp___13 = iov_length(__cil_tmp52, __cil_tmp53);
22151#line 274
22152 __cil_tmp54 = heads + headcount;
22153#line 274
22154 __cil_tmp54->len = (__u32 )tmp___13;
22155#line 275
22156 __cil_tmp55 = heads + headcount;
22157#line 275
22158 __cil_tmp56 = __cil_tmp55->len;
22159#line 275
22160 __cil_tmp57 = (__u32 )datalen;
22161#line 275
22162 __cil_tmp58 = __cil_tmp57 - __cil_tmp56;
22163#line 275
22164 datalen = (int )__cil_tmp58;
22165#line 276
22166 headcount = headcount + 1;
22167#line 277
22168 __cil_tmp59 = (unsigned int )seg;
22169#line 277
22170 __cil_tmp60 = __cil_tmp59 + in;
22171#line 277
22172 seg = (int )__cil_tmp60;
22173 }
22174 }
22175 while_break___2: ;
22176 }
22177
22178 while_break:
22179 {
22180#line 279
22181 __cil_tmp61 = headcount - 1;
22182#line 279
22183 __cil_tmp62 = heads + __cil_tmp61;
22184#line 279
22185 __cil_tmp63 = (__u32 )datalen;
22186#line 279
22187 __cil_tmp64 = headcount - 1;
22188#line 279
22189 __cil_tmp65 = heads + __cil_tmp64;
22190#line 279
22191 __cil_tmp66 = __cil_tmp65->len;
22192#line 279
22193 __cil_tmp62->len = __cil_tmp66 + __cil_tmp63;
22194#line 280
22195 *iovcount = (unsigned int )seg;
22196#line 281
22197 __cil_tmp67 = ! log;
22198#line 281
22199 __cil_tmp68 = ! __cil_tmp67;
22200#line 281
22201 __cil_tmp69 = (long )__cil_tmp68;
22202#line 281
22203 tmp___14 = __builtin_expect(__cil_tmp69, 0L);
22204 }
22205#line 281
22206 if (tmp___14) {
22207#line 282
22208 *log_num = (unsigned int )nlogs;
22209 } else {
22210
22211 }
22212#line 283
22213 return (headcount);
22214 err:
22215 {
22216#line 285
22217 vhost_discard_vq_desc(vq, headcount);
22218 }
22219#line 286
22220 return (r);
22221}
22222}
22223#line 313 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
22224static bool __warned___30 ;
22225#line 363
22226static void handle_rx(struct vhost_net *net ) ;
22227#line 363 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
22228static struct _ddebug descriptor___32 __attribute__((__used__, __section__("__verbose"),
22229__aligned__(8))) = {"vhost_net", "handle_rx", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
22230 "Discarded rx packet: len %d, expected %zd\n", 364U, 0U, (char)0};
22231#line 371 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
22232static struct _ddebug descriptor___33 __attribute__((__used__, __section__("__verbose"),
22233__aligned__(8))) = {"vhost_net", "handle_rx", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
22234 "Unable to write vnet_hdr at addr %p\n", 372U, 0U, (char)0};
22235#line 380 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
22236static struct _ddebug descriptor___34 __attribute__((__used__, __section__("__verbose"),
22237__aligned__(8))) = {"vhost_net", "handle_rx", "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
22238 "Failed num_buffers write", 380U, 0U, (char)0};
22239#line 291 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
22240static void handle_rx(struct vhost_net *net )
22241{ struct vhost_virtqueue *vq ;
22242 unsigned int in ;
22243 unsigned int log ;
22244 struct vhost_log *vq_log ;
22245 struct msghdr msg ;
22246 struct virtio_net_hdr_mrg_rxbuf hdr ;
22247 size_t total_len ;
22248 int err ;
22249 int headcount ;
22250 int mergeable ;
22251 size_t vhost_hlen ;
22252 size_t sock_hlen ;
22253 size_t vhost_len ;
22254 size_t sock_len ;
22255 struct socket *sock ;
22256 void *_________p1 ;
22257 int tmp___7 ;
22258 int tmp___8 ;
22259 int tmp___12 ;
22260 int tmp___13 ;
22261 long tmp___14 ;
22262 int tmp___16 ;
22263 long tmp___17 ;
22264 long tmp___18 ;
22265 bool tmp___19 ;
22266 int tmp___20 ;
22267 long tmp___21 ;
22268 long tmp___22 ;
22269 long tmp___23 ;
22270 long tmp___24 ;
22271 long tmp___25 ;
22272 long tmp___26 ;
22273 int tmp___27 ;
22274 long tmp___28 ;
22275 long tmp___29 ;
22276 int tmp___30 ;
22277 long tmp___31 ;
22278 long tmp___32 ;
22279 int tmp___33 ;
22280 struct vhost_virtqueue *__cil_tmp41 ;
22281 void **__cil_tmp42 ;
22282 void * volatile *__cil_tmp43 ;
22283 void * volatile __cil_tmp44 ;
22284 struct mutex *__cil_tmp45 ;
22285 struct vhost_dev *__cil_tmp46 ;
22286 struct vhost_dev *__cil_tmp47 ;
22287 long __cil_tmp48 ;
22288 void *__cil_tmp49 ;
22289 struct vhost_dev *__cil_tmp50 ;
22290 struct sock *__cil_tmp51 ;
22291 int __cil_tmp52 ;
22292 int __cil_tmp53 ;
22293 long __cil_tmp54 ;
22294 struct vring_used_elem *__cil_tmp55 ;
22295 int __cil_tmp56 ;
22296 unsigned int __cil_tmp57 ;
22297 int __cil_tmp58 ;
22298 int __cil_tmp59 ;
22299 int __cil_tmp60 ;
22300 long __cil_tmp61 ;
22301 struct vhost_dev *__cil_tmp62 ;
22302 long __cil_tmp63 ;
22303 struct vhost_dev *__cil_tmp64 ;
22304 int __cil_tmp65 ;
22305 int __cil_tmp66 ;
22306 long __cil_tmp67 ;
22307 struct iovec *__cil_tmp68 ;
22308 struct iovec *__cil_tmp69 ;
22309 int __cil_tmp70 ;
22310 struct iovec *__cil_tmp71 ;
22311 struct iovec const *__cil_tmp72 ;
22312 struct iovec *__cil_tmp73 ;
22313 int __cil_tmp74 ;
22314 struct proto_ops const *__cil_tmp75 ;
22315 int (*__cil_tmp76)(struct kiocb *iocb , struct socket *sock , struct msghdr *m ,
22316 size_t total_len , int flags ) ;
22317 void *__cil_tmp77 ;
22318 struct kiocb *__cil_tmp78 ;
22319 size_t __cil_tmp79 ;
22320 int __cil_tmp80 ;
22321 int __cil_tmp81 ;
22322 int __cil_tmp82 ;
22323 long __cil_tmp83 ;
22324 int __cil_tmp84 ;
22325 int __cil_tmp85 ;
22326 long __cil_tmp86 ;
22327 int __cil_tmp87 ;
22328 int __cil_tmp88 ;
22329 long __cil_tmp89 ;
22330 struct iovec *__cil_tmp90 ;
22331 struct iovec const *__cil_tmp91 ;
22332 unsigned char *__cil_tmp92 ;
22333 int __cil_tmp93 ;
22334 int __cil_tmp94 ;
22335 int __cil_tmp95 ;
22336 long __cil_tmp96 ;
22337 void *__cil_tmp97 ;
22338 struct eventfd_ctx *__cil_tmp98 ;
22339 int __cil_tmp99 ;
22340 int __cil_tmp100 ;
22341 long __cil_tmp101 ;
22342 struct iovec *__cil_tmp102 ;
22343 struct iovec const *__cil_tmp103 ;
22344 unsigned char *__cil_tmp104 ;
22345 struct virtio_net_hdr_mrg_rxbuf *__cil_tmp105 ;
22346 __u16 *__cil_tmp106 ;
22347 unsigned int __cil_tmp107 ;
22348 int __cil_tmp108 ;
22349 int __cil_tmp109 ;
22350 int __cil_tmp110 ;
22351 int __cil_tmp111 ;
22352 long __cil_tmp112 ;
22353 struct eventfd_ctx *__cil_tmp113 ;
22354 struct vhost_dev *__cil_tmp114 ;
22355 struct vring_used_elem *__cil_tmp115 ;
22356 unsigned int __cil_tmp116 ;
22357 int __cil_tmp117 ;
22358 int __cil_tmp118 ;
22359 long __cil_tmp119 ;
22360 u64 __cil_tmp120 ;
22361 int __cil_tmp121 ;
22362 int __cil_tmp122 ;
22363 int __cil_tmp123 ;
22364 long __cil_tmp124 ;
22365 struct vhost_poll *__cil_tmp125 ;
22366 struct mutex *__cil_tmp126 ;
22367
22368 {
22369#line 293
22370 __cil_tmp41 = net->dev.vqs;
22371#line 293
22372 vq = __cil_tmp41 + 0;
22373#line 294
22374 in = in;
22375#line 296
22376 msg.msg_name = (void *)0;
22377#line 296
22378 msg.msg_namelen = 0;
22379#line 296
22380 msg.msg_iov = & vq->iov[0];
22381#line 296
22382 msg.msg_iovlen = 0UL;
22383#line 296
22384 msg.msg_control = (void *)0;
22385#line 296
22386 msg.msg_controllen = (__kernel_size_t )0;
22387#line 296
22388 msg.msg_flags = 64U;
22389#line 304
22390 hdr.hdr.flags = (__u8 )0;
22391#line 304
22392 hdr.hdr.gso_type = (__u8 )0;
22393#line 304
22394 hdr.hdr.hdr_len = (unsigned short)0;
22395#line 304
22396 hdr.hdr.gso_size = (unsigned short)0;
22397#line 304
22398 hdr.hdr.csum_start = (unsigned short)0;
22399#line 304
22400 hdr.hdr.csum_offset = (unsigned short)0;
22401#line 304
22402 hdr.num_buffers = (unsigned short)0;
22403#line 308
22404 total_len = (size_t )0;
22405#line 313
22406 __cil_tmp42 = & vq->private_data;
22407#line 313
22408 __cil_tmp43 = (void * volatile *)__cil_tmp42;
22409#line 313
22410 __cil_tmp44 = *__cil_tmp43;
22411#line 313
22412 _________p1 = (void *)__cil_tmp44;
22413 {
22414#line 313
22415 while (1) {
22416 while_continue: ;
22417 {
22418#line 313
22419 tmp___7 = debug_lockdep_rcu_enabled();
22420 }
22421#line 313
22422 if (tmp___7) {
22423#line 313
22424 if (! __warned___30) {
22425 {
22426#line 313
22427 tmp___8 = rcu_read_lock_held();
22428 }
22429 } else {
22430
22431 }
22432 } else {
22433
22434 }
22435#line 313
22436 goto while_break;
22437 }
22438 while_break___7: ;
22439 }
22440
22441 while_break: ;
22442 {
22443#line 313
22444 while (1) {
22445 while_continue___2: ;
22446
22447#line 313
22448 goto while_break___0;
22449 }
22450 while_break___8: ;
22451 }
22452
22453 while_break___0:
22454#line 313
22455 sock = (struct socket *)_________p1;
22456#line 315
22457 if (! sock) {
22458#line 316
22459 return;
22460 } else {
22461
22462 }
22463 {
22464#line 318
22465 __cil_tmp45 = & vq->mutex;
22466#line 318
22467 mutex_lock_nested(__cil_tmp45, 0U);
22468#line 319
22469 __cil_tmp46 = & net->dev;
22470#line 319
22471 vhost_disable_notify(__cil_tmp46, vq);
22472#line 320
22473 vhost_hlen = vq->vhost_hlen;
22474#line 321
22475 sock_hlen = vq->sock_hlen;
22476#line 323
22477 __cil_tmp47 = & net->dev;
22478#line 323
22479 tmp___12 = vhost_has_feature(__cil_tmp47, 26);
22480 }
22481#line 323
22482 if (tmp___12) {
22483#line 323
22484 tmp___13 = 1;
22485 } else {
22486#line 323
22487 tmp___13 = 0;
22488 }
22489 {
22490#line 323
22491 __cil_tmp48 = (long )tmp___13;
22492#line 323
22493 tmp___14 = __builtin_expect(__cil_tmp48, 0L);
22494 }
22495#line 323
22496 if (tmp___14) {
22497#line 323
22498 vq_log = vq->log;
22499 } else {
22500#line 323
22501 __cil_tmp49 = (void *)0;
22502#line 323
22503 vq_log = (struct vhost_log *)__cil_tmp49;
22504 }
22505 {
22506#line 325
22507 __cil_tmp50 = & net->dev;
22508#line 325
22509 mergeable = vhost_has_feature(__cil_tmp50, 15);
22510 }
22511 {
22512#line 327
22513 while (1) {
22514 while_continue___3: ;
22515
22516 while_continue___1:
22517 {
22518#line 327
22519 __cil_tmp51 = sock->sk;
22520#line 327
22521 tmp___33 = peek_head_len(__cil_tmp51);
22522#line 327
22523 sock_len = (size_t )tmp___33;
22524 }
22525#line 327
22526 if (sock_len) {
22527
22528 } else {
22529#line 327
22530 goto while_break___1;
22531 }
22532 {
22533#line 328
22534 sock_len = sock_len + sock_hlen;
22535#line 329
22536 vhost_len = sock_len + vhost_hlen;
22537#line 330
22538 __cil_tmp52 = ! mergeable;
22539#line 330
22540 __cil_tmp53 = ! __cil_tmp52;
22541#line 330
22542 __cil_tmp54 = (long )__cil_tmp53;
22543#line 330
22544 tmp___17 = __builtin_expect(__cil_tmp54, 1L);
22545 }
22546#line 330
22547 if (tmp___17) {
22548#line 330
22549 tmp___16 = 1024;
22550 } else {
22551#line 330
22552 tmp___16 = 1;
22553 }
22554 {
22555#line 330
22556 __cil_tmp55 = vq->heads;
22557#line 330
22558 __cil_tmp56 = (int )vhost_len;
22559#line 330
22560 __cil_tmp57 = (unsigned int )tmp___16;
22561#line 330
22562 headcount = get_rx_bufs(vq, __cil_tmp55, __cil_tmp56, & in, vq_log, & log, __cil_tmp57);
22563#line 334
22564 __cil_tmp58 = headcount < 0;
22565#line 334
22566 __cil_tmp59 = ! __cil_tmp58;
22567#line 334
22568 __cil_tmp60 = ! __cil_tmp59;
22569#line 334
22570 __cil_tmp61 = (long )__cil_tmp60;
22571#line 334
22572 tmp___18 = __builtin_expect(__cil_tmp61, 0L);
22573 }
22574#line 334
22575 if (tmp___18) {
22576#line 335
22577 goto while_break___1;
22578 } else {
22579
22580 }
22581#line 337
22582 if (! headcount) {
22583 {
22584#line 338
22585 __cil_tmp62 = & net->dev;
22586#line 338
22587 tmp___19 = vhost_enable_notify(__cil_tmp62, vq);
22588 }
22589#line 338
22590 if (tmp___19) {
22591#line 338
22592 tmp___20 = 1;
22593 } else {
22594#line 338
22595 tmp___20 = 0;
22596 }
22597 {
22598#line 338
22599 __cil_tmp63 = (long )tmp___20;
22600#line 338
22601 tmp___21 = __builtin_expect(__cil_tmp63, 0L);
22602 }
22603#line 338
22604 if (tmp___21) {
22605 {
22606#line 341
22607 __cil_tmp64 = & net->dev;
22608#line 341
22609 vhost_disable_notify(__cil_tmp64, vq);
22610 }
22611#line 342
22612 goto while_continue___1;
22613 } else {
22614
22615 }
22616#line 346
22617 goto while_break___1;
22618 } else {
22619
22620 }
22621 {
22622#line 349
22623 __cil_tmp65 = ! vhost_hlen;
22624#line 349
22625 __cil_tmp66 = ! __cil_tmp65;
22626#line 349
22627 __cil_tmp67 = (long )__cil_tmp66;
22628#line 349
22629 tmp___22 = __builtin_expect(__cil_tmp67, 0L);
22630 }
22631#line 349
22632 if (tmp___22) {
22633 {
22634#line 351
22635 __cil_tmp68 = & vq->iov[0];
22636#line 351
22637 __cil_tmp69 = & vq->hdr[0];
22638#line 351
22639 __cil_tmp70 = (int )in;
22640#line 351
22641 move_iovec_hdr(__cil_tmp68, __cil_tmp69, vhost_hlen, __cil_tmp70);
22642 }
22643 } else {
22644 {
22645#line 355
22646 __cil_tmp71 = & vq->iov[0];
22647#line 355
22648 __cil_tmp72 = (struct iovec const *)__cil_tmp71;
22649#line 355
22650 __cil_tmp73 = & vq->hdr[0];
22651#line 355
22652 __cil_tmp74 = (int )in;
22653#line 355
22654 copy_iovec_hdr(__cil_tmp72, __cil_tmp73, sock_hlen, __cil_tmp74);
22655 }
22656 }
22657 {
22658#line 356
22659 msg.msg_iovlen = (__kernel_size_t )in;
22660#line 357
22661 __cil_tmp75 = sock->ops;
22662#line 357
22663 __cil_tmp76 = __cil_tmp75->recvmsg;
22664#line 357
22665 __cil_tmp77 = (void *)0;
22666#line 357
22667 __cil_tmp78 = (struct kiocb *)__cil_tmp77;
22668#line 357
22669 err = (*__cil_tmp76)(__cil_tmp78, sock, & msg, sock_len, 96);
22670#line 362
22671 __cil_tmp79 = (size_t )err;
22672#line 362
22673 __cil_tmp80 = __cil_tmp79 != sock_len;
22674#line 362
22675 __cil_tmp81 = ! __cil_tmp80;
22676#line 362
22677 __cil_tmp82 = ! __cil_tmp81;
22678#line 362
22679 __cil_tmp83 = (long )__cil_tmp82;
22680#line 362
22681 tmp___24 = __builtin_expect(__cil_tmp83, 0L);
22682 }
22683#line 362
22684 if (tmp___24) {
22685 {
22686#line 363
22687 while (1) {
22688 while_continue___4: ;
22689 {
22690#line 363
22691 __cil_tmp84 = ! descriptor___32.enabled;
22692#line 363
22693 __cil_tmp85 = ! __cil_tmp84;
22694#line 363
22695 __cil_tmp86 = (long )__cil_tmp85;
22696#line 363
22697 tmp___23 = __builtin_expect(__cil_tmp86, 0L);
22698 }
22699#line 363
22700 if (tmp___23) {
22701 {
22702#line 363
22703 __dynamic_pr_debug(& descriptor___32, "Discarded rx packet: len %d, expected %zd\n",
22704 err, sock_len);
22705 }
22706 } else {
22707
22708 }
22709#line 363
22710 goto while_break___2;
22711 }
22712 while_break___10: ;
22713 }
22714
22715 while_break___2:
22716 {
22717#line 365
22718 vhost_discard_vq_desc(vq, headcount);
22719 }
22720#line 366
22721 goto while_continue___1;
22722 } else {
22723
22724 }
22725 {
22726#line 368
22727 __cil_tmp87 = ! vhost_hlen;
22728#line 368
22729 __cil_tmp88 = ! __cil_tmp87;
22730#line 368
22731 __cil_tmp89 = (long )__cil_tmp88;
22732#line 368
22733 tmp___26 = __builtin_expect(__cil_tmp89, 0L);
22734 }
22735#line 368
22736 if (tmp___26) {
22737 {
22738#line 368
22739 __cil_tmp90 = & vq->hdr[0];
22740#line 368
22741 __cil_tmp91 = (struct iovec const *)__cil_tmp90;
22742#line 368
22743 __cil_tmp92 = (unsigned char *)(& hdr);
22744#line 368
22745 __cil_tmp93 = (int )vhost_hlen;
22746#line 368
22747 tmp___27 = memcpy_toiovecend(__cil_tmp91, __cil_tmp92, 0, __cil_tmp93);
22748 }
22749#line 368
22750 if (tmp___27) {
22751 {
22752#line 371
22753 while (1) {
22754 while_continue___5: ;
22755
22756 {
22757#line 371
22758 while (1) {
22759 while_continue___6: ;
22760 {
22761#line 371
22762 __cil_tmp94 = ! descriptor___33.enabled;
22763#line 371
22764 __cil_tmp95 = ! __cil_tmp94;
22765#line 371
22766 __cil_tmp96 = (long )__cil_tmp95;
22767#line 371
22768 tmp___25 = __builtin_expect(__cil_tmp96, 0L);
22769 }
22770#line 371
22771 if (tmp___25) {
22772 {
22773#line 371
22774 __cil_tmp97 = vq->iov[0].iov_base;
22775#line 371
22776 __dynamic_pr_debug(& descriptor___33, "Unable to write vnet_hdr at addr %p\n",
22777 __cil_tmp97);
22778 }
22779 } else {
22780
22781 }
22782#line 371
22783 goto while_break___4;
22784 }
22785 while_break___12: ;
22786 }
22787
22788 while_break___4: ;
22789#line 371
22790 if (vq->error_ctx) {
22791 {
22792#line 371
22793 __cil_tmp98 = vq->error_ctx;
22794#line 371
22795 eventfd_signal(__cil_tmp98, 1);
22796 }
22797 } else {
22798
22799 }
22800#line 371
22801 goto while_break___3;
22802 }
22803 while_break___11: ;
22804 }
22805
22806 while_break___3: ;
22807#line 373
22808 goto while_break___1;
22809 } else {
22810
22811 }
22812 } else {
22813
22814 }
22815 {
22816#line 376
22817 __cil_tmp99 = ! mergeable;
22818#line 376
22819 __cil_tmp100 = ! __cil_tmp99;
22820#line 376
22821 __cil_tmp101 = (long )__cil_tmp100;
22822#line 376
22823 tmp___29 = __builtin_expect(__cil_tmp101, 1L);
22824 }
22825#line 376
22826 if (tmp___29) {
22827 {
22828#line 376
22829 __cil_tmp102 = & vq->hdr[0];
22830#line 376
22831 __cil_tmp103 = (struct iovec const *)__cil_tmp102;
22832#line 376
22833 __cil_tmp104 = (unsigned char *)(& headcount);
22834#line 376
22835 __cil_tmp105 = (struct virtio_net_hdr_mrg_rxbuf *)0;
22836#line 376
22837 __cil_tmp106 = & __cil_tmp105->num_buffers;
22838#line 376
22839 __cil_tmp107 = (unsigned int )__cil_tmp106;
22840#line 376
22841 __cil_tmp108 = (int )__cil_tmp107;
22842#line 376
22843 __cil_tmp109 = (int )2UL;
22844#line 376
22845 tmp___30 = memcpy_toiovecend(__cil_tmp103, __cil_tmp104, __cil_tmp108, __cil_tmp109);
22846 }
22847#line 376
22848 if (tmp___30) {
22849 {
22850#line 380
22851 while (1) {
22852 while_continue___7: ;
22853
22854 {
22855#line 380
22856 while (1) {
22857 while_continue___8: ;
22858 {
22859#line 380
22860 __cil_tmp110 = ! descriptor___34.enabled;
22861#line 380
22862 __cil_tmp111 = ! __cil_tmp110;
22863#line 380
22864 __cil_tmp112 = (long )__cil_tmp111;
22865#line 380
22866 tmp___28 = __builtin_expect(__cil_tmp112, 0L);
22867 }
22868#line 380
22869 if (tmp___28) {
22870 {
22871#line 380
22872 __dynamic_pr_debug(& descriptor___34, "Failed num_buffers write");
22873 }
22874 } else {
22875
22876 }
22877#line 380
22878 goto while_break___6;
22879 }
22880 while_break___14: ;
22881 }
22882
22883 while_break___6: ;
22884#line 380
22885 if (vq->error_ctx) {
22886 {
22887#line 380
22888 __cil_tmp113 = vq->error_ctx;
22889#line 380
22890 eventfd_signal(__cil_tmp113, 1);
22891 }
22892 } else {
22893
22894 }
22895#line 380
22896 goto while_break___5;
22897 }
22898 while_break___13: ;
22899 }
22900
22901 while_break___5:
22902 {
22903#line 381
22904 vhost_discard_vq_desc(vq, headcount);
22905 }
22906#line 382
22907 goto while_break___1;
22908 } else {
22909
22910 }
22911 } else {
22912
22913 }
22914 {
22915#line 384
22916 __cil_tmp114 = & net->dev;
22917#line 384
22918 __cil_tmp115 = vq->heads;
22919#line 384
22920 __cil_tmp116 = (unsigned int )headcount;
22921#line 384
22922 vhost_add_used_and_signal_n(__cil_tmp114, vq, __cil_tmp115, __cil_tmp116);
22923#line 386
22924 __cil_tmp117 = ! vq_log;
22925#line 386
22926 __cil_tmp118 = ! __cil_tmp117;
22927#line 386
22928 __cil_tmp119 = (long )__cil_tmp118;
22929#line 386
22930 tmp___31 = __builtin_expect(__cil_tmp119, 0L);
22931 }
22932#line 386
22933 if (tmp___31) {
22934 {
22935#line 387
22936 __cil_tmp120 = (u64 )vhost_len;
22937#line 387
22938 vhost_log_write(vq, vq_log, log, __cil_tmp120);
22939 }
22940 } else {
22941
22942 }
22943 {
22944#line 388
22945 total_len = total_len + vhost_len;
22946#line 389
22947 __cil_tmp121 = total_len >= 524288UL;
22948#line 389
22949 __cil_tmp122 = ! __cil_tmp121;
22950#line 389
22951 __cil_tmp123 = ! __cil_tmp122;
22952#line 389
22953 __cil_tmp124 = (long )__cil_tmp123;
22954#line 389
22955 tmp___32 = __builtin_expect(__cil_tmp124, 0L);
22956 }
22957#line 389
22958 if (tmp___32) {
22959 {
22960#line 390
22961 __cil_tmp125 = & vq->poll;
22962#line 390
22963 vhost_poll_queue(__cil_tmp125);
22964 }
22965#line 391
22966 goto while_break___1;
22967 } else {
22968
22969 }
22970 }
22971 while_break___9: ;
22972 }
22973
22974 while_break___1:
22975 {
22976#line 395
22977 __cil_tmp126 = & vq->mutex;
22978#line 395
22979 mutex_unlock(__cil_tmp126);
22980 }
22981#line 396
22982 return;
22983}
22984}
22985#line 398 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
22986static void handle_tx_kick(struct vhost_work *work )
22987{ struct vhost_virtqueue *vq ;
22988 struct vhost_work const *__mptr ;
22989 struct vhost_net *net ;
22990 struct vhost_dev const *__mptr___0 ;
22991 struct vhost_virtqueue *__cil_tmp6 ;
22992 struct vhost_work *__cil_tmp7 ;
22993 unsigned int __cil_tmp8 ;
22994 char *__cil_tmp9 ;
22995 char *__cil_tmp10 ;
22996 struct vhost_dev *__cil_tmp11 ;
22997 struct vhost_net *__cil_tmp12 ;
22998 struct vhost_dev *__cil_tmp13 ;
22999 unsigned int __cil_tmp14 ;
23000 char *__cil_tmp15 ;
23001 char *__cil_tmp16 ;
23002
23003 {
23004 {
23005#line 400
23006 __mptr = (struct vhost_work const *)work;
23007#line 400
23008 __cil_tmp6 = (struct vhost_virtqueue *)0;
23009#line 400
23010 __cil_tmp7 = & __cil_tmp6->poll.work;
23011#line 400
23012 __cil_tmp8 = (unsigned int )__cil_tmp7;
23013#line 400
23014 __cil_tmp9 = (char *)__mptr;
23015#line 400
23016 __cil_tmp10 = __cil_tmp9 - __cil_tmp8;
23017#line 400
23018 vq = (struct vhost_virtqueue *)__cil_tmp10;
23019#line 402
23020 __cil_tmp11 = vq->dev;
23021#line 402
23022 __mptr___0 = (struct vhost_dev const *)__cil_tmp11;
23023#line 402
23024 __cil_tmp12 = (struct vhost_net *)0;
23025#line 402
23026 __cil_tmp13 = & __cil_tmp12->dev;
23027#line 402
23028 __cil_tmp14 = (unsigned int )__cil_tmp13;
23029#line 402
23030 __cil_tmp15 = (char *)__mptr___0;
23031#line 402
23032 __cil_tmp16 = __cil_tmp15 - __cil_tmp14;
23033#line 402
23034 net = (struct vhost_net *)__cil_tmp16;
23035#line 404
23036 handle_tx(net);
23037 }
23038#line 405
23039 return;
23040}
23041}
23042#line 407 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23043static void handle_rx_kick(struct vhost_work *work )
23044{ struct vhost_virtqueue *vq ;
23045 struct vhost_work const *__mptr ;
23046 struct vhost_net *net ;
23047 struct vhost_dev const *__mptr___0 ;
23048 struct vhost_virtqueue *__cil_tmp6 ;
23049 struct vhost_work *__cil_tmp7 ;
23050 unsigned int __cil_tmp8 ;
23051 char *__cil_tmp9 ;
23052 char *__cil_tmp10 ;
23053 struct vhost_dev *__cil_tmp11 ;
23054 struct vhost_net *__cil_tmp12 ;
23055 struct vhost_dev *__cil_tmp13 ;
23056 unsigned int __cil_tmp14 ;
23057 char *__cil_tmp15 ;
23058 char *__cil_tmp16 ;
23059
23060 {
23061 {
23062#line 409
23063 __mptr = (struct vhost_work const *)work;
23064#line 409
23065 __cil_tmp6 = (struct vhost_virtqueue *)0;
23066#line 409
23067 __cil_tmp7 = & __cil_tmp6->poll.work;
23068#line 409
23069 __cil_tmp8 = (unsigned int )__cil_tmp7;
23070#line 409
23071 __cil_tmp9 = (char *)__mptr;
23072#line 409
23073 __cil_tmp10 = __cil_tmp9 - __cil_tmp8;
23074#line 409
23075 vq = (struct vhost_virtqueue *)__cil_tmp10;
23076#line 411
23077 __cil_tmp11 = vq->dev;
23078#line 411
23079 __mptr___0 = (struct vhost_dev const *)__cil_tmp11;
23080#line 411
23081 __cil_tmp12 = (struct vhost_net *)0;
23082#line 411
23083 __cil_tmp13 = & __cil_tmp12->dev;
23084#line 411
23085 __cil_tmp14 = (unsigned int )__cil_tmp13;
23086#line 411
23087 __cil_tmp15 = (char *)__mptr___0;
23088#line 411
23089 __cil_tmp16 = __cil_tmp15 - __cil_tmp14;
23090#line 411
23091 net = (struct vhost_net *)__cil_tmp16;
23092#line 413
23093 handle_rx(net);
23094 }
23095#line 414
23096 return;
23097}
23098}
23099#line 416 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23100static void handle_tx_net(struct vhost_work *work )
23101{ struct vhost_net *net ;
23102 struct vhost_work const *__mptr ;
23103 struct vhost_net *__cil_tmp4 ;
23104 struct vhost_work *__cil_tmp5 ;
23105 unsigned int __cil_tmp6 ;
23106 char *__cil_tmp7 ;
23107 char *__cil_tmp8 ;
23108
23109 {
23110 {
23111#line 418
23112 __mptr = (struct vhost_work const *)work;
23113#line 418
23114 __cil_tmp4 = (struct vhost_net *)0;
23115#line 418
23116 __cil_tmp5 = & __cil_tmp4->poll[1].work;
23117#line 418
23118 __cil_tmp6 = (unsigned int )__cil_tmp5;
23119#line 418
23120 __cil_tmp7 = (char *)__mptr;
23121#line 418
23122 __cil_tmp8 = __cil_tmp7 - __cil_tmp6;
23123#line 418
23124 net = (struct vhost_net *)__cil_tmp8;
23125#line 420
23126 handle_tx(net);
23127 }
23128#line 421
23129 return;
23130}
23131}
23132#line 423 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23133static void handle_rx_net(struct vhost_work *work )
23134{ struct vhost_net *net ;
23135 struct vhost_work const *__mptr ;
23136 struct vhost_net *__cil_tmp4 ;
23137 struct vhost_work *__cil_tmp5 ;
23138 unsigned int __cil_tmp6 ;
23139 char *__cil_tmp7 ;
23140 char *__cil_tmp8 ;
23141
23142 {
23143 {
23144#line 425
23145 __mptr = (struct vhost_work const *)work;
23146#line 425
23147 __cil_tmp4 = (struct vhost_net *)0;
23148#line 425
23149 __cil_tmp5 = & __cil_tmp4->poll[0].work;
23150#line 425
23151 __cil_tmp6 = (unsigned int )__cil_tmp5;
23152#line 425
23153 __cil_tmp7 = (char *)__mptr;
23154#line 425
23155 __cil_tmp8 = __cil_tmp7 - __cil_tmp6;
23156#line 425
23157 net = (struct vhost_net *)__cil_tmp8;
23158#line 427
23159 handle_rx(net);
23160 }
23161#line 428
23162 return;
23163}
23164}
23165#line 430 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23166static int vhost_net_open(struct inode *inode , struct file *f )
23167{ struct vhost_net *n ;
23168 void *tmp___7 ;
23169 struct vhost_dev *dev ;
23170 int r ;
23171 long tmp___8 ;
23172 struct vhost_virtqueue *__cil_tmp8 ;
23173 void const *__cil_tmp9 ;
23174 struct vhost_poll *__cil_tmp10 ;
23175 struct vhost_poll *__cil_tmp11 ;
23176 struct vhost_poll *__cil_tmp12 ;
23177 struct vhost_poll *__cil_tmp13 ;
23178
23179 {
23180 {
23181#line 432
23182 tmp___7 = kmalloc(35000UL, 208U);
23183#line 432
23184 n = (struct vhost_net *)tmp___7;
23185 }
23186#line 436
23187 if (! n) {
23188#line 437
23189 return (-12);
23190 } else {
23191
23192 }
23193 {
23194#line 439
23195 dev = & n->dev;
23196#line 440
23197 n->vqs[1].handle_kick = & handle_tx_kick;
23198#line 441
23199 n->vqs[0].handle_kick = & handle_rx_kick;
23200#line 442
23201 __cil_tmp8 = & n->vqs[0];
23202#line 442
23203 tmp___8 = vhost_dev_init(dev, __cil_tmp8, 2);
23204#line 442
23205 r = (int )tmp___8;
23206 }
23207#line 443
23208 if (r < 0) {
23209 {
23210#line 444
23211 __cil_tmp9 = (void const *)n;
23212#line 444
23213 kfree(__cil_tmp9);
23214 }
23215#line 445
23216 return (r);
23217 } else {
23218
23219 }
23220 {
23221#line 448
23222 __cil_tmp10 = & n->poll[0];
23223#line 448
23224 __cil_tmp11 = __cil_tmp10 + 1;
23225#line 448
23226 vhost_poll_init(__cil_tmp11, & handle_tx_net, 4UL, dev);
23227#line 449
23228 __cil_tmp12 = & n->poll[0];
23229#line 449
23230 __cil_tmp13 = __cil_tmp12 + 0;
23231#line 449
23232 vhost_poll_init(__cil_tmp13, & handle_rx_net, 1UL, dev);
23233#line 450
23234 n->tx_poll_state = (enum vhost_net_poll_state )0;
23235#line 452
23236 f->private_data = (void *)n;
23237 }
23238#line 454
23239 return (0);
23240}
23241}
23242#line 457 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23243static void vhost_net_disable_vq(struct vhost_net *n , struct vhost_virtqueue *vq )
23244{ void *__cil_tmp3 ;
23245 struct vhost_virtqueue *__cil_tmp4 ;
23246 struct vhost_virtqueue *__cil_tmp5 ;
23247 unsigned long __cil_tmp6 ;
23248 unsigned long __cil_tmp7 ;
23249 struct vhost_poll *__cil_tmp8 ;
23250 struct vhost_poll *__cil_tmp9 ;
23251
23252 {
23253 {
23254#line 460
23255 __cil_tmp3 = vq->private_data;
23256#line 460
23257 if (! __cil_tmp3) {
23258#line 461
23259 return;
23260 } else {
23261
23262 }
23263 }
23264 {
23265#line 462
23266 __cil_tmp4 = & n->vqs[0];
23267#line 462
23268 __cil_tmp5 = __cil_tmp4 + 1;
23269#line 462
23270 __cil_tmp6 = (unsigned long )__cil_tmp5;
23271#line 462
23272 __cil_tmp7 = (unsigned long )vq;
23273#line 462
23274 if (__cil_tmp7 == __cil_tmp6) {
23275 {
23276#line 463
23277 tx_poll_stop(n);
23278#line 464
23279 n->tx_poll_state = (enum vhost_net_poll_state )0;
23280 }
23281 } else {
23282 {
23283#line 466
23284 __cil_tmp8 = & n->poll[0];
23285#line 466
23286 __cil_tmp9 = __cil_tmp8 + 0;
23287#line 466
23288 vhost_poll_stop(__cil_tmp9);
23289 }
23290 }
23291 }
23292#line 467
23293 return;
23294}
23295}
23296#line 474 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23297static bool __warned___31 ;
23298#line 469 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23299static void vhost_net_enable_vq(struct vhost_net *n , struct vhost_virtqueue *vq )
23300{ struct socket *sock ;
23301 int tmp___7 ;
23302 int tmp___8 ;
23303 struct lockdep_map *__cil_tmp6 ;
23304 int __cil_tmp7 ;
23305 int __cil_tmp8 ;
23306 void *__cil_tmp9 ;
23307 struct vhost_virtqueue *__cil_tmp10 ;
23308 struct vhost_virtqueue *__cil_tmp11 ;
23309 unsigned long __cil_tmp12 ;
23310 unsigned long __cil_tmp13 ;
23311 struct vhost_poll *__cil_tmp14 ;
23312 struct vhost_poll *__cil_tmp15 ;
23313 struct file *__cil_tmp16 ;
23314
23315 {
23316 {
23317#line 474
23318 while (1) {
23319 while_continue: ;
23320 {
23321#line 474
23322 tmp___7 = debug_lockdep_rcu_enabled();
23323 }
23324#line 474
23325 if (tmp___7) {
23326#line 474
23327 if (! __warned___31) {
23328 {
23329#line 474
23330 __cil_tmp6 = & vq->mutex.dep_map;
23331#line 474
23332 tmp___8 = lock_is_held(__cil_tmp6);
23333 }
23334#line 474
23335 if (tmp___8) {
23336
23337 } else {
23338 {
23339#line 474
23340 __warned___31 = (bool )1;
23341#line 474
23342 __cil_tmp7 = (int const )475;
23343#line 474
23344 __cil_tmp8 = (int )__cil_tmp7;
23345#line 474
23346 lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
23347 __cil_tmp8);
23348 }
23349 }
23350 } else {
23351
23352 }
23353 } else {
23354
23355 }
23356#line 474
23357 goto while_break;
23358 }
23359 while_break___0: ;
23360 }
23361
23362 while_break:
23363#line 474
23364 __cil_tmp9 = vq->private_data;
23365#line 474
23366 sock = (struct socket *)__cil_tmp9;
23367#line 476
23368 if (! sock) {
23369#line 477
23370 return;
23371 } else {
23372
23373 }
23374 {
23375#line 478
23376 __cil_tmp10 = & n->vqs[0];
23377#line 478
23378 __cil_tmp11 = __cil_tmp10 + 1;
23379#line 478
23380 __cil_tmp12 = (unsigned long )__cil_tmp11;
23381#line 478
23382 __cil_tmp13 = (unsigned long )vq;
23383#line 478
23384 if (__cil_tmp13 == __cil_tmp12) {
23385 {
23386#line 479
23387 n->tx_poll_state = (enum vhost_net_poll_state )2;
23388#line 480
23389 tx_poll_start(n, sock);
23390 }
23391 } else {
23392 {
23393#line 482
23394 __cil_tmp14 = & n->poll[0];
23395#line 482
23396 __cil_tmp15 = __cil_tmp14 + 0;
23397#line 482
23398 __cil_tmp16 = sock->file;
23399#line 482
23400 vhost_poll_start(__cil_tmp15, __cil_tmp16);
23401 }
23402 }
23403 }
23404#line 483
23405 return;
23406}
23407}
23408#line 491 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23409static bool __warned___32 ;
23410#line 485 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23411static struct socket *vhost_net_stop_vq(struct vhost_net *n , struct vhost_virtqueue *vq )
23412{ struct socket *sock ;
23413 int tmp___7 ;
23414 int tmp___8 ;
23415 struct mutex *__cil_tmp6 ;
23416 struct lockdep_map *__cil_tmp7 ;
23417 int __cil_tmp8 ;
23418 int __cil_tmp9 ;
23419 void *__cil_tmp10 ;
23420 struct mutex *__cil_tmp11 ;
23421
23422 {
23423 {
23424#line 490
23425 __cil_tmp6 = & vq->mutex;
23426#line 490
23427 mutex_lock_nested(__cil_tmp6, 0U);
23428 }
23429 {
23430#line 491
23431 while (1) {
23432 while_continue: ;
23433 {
23434#line 491
23435 tmp___7 = debug_lockdep_rcu_enabled();
23436 }
23437#line 491
23438 if (tmp___7) {
23439#line 491
23440 if (! __warned___32) {
23441 {
23442#line 491
23443 __cil_tmp7 = & vq->mutex.dep_map;
23444#line 491
23445 tmp___8 = lock_is_held(__cil_tmp7);
23446 }
23447#line 491
23448 if (tmp___8) {
23449
23450 } else {
23451 {
23452#line 491
23453 __warned___32 = (bool )1;
23454#line 491
23455 __cil_tmp8 = (int const )492;
23456#line 491
23457 __cil_tmp9 = (int )__cil_tmp8;
23458#line 491
23459 lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
23460 __cil_tmp9);
23461 }
23462 }
23463 } else {
23464
23465 }
23466 } else {
23467
23468 }
23469#line 491
23470 goto while_break;
23471 }
23472 while_break___0: ;
23473 }
23474
23475 while_break:
23476 {
23477#line 491
23478 __cil_tmp10 = vq->private_data;
23479#line 491
23480 sock = (struct socket *)__cil_tmp10;
23481#line 493
23482 vhost_net_disable_vq(n, vq);
23483#line 494
23484 __asm__ volatile ("": : : "memory");
23485#line 494
23486 vq->private_data = (void *)0;
23487#line 495
23488 __cil_tmp11 = & vq->mutex;
23489#line 495
23490 mutex_unlock(__cil_tmp11);
23491 }
23492#line 496
23493 return (sock);
23494}
23495}
23496#line 499 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23497static void vhost_net_stop(struct vhost_net *n , struct socket **tx_sock , struct socket **rx_sock )
23498{ struct vhost_virtqueue *__cil_tmp4 ;
23499 struct vhost_virtqueue *__cil_tmp5 ;
23500 struct vhost_virtqueue *__cil_tmp6 ;
23501 struct vhost_virtqueue *__cil_tmp7 ;
23502
23503 {
23504 {
23505#line 502
23506 __cil_tmp4 = & n->vqs[0];
23507#line 502
23508 __cil_tmp5 = __cil_tmp4 + 1;
23509#line 502
23510 *tx_sock = vhost_net_stop_vq(n, __cil_tmp5);
23511#line 503
23512 __cil_tmp6 = & n->vqs[0];
23513#line 503
23514 __cil_tmp7 = __cil_tmp6 + 0;
23515#line 503
23516 *rx_sock = vhost_net_stop_vq(n, __cil_tmp7);
23517 }
23518#line 504
23519 return;
23520}
23521}
23522#line 506 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23523static void vhost_net_flush_vq(struct vhost_net *n , int index )
23524{ struct vhost_poll *__cil_tmp3 ;
23525 struct vhost_poll *__cil_tmp4 ;
23526 struct vhost_virtqueue *__cil_tmp5 ;
23527 struct vhost_virtqueue *__cil_tmp6 ;
23528 struct vhost_poll *__cil_tmp7 ;
23529
23530 {
23531 {
23532#line 508
23533 __cil_tmp3 = & n->poll[0];
23534#line 508
23535 __cil_tmp4 = __cil_tmp3 + index;
23536#line 508
23537 vhost_poll_flush(__cil_tmp4);
23538#line 509
23539 __cil_tmp5 = n->dev.vqs;
23540#line 509
23541 __cil_tmp6 = __cil_tmp5 + index;
23542#line 509
23543 __cil_tmp7 = & __cil_tmp6->poll;
23544#line 509
23545 vhost_poll_flush(__cil_tmp7);
23546 }
23547#line 510
23548 return;
23549}
23550}
23551#line 512 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23552static void vhost_net_flush(struct vhost_net *n )
23553{
23554
23555 {
23556 {
23557#line 514
23558 vhost_net_flush_vq(n, 1);
23559#line 515
23560 vhost_net_flush_vq(n, 0);
23561 }
23562#line 516
23563 return;
23564}
23565}
23566#line 518 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23567static int vhost_net_release(struct inode *inode , struct file *f )
23568{ struct vhost_net *n ;
23569 struct socket *tx_sock ;
23570 struct socket *rx_sock ;
23571 void *__cil_tmp6 ;
23572 struct vhost_dev *__cil_tmp7 ;
23573 struct file *__cil_tmp8 ;
23574 struct file *__cil_tmp9 ;
23575 void const *__cil_tmp10 ;
23576
23577 {
23578 {
23579#line 520
23580 __cil_tmp6 = f->private_data;
23581#line 520
23582 n = (struct vhost_net *)__cil_tmp6;
23583#line 524
23584 vhost_net_stop(n, & tx_sock, & rx_sock);
23585#line 525
23586 vhost_net_flush(n);
23587#line 526
23588 __cil_tmp7 = & n->dev;
23589#line 526
23590 vhost_dev_cleanup(__cil_tmp7);
23591 }
23592#line 527
23593 if (tx_sock) {
23594 {
23595#line 528
23596 __cil_tmp8 = tx_sock->file;
23597#line 528
23598 fput(__cil_tmp8);
23599 }
23600 } else {
23601
23602 }
23603#line 529
23604 if (rx_sock) {
23605 {
23606#line 530
23607 __cil_tmp9 = rx_sock->file;
23608#line 530
23609 fput(__cil_tmp9);
23610 }
23611 } else {
23612
23613 }
23614 {
23615#line 533
23616 vhost_net_flush(n);
23617#line 534
23618 __cil_tmp10 = (void const *)n;
23619#line 534
23620 kfree(__cil_tmp10);
23621 }
23622#line 535
23623 return (0);
23624}
23625}
23626#line 538 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23627static struct socket *get_raw_socket(int fd )
23628{ struct __anonstruct_uaddr_348 uaddr ;
23629 int uaddr_len ;
23630 int r ;
23631 struct socket *sock ;
23632 struct socket *tmp___7 ;
23633 void *tmp___8 ;
23634 void *tmp___9 ;
23635 void *tmp ;
23636 void *tmp___10 ;
23637 void *tmp___11 ;
23638 void *tmp___12 ;
23639 struct sock *__cil_tmp13 ;
23640 unsigned int __cil_tmp14 ;
23641 struct proto_ops const *__cil_tmp15 ;
23642 int (*__cil_tmp16)(struct socket *sock , struct sockaddr *addr , int *sockaddr_len ,
23643 int peer ) ;
23644 struct sockaddr_ll *__cil_tmp17 ;
23645 struct sockaddr *__cil_tmp18 ;
23646 int __cil_tmp19 ;
23647 struct file *__cil_tmp20 ;
23648 long __cil_tmp21 ;
23649
23650 {
23651 {
23652#line 544
23653 uaddr_len = (int )52UL;
23654#line 545
23655 tmp___7 = sockfd_lookup(fd, & r);
23656#line 545
23657 sock = tmp___7;
23658 }
23659#line 547
23660 if (! sock) {
23661 {
23662#line 548
23663 tmp___11 = (void *)ERR_PTR(-88L);
23664#line 548
23665 tmp = tmp___11;
23666#line 548
23667 tmp___8 = tmp;
23668 }
23669#line 548
23670 return ((struct socket *)tmp___8);
23671 } else {
23672
23673 }
23674 {
23675#line 551
23676 __cil_tmp13 = sock->sk;
23677#line 551
23678 __cil_tmp14 = __cil_tmp13->sk_type;
23679#line 551
23680 if (__cil_tmp14 != 3U) {
23681#line 552
23682 r = -94;
23683#line 553
23684 goto err;
23685 } else {
23686
23687 }
23688 }
23689 {
23690#line 556
23691 __cil_tmp15 = sock->ops;
23692#line 556
23693 __cil_tmp16 = __cil_tmp15->getname;
23694#line 556
23695 __cil_tmp17 = & uaddr.sa;
23696#line 556
23697 __cil_tmp18 = (struct sockaddr *)__cil_tmp17;
23698#line 556
23699 r = (*__cil_tmp16)(sock, __cil_tmp18, & uaddr_len, 0);
23700 }
23701#line 558
23702 if (r) {
23703#line 559
23704 goto err;
23705 } else {
23706
23707 }
23708 {
23709#line 561
23710 __cil_tmp19 = (int )uaddr.sa.sll_family;
23711#line 561
23712 if (__cil_tmp19 != 17) {
23713#line 562
23714 r = -96;
23715#line 563
23716 goto err;
23717 } else {
23718
23719 }
23720 }
23721#line 565
23722 return (sock);
23723 err:
23724 {
23725#line 567
23726 __cil_tmp20 = sock->file;
23727#line 567
23728 fput(__cil_tmp20);
23729#line 568
23730 __cil_tmp21 = (long )r;
23731#line 568
23732 tmp___12 = (void *)ERR_PTR(__cil_tmp21);
23733#line 568
23734 tmp___10 = tmp___12;
23735#line 568
23736 tmp___9 = tmp___10;
23737 }
23738#line 568
23739 return ((struct socket *)tmp___9);
23740}
23741}
23742#line 571 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23743static struct socket *get_tap_socket(int fd )
23744{ struct file *file ;
23745 struct file *tmp___7 ;
23746 struct socket *sock ;
23747 void *tmp___8 ;
23748 long tmp___9 ;
23749 long tmp___10 ;
23750 void *tmp ;
23751 long tmp___11 ;
23752 long tmp___12 ;
23753 void *tmp___13 ;
23754 long tmp___14 ;
23755 long tmp___15 ;
23756 unsigned int __cil_tmp14 ;
23757 void const *__cil_tmp15 ;
23758 void const *__cil_tmp16 ;
23759
23760 {
23761 {
23762#line 573
23763 __cil_tmp14 = (unsigned int )fd;
23764#line 573
23765 tmp___7 = fget(__cil_tmp14);
23766#line 573
23767 file = tmp___7;
23768 }
23769#line 576
23770 if (! file) {
23771 {
23772#line 577
23773 tmp___13 = (void *)ERR_PTR(-9L);
23774#line 577
23775 tmp = tmp___13;
23776#line 577
23777 tmp___8 = tmp;
23778 }
23779#line 577
23780 return ((struct socket *)tmp___8);
23781 } else {
23782
23783 }
23784 {
23785#line 578
23786 sock = tun_get_socket(file);
23787#line 579
23788 __cil_tmp15 = (void const *)sock;
23789#line 579
23790 tmp___14 = (long )IS_ERR(__cil_tmp15);
23791#line 579
23792 tmp___11 = tmp___14;
23793#line 579
23794 tmp___9 = tmp___11;
23795 }
23796#line 579
23797 if (tmp___9) {
23798
23799 } else {
23800#line 580
23801 return (sock);
23802 }
23803 {
23804#line 581
23805 sock = macvtap_get_socket(file);
23806#line 582
23807 __cil_tmp16 = (void const *)sock;
23808#line 582
23809 tmp___15 = (long )IS_ERR(__cil_tmp16);
23810#line 582
23811 tmp___12 = tmp___15;
23812#line 582
23813 tmp___10 = tmp___12;
23814 }
23815#line 582
23816 if (tmp___10) {
23817 {
23818#line 583
23819 fput(file);
23820 }
23821 } else {
23822
23823 }
23824#line 584
23825 return (sock);
23826}
23827}
23828#line 587 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23829static struct socket *get_socket(int fd )
23830{ struct socket *sock ;
23831 long tmp___7 ;
23832 long tmp___8 ;
23833 void *tmp___9 ;
23834 long tmp ;
23835 long tmp___10 ;
23836 void *tmp___11 ;
23837 long tmp___12 ;
23838 long tmp___13 ;
23839 void *tmp___14 ;
23840 void *__cil_tmp12 ;
23841 void const *__cil_tmp13 ;
23842 void const *__cil_tmp14 ;
23843
23844 {
23845#line 592
23846 if (fd == -1) {
23847 {
23848#line 593
23849 __cil_tmp12 = (void *)0;
23850#line 593
23851 return ((struct socket *)__cil_tmp12);
23852 }
23853 } else {
23854
23855 }
23856 {
23857#line 594
23858 sock = get_raw_socket(fd);
23859#line 595
23860 __cil_tmp13 = (void const *)sock;
23861#line 595
23862 tmp___12 = (long )IS_ERR(__cil_tmp13);
23863#line 595
23864 tmp = tmp___12;
23865#line 595
23866 tmp___7 = tmp;
23867 }
23868#line 595
23869 if (tmp___7) {
23870
23871 } else {
23872#line 596
23873 return (sock);
23874 }
23875 {
23876#line 597
23877 sock = get_tap_socket(fd);
23878#line 598
23879 __cil_tmp14 = (void const *)sock;
23880#line 598
23881 tmp___13 = (long )IS_ERR(__cil_tmp14);
23882#line 598
23883 tmp___10 = tmp___13;
23884#line 598
23885 tmp___8 = tmp___10;
23886 }
23887#line 598
23888 if (tmp___8) {
23889
23890 } else {
23891#line 599
23892 return (sock);
23893 }
23894 {
23895#line 600
23896 tmp___14 = (void *)ERR_PTR(-88L);
23897#line 600
23898 tmp___11 = tmp___14;
23899#line 600
23900 tmp___9 = tmp___11;
23901 }
23902#line 600
23903 return ((struct socket *)tmp___9);
23904}
23905}
23906#line 633 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23907static bool __warned___33 ;
23908#line 603 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
23909static long vhost_net_set_backend(struct vhost_net *n , unsigned int index , int fd )
23910{ struct socket *sock ;
23911 struct socket *oldsock ;
23912 struct vhost_virtqueue *vq ;
23913 int r ;
23914 long tmp___7 ;
23915 int tmp___8 ;
23916 long tmp___9 ;
23917 long tmp___10 ;
23918 int tmp___11 ;
23919 int tmp___12 ;
23920 long tmp ;
23921 long tmp___13 ;
23922 long tmp___14 ;
23923 long tmp___15 ;
23924 struct mutex *__cil_tmp18 ;
23925 struct vhost_dev *__cil_tmp19 ;
23926 struct vhost_virtqueue *__cil_tmp20 ;
23927 struct mutex *__cil_tmp21 ;
23928 void const *__cil_tmp22 ;
23929 void const *__cil_tmp23 ;
23930 struct lockdep_map *__cil_tmp24 ;
23931 int __cil_tmp25 ;
23932 int __cil_tmp26 ;
23933 void *__cil_tmp27 ;
23934 unsigned long __cil_tmp28 ;
23935 unsigned long __cil_tmp29 ;
23936 struct mutex *__cil_tmp30 ;
23937 int __cil_tmp31 ;
23938 struct file *__cil_tmp32 ;
23939 struct mutex *__cil_tmp33 ;
23940 struct mutex *__cil_tmp34 ;
23941 struct mutex *__cil_tmp35 ;
23942
23943 {
23944 {
23945#line 609
23946 __cil_tmp18 = & n->dev.mutex;
23947#line 609
23948 mutex_lock_nested(__cil_tmp18, 0U);
23949#line 610
23950 __cil_tmp19 = & n->dev;
23951#line 610
23952 tmp___7 = vhost_dev_check_owner(__cil_tmp19);
23953#line 610
23954 r = (int )tmp___7;
23955 }
23956#line 611
23957 if (r) {
23958#line 612
23959 goto err;
23960 } else {
23961
23962 }
23963#line 614
23964 if (index >= 2U) {
23965#line 615
23966 r = -105;
23967#line 616
23968 goto err;
23969 } else {
23970
23971 }
23972 {
23973#line 618
23974 __cil_tmp20 = & n->vqs[0];
23975#line 618
23976 vq = __cil_tmp20 + index;
23977#line 619
23978 __cil_tmp21 = & vq->mutex;
23979#line 619
23980 mutex_lock_nested(__cil_tmp21, 0U);
23981#line 622
23982 tmp___8 = vhost_vq_access_ok(vq);
23983 }
23984#line 622
23985 if (tmp___8) {
23986
23987 } else {
23988#line 623
23989 r = -14;
23990#line 624
23991 goto err_vq;
23992 }
23993 {
23994#line 626
23995 sock = get_socket(fd);
23996#line 627
23997 __cil_tmp22 = (void const *)sock;
23998#line 627
23999 tmp___14 = (long )IS_ERR(__cil_tmp22);
24000#line 627
24001 tmp = tmp___14;
24002#line 627
24003 tmp___10 = tmp;
24004 }
24005#line 627
24006 if (tmp___10) {
24007 {
24008#line 628
24009 __cil_tmp23 = (void const *)sock;
24010#line 628
24011 tmp___15 = (long )PTR_ERR(__cil_tmp23);
24012#line 628
24013 tmp___13 = tmp___15;
24014#line 628
24015 tmp___9 = tmp___13;
24016#line 628
24017 r = (int )tmp___9;
24018 }
24019#line 629
24020 goto err_vq;
24021 } else {
24022
24023 }
24024 {
24025#line 633
24026 while (1) {
24027 while_continue: ;
24028 {
24029#line 633
24030 tmp___11 = debug_lockdep_rcu_enabled();
24031 }
24032#line 633
24033 if (tmp___11) {
24034#line 633
24035 if (! __warned___33) {
24036 {
24037#line 633
24038 __cil_tmp24 = & vq->mutex.dep_map;
24039#line 633
24040 tmp___12 = lock_is_held(__cil_tmp24);
24041 }
24042#line 633
24043 if (tmp___12) {
24044
24045 } else {
24046 {
24047#line 633
24048 __warned___33 = (bool )1;
24049#line 633
24050 __cil_tmp25 = (int const )634;
24051#line 633
24052 __cil_tmp26 = (int )__cil_tmp25;
24053#line 633
24054 lockdep_rcu_dereference("/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c",
24055 __cil_tmp26);
24056 }
24057 }
24058 } else {
24059
24060 }
24061 } else {
24062
24063 }
24064#line 633
24065 goto while_break;
24066 }
24067 while_break___0: ;
24068 }
24069
24070 while_break:
24071#line 633
24072 __cil_tmp27 = vq->private_data;
24073#line 633
24074 oldsock = (struct socket *)__cil_tmp27;
24075 {
24076#line 635
24077 __cil_tmp28 = (unsigned long )oldsock;
24078#line 635
24079 __cil_tmp29 = (unsigned long )sock;
24080#line 635
24081 if (__cil_tmp29 != __cil_tmp28) {
24082 {
24083#line 636
24084 vhost_net_disable_vq(n, vq);
24085#line 637
24086 __asm__ volatile ("": : : "memory");
24087#line 637
24088 vq->private_data = (void *)sock;
24089#line 638
24090 vhost_net_enable_vq(n, vq);
24091 }
24092 } else {
24093
24094 }
24095 }
24096 {
24097#line 641
24098 __cil_tmp30 = & vq->mutex;
24099#line 641
24100 mutex_unlock(__cil_tmp30);
24101 }
24102#line 643
24103 if (oldsock) {
24104 {
24105#line 644
24106 __cil_tmp31 = (int )index;
24107#line 644
24108 vhost_net_flush_vq(n, __cil_tmp31);
24109#line 645
24110 __cil_tmp32 = oldsock->file;
24111#line 645
24112 fput(__cil_tmp32);
24113 }
24114 } else {
24115
24116 }
24117 {
24118#line 648
24119 __cil_tmp33 = & n->dev.mutex;
24120#line 648
24121 mutex_unlock(__cil_tmp33);
24122 }
24123#line 649
24124 return (0L);
24125 err_vq:
24126 {
24127#line 652
24128 __cil_tmp34 = & vq->mutex;
24129#line 652
24130 mutex_unlock(__cil_tmp34);
24131 }
24132 err:
24133 {
24134#line 654
24135 __cil_tmp35 = & n->dev.mutex;
24136#line 654
24137 mutex_unlock(__cil_tmp35);
24138 }
24139#line 655
24140 return ((long )r);
24141}
24142}
24143#line 658 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24144static long vhost_net_reset_owner(struct vhost_net *n )
24145{ struct socket *tx_sock ;
24146 struct socket *rx_sock ;
24147 long err ;
24148 void *__cil_tmp5 ;
24149 void *__cil_tmp6 ;
24150 struct mutex *__cil_tmp7 ;
24151 struct vhost_dev *__cil_tmp8 ;
24152 struct vhost_dev *__cil_tmp9 ;
24153 struct mutex *__cil_tmp10 ;
24154 struct file *__cil_tmp11 ;
24155 struct file *__cil_tmp12 ;
24156
24157 {
24158 {
24159#line 660
24160 __cil_tmp5 = (void *)0;
24161#line 660
24162 tx_sock = (struct socket *)__cil_tmp5;
24163#line 661
24164 __cil_tmp6 = (void *)0;
24165#line 661
24166 rx_sock = (struct socket *)__cil_tmp6;
24167#line 664
24168 __cil_tmp7 = & n->dev.mutex;
24169#line 664
24170 mutex_lock_nested(__cil_tmp7, 0U);
24171#line 665
24172 __cil_tmp8 = & n->dev;
24173#line 665
24174 err = vhost_dev_check_owner(__cil_tmp8);
24175 }
24176#line 666
24177 if (err) {
24178#line 667
24179 goto done;
24180 } else {
24181
24182 }
24183 {
24184#line 668
24185 vhost_net_stop(n, & tx_sock, & rx_sock);
24186#line 669
24187 vhost_net_flush(n);
24188#line 670
24189 __cil_tmp9 = & n->dev;
24190#line 670
24191 err = vhost_dev_reset_owner(__cil_tmp9);
24192 }
24193 done:
24194 {
24195#line 672
24196 __cil_tmp10 = & n->dev.mutex;
24197#line 672
24198 mutex_unlock(__cil_tmp10);
24199 }
24200#line 673
24201 if (tx_sock) {
24202 {
24203#line 674
24204 __cil_tmp11 = tx_sock->file;
24205#line 674
24206 fput(__cil_tmp11);
24207 }
24208 } else {
24209
24210 }
24211#line 675
24212 if (rx_sock) {
24213 {
24214#line 676
24215 __cil_tmp12 = rx_sock->file;
24216#line 676
24217 fput(__cil_tmp12);
24218 }
24219 } else {
24220
24221 }
24222#line 677
24223 return (err);
24224}
24225}
24226#line 680 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24227static int vhost_net_set_features(struct vhost_net *n , u64 features )
24228{ size_t vhost_hlen ;
24229 size_t sock_hlen ;
24230 size_t hdr_len ;
24231 int i ;
24232 int tmp___7 ;
24233 int __cil_tmp8 ;
24234 unsigned long long __cil_tmp9 ;
24235 int __cil_tmp10 ;
24236 unsigned long long __cil_tmp11 ;
24237 struct mutex *__cil_tmp12 ;
24238 int __cil_tmp13 ;
24239 unsigned long long __cil_tmp14 ;
24240 struct vhost_dev *__cil_tmp15 ;
24241 struct mutex *__cil_tmp16 ;
24242 struct mutex *__cil_tmp17 ;
24243 struct mutex *__cil_tmp18 ;
24244 struct mutex *__cil_tmp19 ;
24245
24246 {
24247 {
24248#line 685
24249 __cil_tmp8 = 1 << 15;
24250#line 685
24251 __cil_tmp9 = (unsigned long long )__cil_tmp8;
24252#line 685
24253 if (features & __cil_tmp9) {
24254#line 685
24255 hdr_len = 12UL;
24256 } else {
24257#line 685
24258 hdr_len = 10UL;
24259 }
24260 }
24261 {
24262#line 688
24263 __cil_tmp10 = 1 << 27;
24264#line 688
24265 __cil_tmp11 = (unsigned long long )__cil_tmp10;
24266#line 688
24267 if (features & __cil_tmp11) {
24268#line 690
24269 vhost_hlen = hdr_len;
24270#line 691
24271 sock_hlen = (size_t )0;
24272 } else {
24273#line 694
24274 vhost_hlen = (size_t )0;
24275#line 695
24276 sock_hlen = hdr_len;
24277 }
24278 }
24279 {
24280#line 697
24281 __cil_tmp12 = & n->dev.mutex;
24282#line 697
24283 mutex_lock_nested(__cil_tmp12, 0U);
24284 }
24285 {
24286#line 698
24287 __cil_tmp13 = 1 << 26;
24288#line 698
24289 __cil_tmp14 = (unsigned long long )__cil_tmp13;
24290#line 698
24291 if (features & __cil_tmp14) {
24292 {
24293#line 698
24294 __cil_tmp15 = & n->dev;
24295#line 698
24296 tmp___7 = vhost_log_access_ok(__cil_tmp15);
24297 }
24298#line 698
24299 if (tmp___7) {
24300
24301 } else {
24302 {
24303#line 700
24304 __cil_tmp16 = & n->dev.mutex;
24305#line 700
24306 mutex_unlock(__cil_tmp16);
24307 }
24308#line 701
24309 return (-14);
24310 }
24311 } else {
24312
24313 }
24314 }
24315#line 703
24316 n->dev.acked_features = (unsigned int )features;
24317#line 704
24318 __asm__ volatile ("": : : "memory");
24319#line 705
24320 i = 0;
24321 {
24322#line 705
24323 while (1) {
24324 while_continue: ;
24325
24326#line 705
24327 if (i < 2) {
24328
24329 } else {
24330#line 705
24331 goto while_break;
24332 }
24333 {
24334#line 706
24335 __cil_tmp17 = & n->vqs[i].mutex;
24336#line 706
24337 mutex_lock_nested(__cil_tmp17, 0U);
24338#line 707
24339 n->vqs[i].vhost_hlen = vhost_hlen;
24340#line 708
24341 n->vqs[i].sock_hlen = sock_hlen;
24342#line 709
24343 __cil_tmp18 = & n->vqs[i].mutex;
24344#line 709
24345 mutex_unlock(__cil_tmp18);
24346#line 705
24347 i = i + 1;
24348 }
24349 }
24350 while_break___0: ;
24351 }
24352
24353 while_break:
24354 {
24355#line 711
24356 vhost_net_flush(n);
24357#line 712
24358 __cil_tmp19 = & n->dev.mutex;
24359#line 712
24360 mutex_unlock(__cil_tmp19);
24361 }
24362#line 713
24363 return (0);
24364}
24365}
24366#line 716 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24367static long vhost_net_ioctl(struct file *f , unsigned int ioctl , unsigned long arg )
24368{ struct vhost_net *n ;
24369 void *argp ;
24370 u64 *featurep ;
24371 struct vhost_vring_file backend ;
24372 u64 features ;
24373 int r ;
24374 unsigned long tmp___7 ;
24375 long tmp___8 ;
24376 int tmp___9 ;
24377 unsigned long tmp___10 ;
24378 int tmp___11 ;
24379 long tmp___12 ;
24380 long tmp___13 ;
24381 unsigned long tmp ;
24382 int tmp___14 ;
24383 unsigned long tmp___15 ;
24384 unsigned long tmp___16 ;
24385 int tmp___17 ;
24386 unsigned long tmp___18 ;
24387 void *__cil_tmp23 ;
24388 unsigned long __cil_tmp24 ;
24389 int __cil_tmp25 ;
24390 unsigned int __cil_tmp26 ;
24391 unsigned int __cil_tmp27 ;
24392 unsigned int __cil_tmp28 ;
24393 unsigned int __cil_tmp29 ;
24394 unsigned long __cil_tmp30 ;
24395 unsigned long __cil_tmp31 ;
24396 int __cil_tmp32 ;
24397 unsigned long __cil_tmp33 ;
24398 unsigned long __cil_tmp34 ;
24399 int __cil_tmp35 ;
24400 unsigned int __cil_tmp36 ;
24401 unsigned int __cil_tmp37 ;
24402 unsigned int __cil_tmp38 ;
24403 unsigned long __cil_tmp39 ;
24404 unsigned long __cil_tmp40 ;
24405 int __cil_tmp41 ;
24406 unsigned long __cil_tmp42 ;
24407 unsigned long __cil_tmp43 ;
24408 int __cil_tmp44 ;
24409 unsigned int __cil_tmp45 ;
24410 unsigned int __cil_tmp46 ;
24411 unsigned int __cil_tmp47 ;
24412 unsigned long __cil_tmp48 ;
24413 unsigned long __cil_tmp49 ;
24414 int __cil_tmp50 ;
24415 unsigned long __cil_tmp51 ;
24416 int __cil_tmp52 ;
24417 unsigned int __cil_tmp53 ;
24418 unsigned int __cil_tmp54 ;
24419 int __cil_tmp55 ;
24420 unsigned int __cil_tmp56 ;
24421 void *__cil_tmp57 ;
24422 void const *__cil_tmp58 ;
24423 void *__cil_tmp59 ;
24424 void const *__cil_tmp60 ;
24425 unsigned int __cil_tmp61 ;
24426 void *__cil_tmp62 ;
24427 void const *__cil_tmp63 ;
24428 struct mutex *__cil_tmp64 ;
24429 struct vhost_dev *__cil_tmp65 ;
24430 struct mutex *__cil_tmp66 ;
24431
24432 {
24433#line 719
24434 __cil_tmp23 = f->private_data;
24435#line 719
24436 n = (struct vhost_net *)__cil_tmp23;
24437#line 720
24438 argp = (void *)arg;
24439#line 721
24440 featurep = (u64 *)argp;
24441 {
24442#line 727
24443 __cil_tmp24 = 8UL << 16;
24444#line 727
24445 __cil_tmp25 = 175 << 8;
24446#line 727
24447 __cil_tmp26 = (unsigned int )__cil_tmp25;
24448#line 727
24449 __cil_tmp27 = 1U << 30;
24450#line 727
24451 __cil_tmp28 = __cil_tmp27 | __cil_tmp26;
24452#line 727
24453 __cil_tmp29 = __cil_tmp28 | 48U;
24454#line 727
24455 __cil_tmp30 = (unsigned long )__cil_tmp29;
24456#line 727
24457 __cil_tmp31 = __cil_tmp30 | __cil_tmp24;
24458#line 727
24459 __cil_tmp32 = (int )ioctl;
24460#line 727
24461 __cil_tmp33 = (unsigned long )__cil_tmp32;
24462#line 727
24463 if (__cil_tmp33 == __cil_tmp31) {
24464#line 727
24465 goto case_exp;
24466 } else {
24467 {
24468#line 731
24469 __cil_tmp34 = 8UL << 16;
24470#line 731
24471 __cil_tmp35 = 175 << 8;
24472#line 731
24473 __cil_tmp36 = (unsigned int )__cil_tmp35;
24474#line 731
24475 __cil_tmp37 = 2U << 30;
24476#line 731
24477 __cil_tmp38 = __cil_tmp37 | __cil_tmp36;
24478#line 731
24479 __cil_tmp39 = (unsigned long )__cil_tmp38;
24480#line 731
24481 __cil_tmp40 = __cil_tmp39 | __cil_tmp34;
24482#line 731
24483 __cil_tmp41 = (int )ioctl;
24484#line 731
24485 __cil_tmp42 = (unsigned long )__cil_tmp41;
24486#line 731
24487 if (__cil_tmp42 == __cil_tmp40) {
24488#line 731
24489 goto case_exp___0;
24490 } else {
24491 {
24492#line 736
24493 __cil_tmp43 = 8UL << 16;
24494#line 736
24495 __cil_tmp44 = 175 << 8;
24496#line 736
24497 __cil_tmp45 = (unsigned int )__cil_tmp44;
24498#line 736
24499 __cil_tmp46 = 1U << 30;
24500#line 736
24501 __cil_tmp47 = __cil_tmp46 | __cil_tmp45;
24502#line 736
24503 __cil_tmp48 = (unsigned long )__cil_tmp47;
24504#line 736
24505 __cil_tmp49 = __cil_tmp48 | __cil_tmp43;
24506#line 736
24507 __cil_tmp50 = (int )ioctl;
24508#line 736
24509 __cil_tmp51 = (unsigned long )__cil_tmp50;
24510#line 736
24511 if (__cil_tmp51 == __cil_tmp49) {
24512#line 736
24513 goto case_exp___1;
24514 } else {
24515 {
24516#line 742
24517 __cil_tmp52 = 175 << 8;
24518#line 742
24519 __cil_tmp53 = (unsigned int )__cil_tmp52;
24520#line 742
24521 __cil_tmp54 = __cil_tmp53 | 2U;
24522#line 742
24523 __cil_tmp55 = (int )ioctl;
24524#line 742
24525 __cil_tmp56 = (unsigned int )__cil_tmp55;
24526#line 742
24527 if (__cil_tmp56 == __cil_tmp54) {
24528#line 742
24529 goto case_exp___2;
24530 } else {
24531#line 744
24532 goto switch_default;
24533#line 726
24534 if (0) {
24535 case_exp:
24536 {
24537#line 728
24538 __cil_tmp57 = (void *)(& backend);
24539#line 728
24540 __cil_tmp58 = (void const *)argp;
24541#line 728
24542 tmp___16 = (unsigned long )copy_from_user(__cil_tmp57, __cil_tmp58, 8UL);
24543#line 728
24544 tmp = tmp___16;
24545#line 728
24546 tmp___7 = tmp;
24547 }
24548#line 728
24549 if (tmp___7) {
24550#line 729
24551 return (-14L);
24552 } else {
24553
24554 }
24555 {
24556#line 730
24557 tmp___8 = vhost_net_set_backend(n, backend.index, backend.fd);
24558 }
24559#line 730
24560 return (tmp___8);
24561 case_exp___0:
24562 {
24563#line 732
24564 features = (u64 )1023442944;
24565#line 733
24566 __cil_tmp59 = (void *)featurep;
24567#line 733
24568 __cil_tmp60 = (void const *)(& features);
24569#line 733
24570 __cil_tmp61 = (unsigned int )8UL;
24571#line 733
24572 tmp___17 = (int )copy_to_user(__cil_tmp59, __cil_tmp60, __cil_tmp61);
24573#line 733
24574 tmp___14 = tmp___17;
24575#line 733
24576 tmp___9 = tmp___14;
24577 }
24578#line 733
24579 if (tmp___9) {
24580#line 734
24581 return (-14L);
24582 } else {
24583
24584 }
24585#line 735
24586 return (0L);
24587 case_exp___1:
24588 {
24589#line 737
24590 __cil_tmp62 = (void *)(& features);
24591#line 737
24592 __cil_tmp63 = (void const *)featurep;
24593#line 737
24594 tmp___18 = (unsigned long )copy_from_user(__cil_tmp62, __cil_tmp63, 8UL);
24595#line 737
24596 tmp___15 = tmp___18;
24597#line 737
24598 tmp___10 = tmp___15;
24599 }
24600#line 737
24601 if (tmp___10) {
24602#line 738
24603 return (-14L);
24604 } else {
24605
24606 }
24607#line 739
24608 if (features & 1152921503583404031ULL) {
24609#line 740
24610 return (-95L);
24611 } else {
24612
24613 }
24614 {
24615#line 741
24616 tmp___11 = vhost_net_set_features(n, features);
24617 }
24618#line 741
24619 return ((long )tmp___11);
24620 case_exp___2:
24621 {
24622#line 743
24623 tmp___12 = vhost_net_reset_owner(n);
24624 }
24625#line 743
24626 return (tmp___12);
24627 switch_default:
24628 {
24629#line 745
24630 __cil_tmp64 = & n->dev.mutex;
24631#line 745
24632 mutex_lock_nested(__cil_tmp64, 0U);
24633#line 746
24634 __cil_tmp65 = & n->dev;
24635#line 746
24636 tmp___13 = vhost_dev_ioctl(__cil_tmp65, ioctl, arg);
24637#line 746
24638 r = (int )tmp___13;
24639#line 747
24640 vhost_net_flush(n);
24641#line 748
24642 __cil_tmp66 = & n->dev.mutex;
24643#line 748
24644 mutex_unlock(__cil_tmp66);
24645 }
24646#line 749
24647 return ((long )r);
24648 } else {
24649
24650 }
24651 }
24652 }
24653 }
24654 }
24655 }
24656 }
24657 }
24658 }
24659}
24660}
24661#line 754 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24662static long vhost_net_compat_ioctl(struct file *f , unsigned int ioctl , unsigned long arg )
24663{ void *tmp___7 ;
24664 long tmp___8 ;
24665 compat_uptr_t __cil_tmp6 ;
24666 unsigned long __cil_tmp7 ;
24667
24668 {
24669 {
24670#line 757
24671 __cil_tmp6 = (compat_uptr_t )arg;
24672#line 757
24673 tmp___7 = compat_ptr(__cil_tmp6);
24674#line 757
24675 __cil_tmp7 = (unsigned long )tmp___7;
24676#line 757
24677 tmp___8 = vhost_net_ioctl(f, ioctl, __cil_tmp7);
24678 }
24679#line 757
24680 return (tmp___8);
24681}
24682}
24683#line 761 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24684static struct file_operations const vhost_net_fops =
24685#line 761
24686 {& __this_module, & noop_llseek, (ssize_t (*)(struct file * , char * , size_t ,
24687 loff_t * ))0, (ssize_t (*)(struct file * ,
24688 char const * ,
24689 size_t ,
24690 loff_t * ))0,
24691 (ssize_t (*)(struct kiocb * , struct iovec const * , unsigned long , loff_t ))0,
24692 (ssize_t (*)(struct kiocb * , struct iovec const * , unsigned long , loff_t ))0,
24693 (int (*)(struct file * , void * , int (*)(void * , char const * , int , loff_t ,
24694 u64 , unsigned int ) ))0, (unsigned int (*)(struct file * ,
24695 struct poll_table_struct * ))0,
24696 & vhost_net_ioctl, & vhost_net_compat_ioctl, (int (*)(struct file * , struct vm_area_struct * ))0,
24697 & vhost_net_open, (int (*)(struct file * , fl_owner_t id ))0, & vhost_net_release,
24698 (int (*)(struct file * , int datasync ))0, (int (*)(struct kiocb * , int datasync ))0,
24699 (int (*)(int , struct file * , int ))0, (int (*)(struct file * , int , struct file_lock * ))0,
24700 (ssize_t (*)(struct file * , struct page * , int , size_t , loff_t * , int ))0,
24701 (unsigned long (*)(struct file * , unsigned long , unsigned long , unsigned long ,
24702 unsigned long ))0, (int (*)(int ))0, (int (*)(struct file * ,
24703 int , struct file_lock * ))0,
24704 (ssize_t (*)(struct pipe_inode_info * , struct file * , loff_t * , size_t , unsigned int ))0,
24705 (ssize_t (*)(struct file * , loff_t * , struct pipe_inode_info * , size_t , unsigned int ))0,
24706 (int (*)(struct file * , long , struct file_lock ** ))0, (long (*)(struct file *file ,
24707 int mode ,
24708 loff_t offset ,
24709 loff_t len ))0};
24710#line 772 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24711static struct miscdevice vhost_net_misc =
24712#line 772
24713 {255, "vhost-net", & vhost_net_fops, {(struct list_head *)0, (struct list_head *)0},
24714 (struct device *)0, (struct device *)0, (char const *)0, 0U};
24715#line 778 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24716static int vhost_net_init(void)
24717{ int tmp___7 ;
24718
24719 {
24720 {
24721#line 780
24722 tmp___7 = misc_register(& vhost_net_misc);
24723 }
24724#line 780
24725 return (tmp___7);
24726}
24727}
24728#line 782 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24729int init_module(void)
24730{ int tmp___7 ;
24731
24732 {
24733 {
24734#line 782
24735 tmp___7 = vhost_net_init();
24736 }
24737#line 782
24738 return (tmp___7);
24739}
24740}
24741#line 784 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24742static void vhost_net_exit(void)
24743{
24744
24745 {
24746 {
24747#line 786
24748 misc_deregister(& vhost_net_misc);
24749 }
24750#line 787
24751 return;
24752}
24753}
24754#line 788 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24755void cleanup_module(void)
24756{
24757
24758 {
24759 {
24760#line 788
24761 vhost_net_exit();
24762 }
24763#line 788
24764 return;
24765}
24766}
24767#line 790 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24768static char const __mod_version790[14] __attribute__((__used__, __unused__, __section__(".modinfo"),
24769__aligned__(1))) =
24770#line 790
24771 { (char const )'v', (char const )'e', (char const )'r', (char const )'s',
24772 (char const )'i', (char const )'o', (char const )'n', (char const )'=',
24773 (char const )'0', (char const )'.', (char const )'0', (char const )'.',
24774 (char const )'1', (char const )'\000'};
24775#line 791 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24776static char const __mod_license791[15] __attribute__((__used__, __unused__, __section__(".modinfo"),
24777__aligned__(1))) =
24778#line 791
24779 { (char const )'l', (char const )'i', (char const )'c', (char const )'e',
24780 (char const )'n', (char const )'s', (char const )'e', (char const )'=',
24781 (char const )'G', (char const )'P', (char const )'L', (char const )' ',
24782 (char const )'v', (char const )'2', (char const )'\000'};
24783#line 792 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24784static char const __mod_author792[26] __attribute__((__used__, __unused__, __section__(".modinfo"),
24785__aligned__(1))) =
24786#line 792
24787 { (char const )'a', (char const )'u', (char const )'t', (char const )'h',
24788 (char const )'o', (char const )'r', (char const )'=', (char const )'M',
24789 (char const )'i', (char const )'c', (char const )'h', (char const )'a',
24790 (char const )'e', (char const )'l', (char const )' ', (char const )'S',
24791 (char const )'.', (char const )' ', (char const )'T', (char const )'s',
24792 (char const )'i', (char const )'r', (char const )'k', (char const )'i',
24793 (char const )'n', (char const )'\000'};
24794#line 793 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24795static char const __mod_description793[51] __attribute__((__used__, __unused__,
24796__section__(".modinfo"), __aligned__(1))) =
24797#line 793
24798 { (char const )'d', (char const )'e', (char const )'s', (char const )'c',
24799 (char const )'r', (char const )'i', (char const )'p', (char const )'t',
24800 (char const )'i', (char const )'o', (char const )'n', (char const )'=',
24801 (char const )'H', (char const )'o', (char const )'s', (char const )'t',
24802 (char const )' ', (char const )'k', (char const )'e', (char const )'r',
24803 (char const )'n', (char const )'e', (char const )'l', (char const )' ',
24804 (char const )'a', (char const )'c', (char const )'c', (char const )'e',
24805 (char const )'l', (char const )'e', (char const )'r', (char const )'a',
24806 (char const )'t', (char const )'o', (char const )'r', (char const )' ',
24807 (char const )'f', (char const )'o', (char const )'r', (char const )' ',
24808 (char const )'v', (char const )'i', (char const )'r', (char const )'t',
24809 (char const )'i', (char const )'o', (char const )' ', (char const )'n',
24810 (char const )'e', (char const )'t', (char const )'\000'};
24811#line 814
24812extern void ldv_check_return_value(int res ) ;
24813#line 817
24814extern void ldv_initialize(void) ;
24815#line 820
24816extern int nondet_int(void) ;
24817#line 823 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24818int LDV_IN_INTERRUPT ;
24819#line 880 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24820static int res_vhost_net_open_12 ;
24821#line 826 "/anthill/stuff/tacas-comp/work/current--X--drivers/vhost/vhost_net.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/12/dscv_tempdir/dscv/ri/68_1/drivers/vhost/net.c"
24822void main(void)
24823{ struct inode *var_group1 ;
24824 struct file *var_group2 ;
24825 unsigned int var_vhost_net_ioctl_26_p1 ;
24826 unsigned long var_vhost_net_ioctl_26_p2 ;
24827 unsigned int var_vhost_net_compat_ioctl_27_p1 ;
24828 unsigned long var_vhost_net_compat_ioctl_27_p2 ;
24829 int tmp___7 ;
24830 int ldv_s_vhost_net_fops_file_operations ;
24831 int tmp___8 ;
24832 int tmp___9 ;
24833 int __cil_tmp11 ;
24834
24835 {
24836 {
24837#line 894
24838 LDV_IN_INTERRUPT = 1;
24839#line 903
24840 ldv_initialize();
24841#line 915
24842 tmp___7 = vhost_net_init();
24843 }
24844#line 915
24845 if (tmp___7) {
24846#line 916
24847 goto ldv_final;
24848 } else {
24849
24850 }
24851#line 917
24852 ldv_s_vhost_net_fops_file_operations = 0;
24853 {
24854#line 921
24855 while (1) {
24856 while_continue: ;
24857 {
24858#line 921
24859 tmp___9 = nondet_int();
24860 }
24861#line 921
24862 if (tmp___9) {
24863
24864 } else {
24865 {
24866#line 921
24867 __cil_tmp11 = ldv_s_vhost_net_fops_file_operations == 0;
24868#line 921
24869 if (! __cil_tmp11) {
24870
24871 } else {
24872#line 921
24873 goto while_break;
24874 }
24875 }
24876 }
24877 {
24878#line 925
24879 tmp___8 = nondet_int();
24880 }
24881#line 927
24882 if (tmp___8 == 0) {
24883#line 927
24884 goto case_0;
24885 } else
24886#line 954
24887 if (tmp___8 == 1) {
24888#line 954
24889 goto case_1;
24890 } else
24891#line 978
24892 if (tmp___8 == 2) {
24893#line 978
24894 goto case_2;
24895 } else
24896#line 1002
24897 if (tmp___8 == 3) {
24898#line 1002
24899 goto case_3;
24900 } else {
24901#line 1026
24902 goto switch_default;
24903#line 925
24904 if (0) {
24905 case_0:
24906#line 930
24907 if (ldv_s_vhost_net_fops_file_operations == 0) {
24908 {
24909#line 937
24910 res_vhost_net_open_12 = vhost_net_open(var_group1, var_group2);
24911#line 938
24912 ldv_check_return_value(res_vhost_net_open_12);
24913 }
24914#line 939
24915 if (res_vhost_net_open_12) {
24916#line 940
24917 goto ldv_module_exit;
24918 } else {
24919
24920 }
24921#line 947
24922 ldv_s_vhost_net_fops_file_operations = ldv_s_vhost_net_fops_file_operations + 1;
24923 } else {
24924
24925 }
24926#line 953
24927 goto switch_break;
24928 case_1:
24929#line 957
24930 if (ldv_s_vhost_net_fops_file_operations == 1) {
24931 {
24932#line 964
24933 vhost_net_release(var_group1, var_group2);
24934#line 971
24935 ldv_s_vhost_net_fops_file_operations = 0;
24936 }
24937 } else {
24938
24939 }
24940#line 977
24941 goto switch_break;
24942 case_2:
24943 {
24944#line 988
24945 vhost_net_ioctl(var_group2, var_vhost_net_ioctl_26_p1, var_vhost_net_ioctl_26_p2);
24946 }
24947#line 1001
24948 goto switch_break;
24949 case_3:
24950 {
24951#line 1013
24952 vhost_net_compat_ioctl(var_group2, var_vhost_net_compat_ioctl_27_p1, var_vhost_net_compat_ioctl_27_p2);
24953 }
24954#line 1025
24955 goto switch_break;
24956 switch_default:
24957#line 1026
24958 goto switch_break;
24959 } else {
24960 switch_break: ;
24961 }
24962 }
24963 }
24964 while_break___0: ;
24965 }
24966
24967 while_break: ;
24968 ldv_module_exit:
24969 {
24970#line 1044
24971 vhost_net_exit();
24972 }
24973 ldv_final:
24974 {
24975#line 1047
24976 ldv_check_final_state();
24977 }
24978#line 1050
24979 return;
24980}
24981}