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 49 "include/asm-generic/int-ll64.h"
25typedef unsigned int u32;
26#line 51 "include/asm-generic/int-ll64.h"
27typedef long long s64;
28#line 52 "include/asm-generic/int-ll64.h"
29typedef unsigned long long u64;
30#line 11 "include/asm-generic/types.h"
31typedef unsigned short umode_t;
32#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
33typedef unsigned int __kernel_mode_t;
34#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
35typedef int __kernel_pid_t;
36#line 16 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
37typedef unsigned int __kernel_uid_t;
38#line 17 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
39typedef unsigned int __kernel_gid_t;
40#line 18 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
41typedef unsigned long __kernel_size_t;
42#line 19 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
43typedef long __kernel_ssize_t;
44#line 21 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
45typedef long __kernel_time_t;
46#line 23 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
47typedef long __kernel_clock_t;
48#line 24 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
49typedef int __kernel_timer_t;
50#line 25 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
51typedef int __kernel_clockid_t;
52#line 32 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
53typedef long long __kernel_loff_t;
54#line 41 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
55typedef __kernel_uid_t __kernel_uid32_t;
56#line 42 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
57typedef __kernel_gid_t __kernel_gid32_t;
58#line 21 "include/linux/types.h"
59typedef __u32 __kernel_dev_t;
60#line 24 "include/linux/types.h"
61typedef __kernel_dev_t dev_t;
62#line 26 "include/linux/types.h"
63typedef __kernel_mode_t mode_t;
64#line 29 "include/linux/types.h"
65typedef __kernel_pid_t pid_t;
66#line 34 "include/linux/types.h"
67typedef __kernel_clockid_t clockid_t;
68#line 37 "include/linux/types.h"
69typedef _Bool bool;
70#line 39 "include/linux/types.h"
71typedef __kernel_uid32_t uid_t;
72#line 40 "include/linux/types.h"
73typedef __kernel_gid32_t gid_t;
74#line 53 "include/linux/types.h"
75typedef __kernel_loff_t loff_t;
76#line 62 "include/linux/types.h"
77typedef __kernel_size_t size_t;
78#line 67 "include/linux/types.h"
79typedef __kernel_ssize_t ssize_t;
80#line 77 "include/linux/types.h"
81typedef __kernel_time_t time_t;
82#line 110 "include/linux/types.h"
83typedef __s32 int32_t;
84#line 114 "include/linux/types.h"
85typedef __u8 uint8_t;
86#line 116 "include/linux/types.h"
87typedef __u32 uint32_t;
88#line 141 "include/linux/types.h"
89typedef unsigned long sector_t;
90#line 142 "include/linux/types.h"
91typedef unsigned long blkcnt_t;
92#line 154 "include/linux/types.h"
93typedef u64 dma_addr_t;
94#line 177 "include/linux/types.h"
95typedef __u16 __le16;
96#line 178 "include/linux/types.h"
97typedef __u16 __be16;
98#line 180 "include/linux/types.h"
99typedef __u32 __be32;
100#line 201 "include/linux/types.h"
101typedef unsigned int gfp_t;
102#line 202 "include/linux/types.h"
103typedef unsigned int fmode_t;
104#line 212 "include/linux/types.h"
105struct __anonstruct_atomic_t_7 {
106 int counter ;
107};
108#line 212 "include/linux/types.h"
109typedef struct __anonstruct_atomic_t_7 atomic_t;
110#line 217 "include/linux/types.h"
111struct __anonstruct_atomic64_t_8 {
112 long counter ;
113};
114#line 217 "include/linux/types.h"
115typedef struct __anonstruct_atomic64_t_8 atomic64_t;
116#line 222 "include/linux/types.h"
117struct list_head {
118 struct list_head *next ;
119 struct list_head *prev ;
120};
121#line 226
122struct hlist_node;
123#line 226
124struct hlist_node;
125#line 226
126struct hlist_node;
127#line 226 "include/linux/types.h"
128struct hlist_head {
129 struct hlist_node *first ;
130};
131#line 230 "include/linux/types.h"
132struct hlist_node {
133 struct hlist_node *next ;
134 struct hlist_node **pprev ;
135};
136#line 59 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/alternative.h"
137struct module;
138#line 59
139struct module;
140#line 59
141struct module;
142#line 59
143struct module;
144#line 145 "include/linux/init.h"
145typedef void (*ctor_fn_t)(void);
146#line 10 "include/asm-generic/bug.h"
147struct bug_entry {
148 int bug_addr_disp ;
149 int file_disp ;
150 unsigned short line ;
151 unsigned short flags ;
152};
153#line 113 "include/linux/kernel.h"
154struct completion;
155#line 113
156struct completion;
157#line 113
158struct completion;
159#line 113
160struct completion;
161#line 114
162struct pt_regs;
163#line 114
164struct pt_regs;
165#line 114
166struct pt_regs;
167#line 114
168struct pt_regs;
169#line 322
170struct pid;
171#line 322
172struct pid;
173#line 322
174struct pid;
175#line 322
176struct pid;
177#line 12 "include/linux/thread_info.h"
178struct timespec;
179#line 12
180struct timespec;
181#line 12
182struct timespec;
183#line 12
184struct timespec;
185#line 18 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/page.h"
186struct page;
187#line 18
188struct page;
189#line 18
190struct page;
191#line 18
192struct page;
193#line 20 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
194struct task_struct;
195#line 20
196struct task_struct;
197#line 20
198struct task_struct;
199#line 20
200struct task_struct;
201#line 7 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
202struct task_struct;
203#line 8
204struct mm_struct;
205#line 8
206struct mm_struct;
207#line 8
208struct mm_struct;
209#line 8
210struct mm_struct;
211#line 99 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/ptrace.h"
212struct pt_regs {
213 unsigned long r15 ;
214 unsigned long r14 ;
215 unsigned long r13 ;
216 unsigned long r12 ;
217 unsigned long bp ;
218 unsigned long bx ;
219 unsigned long r11 ;
220 unsigned long r10 ;
221 unsigned long r9 ;
222 unsigned long r8 ;
223 unsigned long ax ;
224 unsigned long cx ;
225 unsigned long dx ;
226 unsigned long si ;
227 unsigned long di ;
228 unsigned long orig_ax ;
229 unsigned long ip ;
230 unsigned long cs ;
231 unsigned long flags ;
232 unsigned long sp ;
233 unsigned long ss ;
234};
235#line 136
236struct task_struct;
237#line 141 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/vm86.h"
238struct kernel_vm86_regs {
239 struct pt_regs pt ;
240 unsigned short es ;
241 unsigned short __esh ;
242 unsigned short ds ;
243 unsigned short __dsh ;
244 unsigned short fs ;
245 unsigned short __fsh ;
246 unsigned short gs ;
247 unsigned short __gsh ;
248};
249#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/math_emu.h"
250union __anonunion____missing_field_name_14 {
251 struct pt_regs *regs ;
252 struct kernel_vm86_regs *vm86 ;
253};
254#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/math_emu.h"
255struct math_emu_info {
256 long ___orig_eip ;
257 union __anonunion____missing_field_name_14 __annonCompField5 ;
258};
259#line 8 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
260struct task_struct;
261#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"
262typedef unsigned long pgdval_t;
263#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"
264typedef unsigned long pgprotval_t;
265#line 190 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
266struct pgprot {
267 pgprotval_t pgprot ;
268};
269#line 190 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
270typedef struct pgprot pgprot_t;
271#line 192 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
272struct __anonstruct_pgd_t_17 {
273 pgdval_t pgd ;
274};
275#line 192 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
276typedef struct __anonstruct_pgd_t_17 pgd_t;
277#line 280 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
278typedef struct page *pgtable_t;
279#line 293
280struct file;
281#line 293
282struct file;
283#line 293
284struct file;
285#line 293
286struct file;
287#line 311
288struct seq_file;
289#line 311
290struct seq_file;
291#line 311
292struct seq_file;
293#line 311
294struct seq_file;
295#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
296struct __anonstruct____missing_field_name_22 {
297 unsigned int a ;
298 unsigned int b ;
299};
300#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
301struct __anonstruct____missing_field_name_23 {
302 u16 limit0 ;
303 u16 base0 ;
304 unsigned int base1 : 8 ;
305 unsigned int type : 4 ;
306 unsigned int s : 1 ;
307 unsigned int dpl : 2 ;
308 unsigned int p : 1 ;
309 unsigned int limit : 4 ;
310 unsigned int avl : 1 ;
311 unsigned int l : 1 ;
312 unsigned int d : 1 ;
313 unsigned int g : 1 ;
314 unsigned int base2 : 8 ;
315};
316#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
317union __anonunion____missing_field_name_21 {
318 struct __anonstruct____missing_field_name_22 __annonCompField7 ;
319 struct __anonstruct____missing_field_name_23 __annonCompField8 ;
320};
321#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
322struct desc_struct {
323 union __anonunion____missing_field_name_21 __annonCompField9 ;
324} __attribute__((__packed__)) ;
325#line 45 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt_types.h"
326struct page;
327#line 46
328struct thread_struct;
329#line 46
330struct thread_struct;
331#line 46
332struct thread_struct;
333#line 46
334struct thread_struct;
335#line 49
336struct mm_struct;
337#line 50
338struct desc_struct;
339#line 51
340struct task_struct;
341#line 52
342struct cpumask;
343#line 52
344struct cpumask;
345#line 52
346struct cpumask;
347#line 52
348struct cpumask;
349#line 322
350struct arch_spinlock;
351#line 322
352struct arch_spinlock;
353#line 322
354struct arch_spinlock;
355#line 322
356struct arch_spinlock;
357#line 13 "include/linux/cpumask.h"
358struct cpumask {
359 unsigned long bits[((4096UL + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
360};
361#line 13 "include/linux/cpumask.h"
362typedef struct cpumask cpumask_t;
363#line 622 "include/linux/cpumask.h"
364typedef struct cpumask *cpumask_var_t;
365#line 20 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/system.h"
366struct task_struct;
367#line 11 "include/linux/personality.h"
368struct pt_regs;
369#line 280 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
370struct i387_fsave_struct {
371 u32 cwd ;
372 u32 swd ;
373 u32 twd ;
374 u32 fip ;
375 u32 fcs ;
376 u32 foo ;
377 u32 fos ;
378 u32 st_space[20] ;
379 u32 status ;
380};
381#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
382struct __anonstruct____missing_field_name_31 {
383 u64 rip ;
384 u64 rdp ;
385};
386#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
387struct __anonstruct____missing_field_name_32 {
388 u32 fip ;
389 u32 fcs ;
390 u32 foo ;
391 u32 fos ;
392};
393#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
394union __anonunion____missing_field_name_30 {
395 struct __anonstruct____missing_field_name_31 __annonCompField12 ;
396 struct __anonstruct____missing_field_name_32 __annonCompField13 ;
397};
398#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
399union __anonunion____missing_field_name_33 {
400 u32 padding1[12] ;
401 u32 sw_reserved[12] ;
402};
403#line 296 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
404struct i387_fxsave_struct {
405 u16 cwd ;
406 u16 swd ;
407 u16 twd ;
408 u16 fop ;
409 union __anonunion____missing_field_name_30 __annonCompField14 ;
410 u32 mxcsr ;
411 u32 mxcsr_mask ;
412 u32 st_space[32] ;
413 u32 xmm_space[64] ;
414 u32 padding[12] ;
415 union __anonunion____missing_field_name_33 __annonCompField15 ;
416} __attribute__((__aligned__(16))) ;
417#line 331 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
418struct i387_soft_struct {
419 u32 cwd ;
420 u32 swd ;
421 u32 twd ;
422 u32 fip ;
423 u32 fcs ;
424 u32 foo ;
425 u32 fos ;
426 u32 st_space[20] ;
427 u8 ftop ;
428 u8 changed ;
429 u8 lookahead ;
430 u8 no_update ;
431 u8 rm ;
432 u8 alimit ;
433 struct math_emu_info *info ;
434 u32 entry_eip ;
435};
436#line 351 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
437struct ymmh_struct {
438 u32 ymmh_space[64] ;
439};
440#line 356 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
441struct xsave_hdr_struct {
442 u64 xstate_bv ;
443 u64 reserved1[2] ;
444 u64 reserved2[5] ;
445} __attribute__((__packed__)) ;
446#line 362 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
447struct xsave_struct {
448 struct i387_fxsave_struct i387 ;
449 struct xsave_hdr_struct xsave_hdr ;
450 struct ymmh_struct ymmh ;
451} __attribute__((__packed__, __aligned__(64))) ;
452#line 369 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
453union thread_xstate {
454 struct i387_fsave_struct fsave ;
455 struct i387_fxsave_struct fxsave ;
456 struct i387_soft_struct soft ;
457 struct xsave_struct xsave ;
458};
459#line 376 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
460struct fpu {
461 union thread_xstate *state ;
462};
463#line 421
464struct kmem_cache;
465#line 421
466struct kmem_cache;
467#line 421
468struct kmem_cache;
469#line 423
470struct perf_event;
471#line 423
472struct perf_event;
473#line 423
474struct perf_event;
475#line 423
476struct perf_event;
477#line 425 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
478struct thread_struct {
479 struct desc_struct tls_array[3] ;
480 unsigned long sp0 ;
481 unsigned long sp ;
482 unsigned long usersp ;
483 unsigned short es ;
484 unsigned short ds ;
485 unsigned short fsindex ;
486 unsigned short gsindex ;
487 unsigned long fs ;
488 unsigned long gs ;
489 struct perf_event *ptrace_bps[4] ;
490 unsigned long debugreg6 ;
491 unsigned long ptrace_dr7 ;
492 unsigned long cr2 ;
493 unsigned long trap_no ;
494 unsigned long error_code ;
495 struct fpu fpu ;
496 unsigned long *io_bitmap_ptr ;
497 unsigned long iopl ;
498 unsigned int io_bitmap_max ;
499};
500#line 23 "include/asm-generic/atomic-long.h"
501typedef atomic64_t atomic_long_t;
502#line 8 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
503struct arch_spinlock {
504 unsigned int slock ;
505};
506#line 8 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
507typedef struct arch_spinlock arch_spinlock_t;
508#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
509struct __anonstruct_arch_rwlock_t_36 {
510 unsigned int lock ;
511};
512#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
513typedef struct __anonstruct_arch_rwlock_t_36 arch_rwlock_t;
514#line 12 "include/linux/lockdep.h"
515struct task_struct;
516#line 13
517struct lockdep_map;
518#line 13
519struct lockdep_map;
520#line 13
521struct lockdep_map;
522#line 13
523struct lockdep_map;
524#line 8 "include/linux/debug_locks.h"
525struct task_struct;
526#line 48
527struct task_struct;
528#line 4 "include/linux/stacktrace.h"
529struct task_struct;
530#line 5
531struct pt_regs;
532#line 8
533struct task_struct;
534#line 10 "include/linux/stacktrace.h"
535struct stack_trace {
536 unsigned int nr_entries ;
537 unsigned int max_entries ;
538 unsigned long *entries ;
539 int skip ;
540};
541#line 50 "include/linux/lockdep.h"
542struct lockdep_subclass_key {
543 char __one_byte ;
544} __attribute__((__packed__)) ;
545#line 54 "include/linux/lockdep.h"
546struct lock_class_key {
547 struct lockdep_subclass_key subkeys[8UL] ;
548};
549#line 65 "include/linux/lockdep.h"
550struct lock_class {
551 struct list_head hash_entry ;
552 struct list_head lock_entry ;
553 struct lockdep_subclass_key *key ;
554 unsigned int subclass ;
555 unsigned int dep_gen_id ;
556 unsigned long usage_mask ;
557 struct stack_trace usage_traces[13] ;
558 struct list_head locks_after ;
559 struct list_head locks_before ;
560 unsigned int version ;
561 unsigned long ops ;
562 char const *name ;
563 int name_version ;
564 unsigned long contention_point[4] ;
565 unsigned long contending_point[4] ;
566};
567#line 150 "include/linux/lockdep.h"
568struct lockdep_map {
569 struct lock_class_key *key ;
570 struct lock_class *class_cache[2] ;
571 char const *name ;
572 int cpu ;
573 unsigned long ip ;
574};
575#line 196 "include/linux/lockdep.h"
576struct held_lock {
577 u64 prev_chain_key ;
578 unsigned long acquire_ip ;
579 struct lockdep_map *instance ;
580 struct lockdep_map *nest_lock ;
581 u64 waittime_stamp ;
582 u64 holdtime_stamp ;
583 unsigned int class_idx : 13 ;
584 unsigned int irq_context : 2 ;
585 unsigned int trylock : 1 ;
586 unsigned int read : 2 ;
587 unsigned int check : 2 ;
588 unsigned int hardirqs_off : 1 ;
589 unsigned int references : 11 ;
590};
591#line 20 "include/linux/spinlock_types.h"
592struct raw_spinlock {
593 arch_spinlock_t raw_lock ;
594 unsigned int magic ;
595 unsigned int owner_cpu ;
596 void *owner ;
597 struct lockdep_map dep_map ;
598};
599#line 20 "include/linux/spinlock_types.h"
600typedef struct raw_spinlock raw_spinlock_t;
601#line 64 "include/linux/spinlock_types.h"
602struct __anonstruct____missing_field_name_38 {
603 u8 __padding[(unsigned int )(& ((struct raw_spinlock *)0)->dep_map)] ;
604 struct lockdep_map dep_map ;
605};
606#line 64 "include/linux/spinlock_types.h"
607union __anonunion____missing_field_name_37 {
608 struct raw_spinlock rlock ;
609 struct __anonstruct____missing_field_name_38 __annonCompField17 ;
610};
611#line 64 "include/linux/spinlock_types.h"
612struct spinlock {
613 union __anonunion____missing_field_name_37 __annonCompField18 ;
614};
615#line 64 "include/linux/spinlock_types.h"
616typedef struct spinlock spinlock_t;
617#line 11 "include/linux/rwlock_types.h"
618struct __anonstruct_rwlock_t_39 {
619 arch_rwlock_t raw_lock ;
620 unsigned int magic ;
621 unsigned int owner_cpu ;
622 void *owner ;
623 struct lockdep_map dep_map ;
624};
625#line 11 "include/linux/rwlock_types.h"
626typedef struct __anonstruct_rwlock_t_39 rwlock_t;
627#line 28 "include/linux/wait.h"
628struct __wait_queue;
629#line 28
630struct __wait_queue;
631#line 28
632struct __wait_queue;
633#line 28 "include/linux/wait.h"
634typedef struct __wait_queue wait_queue_t;
635#line 32 "include/linux/wait.h"
636struct __wait_queue {
637 unsigned int flags ;
638 void *private ;
639 int (*func)(wait_queue_t *wait , unsigned int mode , int flags , void *key ) ;
640 struct list_head task_list ;
641};
642#line 50 "include/linux/wait.h"
643struct __wait_queue_head {
644 spinlock_t lock ;
645 struct list_head task_list ;
646};
647#line 54 "include/linux/wait.h"
648typedef struct __wait_queue_head wait_queue_head_t;
649#line 56
650struct task_struct;
651#line 119 "include/linux/seqlock.h"
652struct seqcount {
653 unsigned int sequence ;
654};
655#line 119 "include/linux/seqlock.h"
656typedef struct seqcount seqcount_t;
657#line 96 "include/linux/nodemask.h"
658struct __anonstruct_nodemask_t_41 {
659 unsigned long bits[(((unsigned long )(1 << 10) + 8UL * sizeof(long )) - 1UL) / (8UL * sizeof(long ))] ;
660};
661#line 96 "include/linux/nodemask.h"
662typedef struct __anonstruct_nodemask_t_41 nodemask_t;
663#line 60 "include/linux/pageblock-flags.h"
664struct page;
665#line 48 "include/linux/mutex.h"
666struct mutex {
667 atomic_t count ;
668 spinlock_t wait_lock ;
669 struct list_head wait_list ;
670 struct task_struct *owner ;
671 char const *name ;
672 void *magic ;
673 struct lockdep_map dep_map ;
674};
675#line 69 "include/linux/mutex.h"
676struct mutex_waiter {
677 struct list_head list ;
678 struct task_struct *task ;
679 void *magic ;
680};
681#line 20 "include/linux/rwsem.h"
682struct rw_semaphore;
683#line 20
684struct rw_semaphore;
685#line 20
686struct rw_semaphore;
687#line 20
688struct rw_semaphore;
689#line 26 "include/linux/rwsem.h"
690struct rw_semaphore {
691 long count ;
692 spinlock_t wait_lock ;
693 struct list_head wait_list ;
694 struct lockdep_map dep_map ;
695};
696#line 8 "include/linux/memory_hotplug.h"
697struct page;
698#line 177 "include/linux/ioport.h"
699struct device;
700#line 177
701struct device;
702#line 177
703struct device;
704#line 177
705struct device;
706#line 103 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/mpspec.h"
707struct device;
708#line 14 "include/linux/time.h"
709struct timespec {
710 __kernel_time_t tv_sec ;
711 long tv_nsec ;
712};
713#line 46 "include/linux/ktime.h"
714union ktime {
715 s64 tv64 ;
716};
717#line 59 "include/linux/ktime.h"
718typedef union ktime ktime_t;
719#line 10 "include/linux/timer.h"
720struct tvec_base;
721#line 10
722struct tvec_base;
723#line 10
724struct tvec_base;
725#line 10
726struct tvec_base;
727#line 12 "include/linux/timer.h"
728struct timer_list {
729 struct list_head entry ;
730 unsigned long expires ;
731 struct tvec_base *base ;
732 void (*function)(unsigned long ) ;
733 unsigned long data ;
734 int slack ;
735 int start_pid ;
736 void *start_site ;
737 char start_comm[16] ;
738 struct lockdep_map lockdep_map ;
739};
740#line 289
741struct hrtimer;
742#line 289
743struct hrtimer;
744#line 289
745struct hrtimer;
746#line 289
747struct hrtimer;
748#line 290
749enum hrtimer_restart;
750#line 290
751enum hrtimer_restart;
752#line 290
753enum hrtimer_restart;
754#line 17 "include/linux/workqueue.h"
755struct work_struct;
756#line 17
757struct work_struct;
758#line 17
759struct work_struct;
760#line 17
761struct work_struct;
762#line 79 "include/linux/workqueue.h"
763struct work_struct {
764 atomic_long_t data ;
765 struct list_head entry ;
766 void (*func)(struct work_struct *work ) ;
767 struct lockdep_map lockdep_map ;
768};
769#line 92 "include/linux/workqueue.h"
770struct delayed_work {
771 struct work_struct work ;
772 struct timer_list timer ;
773};
774#line 25 "include/linux/completion.h"
775struct completion {
776 unsigned int done ;
777 wait_queue_head_t wait ;
778};
779#line 42 "include/linux/pm.h"
780struct device;
781#line 50 "include/linux/pm.h"
782struct pm_message {
783 int event ;
784};
785#line 50 "include/linux/pm.h"
786typedef struct pm_message pm_message_t;
787#line 204 "include/linux/pm.h"
788struct dev_pm_ops {
789 int (*prepare)(struct device *dev ) ;
790 void (*complete)(struct device *dev ) ;
791 int (*suspend)(struct device *dev ) ;
792 int (*resume)(struct device *dev ) ;
793 int (*freeze)(struct device *dev ) ;
794 int (*thaw)(struct device *dev ) ;
795 int (*poweroff)(struct device *dev ) ;
796 int (*restore)(struct device *dev ) ;
797 int (*suspend_noirq)(struct device *dev ) ;
798 int (*resume_noirq)(struct device *dev ) ;
799 int (*freeze_noirq)(struct device *dev ) ;
800 int (*thaw_noirq)(struct device *dev ) ;
801 int (*poweroff_noirq)(struct device *dev ) ;
802 int (*restore_noirq)(struct device *dev ) ;
803 int (*runtime_suspend)(struct device *dev ) ;
804 int (*runtime_resume)(struct device *dev ) ;
805 int (*runtime_idle)(struct device *dev ) ;
806};
807#line 392
808enum rpm_status {
809 RPM_ACTIVE = 0,
810 RPM_RESUMING = 1,
811 RPM_SUSPENDED = 2,
812 RPM_SUSPENDING = 3
813} ;
814#line 414
815enum rpm_request {
816 RPM_REQ_NONE = 0,
817 RPM_REQ_IDLE = 1,
818 RPM_REQ_SUSPEND = 2,
819 RPM_REQ_AUTOSUSPEND = 3,
820 RPM_REQ_RESUME = 4
821} ;
822#line 422
823struct wakeup_source;
824#line 422
825struct wakeup_source;
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 8
887struct vm_area_struct;
888#line 8
889struct vm_area_struct;
890#line 964 "include/linux/mmzone.h"
891struct page;
892#line 10 "include/linux/gfp.h"
893struct vm_area_struct;
894#line 20 "include/linux/kobject_ns.h"
895struct sock;
896#line 20
897struct sock;
898#line 20
899struct sock;
900#line 20
901struct sock;
902#line 21
903struct kobject;
904#line 21
905struct kobject;
906#line 21
907struct kobject;
908#line 21
909struct kobject;
910#line 27
911enum kobj_ns_type {
912 KOBJ_NS_TYPE_NONE = 0,
913 KOBJ_NS_TYPE_NET = 1,
914 KOBJ_NS_TYPES = 2
915} ;
916#line 40 "include/linux/kobject_ns.h"
917struct kobj_ns_type_operations {
918 enum kobj_ns_type type ;
919 void *(*grab_current_ns)(void) ;
920 void const *(*netlink_ns)(struct sock *sk ) ;
921 void const *(*initial_ns)(void) ;
922 void (*drop_ns)(void * ) ;
923};
924#line 22 "include/linux/sysfs.h"
925struct kobject;
926#line 23
927struct module;
928#line 24
929enum kobj_ns_type;
930#line 26 "include/linux/sysfs.h"
931struct attribute {
932 char const *name ;
933 mode_t mode ;
934 struct lock_class_key *key ;
935 struct lock_class_key skey ;
936};
937#line 56 "include/linux/sysfs.h"
938struct attribute_group {
939 char const *name ;
940 mode_t (*is_visible)(struct kobject * , struct attribute * , int ) ;
941 struct attribute **attrs ;
942};
943#line 85
944struct file;
945#line 86
946struct vm_area_struct;
947#line 88 "include/linux/sysfs.h"
948struct bin_attribute {
949 struct attribute attr ;
950 size_t size ;
951 void *private ;
952 ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
953 loff_t , size_t ) ;
954 ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
955 loff_t , size_t ) ;
956 int (*mmap)(struct file * , struct kobject * , struct bin_attribute *attr , struct vm_area_struct *vma ) ;
957};
958#line 112 "include/linux/sysfs.h"
959struct sysfs_ops {
960 ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
961 ssize_t (*store)(struct kobject * , struct attribute * , char const * , size_t ) ;
962};
963#line 117
964struct sysfs_dirent;
965#line 117
966struct sysfs_dirent;
967#line 117
968struct sysfs_dirent;
969#line 117
970struct sysfs_dirent;
971#line 20 "include/linux/kref.h"
972struct kref {
973 atomic_t refcount ;
974};
975#line 60 "include/linux/kobject.h"
976struct kset;
977#line 60
978struct kset;
979#line 60
980struct kset;
981#line 60
982struct kobj_type;
983#line 60
984struct kobj_type;
985#line 60
986struct kobj_type;
987#line 60 "include/linux/kobject.h"
988struct kobject {
989 char const *name ;
990 struct list_head entry ;
991 struct kobject *parent ;
992 struct kset *kset ;
993 struct kobj_type *ktype ;
994 struct sysfs_dirent *sd ;
995 struct kref kref ;
996 unsigned int state_initialized : 1 ;
997 unsigned int state_in_sysfs : 1 ;
998 unsigned int state_add_uevent_sent : 1 ;
999 unsigned int state_remove_uevent_sent : 1 ;
1000 unsigned int uevent_suppress : 1 ;
1001};
1002#line 110 "include/linux/kobject.h"
1003struct kobj_type {
1004 void (*release)(struct kobject *kobj ) ;
1005 struct sysfs_ops const *sysfs_ops ;
1006 struct attribute **default_attrs ;
1007 struct kobj_ns_type_operations const *(*child_ns_type)(struct kobject *kobj ) ;
1008 void const *(*namespace)(struct kobject *kobj ) ;
1009};
1010#line 118 "include/linux/kobject.h"
1011struct kobj_uevent_env {
1012 char *envp[32] ;
1013 int envp_idx ;
1014 char buf[2048] ;
1015 int buflen ;
1016};
1017#line 125 "include/linux/kobject.h"
1018struct kset_uevent_ops {
1019 int (* const filter)(struct kset *kset , struct kobject *kobj ) ;
1020 char const *(* const name)(struct kset *kset , struct kobject *kobj ) ;
1021 int (* const uevent)(struct kset *kset , struct kobject *kobj , struct kobj_uevent_env *env ) ;
1022};
1023#line 142
1024struct sock;
1025#line 161 "include/linux/kobject.h"
1026struct kset {
1027 struct list_head list ;
1028 spinlock_t list_lock ;
1029 struct kobject kobj ;
1030 struct kset_uevent_ops const *uevent_ops ;
1031};
1032#line 38 "include/linux/slub_def.h"
1033struct kmem_cache_cpu {
1034 void **freelist ;
1035 unsigned long tid ;
1036 struct page *page ;
1037 int node ;
1038 unsigned int stat[19] ;
1039};
1040#line 48 "include/linux/slub_def.h"
1041struct kmem_cache_node {
1042 spinlock_t list_lock ;
1043 unsigned long nr_partial ;
1044 struct list_head partial ;
1045 atomic_long_t nr_slabs ;
1046 atomic_long_t total_objects ;
1047 struct list_head full ;
1048};
1049#line 64 "include/linux/slub_def.h"
1050struct kmem_cache_order_objects {
1051 unsigned long x ;
1052};
1053#line 71 "include/linux/slub_def.h"
1054struct kmem_cache {
1055 struct kmem_cache_cpu *cpu_slab ;
1056 unsigned long flags ;
1057 unsigned long min_partial ;
1058 int size ;
1059 int objsize ;
1060 int offset ;
1061 struct kmem_cache_order_objects oo ;
1062 struct kmem_cache_order_objects max ;
1063 struct kmem_cache_order_objects min ;
1064 gfp_t allocflags ;
1065 int refcount ;
1066 void (*ctor)(void * ) ;
1067 int inuse ;
1068 int align ;
1069 int reserved ;
1070 char const *name ;
1071 struct list_head list ;
1072 struct kobject kobj ;
1073 int remote_node_defrag_ratio ;
1074 struct kmem_cache_node *node[1 << 10] ;
1075};
1076#line 15 "include/linux/blk_types.h"
1077struct page;
1078#line 16
1079struct block_device;
1080#line 16
1081struct block_device;
1082#line 16
1083struct block_device;
1084#line 16
1085struct block_device;
1086#line 72 "include/linux/rcupdate.h"
1087struct rcu_head {
1088 struct rcu_head *next ;
1089 void (*func)(struct rcu_head *head ) ;
1090};
1091#line 33 "include/linux/list_bl.h"
1092struct hlist_bl_node;
1093#line 33
1094struct hlist_bl_node;
1095#line 33
1096struct hlist_bl_node;
1097#line 33 "include/linux/list_bl.h"
1098struct hlist_bl_head {
1099 struct hlist_bl_node *first ;
1100};
1101#line 37 "include/linux/list_bl.h"
1102struct hlist_bl_node {
1103 struct hlist_bl_node *next ;
1104 struct hlist_bl_node **pprev ;
1105};
1106#line 13 "include/linux/dcache.h"
1107struct nameidata;
1108#line 13
1109struct nameidata;
1110#line 13
1111struct nameidata;
1112#line 13
1113struct nameidata;
1114#line 14
1115struct path;
1116#line 14
1117struct path;
1118#line 14
1119struct path;
1120#line 14
1121struct path;
1122#line 15
1123struct vfsmount;
1124#line 15
1125struct vfsmount;
1126#line 15
1127struct vfsmount;
1128#line 15
1129struct vfsmount;
1130#line 35 "include/linux/dcache.h"
1131struct qstr {
1132 unsigned int hash ;
1133 unsigned int len ;
1134 unsigned char const *name ;
1135};
1136#line 116
1137struct inode;
1138#line 116
1139struct inode;
1140#line 116
1141struct inode;
1142#line 116
1143struct dentry_operations;
1144#line 116
1145struct dentry_operations;
1146#line 116
1147struct dentry_operations;
1148#line 116
1149struct super_block;
1150#line 116
1151struct super_block;
1152#line 116
1153struct super_block;
1154#line 116 "include/linux/dcache.h"
1155union __anonunion_d_u_135 {
1156 struct list_head d_child ;
1157 struct rcu_head d_rcu ;
1158};
1159#line 116 "include/linux/dcache.h"
1160struct dentry {
1161 unsigned int d_flags ;
1162 seqcount_t d_seq ;
1163 struct hlist_bl_node d_hash ;
1164 struct dentry *d_parent ;
1165 struct qstr d_name ;
1166 struct inode *d_inode ;
1167 unsigned char d_iname[32] ;
1168 unsigned int d_count ;
1169 spinlock_t d_lock ;
1170 struct dentry_operations const *d_op ;
1171 struct super_block *d_sb ;
1172 unsigned long d_time ;
1173 void *d_fsdata ;
1174 struct list_head d_lru ;
1175 union __anonunion_d_u_135 d_u ;
1176 struct list_head d_subdirs ;
1177 struct list_head d_alias ;
1178};
1179#line 159 "include/linux/dcache.h"
1180struct dentry_operations {
1181 int (*d_revalidate)(struct dentry * , struct nameidata * ) ;
1182 int (*d_hash)(struct dentry const * , struct inode const * , struct qstr * ) ;
1183 int (*d_compare)(struct dentry const * , struct inode const * , struct dentry const * ,
1184 struct inode const * , unsigned int , char const * , struct qstr const * ) ;
1185 int (*d_delete)(struct dentry const * ) ;
1186 void (*d_release)(struct dentry * ) ;
1187 void (*d_iput)(struct dentry * , struct inode * ) ;
1188 char *(*d_dname)(struct dentry * , char * , int ) ;
1189 struct vfsmount *(*d_automount)(struct path * ) ;
1190 int (*d_manage)(struct dentry * , bool ) ;
1191} __attribute__((__aligned__((1) << (6) ))) ;
1192#line 4 "include/linux/path.h"
1193struct dentry;
1194#line 5
1195struct vfsmount;
1196#line 7 "include/linux/path.h"
1197struct path {
1198 struct vfsmount *mnt ;
1199 struct dentry *dentry ;
1200};
1201#line 62 "include/linux/stat.h"
1202struct kstat {
1203 u64 ino ;
1204 dev_t dev ;
1205 umode_t mode ;
1206 unsigned int nlink ;
1207 uid_t uid ;
1208 gid_t gid ;
1209 dev_t rdev ;
1210 loff_t size ;
1211 struct timespec atime ;
1212 struct timespec mtime ;
1213 struct timespec ctime ;
1214 unsigned long blksize ;
1215 unsigned long long blocks ;
1216};
1217#line 57 "include/linux/radix-tree.h"
1218struct radix_tree_node;
1219#line 57
1220struct radix_tree_node;
1221#line 57
1222struct radix_tree_node;
1223#line 57 "include/linux/radix-tree.h"
1224struct radix_tree_root {
1225 unsigned int height ;
1226 gfp_t gfp_mask ;
1227 struct radix_tree_node *rnode ;
1228};
1229#line 14 "include/linux/prio_tree.h"
1230struct prio_tree_node;
1231#line 14
1232struct prio_tree_node;
1233#line 14
1234struct prio_tree_node;
1235#line 14 "include/linux/prio_tree.h"
1236struct raw_prio_tree_node {
1237 struct prio_tree_node *left ;
1238 struct prio_tree_node *right ;
1239 struct prio_tree_node *parent ;
1240};
1241#line 20 "include/linux/prio_tree.h"
1242struct prio_tree_node {
1243 struct prio_tree_node *left ;
1244 struct prio_tree_node *right ;
1245 struct prio_tree_node *parent ;
1246 unsigned long start ;
1247 unsigned long last ;
1248};
1249#line 28 "include/linux/prio_tree.h"
1250struct prio_tree_root {
1251 struct prio_tree_node *prio_tree_node ;
1252 unsigned short index_bits ;
1253 unsigned short raw ;
1254};
1255#line 6 "include/linux/pid.h"
1256enum pid_type {
1257 PIDTYPE_PID = 0,
1258 PIDTYPE_PGID = 1,
1259 PIDTYPE_SID = 2,
1260 PIDTYPE_MAX = 3
1261} ;
1262#line 50
1263struct pid_namespace;
1264#line 50
1265struct pid_namespace;
1266#line 50
1267struct pid_namespace;
1268#line 50 "include/linux/pid.h"
1269struct upid {
1270 int nr ;
1271 struct pid_namespace *ns ;
1272 struct hlist_node pid_chain ;
1273};
1274#line 57 "include/linux/pid.h"
1275struct pid {
1276 atomic_t count ;
1277 unsigned int level ;
1278 struct hlist_head tasks[3] ;
1279 struct rcu_head rcu ;
1280 struct upid numbers[1] ;
1281};
1282#line 69 "include/linux/pid.h"
1283struct pid_link {
1284 struct hlist_node node ;
1285 struct pid *pid ;
1286};
1287#line 100
1288struct pid_namespace;
1289#line 18 "include/linux/capability.h"
1290struct task_struct;
1291#line 94 "include/linux/capability.h"
1292struct kernel_cap_struct {
1293 __u32 cap[2] ;
1294};
1295#line 94 "include/linux/capability.h"
1296typedef struct kernel_cap_struct kernel_cap_t;
1297#line 376
1298struct dentry;
1299#line 377
1300struct user_namespace;
1301#line 377
1302struct user_namespace;
1303#line 377
1304struct user_namespace;
1305#line 377
1306struct user_namespace;
1307#line 16 "include/linux/fiemap.h"
1308struct fiemap_extent {
1309 __u64 fe_logical ;
1310 __u64 fe_physical ;
1311 __u64 fe_length ;
1312 __u64 fe_reserved64[2] ;
1313 __u32 fe_flags ;
1314 __u32 fe_reserved[3] ;
1315};
1316#line 399 "include/linux/fs.h"
1317struct export_operations;
1318#line 399
1319struct export_operations;
1320#line 399
1321struct export_operations;
1322#line 399
1323struct export_operations;
1324#line 401
1325struct iovec;
1326#line 401
1327struct iovec;
1328#line 401
1329struct iovec;
1330#line 401
1331struct iovec;
1332#line 402
1333struct nameidata;
1334#line 403
1335struct kiocb;
1336#line 403
1337struct kiocb;
1338#line 403
1339struct kiocb;
1340#line 403
1341struct kiocb;
1342#line 404
1343struct kobject;
1344#line 405
1345struct pipe_inode_info;
1346#line 405
1347struct pipe_inode_info;
1348#line 405
1349struct pipe_inode_info;
1350#line 405
1351struct pipe_inode_info;
1352#line 406
1353struct poll_table_struct;
1354#line 406
1355struct poll_table_struct;
1356#line 406
1357struct poll_table_struct;
1358#line 406
1359struct poll_table_struct;
1360#line 407
1361struct kstatfs;
1362#line 407
1363struct kstatfs;
1364#line 407
1365struct kstatfs;
1366#line 407
1367struct kstatfs;
1368#line 408
1369struct vm_area_struct;
1370#line 409
1371struct vfsmount;
1372#line 410
1373struct cred;
1374#line 410
1375struct cred;
1376#line 410
1377struct cred;
1378#line 410
1379struct cred;
1380#line 460 "include/linux/fs.h"
1381struct iattr {
1382 unsigned int ia_valid ;
1383 umode_t ia_mode ;
1384 uid_t ia_uid ;
1385 gid_t ia_gid ;
1386 loff_t ia_size ;
1387 struct timespec ia_atime ;
1388 struct timespec ia_mtime ;
1389 struct timespec ia_ctime ;
1390 struct file *ia_file ;
1391};
1392#line 129 "include/linux/quota.h"
1393struct if_dqinfo {
1394 __u64 dqi_bgrace ;
1395 __u64 dqi_igrace ;
1396 __u32 dqi_flags ;
1397 __u32 dqi_valid ;
1398};
1399#line 50 "include/linux/dqblk_xfs.h"
1400struct fs_disk_quota {
1401 __s8 d_version ;
1402 __s8 d_flags ;
1403 __u16 d_fieldmask ;
1404 __u32 d_id ;
1405 __u64 d_blk_hardlimit ;
1406 __u64 d_blk_softlimit ;
1407 __u64 d_ino_hardlimit ;
1408 __u64 d_ino_softlimit ;
1409 __u64 d_bcount ;
1410 __u64 d_icount ;
1411 __s32 d_itimer ;
1412 __s32 d_btimer ;
1413 __u16 d_iwarns ;
1414 __u16 d_bwarns ;
1415 __s32 d_padding2 ;
1416 __u64 d_rtb_hardlimit ;
1417 __u64 d_rtb_softlimit ;
1418 __u64 d_rtbcount ;
1419 __s32 d_rtbtimer ;
1420 __u16 d_rtbwarns ;
1421 __s16 d_padding3 ;
1422 char d_padding4[8] ;
1423};
1424#line 146 "include/linux/dqblk_xfs.h"
1425struct fs_qfilestat {
1426 __u64 qfs_ino ;
1427 __u64 qfs_nblks ;
1428 __u32 qfs_nextents ;
1429};
1430#line 146 "include/linux/dqblk_xfs.h"
1431typedef struct fs_qfilestat fs_qfilestat_t;
1432#line 152 "include/linux/dqblk_xfs.h"
1433struct fs_quota_stat {
1434 __s8 qs_version ;
1435 __u16 qs_flags ;
1436 __s8 qs_pad ;
1437 fs_qfilestat_t qs_uquota ;
1438 fs_qfilestat_t qs_gquota ;
1439 __u32 qs_incoredqs ;
1440 __s32 qs_btimelimit ;
1441 __s32 qs_itimelimit ;
1442 __s32 qs_rtbtimelimit ;
1443 __u16 qs_bwarnlimit ;
1444 __u16 qs_iwarnlimit ;
1445};
1446#line 17 "include/linux/dqblk_qtree.h"
1447struct dquot;
1448#line 17
1449struct dquot;
1450#line 17
1451struct dquot;
1452#line 17
1453struct dquot;
1454#line 185 "include/linux/quota.h"
1455typedef __kernel_uid32_t qid_t;
1456#line 186 "include/linux/quota.h"
1457typedef long long qsize_t;
1458#line 200 "include/linux/quota.h"
1459struct mem_dqblk {
1460 qsize_t dqb_bhardlimit ;
1461 qsize_t dqb_bsoftlimit ;
1462 qsize_t dqb_curspace ;
1463 qsize_t dqb_rsvspace ;
1464 qsize_t dqb_ihardlimit ;
1465 qsize_t dqb_isoftlimit ;
1466 qsize_t dqb_curinodes ;
1467 time_t dqb_btime ;
1468 time_t dqb_itime ;
1469};
1470#line 215
1471struct quota_format_type;
1472#line 215
1473struct quota_format_type;
1474#line 215
1475struct quota_format_type;
1476#line 215
1477struct quota_format_type;
1478#line 217 "include/linux/quota.h"
1479struct mem_dqinfo {
1480 struct quota_format_type *dqi_format ;
1481 int dqi_fmt_id ;
1482 struct list_head dqi_dirty_list ;
1483 unsigned long dqi_flags ;
1484 unsigned int dqi_bgrace ;
1485 unsigned int dqi_igrace ;
1486 qsize_t dqi_maxblimit ;
1487 qsize_t dqi_maxilimit ;
1488 void *dqi_priv ;
1489};
1490#line 230
1491struct super_block;
1492#line 284 "include/linux/quota.h"
1493struct dquot {
1494 struct hlist_node dq_hash ;
1495 struct list_head dq_inuse ;
1496 struct list_head dq_free ;
1497 struct list_head dq_dirty ;
1498 struct mutex dq_lock ;
1499 atomic_t dq_count ;
1500 wait_queue_head_t dq_wait_unused ;
1501 struct super_block *dq_sb ;
1502 unsigned int dq_id ;
1503 loff_t dq_off ;
1504 unsigned long dq_flags ;
1505 short dq_type ;
1506 struct mem_dqblk dq_dqb ;
1507};
1508#line 301 "include/linux/quota.h"
1509struct quota_format_ops {
1510 int (*check_quota_file)(struct super_block *sb , int type ) ;
1511 int (*read_file_info)(struct super_block *sb , int type ) ;
1512 int (*write_file_info)(struct super_block *sb , int type ) ;
1513 int (*free_file_info)(struct super_block *sb , int type ) ;
1514 int (*read_dqblk)(struct dquot *dquot ) ;
1515 int (*commit_dqblk)(struct dquot *dquot ) ;
1516 int (*release_dqblk)(struct dquot *dquot ) ;
1517};
1518#line 312 "include/linux/quota.h"
1519struct dquot_operations {
1520 int (*write_dquot)(struct dquot * ) ;
1521 struct dquot *(*alloc_dquot)(struct super_block * , int ) ;
1522 void (*destroy_dquot)(struct dquot * ) ;
1523 int (*acquire_dquot)(struct dquot * ) ;
1524 int (*release_dquot)(struct dquot * ) ;
1525 int (*mark_dirty)(struct dquot * ) ;
1526 int (*write_info)(struct super_block * , int ) ;
1527 qsize_t *(*get_reserved_space)(struct inode * ) ;
1528};
1529#line 325
1530struct path;
1531#line 328 "include/linux/quota.h"
1532struct quotactl_ops {
1533 int (*quota_on)(struct super_block * , int , int , struct path * ) ;
1534 int (*quota_on_meta)(struct super_block * , int , int ) ;
1535 int (*quota_off)(struct super_block * , int ) ;
1536 int (*quota_sync)(struct super_block * , int , int ) ;
1537 int (*get_info)(struct super_block * , int , struct if_dqinfo * ) ;
1538 int (*set_info)(struct super_block * , int , struct if_dqinfo * ) ;
1539 int (*get_dqblk)(struct super_block * , int , qid_t , struct fs_disk_quota * ) ;
1540 int (*set_dqblk)(struct super_block * , int , qid_t , struct fs_disk_quota * ) ;
1541 int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ;
1542 int (*set_xstate)(struct super_block * , unsigned int , int ) ;
1543};
1544#line 341 "include/linux/quota.h"
1545struct quota_format_type {
1546 int qf_fmt_id ;
1547 struct quota_format_ops const *qf_ops ;
1548 struct module *qf_owner ;
1549 struct quota_format_type *qf_next ;
1550};
1551#line 395 "include/linux/quota.h"
1552struct quota_info {
1553 unsigned int flags ;
1554 struct mutex dqio_mutex ;
1555 struct mutex dqonoff_mutex ;
1556 struct rw_semaphore dqptr_sem ;
1557 struct inode *files[2] ;
1558 struct mem_dqinfo info[2] ;
1559 struct quota_format_ops const *ops[2] ;
1560};
1561#line 523 "include/linux/fs.h"
1562struct page;
1563#line 524
1564struct address_space;
1565#line 524
1566struct address_space;
1567#line 524
1568struct address_space;
1569#line 524
1570struct address_space;
1571#line 525
1572struct writeback_control;
1573#line 525
1574struct writeback_control;
1575#line 525
1576struct writeback_control;
1577#line 525
1578struct writeback_control;
1579#line 568 "include/linux/fs.h"
1580union __anonunion_arg_143 {
1581 char *buf ;
1582 void *data ;
1583};
1584#line 568 "include/linux/fs.h"
1585struct __anonstruct_read_descriptor_t_142 {
1586 size_t written ;
1587 size_t count ;
1588 union __anonunion_arg_143 arg ;
1589 int error ;
1590};
1591#line 568 "include/linux/fs.h"
1592typedef struct __anonstruct_read_descriptor_t_142 read_descriptor_t;
1593#line 581 "include/linux/fs.h"
1594struct address_space_operations {
1595 int (*writepage)(struct page *page , struct writeback_control *wbc ) ;
1596 int (*readpage)(struct file * , struct page * ) ;
1597 int (*writepages)(struct address_space * , struct writeback_control * ) ;
1598 int (*set_page_dirty)(struct page *page ) ;
1599 int (*readpages)(struct file *filp , struct address_space *mapping , struct list_head *pages ,
1600 unsigned int nr_pages ) ;
1601 int (*write_begin)(struct file * , struct address_space *mapping , loff_t pos ,
1602 unsigned int len , unsigned int flags , struct page **pagep ,
1603 void **fsdata ) ;
1604 int (*write_end)(struct file * , struct address_space *mapping , loff_t pos , unsigned int len ,
1605 unsigned int copied , struct page *page , void *fsdata ) ;
1606 sector_t (*bmap)(struct address_space * , sector_t ) ;
1607 void (*invalidatepage)(struct page * , unsigned long ) ;
1608 int (*releasepage)(struct page * , gfp_t ) ;
1609 void (*freepage)(struct page * ) ;
1610 ssize_t (*direct_IO)(int , struct kiocb * , struct iovec const *iov , loff_t offset ,
1611 unsigned long nr_segs ) ;
1612 int (*get_xip_mem)(struct address_space * , unsigned long , int , void ** , unsigned long * ) ;
1613 int (*migratepage)(struct address_space * , struct page * , struct page * ) ;
1614 int (*launder_page)(struct page * ) ;
1615 int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long ) ;
1616 int (*error_remove_page)(struct address_space * , struct page * ) ;
1617};
1618#line 633
1619struct backing_dev_info;
1620#line 633
1621struct backing_dev_info;
1622#line 633
1623struct backing_dev_info;
1624#line 633
1625struct backing_dev_info;
1626#line 634 "include/linux/fs.h"
1627struct address_space {
1628 struct inode *host ;
1629 struct radix_tree_root page_tree ;
1630 spinlock_t tree_lock ;
1631 unsigned int i_mmap_writable ;
1632 struct prio_tree_root i_mmap ;
1633 struct list_head i_mmap_nonlinear ;
1634 struct mutex i_mmap_mutex ;
1635 unsigned long nrpages ;
1636 unsigned long writeback_index ;
1637 struct address_space_operations const *a_ops ;
1638 unsigned long flags ;
1639 struct backing_dev_info *backing_dev_info ;
1640 spinlock_t private_lock ;
1641 struct list_head private_list ;
1642 struct address_space *assoc_mapping ;
1643} __attribute__((__aligned__(sizeof(long )))) ;
1644#line 658
1645struct hd_struct;
1646#line 658
1647struct hd_struct;
1648#line 658
1649struct hd_struct;
1650#line 658
1651struct gendisk;
1652#line 658
1653struct gendisk;
1654#line 658
1655struct gendisk;
1656#line 658 "include/linux/fs.h"
1657struct block_device {
1658 dev_t bd_dev ;
1659 int bd_openers ;
1660 struct inode *bd_inode ;
1661 struct super_block *bd_super ;
1662 struct mutex bd_mutex ;
1663 struct list_head bd_inodes ;
1664 void *bd_claiming ;
1665 void *bd_holder ;
1666 int bd_holders ;
1667 bool bd_write_holder ;
1668 struct list_head bd_holder_disks ;
1669 struct block_device *bd_contains ;
1670 unsigned int bd_block_size ;
1671 struct hd_struct *bd_part ;
1672 unsigned int bd_part_count ;
1673 int bd_invalidated ;
1674 struct gendisk *bd_disk ;
1675 struct list_head bd_list ;
1676 unsigned long bd_private ;
1677 int bd_fsfreeze_count ;
1678 struct mutex bd_fsfreeze_mutex ;
1679};
1680#line 735
1681struct posix_acl;
1682#line 735
1683struct posix_acl;
1684#line 735
1685struct posix_acl;
1686#line 735
1687struct posix_acl;
1688#line 738
1689struct inode_operations;
1690#line 738
1691struct inode_operations;
1692#line 738
1693struct inode_operations;
1694#line 738 "include/linux/fs.h"
1695union __anonunion____missing_field_name_144 {
1696 struct list_head i_dentry ;
1697 struct rcu_head i_rcu ;
1698};
1699#line 738
1700struct file_operations;
1701#line 738
1702struct file_operations;
1703#line 738
1704struct file_operations;
1705#line 738
1706struct file_lock;
1707#line 738
1708struct file_lock;
1709#line 738
1710struct file_lock;
1711#line 738
1712struct cdev;
1713#line 738
1714struct cdev;
1715#line 738
1716struct cdev;
1717#line 738 "include/linux/fs.h"
1718union __anonunion____missing_field_name_145 {
1719 struct pipe_inode_info *i_pipe ;
1720 struct block_device *i_bdev ;
1721 struct cdev *i_cdev ;
1722};
1723#line 738 "include/linux/fs.h"
1724struct inode {
1725 umode_t i_mode ;
1726 uid_t i_uid ;
1727 gid_t i_gid ;
1728 struct inode_operations const *i_op ;
1729 struct super_block *i_sb ;
1730 spinlock_t i_lock ;
1731 unsigned int i_flags ;
1732 unsigned long i_state ;
1733 void *i_security ;
1734 struct mutex i_mutex ;
1735 unsigned long dirtied_when ;
1736 struct hlist_node i_hash ;
1737 struct list_head i_wb_list ;
1738 struct list_head i_lru ;
1739 struct list_head i_sb_list ;
1740 union __anonunion____missing_field_name_144 __annonCompField29 ;
1741 unsigned long i_ino ;
1742 atomic_t i_count ;
1743 unsigned int i_nlink ;
1744 dev_t i_rdev ;
1745 unsigned int i_blkbits ;
1746 u64 i_version ;
1747 loff_t i_size ;
1748 struct timespec i_atime ;
1749 struct timespec i_mtime ;
1750 struct timespec i_ctime ;
1751 blkcnt_t i_blocks ;
1752 unsigned short i_bytes ;
1753 struct rw_semaphore i_alloc_sem ;
1754 struct file_operations const *i_fop ;
1755 struct file_lock *i_flock ;
1756 struct address_space *i_mapping ;
1757 struct address_space i_data ;
1758 struct dquot *i_dquot[2] ;
1759 struct list_head i_devices ;
1760 union __anonunion____missing_field_name_145 __annonCompField30 ;
1761 __u32 i_generation ;
1762 __u32 i_fsnotify_mask ;
1763 struct hlist_head i_fsnotify_marks ;
1764 atomic_t i_readcount ;
1765 atomic_t i_writecount ;
1766 struct posix_acl *i_acl ;
1767 struct posix_acl *i_default_acl ;
1768 void *i_private ;
1769};
1770#line 903 "include/linux/fs.h"
1771struct fown_struct {
1772 rwlock_t lock ;
1773 struct pid *pid ;
1774 enum pid_type pid_type ;
1775 uid_t uid ;
1776 uid_t euid ;
1777 int signum ;
1778};
1779#line 914 "include/linux/fs.h"
1780struct file_ra_state {
1781 unsigned long start ;
1782 unsigned int size ;
1783 unsigned int async_size ;
1784 unsigned int ra_pages ;
1785 unsigned int mmap_miss ;
1786 loff_t prev_pos ;
1787};
1788#line 937 "include/linux/fs.h"
1789union __anonunion_f_u_146 {
1790 struct list_head fu_list ;
1791 struct rcu_head fu_rcuhead ;
1792};
1793#line 937 "include/linux/fs.h"
1794struct file {
1795 union __anonunion_f_u_146 f_u ;
1796 struct path f_path ;
1797 struct file_operations const *f_op ;
1798 spinlock_t f_lock ;
1799 int f_sb_list_cpu ;
1800 atomic_long_t f_count ;
1801 unsigned int f_flags ;
1802 fmode_t f_mode ;
1803 loff_t f_pos ;
1804 struct fown_struct f_owner ;
1805 struct cred const *f_cred ;
1806 struct file_ra_state f_ra ;
1807 u64 f_version ;
1808 void *f_security ;
1809 void *private_data ;
1810 struct list_head f_ep_links ;
1811 struct address_space *f_mapping ;
1812 unsigned long f_mnt_write_state ;
1813};
1814#line 1064
1815struct files_struct;
1816#line 1064
1817struct files_struct;
1818#line 1064
1819struct files_struct;
1820#line 1064 "include/linux/fs.h"
1821typedef struct files_struct *fl_owner_t;
1822#line 1066 "include/linux/fs.h"
1823struct file_lock_operations {
1824 void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ;
1825 void (*fl_release_private)(struct file_lock * ) ;
1826};
1827#line 1071 "include/linux/fs.h"
1828struct lock_manager_operations {
1829 int (*fl_compare_owner)(struct file_lock * , struct file_lock * ) ;
1830 void (*fl_notify)(struct file_lock * ) ;
1831 int (*fl_grant)(struct file_lock * , struct file_lock * , int ) ;
1832 void (*fl_release_private)(struct file_lock * ) ;
1833 void (*fl_break)(struct file_lock * ) ;
1834 int (*fl_change)(struct file_lock ** , int ) ;
1835};
1836#line 8 "include/linux/nfs_fs_i.h"
1837struct nlm_lockowner;
1838#line 8
1839struct nlm_lockowner;
1840#line 8
1841struct nlm_lockowner;
1842#line 8
1843struct nlm_lockowner;
1844#line 13 "include/linux/nfs_fs_i.h"
1845struct nfs_lock_info {
1846 u32 state ;
1847 struct nlm_lockowner *owner ;
1848 struct list_head list ;
1849};
1850#line 19
1851struct nfs4_lock_state;
1852#line 19
1853struct nfs4_lock_state;
1854#line 19
1855struct nfs4_lock_state;
1856#line 19
1857struct nfs4_lock_state;
1858#line 20 "include/linux/nfs_fs_i.h"
1859struct nfs4_lock_info {
1860 struct nfs4_lock_state *owner ;
1861};
1862#line 1091 "include/linux/fs.h"
1863struct fasync_struct;
1864#line 1091
1865struct fasync_struct;
1866#line 1091
1867struct fasync_struct;
1868#line 1091 "include/linux/fs.h"
1869struct __anonstruct_afs_148 {
1870 struct list_head link ;
1871 int state ;
1872};
1873#line 1091 "include/linux/fs.h"
1874union __anonunion_fl_u_147 {
1875 struct nfs_lock_info nfs_fl ;
1876 struct nfs4_lock_info nfs4_fl ;
1877 struct __anonstruct_afs_148 afs ;
1878};
1879#line 1091 "include/linux/fs.h"
1880struct file_lock {
1881 struct file_lock *fl_next ;
1882 struct list_head fl_link ;
1883 struct list_head fl_block ;
1884 fl_owner_t fl_owner ;
1885 unsigned char fl_flags ;
1886 unsigned char fl_type ;
1887 unsigned int fl_pid ;
1888 struct pid *fl_nspid ;
1889 wait_queue_head_t fl_wait ;
1890 struct file *fl_file ;
1891 loff_t fl_start ;
1892 loff_t fl_end ;
1893 struct fasync_struct *fl_fasync ;
1894 unsigned long fl_break_time ;
1895 struct file_lock_operations const *fl_ops ;
1896 struct lock_manager_operations const *fl_lmops ;
1897 union __anonunion_fl_u_147 fl_u ;
1898};
1899#line 1324 "include/linux/fs.h"
1900struct fasync_struct {
1901 spinlock_t fa_lock ;
1902 int magic ;
1903 int fa_fd ;
1904 struct fasync_struct *fa_next ;
1905 struct file *fa_file ;
1906 struct rcu_head fa_rcu ;
1907};
1908#line 1364
1909struct file_system_type;
1910#line 1364
1911struct file_system_type;
1912#line 1364
1913struct file_system_type;
1914#line 1364
1915struct super_operations;
1916#line 1364
1917struct super_operations;
1918#line 1364
1919struct super_operations;
1920#line 1364
1921struct xattr_handler;
1922#line 1364
1923struct xattr_handler;
1924#line 1364
1925struct xattr_handler;
1926#line 1364
1927struct mtd_info;
1928#line 1364
1929struct mtd_info;
1930#line 1364
1931struct mtd_info;
1932#line 1364 "include/linux/fs.h"
1933struct super_block {
1934 struct list_head s_list ;
1935 dev_t s_dev ;
1936 unsigned char s_dirt ;
1937 unsigned char s_blocksize_bits ;
1938 unsigned long s_blocksize ;
1939 loff_t s_maxbytes ;
1940 struct file_system_type *s_type ;
1941 struct super_operations const *s_op ;
1942 struct dquot_operations const *dq_op ;
1943 struct quotactl_ops const *s_qcop ;
1944 struct export_operations const *s_export_op ;
1945 unsigned long s_flags ;
1946 unsigned long s_magic ;
1947 struct dentry *s_root ;
1948 struct rw_semaphore s_umount ;
1949 struct mutex s_lock ;
1950 int s_count ;
1951 atomic_t s_active ;
1952 void *s_security ;
1953 struct xattr_handler const **s_xattr ;
1954 struct list_head s_inodes ;
1955 struct hlist_bl_head s_anon ;
1956 struct list_head *s_files ;
1957 struct list_head s_dentry_lru ;
1958 int s_nr_dentry_unused ;
1959 struct block_device *s_bdev ;
1960 struct backing_dev_info *s_bdi ;
1961 struct mtd_info *s_mtd ;
1962 struct list_head s_instances ;
1963 struct quota_info s_dquot ;
1964 int s_frozen ;
1965 wait_queue_head_t s_wait_unfrozen ;
1966 char s_id[32] ;
1967 u8 s_uuid[16] ;
1968 void *s_fs_info ;
1969 fmode_t s_mode ;
1970 u32 s_time_gran ;
1971 struct mutex s_vfs_rename_mutex ;
1972 char *s_subtype ;
1973 char *s_options ;
1974 struct dentry_operations const *s_d_op ;
1975 int cleancache_poolid ;
1976};
1977#line 1499 "include/linux/fs.h"
1978struct fiemap_extent_info {
1979 unsigned int fi_flags ;
1980 unsigned int fi_extents_mapped ;
1981 unsigned int fi_extents_max ;
1982 struct fiemap_extent *fi_extents_start ;
1983};
1984#line 1546 "include/linux/fs.h"
1985struct file_operations {
1986 struct module *owner ;
1987 loff_t (*llseek)(struct file * , loff_t , int ) ;
1988 ssize_t (*read)(struct file * , char * , size_t , loff_t * ) ;
1989 ssize_t (*write)(struct file * , char const * , size_t , loff_t * ) ;
1990 ssize_t (*aio_read)(struct kiocb * , struct iovec const * , unsigned long ,
1991 loff_t ) ;
1992 ssize_t (*aio_write)(struct kiocb * , struct iovec const * , unsigned long ,
1993 loff_t ) ;
1994 int (*readdir)(struct file * , void * , int (*)(void * , char const * , int ,
1995 loff_t , u64 , unsigned int ) ) ;
1996 unsigned int (*poll)(struct file * , struct poll_table_struct * ) ;
1997 long (*unlocked_ioctl)(struct file * , unsigned int , unsigned long ) ;
1998 long (*compat_ioctl)(struct file * , unsigned int , unsigned long ) ;
1999 int (*mmap)(struct file * , struct vm_area_struct * ) ;
2000 int (*open)(struct inode * , struct file * ) ;
2001 int (*flush)(struct file * , fl_owner_t id ) ;
2002 int (*release)(struct inode * , struct file * ) ;
2003 int (*fsync)(struct file * , int datasync ) ;
2004 int (*aio_fsync)(struct kiocb * , int datasync ) ;
2005 int (*fasync)(int , struct file * , int ) ;
2006 int (*lock)(struct file * , int , struct file_lock * ) ;
2007 ssize_t (*sendpage)(struct file * , struct page * , int , size_t , loff_t * ,
2008 int ) ;
2009 unsigned long (*get_unmapped_area)(struct file * , unsigned long , unsigned long ,
2010 unsigned long , unsigned long ) ;
2011 int (*check_flags)(int ) ;
2012 int (*flock)(struct file * , int , struct file_lock * ) ;
2013 ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t ,
2014 unsigned int ) ;
2015 ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t ,
2016 unsigned int ) ;
2017 int (*setlease)(struct file * , long , struct file_lock ** ) ;
2018 long (*fallocate)(struct file *file , int mode , loff_t offset , loff_t len ) ;
2019};
2020#line 1578 "include/linux/fs.h"
2021struct inode_operations {
2022 struct dentry *(*lookup)(struct inode * , struct dentry * , struct nameidata * ) ;
2023 void *(*follow_link)(struct dentry * , struct nameidata * ) ;
2024 int (*permission)(struct inode * , int , unsigned int ) ;
2025 int (*check_acl)(struct inode * , int , unsigned int ) ;
2026 int (*readlink)(struct dentry * , char * , int ) ;
2027 void (*put_link)(struct dentry * , struct nameidata * , void * ) ;
2028 int (*create)(struct inode * , struct dentry * , int , struct nameidata * ) ;
2029 int (*link)(struct dentry * , struct inode * , struct dentry * ) ;
2030 int (*unlink)(struct inode * , struct dentry * ) ;
2031 int (*symlink)(struct inode * , struct dentry * , char const * ) ;
2032 int (*mkdir)(struct inode * , struct dentry * , int ) ;
2033 int (*rmdir)(struct inode * , struct dentry * ) ;
2034 int (*mknod)(struct inode * , struct dentry * , int , dev_t ) ;
2035 int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ;
2036 void (*truncate)(struct inode * ) ;
2037 int (*setattr)(struct dentry * , struct iattr * ) ;
2038 int (*getattr)(struct vfsmount *mnt , struct dentry * , struct kstat * ) ;
2039 int (*setxattr)(struct dentry * , char const * , void const * , size_t , int ) ;
2040 ssize_t (*getxattr)(struct dentry * , char const * , void * , size_t ) ;
2041 ssize_t (*listxattr)(struct dentry * , char * , size_t ) ;
2042 int (*removexattr)(struct dentry * , char const * ) ;
2043 void (*truncate_range)(struct inode * , loff_t , loff_t ) ;
2044 int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64 start , u64 len ) ;
2045} __attribute__((__aligned__((1) << (6) ))) ;
2046#line 1608
2047struct seq_file;
2048#line 1622 "include/linux/fs.h"
2049struct super_operations {
2050 struct inode *(*alloc_inode)(struct super_block *sb ) ;
2051 void (*destroy_inode)(struct inode * ) ;
2052 void (*dirty_inode)(struct inode * , int flags ) ;
2053 int (*write_inode)(struct inode * , struct writeback_control *wbc ) ;
2054 int (*drop_inode)(struct inode * ) ;
2055 void (*evict_inode)(struct inode * ) ;
2056 void (*put_super)(struct super_block * ) ;
2057 void (*write_super)(struct super_block * ) ;
2058 int (*sync_fs)(struct super_block *sb , int wait ) ;
2059 int (*freeze_fs)(struct super_block * ) ;
2060 int (*unfreeze_fs)(struct super_block * ) ;
2061 int (*statfs)(struct dentry * , struct kstatfs * ) ;
2062 int (*remount_fs)(struct super_block * , int * , char * ) ;
2063 void (*umount_begin)(struct super_block * ) ;
2064 int (*show_options)(struct seq_file * , struct vfsmount * ) ;
2065 int (*show_devname)(struct seq_file * , struct vfsmount * ) ;
2066 int (*show_path)(struct seq_file * , struct vfsmount * ) ;
2067 int (*show_stats)(struct seq_file * , struct vfsmount * ) ;
2068 ssize_t (*quota_read)(struct super_block * , int , char * , size_t , loff_t ) ;
2069 ssize_t (*quota_write)(struct super_block * , int , char const * , size_t ,
2070 loff_t ) ;
2071 int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t ) ;
2072};
2073#line 1802 "include/linux/fs.h"
2074struct file_system_type {
2075 char const *name ;
2076 int fs_flags ;
2077 struct dentry *(*mount)(struct file_system_type * , int , char const * , void * ) ;
2078 void (*kill_sb)(struct super_block * ) ;
2079 struct module *owner ;
2080 struct file_system_type *next ;
2081 struct list_head fs_supers ;
2082 struct lock_class_key s_lock_key ;
2083 struct lock_class_key s_umount_key ;
2084 struct lock_class_key s_vfs_rename_key ;
2085 struct lock_class_key i_lock_key ;
2086 struct lock_class_key i_mutex_key ;
2087 struct lock_class_key i_mutex_dir_key ;
2088 struct lock_class_key i_alloc_sem_key ;
2089};
2090#line 6 "include/asm-generic/termbits.h"
2091typedef unsigned char cc_t;
2092#line 7 "include/asm-generic/termbits.h"
2093typedef unsigned int speed_t;
2094#line 8 "include/asm-generic/termbits.h"
2095typedef unsigned int tcflag_t;
2096#line 31 "include/asm-generic/termbits.h"
2097struct ktermios {
2098 tcflag_t c_iflag ;
2099 tcflag_t c_oflag ;
2100 tcflag_t c_cflag ;
2101 tcflag_t c_lflag ;
2102 cc_t c_line ;
2103 cc_t c_cc[19] ;
2104 speed_t c_ispeed ;
2105 speed_t c_ospeed ;
2106};
2107#line 14 "include/asm-generic/termios.h"
2108struct winsize {
2109 unsigned short ws_row ;
2110 unsigned short ws_col ;
2111 unsigned short ws_xpixel ;
2112 unsigned short ws_ypixel ;
2113};
2114#line 94 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess.h"
2115struct exception_table_entry {
2116 unsigned long insn ;
2117 unsigned long fixup ;
2118};
2119#line 9 "include/linux/termios.h"
2120struct termiox {
2121 __u16 x_hflag ;
2122 __u16 x_cflag ;
2123 __u16 x_rflag[5] ;
2124 __u16 x_sflag ;
2125};
2126#line 8 "include/linux/cdev.h"
2127struct file_operations;
2128#line 9
2129struct inode;
2130#line 10
2131struct module;
2132#line 12 "include/linux/cdev.h"
2133struct cdev {
2134 struct kobject kobj ;
2135 struct module *owner ;
2136 struct file_operations const *ops ;
2137 struct list_head list ;
2138 dev_t dev ;
2139 unsigned int count ;
2140};
2141#line 239 "include/linux/tty_driver.h"
2142struct tty_struct;
2143#line 239
2144struct tty_struct;
2145#line 239
2146struct tty_struct;
2147#line 239
2148struct tty_struct;
2149#line 240
2150struct tty_driver;
2151#line 240
2152struct tty_driver;
2153#line 240
2154struct tty_driver;
2155#line 240
2156struct tty_driver;
2157#line 241
2158struct serial_icounter_struct;
2159#line 241
2160struct serial_icounter_struct;
2161#line 241
2162struct serial_icounter_struct;
2163#line 241
2164struct serial_icounter_struct;
2165#line 243 "include/linux/tty_driver.h"
2166struct tty_operations {
2167 struct tty_struct *(*lookup)(struct tty_driver *driver , struct inode *inode ,
2168 int idx ) ;
2169 int (*install)(struct tty_driver *driver , struct tty_struct *tty ) ;
2170 void (*remove)(struct tty_driver *driver , struct tty_struct *tty ) ;
2171 int (*open)(struct tty_struct *tty , struct file *filp ) ;
2172 void (*close)(struct tty_struct *tty , struct file *filp ) ;
2173 void (*shutdown)(struct tty_struct *tty ) ;
2174 void (*cleanup)(struct tty_struct *tty ) ;
2175 int (*write)(struct tty_struct *tty , unsigned char const *buf , int count ) ;
2176 int (*put_char)(struct tty_struct *tty , unsigned char ch ) ;
2177 void (*flush_chars)(struct tty_struct *tty ) ;
2178 int (*write_room)(struct tty_struct *tty ) ;
2179 int (*chars_in_buffer)(struct tty_struct *tty ) ;
2180 int (*ioctl)(struct tty_struct *tty , unsigned int cmd , unsigned long arg ) ;
2181 long (*compat_ioctl)(struct tty_struct *tty , unsigned int cmd , unsigned long arg ) ;
2182 void (*set_termios)(struct tty_struct *tty , struct ktermios *old ) ;
2183 void (*throttle)(struct tty_struct *tty ) ;
2184 void (*unthrottle)(struct tty_struct *tty ) ;
2185 void (*stop)(struct tty_struct *tty ) ;
2186 void (*start)(struct tty_struct *tty ) ;
2187 void (*hangup)(struct tty_struct *tty ) ;
2188 int (*break_ctl)(struct tty_struct *tty , int state ) ;
2189 void (*flush_buffer)(struct tty_struct *tty ) ;
2190 void (*set_ldisc)(struct tty_struct *tty ) ;
2191 void (*wait_until_sent)(struct tty_struct *tty , int timeout ) ;
2192 void (*send_xchar)(struct tty_struct *tty , char ch ) ;
2193 int (*tiocmget)(struct tty_struct *tty ) ;
2194 int (*tiocmset)(struct tty_struct *tty , unsigned int set , unsigned int clear ) ;
2195 int (*resize)(struct tty_struct *tty , struct winsize *ws ) ;
2196 int (*set_termiox)(struct tty_struct *tty , struct termiox *tnew ) ;
2197 int (*get_icount)(struct tty_struct *tty , struct serial_icounter_struct *icount ) ;
2198 int (*poll_init)(struct tty_driver *driver , int line , char *options ) ;
2199 int (*poll_get_char)(struct tty_driver *driver , int line ) ;
2200 void (*poll_put_char)(struct tty_driver *driver , int line , char ch ) ;
2201 struct file_operations const *proc_fops ;
2202};
2203#line 288
2204struct proc_dir_entry;
2205#line 288
2206struct proc_dir_entry;
2207#line 288
2208struct proc_dir_entry;
2209#line 288 "include/linux/tty_driver.h"
2210struct tty_driver {
2211 int magic ;
2212 struct kref kref ;
2213 struct cdev cdev ;
2214 struct module *owner ;
2215 char const *driver_name ;
2216 char const *name ;
2217 int name_base ;
2218 int major ;
2219 int minor_start ;
2220 int minor_num ;
2221 int num ;
2222 short type ;
2223 short subtype ;
2224 struct ktermios init_termios ;
2225 int flags ;
2226 struct proc_dir_entry *proc_entry ;
2227 struct tty_driver *other ;
2228 struct tty_struct **ttys ;
2229 struct ktermios **termios ;
2230 struct ktermios **termios_locked ;
2231 void *driver_state ;
2232 struct tty_operations const *ops ;
2233 struct list_head tty_drivers ;
2234};
2235#line 19 "include/linux/klist.h"
2236struct klist_node;
2237#line 19
2238struct klist_node;
2239#line 19
2240struct klist_node;
2241#line 19
2242struct klist_node;
2243#line 39 "include/linux/klist.h"
2244struct klist_node {
2245 void *n_klist ;
2246 struct list_head n_node ;
2247 struct kref n_ref ;
2248};
2249#line 29 "include/linux/sysctl.h"
2250struct completion;
2251#line 937
2252struct nsproxy;
2253#line 937
2254struct nsproxy;
2255#line 937
2256struct nsproxy;
2257#line 937
2258struct nsproxy;
2259#line 48 "include/linux/kmod.h"
2260struct cred;
2261#line 49
2262struct file;
2263#line 264 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/elf.h"
2264struct task_struct;
2265#line 10 "include/linux/elf.h"
2266struct file;
2267#line 27 "include/linux/elf.h"
2268typedef __u64 Elf64_Addr;
2269#line 28 "include/linux/elf.h"
2270typedef __u16 Elf64_Half;
2271#line 32 "include/linux/elf.h"
2272typedef __u32 Elf64_Word;
2273#line 33 "include/linux/elf.h"
2274typedef __u64 Elf64_Xword;
2275#line 203 "include/linux/elf.h"
2276struct elf64_sym {
2277 Elf64_Word st_name ;
2278 unsigned char st_info ;
2279 unsigned char st_other ;
2280 Elf64_Half st_shndx ;
2281 Elf64_Addr st_value ;
2282 Elf64_Xword st_size ;
2283};
2284#line 203 "include/linux/elf.h"
2285typedef struct elf64_sym Elf64_Sym;
2286#line 34 "include/linux/moduleparam.h"
2287struct kernel_param;
2288#line 34
2289struct kernel_param;
2290#line 34
2291struct kernel_param;
2292#line 34
2293struct kernel_param;
2294#line 36 "include/linux/moduleparam.h"
2295struct kernel_param_ops {
2296 int (*set)(char const *val , struct kernel_param const *kp ) ;
2297 int (*get)(char *buffer , struct kernel_param const *kp ) ;
2298 void (*free)(void *arg ) ;
2299};
2300#line 48
2301struct kparam_string;
2302#line 48
2303struct kparam_string;
2304#line 48
2305struct kparam_string;
2306#line 48
2307struct kparam_array;
2308#line 48
2309struct kparam_array;
2310#line 48
2311struct kparam_array;
2312#line 48 "include/linux/moduleparam.h"
2313union __anonunion____missing_field_name_211 {
2314 void *arg ;
2315 struct kparam_string const *str ;
2316 struct kparam_array const *arr ;
2317};
2318#line 48 "include/linux/moduleparam.h"
2319struct kernel_param {
2320 char const *name ;
2321 struct kernel_param_ops const *ops ;
2322 u16 perm ;
2323 u16 flags ;
2324 union __anonunion____missing_field_name_211 __annonCompField33 ;
2325};
2326#line 61 "include/linux/moduleparam.h"
2327struct kparam_string {
2328 unsigned int maxlen ;
2329 char *string ;
2330};
2331#line 67 "include/linux/moduleparam.h"
2332struct kparam_array {
2333 unsigned int max ;
2334 unsigned int elemsize ;
2335 unsigned int *num ;
2336 struct kernel_param_ops const *ops ;
2337 void *elem ;
2338};
2339#line 391
2340struct module;
2341#line 26 "include/linux/jump_label.h"
2342struct module;
2343#line 61 "include/linux/jump_label.h"
2344struct jump_label_key {
2345 atomic_t enabled ;
2346};
2347#line 22 "include/linux/tracepoint.h"
2348struct module;
2349#line 23
2350struct tracepoint;
2351#line 23
2352struct tracepoint;
2353#line 23
2354struct tracepoint;
2355#line 23
2356struct tracepoint;
2357#line 25 "include/linux/tracepoint.h"
2358struct tracepoint_func {
2359 void *func ;
2360 void *data ;
2361};
2362#line 30 "include/linux/tracepoint.h"
2363struct tracepoint {
2364 char const *name ;
2365 struct jump_label_key key ;
2366 void (*regfunc)(void) ;
2367 void (*unregfunc)(void) ;
2368 struct tracepoint_func *funcs ;
2369};
2370#line 8 "include/asm-generic/module.h"
2371struct mod_arch_specific {
2372
2373};
2374#line 21 "include/trace/events/module.h"
2375struct module;
2376#line 37 "include/linux/module.h"
2377struct kernel_symbol {
2378 unsigned long value ;
2379 char const *name ;
2380};
2381#line 49
2382struct module;
2383#line 51 "include/linux/module.h"
2384struct module_attribute {
2385 struct attribute attr ;
2386 ssize_t (*show)(struct module_attribute * , struct module * , char * ) ;
2387 ssize_t (*store)(struct module_attribute * , struct module * , char const * ,
2388 size_t count ) ;
2389 void (*setup)(struct module * , char const * ) ;
2390 int (*test)(struct module * ) ;
2391 void (*free)(struct module * ) ;
2392};
2393#line 70
2394struct module_param_attrs;
2395#line 70
2396struct module_param_attrs;
2397#line 70
2398struct module_param_attrs;
2399#line 70 "include/linux/module.h"
2400struct module_kobject {
2401 struct kobject kobj ;
2402 struct module *mod ;
2403 struct kobject *drivers_dir ;
2404 struct module_param_attrs *mp ;
2405};
2406#line 83
2407struct exception_table_entry;
2408#line 265
2409enum module_state {
2410 MODULE_STATE_LIVE = 0,
2411 MODULE_STATE_COMING = 1,
2412 MODULE_STATE_GOING = 2
2413} ;
2414#line 272
2415struct module_sect_attrs;
2416#line 272
2417struct module_sect_attrs;
2418#line 272
2419struct module_sect_attrs;
2420#line 272
2421struct module_notes_attrs;
2422#line 272
2423struct module_notes_attrs;
2424#line 272
2425struct module_notes_attrs;
2426#line 272
2427struct ftrace_event_call;
2428#line 272
2429struct ftrace_event_call;
2430#line 272
2431struct ftrace_event_call;
2432#line 272 "include/linux/module.h"
2433struct module_ref {
2434 unsigned int incs ;
2435 unsigned int decs ;
2436};
2437#line 272 "include/linux/module.h"
2438struct module {
2439 enum module_state state ;
2440 struct list_head list ;
2441 char name[64UL - sizeof(unsigned long )] ;
2442 struct module_kobject mkobj ;
2443 struct module_attribute *modinfo_attrs ;
2444 char const *version ;
2445 char const *srcversion ;
2446 struct kobject *holders_dir ;
2447 struct kernel_symbol const *syms ;
2448 unsigned long const *crcs ;
2449 unsigned int num_syms ;
2450 struct kernel_param *kp ;
2451 unsigned int num_kp ;
2452 unsigned int num_gpl_syms ;
2453 struct kernel_symbol const *gpl_syms ;
2454 unsigned long const *gpl_crcs ;
2455 struct kernel_symbol const *unused_syms ;
2456 unsigned long const *unused_crcs ;
2457 unsigned int num_unused_syms ;
2458 unsigned int num_unused_gpl_syms ;
2459 struct kernel_symbol const *unused_gpl_syms ;
2460 unsigned long const *unused_gpl_crcs ;
2461 struct kernel_symbol const *gpl_future_syms ;
2462 unsigned long const *gpl_future_crcs ;
2463 unsigned int num_gpl_future_syms ;
2464 unsigned int num_exentries ;
2465 struct exception_table_entry *extable ;
2466 int (*init)(void) ;
2467 void *module_init ;
2468 void *module_core ;
2469 unsigned int init_size ;
2470 unsigned int core_size ;
2471 unsigned int init_text_size ;
2472 unsigned int core_text_size ;
2473 unsigned int init_ro_size ;
2474 unsigned int core_ro_size ;
2475 struct mod_arch_specific arch ;
2476 unsigned int taints ;
2477 unsigned int num_bugs ;
2478 struct list_head bug_list ;
2479 struct bug_entry *bug_table ;
2480 Elf64_Sym *symtab ;
2481 Elf64_Sym *core_symtab ;
2482 unsigned int num_symtab ;
2483 unsigned int core_num_syms ;
2484 char *strtab ;
2485 char *core_strtab ;
2486 struct module_sect_attrs *sect_attrs ;
2487 struct module_notes_attrs *notes_attrs ;
2488 char *args ;
2489 void *percpu ;
2490 unsigned int percpu_size ;
2491 unsigned int num_tracepoints ;
2492 struct tracepoint * const *tracepoints_ptrs ;
2493 unsigned int num_trace_bprintk_fmt ;
2494 char const **trace_bprintk_fmt_start ;
2495 struct ftrace_event_call **trace_events ;
2496 unsigned int num_trace_events ;
2497 unsigned int num_ftrace_callsites ;
2498 unsigned long *ftrace_callsites ;
2499 struct list_head source_list ;
2500 struct list_head target_list ;
2501 struct task_struct *waiter ;
2502 void (*exit)(void) ;
2503 struct module_ref *refptr ;
2504 ctor_fn_t *ctors ;
2505 unsigned int num_ctors ;
2506};
2507#line 4 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
2508struct dma_map_ops;
2509#line 4
2510struct dma_map_ops;
2511#line 4
2512struct dma_map_ops;
2513#line 4 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
2514struct dev_archdata {
2515 void *acpi_handle ;
2516 struct dma_map_ops *dma_ops ;
2517 void *iommu ;
2518};
2519#line 28 "include/linux/device.h"
2520struct device;
2521#line 29
2522struct device_private;
2523#line 29
2524struct device_private;
2525#line 29
2526struct device_private;
2527#line 29
2528struct device_private;
2529#line 30
2530struct device_driver;
2531#line 30
2532struct device_driver;
2533#line 30
2534struct device_driver;
2535#line 30
2536struct device_driver;
2537#line 31
2538struct driver_private;
2539#line 31
2540struct driver_private;
2541#line 31
2542struct driver_private;
2543#line 31
2544struct driver_private;
2545#line 32
2546struct class;
2547#line 32
2548struct class;
2549#line 32
2550struct class;
2551#line 32
2552struct class;
2553#line 33
2554struct subsys_private;
2555#line 33
2556struct subsys_private;
2557#line 33
2558struct subsys_private;
2559#line 33
2560struct subsys_private;
2561#line 34
2562struct bus_type;
2563#line 34
2564struct bus_type;
2565#line 34
2566struct bus_type;
2567#line 34
2568struct bus_type;
2569#line 35
2570struct device_node;
2571#line 35
2572struct device_node;
2573#line 35
2574struct device_node;
2575#line 35
2576struct device_node;
2577#line 37 "include/linux/device.h"
2578struct bus_attribute {
2579 struct attribute attr ;
2580 ssize_t (*show)(struct bus_type *bus , char *buf ) ;
2581 ssize_t (*store)(struct bus_type *bus , char const *buf , size_t count ) ;
2582};
2583#line 82
2584struct device_attribute;
2585#line 82
2586struct device_attribute;
2587#line 82
2588struct device_attribute;
2589#line 82
2590struct driver_attribute;
2591#line 82
2592struct driver_attribute;
2593#line 82
2594struct driver_attribute;
2595#line 82 "include/linux/device.h"
2596struct bus_type {
2597 char const *name ;
2598 struct bus_attribute *bus_attrs ;
2599 struct device_attribute *dev_attrs ;
2600 struct driver_attribute *drv_attrs ;
2601 int (*match)(struct device *dev , struct device_driver *drv ) ;
2602 int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
2603 int (*probe)(struct device *dev ) ;
2604 int (*remove)(struct device *dev ) ;
2605 void (*shutdown)(struct device *dev ) ;
2606 int (*suspend)(struct device *dev , pm_message_t state ) ;
2607 int (*resume)(struct device *dev ) ;
2608 struct dev_pm_ops const *pm ;
2609 struct subsys_private *p ;
2610};
2611#line 185
2612struct of_device_id;
2613#line 185
2614struct of_device_id;
2615#line 185
2616struct of_device_id;
2617#line 185 "include/linux/device.h"
2618struct device_driver {
2619 char const *name ;
2620 struct bus_type *bus ;
2621 struct module *owner ;
2622 char const *mod_name ;
2623 bool suppress_bind_attrs ;
2624 struct of_device_id const *of_match_table ;
2625 int (*probe)(struct device *dev ) ;
2626 int (*remove)(struct device *dev ) ;
2627 void (*shutdown)(struct device *dev ) ;
2628 int (*suspend)(struct device *dev , pm_message_t state ) ;
2629 int (*resume)(struct device *dev ) ;
2630 struct attribute_group const **groups ;
2631 struct dev_pm_ops const *pm ;
2632 struct driver_private *p ;
2633};
2634#line 222 "include/linux/device.h"
2635struct driver_attribute {
2636 struct attribute attr ;
2637 ssize_t (*show)(struct device_driver *driver , char *buf ) ;
2638 ssize_t (*store)(struct device_driver *driver , char const *buf , size_t count ) ;
2639};
2640#line 280
2641struct class_attribute;
2642#line 280
2643struct class_attribute;
2644#line 280
2645struct class_attribute;
2646#line 280 "include/linux/device.h"
2647struct class {
2648 char const *name ;
2649 struct module *owner ;
2650 struct class_attribute *class_attrs ;
2651 struct device_attribute *dev_attrs ;
2652 struct bin_attribute *dev_bin_attrs ;
2653 struct kobject *dev_kobj ;
2654 int (*dev_uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
2655 char *(*devnode)(struct device *dev , mode_t *mode ) ;
2656 void (*class_release)(struct class *class ) ;
2657 void (*dev_release)(struct device *dev ) ;
2658 int (*suspend)(struct device *dev , pm_message_t state ) ;
2659 int (*resume)(struct device *dev ) ;
2660 struct kobj_ns_type_operations const *ns_type ;
2661 void const *(*namespace)(struct device *dev ) ;
2662 struct dev_pm_ops const *pm ;
2663 struct subsys_private *p ;
2664};
2665#line 306
2666struct device_type;
2667#line 306
2668struct device_type;
2669#line 306
2670struct device_type;
2671#line 347 "include/linux/device.h"
2672struct class_attribute {
2673 struct attribute attr ;
2674 ssize_t (*show)(struct class *class , struct class_attribute *attr , char *buf ) ;
2675 ssize_t (*store)(struct class *class , struct class_attribute *attr , char const *buf ,
2676 size_t count ) ;
2677};
2678#line 413 "include/linux/device.h"
2679struct device_type {
2680 char const *name ;
2681 struct attribute_group const **groups ;
2682 int (*uevent)(struct device *dev , struct kobj_uevent_env *env ) ;
2683 char *(*devnode)(struct device *dev , mode_t *mode ) ;
2684 void (*release)(struct device *dev ) ;
2685 struct dev_pm_ops const *pm ;
2686};
2687#line 424 "include/linux/device.h"
2688struct device_attribute {
2689 struct attribute attr ;
2690 ssize_t (*show)(struct device *dev , struct device_attribute *attr , char *buf ) ;
2691 ssize_t (*store)(struct device *dev , struct device_attribute *attr , char const *buf ,
2692 size_t count ) ;
2693};
2694#line 484 "include/linux/device.h"
2695struct device_dma_parameters {
2696 unsigned int max_segment_size ;
2697 unsigned long segment_boundary_mask ;
2698};
2699#line 551
2700struct dma_coherent_mem;
2701#line 551
2702struct dma_coherent_mem;
2703#line 551
2704struct dma_coherent_mem;
2705#line 551 "include/linux/device.h"
2706struct device {
2707 struct device *parent ;
2708 struct device_private *p ;
2709 struct kobject kobj ;
2710 char const *init_name ;
2711 struct device_type const *type ;
2712 struct mutex mutex ;
2713 struct bus_type *bus ;
2714 struct device_driver *driver ;
2715 void *platform_data ;
2716 struct dev_pm_info power ;
2717 struct dev_power_domain *pwr_domain ;
2718 int numa_node ;
2719 u64 *dma_mask ;
2720 u64 coherent_dma_mask ;
2721 struct device_dma_parameters *dma_parms ;
2722 struct list_head dma_pools ;
2723 struct dma_coherent_mem *dma_mem ;
2724 struct dev_archdata archdata ;
2725 struct device_node *of_node ;
2726 dev_t devt ;
2727 spinlock_t devres_lock ;
2728 struct list_head devres_head ;
2729 struct klist_node knode_class ;
2730 struct class *class ;
2731 struct attribute_group const **groups ;
2732 void (*release)(struct device *dev ) ;
2733};
2734#line 43 "include/linux/pm_wakeup.h"
2735struct wakeup_source {
2736 char *name ;
2737 struct list_head entry ;
2738 spinlock_t lock ;
2739 struct timer_list timer ;
2740 unsigned long timer_expires ;
2741 ktime_t total_time ;
2742 ktime_t max_time ;
2743 ktime_t last_time ;
2744 unsigned long event_count ;
2745 unsigned long active_count ;
2746 unsigned long relax_count ;
2747 unsigned long hit_count ;
2748 unsigned int active : 1 ;
2749};
2750#line 49 "include/linux/pps_kernel.h"
2751struct pps_event_time {
2752 struct timespec ts_real ;
2753};
2754#line 114 "include/linux/tty_ldisc.h"
2755struct tty_ldisc_ops {
2756 int magic ;
2757 char *name ;
2758 int num ;
2759 int flags ;
2760 int (*open)(struct tty_struct * ) ;
2761 void (*close)(struct tty_struct * ) ;
2762 void (*flush_buffer)(struct tty_struct *tty ) ;
2763 ssize_t (*chars_in_buffer)(struct tty_struct *tty ) ;
2764 ssize_t (*read)(struct tty_struct *tty , struct file *file , unsigned char *buf ,
2765 size_t nr ) ;
2766 ssize_t (*write)(struct tty_struct *tty , struct file *file , unsigned char const *buf ,
2767 size_t nr ) ;
2768 int (*ioctl)(struct tty_struct *tty , struct file *file , unsigned int cmd , unsigned long arg ) ;
2769 long (*compat_ioctl)(struct tty_struct *tty , struct file *file , unsigned int cmd ,
2770 unsigned long arg ) ;
2771 void (*set_termios)(struct tty_struct *tty , struct ktermios *old ) ;
2772 unsigned int (*poll)(struct tty_struct * , struct file * , struct poll_table_struct * ) ;
2773 int (*hangup)(struct tty_struct *tty ) ;
2774 void (*receive_buf)(struct tty_struct * , unsigned char const *cp , char *fp ,
2775 int count ) ;
2776 void (*write_wakeup)(struct tty_struct * ) ;
2777 void (*dcd_change)(struct tty_struct * , unsigned int , struct pps_event_time * ) ;
2778 struct module *owner ;
2779 int refcount ;
2780};
2781#line 154 "include/linux/tty_ldisc.h"
2782struct tty_ldisc {
2783 struct tty_ldisc_ops *ops ;
2784 atomic_t users ;
2785};
2786#line 63 "include/linux/tty.h"
2787struct tty_buffer {
2788 struct tty_buffer *next ;
2789 char *char_buf_ptr ;
2790 unsigned char *flag_buf_ptr ;
2791 int used ;
2792 int size ;
2793 int commit ;
2794 int read ;
2795 unsigned long data[0] ;
2796};
2797#line 86 "include/linux/tty.h"
2798struct tty_bufhead {
2799 struct work_struct work ;
2800 spinlock_t lock ;
2801 struct tty_buffer *head ;
2802 struct tty_buffer *tail ;
2803 struct tty_buffer *free ;
2804 int memory_used ;
2805};
2806#line 187
2807struct device;
2808#line 188
2809struct signal_struct;
2810#line 188
2811struct signal_struct;
2812#line 188
2813struct signal_struct;
2814#line 188
2815struct signal_struct;
2816#line 201
2817struct tty_port;
2818#line 201
2819struct tty_port;
2820#line 201
2821struct tty_port;
2822#line 201
2823struct tty_port;
2824#line 203 "include/linux/tty.h"
2825struct tty_port_operations {
2826 int (*carrier_raised)(struct tty_port *port ) ;
2827 void (*dtr_rts)(struct tty_port *port , int raise ) ;
2828 void (*shutdown)(struct tty_port *port ) ;
2829 void (*drop)(struct tty_port *port ) ;
2830 int (*activate)(struct tty_port *port , struct tty_struct *tty ) ;
2831 void (*destruct)(struct tty_port *port ) ;
2832};
2833#line 222 "include/linux/tty.h"
2834struct tty_port {
2835 struct tty_struct *tty ;
2836 struct tty_port_operations const *ops ;
2837 spinlock_t lock ;
2838 int blocked_open ;
2839 int count ;
2840 wait_queue_head_t open_wait ;
2841 wait_queue_head_t close_wait ;
2842 wait_queue_head_t delta_msr_wait ;
2843 unsigned long flags ;
2844 unsigned char console : 1 ;
2845 struct mutex mutex ;
2846 struct mutex buf_mutex ;
2847 unsigned char *xmit_buf ;
2848 unsigned int close_delay ;
2849 unsigned int closing_wait ;
2850 int drain_delay ;
2851 struct kref kref ;
2852};
2853#line 256
2854struct tty_operations;
2855#line 258 "include/linux/tty.h"
2856struct tty_struct {
2857 int magic ;
2858 struct kref kref ;
2859 struct device *dev ;
2860 struct tty_driver *driver ;
2861 struct tty_operations const *ops ;
2862 int index ;
2863 struct mutex ldisc_mutex ;
2864 struct tty_ldisc *ldisc ;
2865 struct mutex termios_mutex ;
2866 spinlock_t ctrl_lock ;
2867 struct ktermios *termios ;
2868 struct ktermios *termios_locked ;
2869 struct termiox *termiox ;
2870 char name[64] ;
2871 struct pid *pgrp ;
2872 struct pid *session ;
2873 unsigned long flags ;
2874 int count ;
2875 struct winsize winsize ;
2876 unsigned char stopped : 1 ;
2877 unsigned char hw_stopped : 1 ;
2878 unsigned char flow_stopped : 1 ;
2879 unsigned char packet : 1 ;
2880 unsigned char low_latency : 1 ;
2881 unsigned char warned : 1 ;
2882 unsigned char ctrl_status ;
2883 unsigned int receive_room ;
2884 struct tty_struct *link ;
2885 struct fasync_struct *fasync ;
2886 struct tty_bufhead buf ;
2887 int alt_speed ;
2888 wait_queue_head_t write_wait ;
2889 wait_queue_head_t read_wait ;
2890 struct work_struct hangup_work ;
2891 void *disc_data ;
2892 void *driver_data ;
2893 struct list_head tty_files ;
2894 unsigned int column ;
2895 unsigned char lnext : 1 ;
2896 unsigned char erasing : 1 ;
2897 unsigned char raw : 1 ;
2898 unsigned char real_raw : 1 ;
2899 unsigned char icanon : 1 ;
2900 unsigned char closing : 1 ;
2901 unsigned char echo_overrun : 1 ;
2902 unsigned short minimum_to_wake ;
2903 unsigned long overrun_time ;
2904 int num_overrun ;
2905 unsigned long process_char_map[256UL / (8UL * sizeof(unsigned long ))] ;
2906 char *read_buf ;
2907 int read_head ;
2908 int read_tail ;
2909 int read_cnt ;
2910 unsigned long read_flags[4096UL / (8UL * sizeof(unsigned long ))] ;
2911 unsigned char *echo_buf ;
2912 unsigned int echo_pos ;
2913 unsigned int echo_cnt ;
2914 int canon_data ;
2915 unsigned long canon_head ;
2916 unsigned int canon_column ;
2917 struct mutex atomic_read_lock ;
2918 struct mutex atomic_write_lock ;
2919 struct mutex output_lock ;
2920 struct mutex echo_lock ;
2921 unsigned char *write_buf ;
2922 int write_cnt ;
2923 spinlock_t read_lock ;
2924 struct work_struct SAK_work ;
2925 struct tty_port *port ;
2926};
2927#line 12 "include/linux/mod_devicetable.h"
2928typedef unsigned long kernel_ulong_t;
2929#line 98 "include/linux/mod_devicetable.h"
2930struct usb_device_id {
2931 __u16 match_flags ;
2932 __u16 idVendor ;
2933 __u16 idProduct ;
2934 __u16 bcdDevice_lo ;
2935 __u16 bcdDevice_hi ;
2936 __u8 bDeviceClass ;
2937 __u8 bDeviceSubClass ;
2938 __u8 bDeviceProtocol ;
2939 __u8 bInterfaceClass ;
2940 __u8 bInterfaceSubClass ;
2941 __u8 bInterfaceProtocol ;
2942 kernel_ulong_t driver_info ;
2943};
2944#line 219 "include/linux/mod_devicetable.h"
2945struct of_device_id {
2946 char name[32] ;
2947 char type[32] ;
2948 char compatible[128] ;
2949 void *data ;
2950};
2951#line 244 "include/linux/usb/ch9.h"
2952struct usb_device_descriptor {
2953 __u8 bLength ;
2954 __u8 bDescriptorType ;
2955 __le16 bcdUSB ;
2956 __u8 bDeviceClass ;
2957 __u8 bDeviceSubClass ;
2958 __u8 bDeviceProtocol ;
2959 __u8 bMaxPacketSize0 ;
2960 __le16 idVendor ;
2961 __le16 idProduct ;
2962 __le16 bcdDevice ;
2963 __u8 iManufacturer ;
2964 __u8 iProduct ;
2965 __u8 iSerialNumber ;
2966 __u8 bNumConfigurations ;
2967} __attribute__((__packed__)) ;
2968#line 300 "include/linux/usb/ch9.h"
2969struct usb_config_descriptor {
2970 __u8 bLength ;
2971 __u8 bDescriptorType ;
2972 __le16 wTotalLength ;
2973 __u8 bNumInterfaces ;
2974 __u8 bConfigurationValue ;
2975 __u8 iConfiguration ;
2976 __u8 bmAttributes ;
2977 __u8 bMaxPower ;
2978} __attribute__((__packed__)) ;
2979#line 337 "include/linux/usb/ch9.h"
2980struct usb_interface_descriptor {
2981 __u8 bLength ;
2982 __u8 bDescriptorType ;
2983 __u8 bInterfaceNumber ;
2984 __u8 bAlternateSetting ;
2985 __u8 bNumEndpoints ;
2986 __u8 bInterfaceClass ;
2987 __u8 bInterfaceSubClass ;
2988 __u8 bInterfaceProtocol ;
2989 __u8 iInterface ;
2990} __attribute__((__packed__)) ;
2991#line 355 "include/linux/usb/ch9.h"
2992struct usb_endpoint_descriptor {
2993 __u8 bLength ;
2994 __u8 bDescriptorType ;
2995 __u8 bEndpointAddress ;
2996 __u8 bmAttributes ;
2997 __le16 wMaxPacketSize ;
2998 __u8 bInterval ;
2999 __u8 bRefresh ;
3000 __u8 bSynchAddress ;
3001} __attribute__((__packed__)) ;
3002#line 576 "include/linux/usb/ch9.h"
3003struct usb_ss_ep_comp_descriptor {
3004 __u8 bLength ;
3005 __u8 bDescriptorType ;
3006 __u8 bMaxBurst ;
3007 __u8 bmAttributes ;
3008 __le16 wBytesPerInterval ;
3009} __attribute__((__packed__)) ;
3010#line 637 "include/linux/usb/ch9.h"
3011struct usb_interface_assoc_descriptor {
3012 __u8 bLength ;
3013 __u8 bDescriptorType ;
3014 __u8 bFirstInterface ;
3015 __u8 bInterfaceCount ;
3016 __u8 bFunctionClass ;
3017 __u8 bFunctionSubClass ;
3018 __u8 bFunctionProtocol ;
3019 __u8 iFunction ;
3020} __attribute__((__packed__)) ;
3021#line 846
3022enum usb_device_speed {
3023 USB_SPEED_UNKNOWN = 0,
3024 USB_SPEED_LOW = 1,
3025 USB_SPEED_FULL = 2,
3026 USB_SPEED_HIGH = 3,
3027 USB_SPEED_WIRELESS = 4,
3028 USB_SPEED_SUPER = 5
3029} ;
3030#line 854
3031enum usb_device_state {
3032 USB_STATE_NOTATTACHED = 0,
3033 USB_STATE_ATTACHED = 1,
3034 USB_STATE_POWERED = 2,
3035 USB_STATE_RECONNECTING = 3,
3036 USB_STATE_UNAUTHENTICATED = 4,
3037 USB_STATE_DEFAULT = 5,
3038 USB_STATE_ADDRESS = 6,
3039 USB_STATE_CONFIGURED = 7,
3040 USB_STATE_SUSPENDED = 8
3041} ;
3042#line 10 "include/linux/irqreturn.h"
3043enum irqreturn {
3044 IRQ_NONE = 0,
3045 IRQ_HANDLED = 1,
3046 IRQ_WAKE_THREAD = 2
3047} ;
3048#line 16 "include/linux/irqreturn.h"
3049typedef enum irqreturn irqreturn_t;
3050#line 31 "include/linux/irq.h"
3051struct seq_file;
3052#line 12 "include/linux/irqdesc.h"
3053struct proc_dir_entry;
3054#line 39
3055struct irqaction;
3056#line 39
3057struct irqaction;
3058#line 39
3059struct irqaction;
3060#line 16 "include/linux/profile.h"
3061struct proc_dir_entry;
3062#line 17
3063struct pt_regs;
3064#line 65
3065struct task_struct;
3066#line 66
3067struct mm_struct;
3068#line 88
3069struct pt_regs;
3070#line 363 "include/linux/irq.h"
3071struct irqaction;
3072#line 132 "include/linux/hardirq.h"
3073struct task_struct;
3074#line 100 "include/linux/rbtree.h"
3075struct rb_node {
3076 unsigned long rb_parent_color ;
3077 struct rb_node *rb_right ;
3078 struct rb_node *rb_left ;
3079} __attribute__((__aligned__(sizeof(long )))) ;
3080#line 110 "include/linux/rbtree.h"
3081struct rb_root {
3082 struct rb_node *rb_node ;
3083};
3084#line 8 "include/linux/timerqueue.h"
3085struct timerqueue_node {
3086 struct rb_node node ;
3087 ktime_t expires ;
3088};
3089#line 13 "include/linux/timerqueue.h"
3090struct timerqueue_head {
3091 struct rb_root head ;
3092 struct timerqueue_node *next ;
3093};
3094#line 27 "include/linux/hrtimer.h"
3095struct hrtimer_clock_base;
3096#line 27
3097struct hrtimer_clock_base;
3098#line 27
3099struct hrtimer_clock_base;
3100#line 27
3101struct hrtimer_clock_base;
3102#line 28
3103struct hrtimer_cpu_base;
3104#line 28
3105struct hrtimer_cpu_base;
3106#line 28
3107struct hrtimer_cpu_base;
3108#line 28
3109struct hrtimer_cpu_base;
3110#line 44
3111enum hrtimer_restart {
3112 HRTIMER_NORESTART = 0,
3113 HRTIMER_RESTART = 1
3114} ;
3115#line 108 "include/linux/hrtimer.h"
3116struct hrtimer {
3117 struct timerqueue_node node ;
3118 ktime_t _softexpires ;
3119 enum hrtimer_restart (*function)(struct hrtimer * ) ;
3120 struct hrtimer_clock_base *base ;
3121 unsigned long state ;
3122 int start_pid ;
3123 void *start_site ;
3124 char start_comm[16] ;
3125};
3126#line 145 "include/linux/hrtimer.h"
3127struct hrtimer_clock_base {
3128 struct hrtimer_cpu_base *cpu_base ;
3129 int index ;
3130 clockid_t clockid ;
3131 struct timerqueue_head active ;
3132 ktime_t resolution ;
3133 ktime_t (*get_time)(void) ;
3134 ktime_t softirq_time ;
3135 ktime_t offset ;
3136};
3137#line 178 "include/linux/hrtimer.h"
3138struct hrtimer_cpu_base {
3139 raw_spinlock_t lock ;
3140 unsigned long active_bases ;
3141 ktime_t expires_next ;
3142 int hres_active ;
3143 int hang_detected ;
3144 unsigned long nr_events ;
3145 unsigned long nr_retries ;
3146 unsigned long nr_hangs ;
3147 ktime_t max_hang_time ;
3148 struct hrtimer_clock_base clock_base[3] ;
3149};
3150#line 9 "include/trace/events/irq.h"
3151struct irqaction;
3152#line 106 "include/linux/interrupt.h"
3153struct irqaction {
3154 irqreturn_t (*handler)(int , void * ) ;
3155 unsigned long flags ;
3156 void *dev_id ;
3157 struct irqaction *next ;
3158 int irq ;
3159 irqreturn_t (*thread_fn)(int , void * ) ;
3160 struct task_struct *thread ;
3161 unsigned long thread_flags ;
3162 unsigned long thread_mask ;
3163 char const *name ;
3164 struct proc_dir_entry *dir ;
3165} __attribute__((__aligned__((1) << (12) ))) ;
3166#line 172
3167struct device;
3168#line 682
3169struct seq_file;
3170#line 23 "include/linux/mm_types.h"
3171struct address_space;
3172#line 34 "include/linux/mm_types.h"
3173struct __anonstruct____missing_field_name_223 {
3174 u16 inuse ;
3175 u16 objects ;
3176};
3177#line 34 "include/linux/mm_types.h"
3178union __anonunion____missing_field_name_222 {
3179 atomic_t _mapcount ;
3180 struct __anonstruct____missing_field_name_223 __annonCompField34 ;
3181};
3182#line 34 "include/linux/mm_types.h"
3183struct __anonstruct____missing_field_name_225 {
3184 unsigned long private ;
3185 struct address_space *mapping ;
3186};
3187#line 34 "include/linux/mm_types.h"
3188union __anonunion____missing_field_name_224 {
3189 struct __anonstruct____missing_field_name_225 __annonCompField36 ;
3190 struct kmem_cache *slab ;
3191 struct page *first_page ;
3192};
3193#line 34 "include/linux/mm_types.h"
3194union __anonunion____missing_field_name_226 {
3195 unsigned long index ;
3196 void *freelist ;
3197};
3198#line 34 "include/linux/mm_types.h"
3199struct page {
3200 unsigned long flags ;
3201 atomic_t _count ;
3202 union __anonunion____missing_field_name_222 __annonCompField35 ;
3203 union __anonunion____missing_field_name_224 __annonCompField37 ;
3204 union __anonunion____missing_field_name_226 __annonCompField38 ;
3205 struct list_head lru ;
3206};
3207#line 132 "include/linux/mm_types.h"
3208struct __anonstruct_vm_set_228 {
3209 struct list_head list ;
3210 void *parent ;
3211 struct vm_area_struct *head ;
3212};
3213#line 132 "include/linux/mm_types.h"
3214union __anonunion_shared_227 {
3215 struct __anonstruct_vm_set_228 vm_set ;
3216 struct raw_prio_tree_node prio_tree_node ;
3217};
3218#line 132
3219struct anon_vma;
3220#line 132
3221struct anon_vma;
3222#line 132
3223struct anon_vma;
3224#line 132
3225struct vm_operations_struct;
3226#line 132
3227struct vm_operations_struct;
3228#line 132
3229struct vm_operations_struct;
3230#line 132
3231struct mempolicy;
3232#line 132
3233struct mempolicy;
3234#line 132
3235struct mempolicy;
3236#line 132 "include/linux/mm_types.h"
3237struct vm_area_struct {
3238 struct mm_struct *vm_mm ;
3239 unsigned long vm_start ;
3240 unsigned long vm_end ;
3241 struct vm_area_struct *vm_next ;
3242 struct vm_area_struct *vm_prev ;
3243 pgprot_t vm_page_prot ;
3244 unsigned long vm_flags ;
3245 struct rb_node vm_rb ;
3246 union __anonunion_shared_227 shared ;
3247 struct list_head anon_vma_chain ;
3248 struct anon_vma *anon_vma ;
3249 struct vm_operations_struct const *vm_ops ;
3250 unsigned long vm_pgoff ;
3251 struct file *vm_file ;
3252 void *vm_private_data ;
3253 struct mempolicy *vm_policy ;
3254};
3255#line 189 "include/linux/mm_types.h"
3256struct core_thread {
3257 struct task_struct *task ;
3258 struct core_thread *next ;
3259};
3260#line 194 "include/linux/mm_types.h"
3261struct core_state {
3262 atomic_t nr_threads ;
3263 struct core_thread dumper ;
3264 struct completion startup ;
3265};
3266#line 216 "include/linux/mm_types.h"
3267struct mm_rss_stat {
3268 atomic_long_t count[3] ;
3269};
3270#line 220
3271struct linux_binfmt;
3272#line 220
3273struct linux_binfmt;
3274#line 220
3275struct linux_binfmt;
3276#line 220
3277struct mmu_notifier_mm;
3278#line 220
3279struct mmu_notifier_mm;
3280#line 220
3281struct mmu_notifier_mm;
3282#line 220 "include/linux/mm_types.h"
3283struct mm_struct {
3284 struct vm_area_struct *mmap ;
3285 struct rb_root mm_rb ;
3286 struct vm_area_struct *mmap_cache ;
3287 unsigned long (*get_unmapped_area)(struct file *filp , unsigned long addr , unsigned long len ,
3288 unsigned long pgoff , unsigned long flags ) ;
3289 void (*unmap_area)(struct mm_struct *mm , unsigned long addr ) ;
3290 unsigned long mmap_base ;
3291 unsigned long task_size ;
3292 unsigned long cached_hole_size ;
3293 unsigned long free_area_cache ;
3294 pgd_t *pgd ;
3295 atomic_t mm_users ;
3296 atomic_t mm_count ;
3297 int map_count ;
3298 spinlock_t page_table_lock ;
3299 struct rw_semaphore mmap_sem ;
3300 struct list_head mmlist ;
3301 unsigned long hiwater_rss ;
3302 unsigned long hiwater_vm ;
3303 unsigned long total_vm ;
3304 unsigned long locked_vm ;
3305 unsigned long shared_vm ;
3306 unsigned long exec_vm ;
3307 unsigned long stack_vm ;
3308 unsigned long reserved_vm ;
3309 unsigned long def_flags ;
3310 unsigned long nr_ptes ;
3311 unsigned long start_code ;
3312 unsigned long end_code ;
3313 unsigned long start_data ;
3314 unsigned long end_data ;
3315 unsigned long start_brk ;
3316 unsigned long brk ;
3317 unsigned long start_stack ;
3318 unsigned long arg_start ;
3319 unsigned long arg_end ;
3320 unsigned long env_start ;
3321 unsigned long env_end ;
3322 unsigned long saved_auxv[44] ;
3323 struct mm_rss_stat rss_stat ;
3324 struct linux_binfmt *binfmt ;
3325 cpumask_var_t cpu_vm_mask_var ;
3326 mm_context_t context ;
3327 unsigned int faultstamp ;
3328 unsigned int token_priority ;
3329 unsigned int last_interval ;
3330 atomic_t oom_disable_count ;
3331 unsigned long flags ;
3332 struct core_state *core_state ;
3333 spinlock_t ioctx_lock ;
3334 struct hlist_head ioctx_list ;
3335 struct task_struct *owner ;
3336 struct file *exe_file ;
3337 unsigned long num_exe_file_vmas ;
3338 struct mmu_notifier_mm *mmu_notifier_mm ;
3339 pgtable_t pmd_huge_pte ;
3340 struct cpumask cpumask_allocation ;
3341};
3342#line 7 "include/asm-generic/cputime.h"
3343typedef unsigned long cputime_t;
3344#line 84 "include/linux/sem.h"
3345struct task_struct;
3346#line 122
3347struct sem_undo_list;
3348#line 122
3349struct sem_undo_list;
3350#line 122
3351struct sem_undo_list;
3352#line 135 "include/linux/sem.h"
3353struct sem_undo_list {
3354 atomic_t refcnt ;
3355 spinlock_t lock ;
3356 struct list_head list_proc ;
3357};
3358#line 141 "include/linux/sem.h"
3359struct sysv_sem {
3360 struct sem_undo_list *undo_list ;
3361};
3362#line 10 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
3363struct siginfo;
3364#line 10
3365struct siginfo;
3366#line 10
3367struct siginfo;
3368#line 10
3369struct siginfo;
3370#line 30 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
3371struct __anonstruct_sigset_t_230 {
3372 unsigned long sig[1] ;
3373};
3374#line 30 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
3375typedef struct __anonstruct_sigset_t_230 sigset_t;
3376#line 17 "include/asm-generic/signal-defs.h"
3377typedef void __signalfn_t(int );
3378#line 18 "include/asm-generic/signal-defs.h"
3379typedef __signalfn_t *__sighandler_t;
3380#line 20 "include/asm-generic/signal-defs.h"
3381typedef void __restorefn_t(void);
3382#line 21 "include/asm-generic/signal-defs.h"
3383typedef __restorefn_t *__sigrestore_t;
3384#line 167 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
3385struct sigaction {
3386 __sighandler_t sa_handler ;
3387 unsigned long sa_flags ;
3388 __sigrestore_t sa_restorer ;
3389 sigset_t sa_mask ;
3390};
3391#line 174 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
3392struct k_sigaction {
3393 struct sigaction sa ;
3394};
3395#line 7 "include/asm-generic/siginfo.h"
3396union sigval {
3397 int sival_int ;
3398 void *sival_ptr ;
3399};
3400#line 7 "include/asm-generic/siginfo.h"
3401typedef union sigval sigval_t;
3402#line 40 "include/asm-generic/siginfo.h"
3403struct __anonstruct__kill_232 {
3404 __kernel_pid_t _pid ;
3405 __kernel_uid32_t _uid ;
3406};
3407#line 40 "include/asm-generic/siginfo.h"
3408struct __anonstruct__timer_233 {
3409 __kernel_timer_t _tid ;
3410 int _overrun ;
3411 char _pad[sizeof(__kernel_uid32_t ) - sizeof(int )] ;
3412 sigval_t _sigval ;
3413 int _sys_private ;
3414};
3415#line 40 "include/asm-generic/siginfo.h"
3416struct __anonstruct__rt_234 {
3417 __kernel_pid_t _pid ;
3418 __kernel_uid32_t _uid ;
3419 sigval_t _sigval ;
3420};
3421#line 40 "include/asm-generic/siginfo.h"
3422struct __anonstruct__sigchld_235 {
3423 __kernel_pid_t _pid ;
3424 __kernel_uid32_t _uid ;
3425 int _status ;
3426 __kernel_clock_t _utime ;
3427 __kernel_clock_t _stime ;
3428};
3429#line 40 "include/asm-generic/siginfo.h"
3430struct __anonstruct__sigfault_236 {
3431 void *_addr ;
3432 short _addr_lsb ;
3433};
3434#line 40 "include/asm-generic/siginfo.h"
3435struct __anonstruct__sigpoll_237 {
3436 long _band ;
3437 int _fd ;
3438};
3439#line 40 "include/asm-generic/siginfo.h"
3440union __anonunion__sifields_231 {
3441 int _pad[(128UL - 4UL * sizeof(int )) / sizeof(int )] ;
3442 struct __anonstruct__kill_232 _kill ;
3443 struct __anonstruct__timer_233 _timer ;
3444 struct __anonstruct__rt_234 _rt ;
3445 struct __anonstruct__sigchld_235 _sigchld ;
3446 struct __anonstruct__sigfault_236 _sigfault ;
3447 struct __anonstruct__sigpoll_237 _sigpoll ;
3448};
3449#line 40 "include/asm-generic/siginfo.h"
3450struct siginfo {
3451 int si_signo ;
3452 int si_errno ;
3453 int si_code ;
3454 union __anonunion__sifields_231 _sifields ;
3455};
3456#line 40 "include/asm-generic/siginfo.h"
3457typedef struct siginfo siginfo_t;
3458#line 280
3459struct siginfo;
3460#line 10 "include/linux/signal.h"
3461struct task_struct;
3462#line 18
3463struct user_struct;
3464#line 18
3465struct user_struct;
3466#line 18
3467struct user_struct;
3468#line 28 "include/linux/signal.h"
3469struct sigpending {
3470 struct list_head list ;
3471 sigset_t signal ;
3472};
3473#line 239
3474struct timespec;
3475#line 240
3476struct pt_regs;
3477#line 97 "include/linux/proportions.h"
3478struct prop_local_single {
3479 unsigned long events ;
3480 unsigned long period ;
3481 int shift ;
3482 spinlock_t lock ;
3483};
3484#line 10 "include/linux/seccomp.h"
3485struct __anonstruct_seccomp_t_240 {
3486 int mode ;
3487};
3488#line 10 "include/linux/seccomp.h"
3489typedef struct __anonstruct_seccomp_t_240 seccomp_t;
3490#line 82 "include/linux/plist.h"
3491struct plist_head {
3492 struct list_head node_list ;
3493 raw_spinlock_t *rawlock ;
3494 spinlock_t *spinlock ;
3495};
3496#line 90 "include/linux/plist.h"
3497struct plist_node {
3498 int prio ;
3499 struct list_head prio_list ;
3500 struct list_head node_list ;
3501};
3502#line 40 "include/linux/rtmutex.h"
3503struct rt_mutex_waiter;
3504#line 40
3505struct rt_mutex_waiter;
3506#line 40
3507struct rt_mutex_waiter;
3508#line 40
3509struct rt_mutex_waiter;
3510#line 42 "include/linux/resource.h"
3511struct rlimit {
3512 unsigned long rlim_cur ;
3513 unsigned long rlim_max ;
3514};
3515#line 81
3516struct task_struct;
3517#line 11 "include/linux/task_io_accounting.h"
3518struct task_io_accounting {
3519 u64 rchar ;
3520 u64 wchar ;
3521 u64 syscr ;
3522 u64 syscw ;
3523 u64 read_bytes ;
3524 u64 write_bytes ;
3525 u64 cancelled_write_bytes ;
3526};
3527#line 18 "include/linux/latencytop.h"
3528struct latency_record {
3529 unsigned long backtrace[12] ;
3530 unsigned int count ;
3531 unsigned long time ;
3532 unsigned long max ;
3533};
3534#line 26
3535struct task_struct;
3536#line 29 "include/linux/key.h"
3537typedef int32_t key_serial_t;
3538#line 32 "include/linux/key.h"
3539typedef uint32_t key_perm_t;
3540#line 34
3541struct key;
3542#line 34
3543struct key;
3544#line 34
3545struct key;
3546#line 34
3547struct key;
3548#line 74
3549struct seq_file;
3550#line 75
3551struct user_struct;
3552#line 76
3553struct signal_struct;
3554#line 77
3555struct cred;
3556#line 79
3557struct key_type;
3558#line 79
3559struct key_type;
3560#line 79
3561struct key_type;
3562#line 79
3563struct key_type;
3564#line 81
3565struct keyring_list;
3566#line 81
3567struct keyring_list;
3568#line 81
3569struct keyring_list;
3570#line 81
3571struct keyring_list;
3572#line 124
3573struct key_user;
3574#line 124
3575struct key_user;
3576#line 124
3577struct key_user;
3578#line 124 "include/linux/key.h"
3579union __anonunion____missing_field_name_241 {
3580 time_t expiry ;
3581 time_t revoked_at ;
3582};
3583#line 124 "include/linux/key.h"
3584union __anonunion_type_data_242 {
3585 struct list_head link ;
3586 unsigned long x[2] ;
3587 void *p[2] ;
3588 int reject_error ;
3589};
3590#line 124 "include/linux/key.h"
3591union __anonunion_payload_243 {
3592 unsigned long value ;
3593 void *rcudata ;
3594 void *data ;
3595 struct keyring_list *subscriptions ;
3596};
3597#line 124 "include/linux/key.h"
3598struct key {
3599 atomic_t usage ;
3600 key_serial_t serial ;
3601 struct rb_node serial_node ;
3602 struct key_type *type ;
3603 struct rw_semaphore sem ;
3604 struct key_user *user ;
3605 void *security ;
3606 union __anonunion____missing_field_name_241 __annonCompField39 ;
3607 uid_t uid ;
3608 gid_t gid ;
3609 key_perm_t perm ;
3610 unsigned short quotalen ;
3611 unsigned short datalen ;
3612 unsigned long flags ;
3613 char *description ;
3614 union __anonunion_type_data_242 type_data ;
3615 union __anonunion_payload_243 payload ;
3616};
3617#line 18 "include/linux/selinux.h"
3618struct audit_context;
3619#line 18
3620struct audit_context;
3621#line 18
3622struct audit_context;
3623#line 18
3624struct audit_context;
3625#line 21 "include/linux/cred.h"
3626struct user_struct;
3627#line 22
3628struct cred;
3629#line 23
3630struct inode;
3631#line 31 "include/linux/cred.h"
3632struct group_info {
3633 atomic_t usage ;
3634 int ngroups ;
3635 int nblocks ;
3636 gid_t small_block[32] ;
3637 gid_t *blocks[0] ;
3638};
3639#line 83 "include/linux/cred.h"
3640struct thread_group_cred {
3641 atomic_t usage ;
3642 pid_t tgid ;
3643 spinlock_t lock ;
3644 struct key *session_keyring ;
3645 struct key *process_keyring ;
3646 struct rcu_head rcu ;
3647};
3648#line 116 "include/linux/cred.h"
3649struct cred {
3650 atomic_t usage ;
3651 atomic_t subscribers ;
3652 void *put_addr ;
3653 unsigned int magic ;
3654 uid_t uid ;
3655 gid_t gid ;
3656 uid_t suid ;
3657 gid_t sgid ;
3658 uid_t euid ;
3659 gid_t egid ;
3660 uid_t fsuid ;
3661 gid_t fsgid ;
3662 unsigned int securebits ;
3663 kernel_cap_t cap_inheritable ;
3664 kernel_cap_t cap_permitted ;
3665 kernel_cap_t cap_effective ;
3666 kernel_cap_t cap_bset ;
3667 unsigned char jit_keyring ;
3668 struct key *thread_keyring ;
3669 struct key *request_key_auth ;
3670 struct thread_group_cred *tgcred ;
3671 void *security ;
3672 struct user_struct *user ;
3673 struct user_namespace *user_ns ;
3674 struct group_info *group_info ;
3675 struct rcu_head rcu ;
3676};
3677#line 97 "include/linux/sched.h"
3678struct futex_pi_state;
3679#line 97
3680struct futex_pi_state;
3681#line 97
3682struct futex_pi_state;
3683#line 97
3684struct futex_pi_state;
3685#line 98
3686struct robust_list_head;
3687#line 98
3688struct robust_list_head;
3689#line 98
3690struct robust_list_head;
3691#line 98
3692struct robust_list_head;
3693#line 99
3694struct bio_list;
3695#line 99
3696struct bio_list;
3697#line 99
3698struct bio_list;
3699#line 99
3700struct bio_list;
3701#line 100
3702struct fs_struct;
3703#line 100
3704struct fs_struct;
3705#line 100
3706struct fs_struct;
3707#line 100
3708struct fs_struct;
3709#line 101
3710struct perf_event_context;
3711#line 101
3712struct perf_event_context;
3713#line 101
3714struct perf_event_context;
3715#line 101
3716struct perf_event_context;
3717#line 102
3718struct blk_plug;
3719#line 102
3720struct blk_plug;
3721#line 102
3722struct blk_plug;
3723#line 102
3724struct blk_plug;
3725#line 150
3726struct seq_file;
3727#line 151
3728struct cfs_rq;
3729#line 151
3730struct cfs_rq;
3731#line 151
3732struct cfs_rq;
3733#line 151
3734struct cfs_rq;
3735#line 259
3736struct task_struct;
3737#line 364
3738struct nsproxy;
3739#line 365
3740struct user_namespace;
3741#line 58 "include/linux/aio_abi.h"
3742struct io_event {
3743 __u64 data ;
3744 __u64 obj ;
3745 __s64 res ;
3746 __s64 res2 ;
3747};
3748#line 16 "include/linux/uio.h"
3749struct iovec {
3750 void *iov_base ;
3751 __kernel_size_t iov_len ;
3752};
3753#line 15 "include/linux/aio.h"
3754struct kioctx;
3755#line 15
3756struct kioctx;
3757#line 15
3758struct kioctx;
3759#line 15
3760struct kioctx;
3761#line 87 "include/linux/aio.h"
3762union __anonunion_ki_obj_245 {
3763 void *user ;
3764 struct task_struct *tsk ;
3765};
3766#line 87
3767struct eventfd_ctx;
3768#line 87
3769struct eventfd_ctx;
3770#line 87
3771struct eventfd_ctx;
3772#line 87 "include/linux/aio.h"
3773struct kiocb {
3774 struct list_head ki_run_list ;
3775 unsigned long ki_flags ;
3776 int ki_users ;
3777 unsigned int ki_key ;
3778 struct file *ki_filp ;
3779 struct kioctx *ki_ctx ;
3780 int (*ki_cancel)(struct kiocb * , struct io_event * ) ;
3781 ssize_t (*ki_retry)(struct kiocb * ) ;
3782 void (*ki_dtor)(struct kiocb * ) ;
3783 union __anonunion_ki_obj_245 ki_obj ;
3784 __u64 ki_user_data ;
3785 loff_t ki_pos ;
3786 void *private ;
3787 unsigned short ki_opcode ;
3788 size_t ki_nbytes ;
3789 char *ki_buf ;
3790 size_t ki_left ;
3791 struct iovec ki_inline_vec ;
3792 struct iovec *ki_iovec ;
3793 unsigned long ki_nr_segs ;
3794 unsigned long ki_cur_seg ;
3795 struct list_head ki_list ;
3796 struct eventfd_ctx *ki_eventfd ;
3797};
3798#line 165 "include/linux/aio.h"
3799struct aio_ring_info {
3800 unsigned long mmap_base ;
3801 unsigned long mmap_size ;
3802 struct page **ring_pages ;
3803 spinlock_t ring_lock ;
3804 long nr_pages ;
3805 unsigned int nr ;
3806 unsigned int tail ;
3807 struct page *internal_pages[8] ;
3808};
3809#line 178 "include/linux/aio.h"
3810struct kioctx {
3811 atomic_t users ;
3812 int dead ;
3813 struct mm_struct *mm ;
3814 unsigned long user_id ;
3815 struct hlist_node list ;
3816 wait_queue_head_t wait ;
3817 spinlock_t ctx_lock ;
3818 int reqs_active ;
3819 struct list_head active_reqs ;
3820 struct list_head run_list ;
3821 unsigned int max_reqs ;
3822 struct aio_ring_info ring_info ;
3823 struct delayed_work wq ;
3824 struct rcu_head rcu_head ;
3825};
3826#line 213
3827struct mm_struct;
3828#line 441 "include/linux/sched.h"
3829struct sighand_struct {
3830 atomic_t count ;
3831 struct k_sigaction action[64] ;
3832 spinlock_t siglock ;
3833 wait_queue_head_t signalfd_wqh ;
3834};
3835#line 448 "include/linux/sched.h"
3836struct pacct_struct {
3837 int ac_flag ;
3838 long ac_exitcode ;
3839 unsigned long ac_mem ;
3840 cputime_t ac_utime ;
3841 cputime_t ac_stime ;
3842 unsigned long ac_minflt ;
3843 unsigned long ac_majflt ;
3844};
3845#line 456 "include/linux/sched.h"
3846struct cpu_itimer {
3847 cputime_t expires ;
3848 cputime_t incr ;
3849 u32 error ;
3850 u32 incr_error ;
3851};
3852#line 474 "include/linux/sched.h"
3853struct task_cputime {
3854 cputime_t utime ;
3855 cputime_t stime ;
3856 unsigned long long sum_exec_runtime ;
3857};
3858#line 510 "include/linux/sched.h"
3859struct thread_group_cputimer {
3860 struct task_cputime cputime ;
3861 int running ;
3862 spinlock_t lock ;
3863};
3864#line 517
3865struct autogroup;
3866#line 517
3867struct autogroup;
3868#line 517
3869struct autogroup;
3870#line 517
3871struct autogroup;
3872#line 526
3873struct taskstats;
3874#line 526
3875struct taskstats;
3876#line 526
3877struct taskstats;
3878#line 526
3879struct tty_audit_buf;
3880#line 526
3881struct tty_audit_buf;
3882#line 526
3883struct tty_audit_buf;
3884#line 526 "include/linux/sched.h"
3885struct signal_struct {
3886 atomic_t sigcnt ;
3887 atomic_t live ;
3888 int nr_threads ;
3889 wait_queue_head_t wait_chldexit ;
3890 struct task_struct *curr_target ;
3891 struct sigpending shared_pending ;
3892 int group_exit_code ;
3893 int notify_count ;
3894 struct task_struct *group_exit_task ;
3895 int group_stop_count ;
3896 unsigned int flags ;
3897 struct list_head posix_timers ;
3898 struct hrtimer real_timer ;
3899 struct pid *leader_pid ;
3900 ktime_t it_real_incr ;
3901 struct cpu_itimer it[2] ;
3902 struct thread_group_cputimer cputimer ;
3903 struct task_cputime cputime_expires ;
3904 struct list_head cpu_timers[3] ;
3905 struct pid *tty_old_pgrp ;
3906 int leader ;
3907 struct tty_struct *tty ;
3908 struct autogroup *autogroup ;
3909 cputime_t utime ;
3910 cputime_t stime ;
3911 cputime_t cutime ;
3912 cputime_t cstime ;
3913 cputime_t gtime ;
3914 cputime_t cgtime ;
3915 cputime_t prev_utime ;
3916 cputime_t prev_stime ;
3917 unsigned long nvcsw ;
3918 unsigned long nivcsw ;
3919 unsigned long cnvcsw ;
3920 unsigned long cnivcsw ;
3921 unsigned long min_flt ;
3922 unsigned long maj_flt ;
3923 unsigned long cmin_flt ;
3924 unsigned long cmaj_flt ;
3925 unsigned long inblock ;
3926 unsigned long oublock ;
3927 unsigned long cinblock ;
3928 unsigned long coublock ;
3929 unsigned long maxrss ;
3930 unsigned long cmaxrss ;
3931 struct task_io_accounting ioac ;
3932 unsigned long long sum_sched_runtime ;
3933 struct rlimit rlim[16] ;
3934 struct pacct_struct pacct ;
3935 struct taskstats *stats ;
3936 unsigned int audit_tty ;
3937 struct tty_audit_buf *tty_audit_buf ;
3938 struct rw_semaphore threadgroup_fork_lock ;
3939 int oom_adj ;
3940 int oom_score_adj ;
3941 int oom_score_adj_min ;
3942 struct mutex cred_guard_mutex ;
3943};
3944#line 687 "include/linux/sched.h"
3945struct user_struct {
3946 atomic_t __count ;
3947 atomic_t processes ;
3948 atomic_t files ;
3949 atomic_t sigpending ;
3950 atomic_t inotify_watches ;
3951 atomic_t inotify_devs ;
3952 atomic_t fanotify_listeners ;
3953 atomic_long_t epoll_watches ;
3954 unsigned long mq_bytes ;
3955 unsigned long locked_shm ;
3956 struct key *uid_keyring ;
3957 struct key *session_keyring ;
3958 struct hlist_node uidhash_node ;
3959 uid_t uid ;
3960 struct user_namespace *user_ns ;
3961 atomic_long_t locked_vm ;
3962};
3963#line 731
3964struct backing_dev_info;
3965#line 732
3966struct reclaim_state;
3967#line 732
3968struct reclaim_state;
3969#line 732
3970struct reclaim_state;
3971#line 732
3972struct reclaim_state;
3973#line 735 "include/linux/sched.h"
3974struct sched_info {
3975 unsigned long pcount ;
3976 unsigned long long run_delay ;
3977 unsigned long long last_arrival ;
3978 unsigned long long last_queued ;
3979};
3980#line 747 "include/linux/sched.h"
3981struct task_delay_info {
3982 spinlock_t lock ;
3983 unsigned int flags ;
3984 struct timespec blkio_start ;
3985 struct timespec blkio_end ;
3986 u64 blkio_delay ;
3987 u64 swapin_delay ;
3988 u32 blkio_count ;
3989 u32 swapin_count ;
3990 struct timespec freepages_start ;
3991 struct timespec freepages_end ;
3992 u64 freepages_delay ;
3993 u32 freepages_count ;
3994};
3995#line 1050
3996struct io_context;
3997#line 1050
3998struct io_context;
3999#line 1050
4000struct io_context;
4001#line 1050
4002struct io_context;
4003#line 1059
4004struct audit_context;
4005#line 1060
4006struct mempolicy;
4007#line 1061
4008struct pipe_inode_info;
4009#line 1064
4010struct rq;
4011#line 1064
4012struct rq;
4013#line 1064
4014struct rq;
4015#line 1064
4016struct rq;
4017#line 1084 "include/linux/sched.h"
4018struct sched_class {
4019 struct sched_class const *next ;
4020 void (*enqueue_task)(struct rq *rq , struct task_struct *p , int flags ) ;
4021 void (*dequeue_task)(struct rq *rq , struct task_struct *p , int flags ) ;
4022 void (*yield_task)(struct rq *rq ) ;
4023 bool (*yield_to_task)(struct rq *rq , struct task_struct *p , bool preempt ) ;
4024 void (*check_preempt_curr)(struct rq *rq , struct task_struct *p , int flags ) ;
4025 struct task_struct *(*pick_next_task)(struct rq *rq ) ;
4026 void (*put_prev_task)(struct rq *rq , struct task_struct *p ) ;
4027 int (*select_task_rq)(struct task_struct *p , int sd_flag , int flags ) ;
4028 void (*pre_schedule)(struct rq *this_rq , struct task_struct *task ) ;
4029 void (*post_schedule)(struct rq *this_rq ) ;
4030 void (*task_waking)(struct task_struct *task ) ;
4031 void (*task_woken)(struct rq *this_rq , struct task_struct *task ) ;
4032 void (*set_cpus_allowed)(struct task_struct *p , struct cpumask const *newmask ) ;
4033 void (*rq_online)(struct rq *rq ) ;
4034 void (*rq_offline)(struct rq *rq ) ;
4035 void (*set_curr_task)(struct rq *rq ) ;
4036 void (*task_tick)(struct rq *rq , struct task_struct *p , int queued ) ;
4037 void (*task_fork)(struct task_struct *p ) ;
4038 void (*switched_from)(struct rq *this_rq , struct task_struct *task ) ;
4039 void (*switched_to)(struct rq *this_rq , struct task_struct *task ) ;
4040 void (*prio_changed)(struct rq *this_rq , struct task_struct *task , int oldprio ) ;
4041 unsigned int (*get_rr_interval)(struct rq *rq , struct task_struct *task ) ;
4042 void (*task_move_group)(struct task_struct *p , int on_rq ) ;
4043};
4044#line 1129 "include/linux/sched.h"
4045struct load_weight {
4046 unsigned long weight ;
4047 unsigned long inv_weight ;
4048};
4049#line 1134 "include/linux/sched.h"
4050struct sched_statistics {
4051 u64 wait_start ;
4052 u64 wait_max ;
4053 u64 wait_count ;
4054 u64 wait_sum ;
4055 u64 iowait_count ;
4056 u64 iowait_sum ;
4057 u64 sleep_start ;
4058 u64 sleep_max ;
4059 s64 sum_sleep_runtime ;
4060 u64 block_start ;
4061 u64 block_max ;
4062 u64 exec_max ;
4063 u64 slice_max ;
4064 u64 nr_migrations_cold ;
4065 u64 nr_failed_migrations_affine ;
4066 u64 nr_failed_migrations_running ;
4067 u64 nr_failed_migrations_hot ;
4068 u64 nr_forced_migrations ;
4069 u64 nr_wakeups ;
4070 u64 nr_wakeups_sync ;
4071 u64 nr_wakeups_migrate ;
4072 u64 nr_wakeups_local ;
4073 u64 nr_wakeups_remote ;
4074 u64 nr_wakeups_affine ;
4075 u64 nr_wakeups_affine_attempts ;
4076 u64 nr_wakeups_passive ;
4077 u64 nr_wakeups_idle ;
4078};
4079#line 1169 "include/linux/sched.h"
4080struct sched_entity {
4081 struct load_weight load ;
4082 struct rb_node run_node ;
4083 struct list_head group_node ;
4084 unsigned int on_rq ;
4085 u64 exec_start ;
4086 u64 sum_exec_runtime ;
4087 u64 vruntime ;
4088 u64 prev_sum_exec_runtime ;
4089 u64 nr_migrations ;
4090 struct sched_statistics statistics ;
4091 struct sched_entity *parent ;
4092 struct cfs_rq *cfs_rq ;
4093 struct cfs_rq *my_q ;
4094};
4095#line 1195
4096struct rt_rq;
4097#line 1195
4098struct rt_rq;
4099#line 1195
4100struct rt_rq;
4101#line 1195 "include/linux/sched.h"
4102struct sched_rt_entity {
4103 struct list_head run_list ;
4104 unsigned long timeout ;
4105 unsigned int time_slice ;
4106 int nr_cpus_allowed ;
4107 struct sched_rt_entity *back ;
4108 struct sched_rt_entity *parent ;
4109 struct rt_rq *rt_rq ;
4110 struct rt_rq *my_q ;
4111};
4112#line 1220
4113struct css_set;
4114#line 1220
4115struct css_set;
4116#line 1220
4117struct css_set;
4118#line 1220
4119struct compat_robust_list_head;
4120#line 1220
4121struct compat_robust_list_head;
4122#line 1220
4123struct compat_robust_list_head;
4124#line 1220
4125struct ftrace_ret_stack;
4126#line 1220
4127struct ftrace_ret_stack;
4128#line 1220
4129struct ftrace_ret_stack;
4130#line 1220
4131struct mem_cgroup;
4132#line 1220
4133struct mem_cgroup;
4134#line 1220
4135struct mem_cgroup;
4136#line 1220 "include/linux/sched.h"
4137struct memcg_batch_info {
4138 int do_batch ;
4139 struct mem_cgroup *memcg ;
4140 unsigned long nr_pages ;
4141 unsigned long memsw_nr_pages ;
4142};
4143#line 1220 "include/linux/sched.h"
4144struct task_struct {
4145 long volatile state ;
4146 void *stack ;
4147 atomic_t usage ;
4148 unsigned int flags ;
4149 unsigned int ptrace ;
4150 struct task_struct *wake_entry ;
4151 int on_cpu ;
4152 int on_rq ;
4153 int prio ;
4154 int static_prio ;
4155 int normal_prio ;
4156 unsigned int rt_priority ;
4157 struct sched_class const *sched_class ;
4158 struct sched_entity se ;
4159 struct sched_rt_entity rt ;
4160 struct hlist_head preempt_notifiers ;
4161 unsigned char fpu_counter ;
4162 unsigned int btrace_seq ;
4163 unsigned int policy ;
4164 cpumask_t cpus_allowed ;
4165 struct sched_info sched_info ;
4166 struct list_head tasks ;
4167 struct plist_node pushable_tasks ;
4168 struct mm_struct *mm ;
4169 struct mm_struct *active_mm ;
4170 unsigned int brk_randomized : 1 ;
4171 int exit_state ;
4172 int exit_code ;
4173 int exit_signal ;
4174 int pdeath_signal ;
4175 unsigned int group_stop ;
4176 unsigned int personality ;
4177 unsigned int did_exec : 1 ;
4178 unsigned int in_execve : 1 ;
4179 unsigned int in_iowait : 1 ;
4180 unsigned int sched_reset_on_fork : 1 ;
4181 unsigned int sched_contributes_to_load : 1 ;
4182 pid_t pid ;
4183 pid_t tgid ;
4184 unsigned long stack_canary ;
4185 struct task_struct *real_parent ;
4186 struct task_struct *parent ;
4187 struct list_head children ;
4188 struct list_head sibling ;
4189 struct task_struct *group_leader ;
4190 struct list_head ptraced ;
4191 struct list_head ptrace_entry ;
4192 struct pid_link pids[3] ;
4193 struct list_head thread_group ;
4194 struct completion *vfork_done ;
4195 int *set_child_tid ;
4196 int *clear_child_tid ;
4197 cputime_t utime ;
4198 cputime_t stime ;
4199 cputime_t utimescaled ;
4200 cputime_t stimescaled ;
4201 cputime_t gtime ;
4202 cputime_t prev_utime ;
4203 cputime_t prev_stime ;
4204 unsigned long nvcsw ;
4205 unsigned long nivcsw ;
4206 struct timespec start_time ;
4207 struct timespec real_start_time ;
4208 unsigned long min_flt ;
4209 unsigned long maj_flt ;
4210 struct task_cputime cputime_expires ;
4211 struct list_head cpu_timers[3] ;
4212 struct cred const *real_cred ;
4213 struct cred const *cred ;
4214 struct cred *replacement_session_keyring ;
4215 char comm[16] ;
4216 int link_count ;
4217 int total_link_count ;
4218 struct sysv_sem sysvsem ;
4219 unsigned long last_switch_count ;
4220 struct thread_struct thread ;
4221 struct fs_struct *fs ;
4222 struct files_struct *files ;
4223 struct nsproxy *nsproxy ;
4224 struct signal_struct *signal ;
4225 struct sighand_struct *sighand ;
4226 sigset_t blocked ;
4227 sigset_t real_blocked ;
4228 sigset_t saved_sigmask ;
4229 struct sigpending pending ;
4230 unsigned long sas_ss_sp ;
4231 size_t sas_ss_size ;
4232 int (*notifier)(void *priv ) ;
4233 void *notifier_data ;
4234 sigset_t *notifier_mask ;
4235 struct audit_context *audit_context ;
4236 uid_t loginuid ;
4237 unsigned int sessionid ;
4238 seccomp_t seccomp ;
4239 u32 parent_exec_id ;
4240 u32 self_exec_id ;
4241 spinlock_t alloc_lock ;
4242 struct irqaction *irqaction ;
4243 raw_spinlock_t pi_lock ;
4244 struct plist_head pi_waiters ;
4245 struct rt_mutex_waiter *pi_blocked_on ;
4246 struct mutex_waiter *blocked_on ;
4247 unsigned int irq_events ;
4248 unsigned long hardirq_enable_ip ;
4249 unsigned long hardirq_disable_ip ;
4250 unsigned int hardirq_enable_event ;
4251 unsigned int hardirq_disable_event ;
4252 int hardirqs_enabled ;
4253 int hardirq_context ;
4254 unsigned long softirq_disable_ip ;
4255 unsigned long softirq_enable_ip ;
4256 unsigned int softirq_disable_event ;
4257 unsigned int softirq_enable_event ;
4258 int softirqs_enabled ;
4259 int softirq_context ;
4260 u64 curr_chain_key ;
4261 int lockdep_depth ;
4262 unsigned int lockdep_recursion ;
4263 struct held_lock held_locks[48UL] ;
4264 gfp_t lockdep_reclaim_gfp ;
4265 void *journal_info ;
4266 struct bio_list *bio_list ;
4267 struct blk_plug *plug ;
4268 struct reclaim_state *reclaim_state ;
4269 struct backing_dev_info *backing_dev_info ;
4270 struct io_context *io_context ;
4271 unsigned long ptrace_message ;
4272 siginfo_t *last_siginfo ;
4273 struct task_io_accounting ioac ;
4274 u64 acct_rss_mem1 ;
4275 u64 acct_vm_mem1 ;
4276 cputime_t acct_timexpd ;
4277 nodemask_t mems_allowed ;
4278 int mems_allowed_change_disable ;
4279 int cpuset_mem_spread_rotor ;
4280 int cpuset_slab_spread_rotor ;
4281 struct css_set *cgroups ;
4282 struct list_head cg_list ;
4283 struct robust_list_head *robust_list ;
4284 struct compat_robust_list_head *compat_robust_list ;
4285 struct list_head pi_state_list ;
4286 struct futex_pi_state *pi_state_cache ;
4287 struct perf_event_context *perf_event_ctxp[2] ;
4288 struct mutex perf_event_mutex ;
4289 struct list_head perf_event_list ;
4290 struct mempolicy *mempolicy ;
4291 short il_next ;
4292 short pref_node_fork ;
4293 atomic_t fs_excl ;
4294 struct rcu_head rcu ;
4295 struct pipe_inode_info *splice_pipe ;
4296 struct task_delay_info *delays ;
4297 int make_it_fail ;
4298 struct prop_local_single dirties ;
4299 int latency_record_count ;
4300 struct latency_record latency_record[32] ;
4301 unsigned long timer_slack_ns ;
4302 unsigned long default_timer_slack_ns ;
4303 struct list_head *scm_work_list ;
4304 int curr_ret_stack ;
4305 struct ftrace_ret_stack *ret_stack ;
4306 unsigned long long ftrace_timestamp ;
4307 atomic_t trace_overrun ;
4308 atomic_t tracing_graph_pause ;
4309 unsigned long trace ;
4310 unsigned long trace_recursion ;
4311 struct memcg_batch_info memcg_batch ;
4312 atomic_t ptrace_bp_refcnt ;
4313};
4314#line 1634
4315struct pid_namespace;
4316#line 25 "include/linux/usb.h"
4317struct usb_device;
4318#line 25
4319struct usb_device;
4320#line 25
4321struct usb_device;
4322#line 25
4323struct usb_device;
4324#line 26
4325struct usb_driver;
4326#line 26
4327struct usb_driver;
4328#line 26
4329struct usb_driver;
4330#line 26
4331struct usb_driver;
4332#line 27
4333struct wusb_dev;
4334#line 27
4335struct wusb_dev;
4336#line 27
4337struct wusb_dev;
4338#line 27
4339struct wusb_dev;
4340#line 47
4341struct ep_device;
4342#line 47
4343struct ep_device;
4344#line 47
4345struct ep_device;
4346#line 47
4347struct ep_device;
4348#line 64 "include/linux/usb.h"
4349struct usb_host_endpoint {
4350 struct usb_endpoint_descriptor desc ;
4351 struct usb_ss_ep_comp_descriptor ss_ep_comp ;
4352 struct list_head urb_list ;
4353 void *hcpriv ;
4354 struct ep_device *ep_dev ;
4355 unsigned char *extra ;
4356 int extralen ;
4357 int enabled ;
4358};
4359#line 77 "include/linux/usb.h"
4360struct usb_host_interface {
4361 struct usb_interface_descriptor desc ;
4362 struct usb_host_endpoint *endpoint ;
4363 char *string ;
4364 unsigned char *extra ;
4365 int extralen ;
4366};
4367#line 90
4368enum usb_interface_condition {
4369 USB_INTERFACE_UNBOUND = 0,
4370 USB_INTERFACE_BINDING = 1,
4371 USB_INTERFACE_BOUND = 2,
4372 USB_INTERFACE_UNBINDING = 3
4373} ;
4374#line 159 "include/linux/usb.h"
4375struct usb_interface {
4376 struct usb_host_interface *altsetting ;
4377 struct usb_host_interface *cur_altsetting ;
4378 unsigned int num_altsetting ;
4379 struct usb_interface_assoc_descriptor *intf_assoc ;
4380 int minor ;
4381 enum usb_interface_condition condition ;
4382 unsigned int sysfs_files_created : 1 ;
4383 unsigned int ep_devs_created : 1 ;
4384 unsigned int unregistering : 1 ;
4385 unsigned int needs_remote_wakeup : 1 ;
4386 unsigned int needs_altsetting0 : 1 ;
4387 unsigned int needs_binding : 1 ;
4388 unsigned int reset_running : 1 ;
4389 unsigned int resetting_device : 1 ;
4390 struct device dev ;
4391 struct device *usb_dev ;
4392 atomic_t pm_usage_cnt ;
4393 struct work_struct reset_ws ;
4394};
4395#line 222 "include/linux/usb.h"
4396struct usb_interface_cache {
4397 unsigned int num_altsetting ;
4398 struct kref ref ;
4399 struct usb_host_interface altsetting[0] ;
4400};
4401#line 274 "include/linux/usb.h"
4402struct usb_host_config {
4403 struct usb_config_descriptor desc ;
4404 char *string ;
4405 struct usb_interface_assoc_descriptor *intf_assoc[16] ;
4406 struct usb_interface *interface[32] ;
4407 struct usb_interface_cache *intf_cache[32] ;
4408 unsigned char *extra ;
4409 int extralen ;
4410};
4411#line 305 "include/linux/usb.h"
4412struct usb_devmap {
4413 unsigned long devicemap[128UL / (8UL * sizeof(unsigned long ))] ;
4414};
4415#line 312
4416struct mon_bus;
4417#line 312
4418struct mon_bus;
4419#line 312
4420struct mon_bus;
4421#line 312 "include/linux/usb.h"
4422struct usb_bus {
4423 struct device *controller ;
4424 int busnum ;
4425 char const *bus_name ;
4426 u8 uses_dma ;
4427 u8 uses_pio_for_control ;
4428 u8 otg_port ;
4429 unsigned int is_b_host : 1 ;
4430 unsigned int b_hnp_enable : 1 ;
4431 unsigned int sg_tablesize ;
4432 int devnum_next ;
4433 struct usb_devmap devmap ;
4434 struct usb_device *root_hub ;
4435 struct usb_bus *hs_companion ;
4436 struct list_head bus_list ;
4437 int bandwidth_allocated ;
4438 int bandwidth_int_reqs ;
4439 int bandwidth_isoc_reqs ;
4440 struct dentry *usbfs_dentry ;
4441 struct mon_bus *mon_bus ;
4442 int monitored ;
4443};
4444#line 367
4445struct usb_tt;
4446#line 367
4447struct usb_tt;
4448#line 367
4449struct usb_tt;
4450#line 367
4451struct usb_tt;
4452#line 426 "include/linux/usb.h"
4453struct usb_device {
4454 int devnum ;
4455 char devpath[16] ;
4456 u32 route ;
4457 enum usb_device_state state ;
4458 enum usb_device_speed speed ;
4459 struct usb_tt *tt ;
4460 int ttport ;
4461 unsigned int toggle[2] ;
4462 struct usb_device *parent ;
4463 struct usb_bus *bus ;
4464 struct usb_host_endpoint ep0 ;
4465 struct device dev ;
4466 struct usb_device_descriptor descriptor ;
4467 struct usb_host_config *config ;
4468 struct usb_host_config *actconfig ;
4469 struct usb_host_endpoint *ep_in[16] ;
4470 struct usb_host_endpoint *ep_out[16] ;
4471 char **rawdescriptors ;
4472 unsigned short bus_mA ;
4473 u8 portnum ;
4474 u8 level ;
4475 unsigned int can_submit : 1 ;
4476 unsigned int persist_enabled : 1 ;
4477 unsigned int have_langid : 1 ;
4478 unsigned int authorized : 1 ;
4479 unsigned int authenticated : 1 ;
4480 unsigned int wusb : 1 ;
4481 int string_langid ;
4482 char *product ;
4483 char *manufacturer ;
4484 char *serial ;
4485 struct list_head filelist ;
4486 struct device *usb_classdev ;
4487 struct dentry *usbfs_dentry ;
4488 int maxchild ;
4489 struct usb_device *children[31] ;
4490 u32 quirks ;
4491 atomic_t urbnum ;
4492 unsigned long active_duration ;
4493 unsigned long connect_time ;
4494 unsigned int do_remote_wakeup : 1 ;
4495 unsigned int reset_resume : 1 ;
4496 struct wusb_dev *wusb_dev ;
4497 int slot_id ;
4498};
4499#line 763 "include/linux/usb.h"
4500struct usb_dynids {
4501 spinlock_t lock ;
4502 struct list_head list ;
4503};
4504#line 782 "include/linux/usb.h"
4505struct usbdrv_wrap {
4506 struct device_driver driver ;
4507 int for_devices ;
4508};
4509#line 843 "include/linux/usb.h"
4510struct usb_driver {
4511 char const *name ;
4512 int (*probe)(struct usb_interface *intf , struct usb_device_id const *id ) ;
4513 void (*disconnect)(struct usb_interface *intf ) ;
4514 int (*unlocked_ioctl)(struct usb_interface *intf , unsigned int code , void *buf ) ;
4515 int (*suspend)(struct usb_interface *intf , pm_message_t message ) ;
4516 int (*resume)(struct usb_interface *intf ) ;
4517 int (*reset_resume)(struct usb_interface *intf ) ;
4518 int (*pre_reset)(struct usb_interface *intf ) ;
4519 int (*post_reset)(struct usb_interface *intf ) ;
4520 struct usb_device_id const *id_table ;
4521 struct usb_dynids dynids ;
4522 struct usbdrv_wrap drvwrap ;
4523 unsigned int no_dynamic_id : 1 ;
4524 unsigned int supports_autosuspend : 1 ;
4525 unsigned int soft_unbind : 1 ;
4526};
4527#line 983 "include/linux/usb.h"
4528struct usb_iso_packet_descriptor {
4529 unsigned int offset ;
4530 unsigned int length ;
4531 unsigned int actual_length ;
4532 int status ;
4533};
4534#line 990
4535struct urb;
4536#line 990
4537struct urb;
4538#line 990
4539struct urb;
4540#line 990
4541struct urb;
4542#line 992 "include/linux/usb.h"
4543struct usb_anchor {
4544 struct list_head urb_list ;
4545 wait_queue_head_t wait ;
4546 spinlock_t lock ;
4547 unsigned int poisoned : 1 ;
4548};
4549#line 1183
4550struct scatterlist;
4551#line 1183
4552struct scatterlist;
4553#line 1183
4554struct scatterlist;
4555#line 1183 "include/linux/usb.h"
4556struct urb {
4557 struct kref kref ;
4558 void *hcpriv ;
4559 atomic_t use_count ;
4560 atomic_t reject ;
4561 int unlinked ;
4562 struct list_head urb_list ;
4563 struct list_head anchor_list ;
4564 struct usb_anchor *anchor ;
4565 struct usb_device *dev ;
4566 struct usb_host_endpoint *ep ;
4567 unsigned int pipe ;
4568 unsigned int stream_id ;
4569 int status ;
4570 unsigned int transfer_flags ;
4571 void *transfer_buffer ;
4572 dma_addr_t transfer_dma ;
4573 struct scatterlist *sg ;
4574 int num_sgs ;
4575 u32 transfer_buffer_length ;
4576 u32 actual_length ;
4577 unsigned char *setup_packet ;
4578 dma_addr_t setup_dma ;
4579 int start_frame ;
4580 int number_of_packets ;
4581 int interval ;
4582 int error_count ;
4583 void *context ;
4584 void (*complete)(struct urb * ) ;
4585 struct usb_iso_packet_descriptor iso_frame_desc[0] ;
4586};
4587#line 1388
4588struct scatterlist;
4589#line 35 "include/linux/serial.h"
4590struct serial_struct {
4591 int type ;
4592 int line ;
4593 unsigned int port ;
4594 int irq ;
4595 int flags ;
4596 int xmit_fifo_size ;
4597 int custom_divisor ;
4598 int baud_base ;
4599 unsigned short close_delay ;
4600 char io_type ;
4601 char reserved_char[1] ;
4602 int hub6 ;
4603 unsigned short closing_wait ;
4604 unsigned short closing_wait2 ;
4605 unsigned char *iomem_base ;
4606 unsigned short iomem_reg_shift ;
4607 unsigned int port_high ;
4608 unsigned long iomap_base ;
4609};
4610#line 193 "include/linux/serial.h"
4611struct serial_icounter_struct {
4612 int cts ;
4613 int dsr ;
4614 int rng ;
4615 int dcd ;
4616 int rx ;
4617 int tx ;
4618 int frame ;
4619 int overrun ;
4620 int parity ;
4621 int brk ;
4622 int buf_overrun ;
4623 int reserved[9] ;
4624};
4625#line 6 "include/asm-generic/scatterlist.h"
4626struct scatterlist {
4627 unsigned long sg_magic ;
4628 unsigned long page_link ;
4629 unsigned int offset ;
4630 unsigned int length ;
4631 dma_addr_t dma_address ;
4632 unsigned int dma_length ;
4633};
4634#line 19 "include/linux/mm.h"
4635struct mempolicy;
4636#line 20
4637struct anon_vma;
4638#line 21
4639struct file_ra_state;
4640#line 22
4641struct user_struct;
4642#line 23
4643struct writeback_control;
4644#line 41 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_64.h"
4645struct mm_struct;
4646#line 656 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable.h"
4647struct vm_area_struct;
4648#line 185 "include/linux/mm.h"
4649struct vm_fault {
4650 unsigned int flags ;
4651 unsigned long pgoff ;
4652 void *virtual_address ;
4653 struct page *page ;
4654};
4655#line 202 "include/linux/mm.h"
4656struct vm_operations_struct {
4657 void (*open)(struct vm_area_struct *area ) ;
4658 void (*close)(struct vm_area_struct *area ) ;
4659 int (*fault)(struct vm_area_struct *vma , struct vm_fault *vmf ) ;
4660 int (*page_mkwrite)(struct vm_area_struct *vma , struct vm_fault *vmf ) ;
4661 int (*access)(struct vm_area_struct *vma , unsigned long addr , void *buf , int len ,
4662 int write ) ;
4663 int (*set_policy)(struct vm_area_struct *vma , struct mempolicy *new ) ;
4664 struct mempolicy *(*get_policy)(struct vm_area_struct *vma , unsigned long addr ) ;
4665 int (*migrate)(struct vm_area_struct *vma , nodemask_t const *from , nodemask_t const *to ,
4666 unsigned long flags ) ;
4667};
4668#line 244
4669struct inode;
4670#line 197 "include/linux/page-flags.h"
4671struct page;
4672#line 58 "include/linux/kfifo.h"
4673struct __kfifo {
4674 unsigned int in ;
4675 unsigned int out ;
4676 unsigned int mask ;
4677 unsigned int esize ;
4678 void *data ;
4679};
4680#line 96 "include/linux/kfifo.h"
4681union __anonunion____missing_field_name_247 {
4682 struct __kfifo kfifo ;
4683 unsigned char *type ;
4684 char (*rectype)[0] ;
4685 void *ptr ;
4686 void const *ptr_const ;
4687};
4688#line 96 "include/linux/kfifo.h"
4689struct kfifo {
4690 union __anonunion____missing_field_name_247 __annonCompField41 ;
4691 unsigned char buf[0] ;
4692};
4693#line 31 "include/linux/usb/serial.h"
4694enum port_dev_state {
4695 PORT_UNREGISTERED = 0,
4696 PORT_REGISTERING = 1,
4697 PORT_REGISTERED = 2,
4698 PORT_UNREGISTERING = 3
4699} ;
4700#line 82
4701struct usb_serial;
4702#line 82
4703struct usb_serial;
4704#line 82
4705struct usb_serial;
4706#line 82 "include/linux/usb/serial.h"
4707struct usb_serial_port {
4708 struct usb_serial *serial ;
4709 struct tty_port port ;
4710 spinlock_t lock ;
4711 unsigned char number ;
4712 unsigned char *interrupt_in_buffer ;
4713 struct urb *interrupt_in_urb ;
4714 __u8 interrupt_in_endpointAddress ;
4715 unsigned char *interrupt_out_buffer ;
4716 int interrupt_out_size ;
4717 struct urb *interrupt_out_urb ;
4718 __u8 interrupt_out_endpointAddress ;
4719 unsigned char *bulk_in_buffer ;
4720 int bulk_in_size ;
4721 struct urb *read_urb ;
4722 __u8 bulk_in_endpointAddress ;
4723 unsigned char *bulk_out_buffer ;
4724 int bulk_out_size ;
4725 struct urb *write_urb ;
4726 struct kfifo write_fifo ;
4727 int write_urb_busy ;
4728 unsigned char *bulk_out_buffers[2] ;
4729 struct urb *write_urbs[2] ;
4730 unsigned long write_urbs_free ;
4731 __u8 bulk_out_endpointAddress ;
4732 int tx_bytes ;
4733 unsigned long flags ;
4734 wait_queue_head_t write_wait ;
4735 struct work_struct work ;
4736 char throttled ;
4737 char throttle_req ;
4738 unsigned long sysrq ;
4739 struct device dev ;
4740 enum port_dev_state dev_state ;
4741};
4742#line 155
4743struct usb_serial_driver;
4744#line 155
4745struct usb_serial_driver;
4746#line 155
4747struct usb_serial_driver;
4748#line 155 "include/linux/usb/serial.h"
4749struct usb_serial {
4750 struct usb_device *dev ;
4751 struct usb_serial_driver *type ;
4752 struct usb_interface *interface ;
4753 unsigned char disconnected : 1 ;
4754 unsigned char suspending : 1 ;
4755 unsigned char attached : 1 ;
4756 unsigned char minor ;
4757 unsigned char num_ports ;
4758 unsigned char num_port_pointers ;
4759 char num_interrupt_in ;
4760 char num_interrupt_out ;
4761 char num_bulk_in ;
4762 char num_bulk_out ;
4763 struct usb_serial_port *port[8] ;
4764 struct kref kref ;
4765 struct mutex disc_mutex ;
4766 void *private ;
4767};
4768#line 230 "include/linux/usb/serial.h"
4769struct usb_serial_driver {
4770 char const *description ;
4771 struct usb_device_id const *id_table ;
4772 char num_ports ;
4773 struct list_head driver_list ;
4774 struct device_driver driver ;
4775 struct usb_driver *usb_driver ;
4776 struct usb_dynids dynids ;
4777 size_t bulk_in_size ;
4778 size_t bulk_out_size ;
4779 int (*probe)(struct usb_serial *serial , struct usb_device_id const *id ) ;
4780 int (*attach)(struct usb_serial *serial ) ;
4781 int (*calc_num_ports)(struct usb_serial *serial ) ;
4782 void (*disconnect)(struct usb_serial *serial ) ;
4783 void (*release)(struct usb_serial *serial ) ;
4784 int (*port_probe)(struct usb_serial_port *port ) ;
4785 int (*port_remove)(struct usb_serial_port *port ) ;
4786 int (*suspend)(struct usb_serial *serial , pm_message_t message ) ;
4787 int (*resume)(struct usb_serial *serial ) ;
4788 int (*open)(struct tty_struct *tty , struct usb_serial_port *port ) ;
4789 void (*close)(struct usb_serial_port *port ) ;
4790 int (*write)(struct tty_struct *tty , struct usb_serial_port *port , unsigned char const *buf ,
4791 int count ) ;
4792 int (*write_room)(struct tty_struct *tty ) ;
4793 int (*ioctl)(struct tty_struct *tty , unsigned int cmd , unsigned long arg ) ;
4794 void (*set_termios)(struct tty_struct *tty , struct usb_serial_port *port , struct ktermios *old ) ;
4795 void (*break_ctl)(struct tty_struct *tty , int break_state ) ;
4796 int (*chars_in_buffer)(struct tty_struct *tty ) ;
4797 void (*throttle)(struct tty_struct *tty ) ;
4798 void (*unthrottle)(struct tty_struct *tty ) ;
4799 int (*tiocmget)(struct tty_struct *tty ) ;
4800 int (*tiocmset)(struct tty_struct *tty , unsigned int set , unsigned int clear ) ;
4801 int (*get_icount)(struct tty_struct *tty , struct serial_icounter_struct *icount ) ;
4802 void (*dtr_rts)(struct usb_serial_port *port , int on ) ;
4803 int (*carrier_raised)(struct usb_serial_port *port ) ;
4804 void (*init_termios)(struct tty_struct *tty ) ;
4805 void (*read_int_callback)(struct urb *urb ) ;
4806 void (*write_int_callback)(struct urb *urb ) ;
4807 void (*read_bulk_callback)(struct urb *urb ) ;
4808 void (*write_bulk_callback)(struct urb *urb ) ;
4809 void (*process_read_urb)(struct urb *urb ) ;
4810 int (*prepare_write_buffer)(struct usb_serial_port *port , void *dest , size_t size ) ;
4811};
4812#line 12 "include/linux/firmware.h"
4813struct firmware {
4814 size_t size ;
4815 u8 const *data ;
4816 struct page **pages ;
4817};
4818#line 18
4819struct device;
4820#line 17 "include/linux/ihex.h"
4821struct ihex_binrec {
4822 __be32 addr ;
4823 __be16 len ;
4824 uint8_t data[0] ;
4825} __attribute__((__packed__)) ;
4826#line 59 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
4827struct whiteheat_simple {
4828 __u8 port ;
4829};
4830#line 92 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
4831struct whiteheat_port_settings {
4832 __u8 port ;
4833 __u32 baud ;
4834 __u8 bits ;
4835 __u8 stop ;
4836 __u8 parity ;
4837 __u8 sflow ;
4838 __u8 xoff ;
4839 __u8 xon ;
4840 __u8 hflow ;
4841 __u8 lloop ;
4842} __attribute__((__packed__)) ;
4843#line 119 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
4844struct whiteheat_set_rdb {
4845 __u8 port ;
4846 __u8 state ;
4847};
4848#line 161 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
4849struct whiteheat_purge {
4850 __u8 port ;
4851 __u8 what ;
4852};
4853#line 242 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
4854struct whiteheat_dr_info {
4855 __u8 mcr ;
4856};
4857#line 250 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
4858struct whiteheat_hw_eeprom_info {
4859 __u8 b0 ;
4860 __u8 vendor_id_low ;
4861 __u8 vendor_id_high ;
4862 __u8 product_id_low ;
4863 __u8 product_id_high ;
4864 __u8 device_id_low ;
4865 __u8 device_id_high ;
4866 __u8 not_used_1 ;
4867 __u8 serial_number_0 ;
4868 __u8 serial_number_1 ;
4869 __u8 serial_number_2 ;
4870 __u8 serial_number_3 ;
4871 __u8 not_used_2 ;
4872 __u8 not_used_3 ;
4873 __u8 checksum_low ;
4874 __u8 checksum_high ;
4875};
4876#line 250 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/serial/whiteheat.h"
4877struct whiteheat_hw_info {
4878 __u8 hw_id ;
4879 __u8 sw_major_rev ;
4880 __u8 sw_minor_rev ;
4881 struct whiteheat_hw_eeprom_info hw_eeprom_info ;
4882};
4883#line 211 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
4884struct whiteheat_command_private {
4885 struct mutex mutex ;
4886 __u8 port_running ;
4887 __u8 command_finished ;
4888 wait_queue_head_t wait_command ;
4889 __u8 result_buffer[64] ;
4890};
4891#line 227 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
4892struct whiteheat_urb_wrap {
4893 struct list_head list ;
4894 struct urb *urb ;
4895};
4896#line 232 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
4897struct whiteheat_private {
4898 spinlock_t lock ;
4899 __u8 flags ;
4900 __u8 mcr ;
4901 struct list_head rx_urbs_free ;
4902 struct list_head rx_urbs_submitted ;
4903 struct list_head rx_urb_q ;
4904 struct work_struct rx_work ;
4905 struct usb_serial_port *port ;
4906 struct list_head tx_urbs_free ;
4907 struct list_head tx_urbs_submitted ;
4908 struct mutex deathwarrant ;
4909};
4910#line 1 "<compiler builtins>"
4911void *__builtin_memcpy(void * , void const * , unsigned long ) ;
4912#line 7 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/swab.h"
4913__inline static __u32 __arch_swab32(__u32 val ) __attribute__((__const__)) ;
4914#line 7
4915__inline static __u32 __arch_swab32(__u32 val ) __attribute__((__const__)) ;
4916#line 7 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/swab.h"
4917__inline static __u32 __arch_swab32(__u32 val )
4918{
4919
4920 {
4921#line 21
4922 __asm__ ("bswapl %0": "=r" (val): "0" (val));
4923#line 25
4924 return (val);
4925}
4926}
4927#line 46 "include/linux/swab.h"
4928__inline static __u16 __fswab16(__u16 val ) __attribute__((__const__)) ;
4929#line 46
4930__inline static __u16 __fswab16(__u16 val ) __attribute__((__const__)) ;
4931#line 46 "include/linux/swab.h"
4932__inline static __u16 __fswab16(__u16 val )
4933{ int __cil_tmp2 ;
4934 int __cil_tmp3 ;
4935 int __cil_tmp4 ;
4936 int __cil_tmp5 ;
4937 int __cil_tmp6 ;
4938 int __cil_tmp7 ;
4939 int __cil_tmp8 ;
4940
4941 {
4942 {
4943#line 51
4944 __cil_tmp2 = (int )val;
4945#line 51
4946 __cil_tmp3 = __cil_tmp2 & 65280;
4947#line 51
4948 __cil_tmp4 = __cil_tmp3 >> 8;
4949#line 51
4950 __cil_tmp5 = (int )val;
4951#line 51
4952 __cil_tmp6 = __cil_tmp5 & 255;
4953#line 51
4954 __cil_tmp7 = __cil_tmp6 << 8;
4955#line 51
4956 __cil_tmp8 = __cil_tmp7 | __cil_tmp4;
4957#line 51
4958 return ((__u16 )__cil_tmp8);
4959 }
4960}
4961}
4962#line 55
4963__inline static __u32 __fswab32(__u32 val ) __attribute__((__const__)) ;
4964#line 55
4965__inline static __u32 __fswab32(__u32 val ) __attribute__((__const__)) ;
4966#line 55 "include/linux/swab.h"
4967__inline static __u32 __fswab32(__u32 val )
4968{ __u32 tmp ;
4969
4970 {
4971 {
4972#line 58
4973 tmp = __arch_swab32(val);
4974 }
4975#line 58
4976 return (tmp);
4977}
4978}
4979#line 100 "include/linux/printk.h"
4980extern int printk(char const *fmt , ...) ;
4981#line 170 "include/linux/kernel.h"
4982extern void might_fault(void) ;
4983#line 88 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/percpu.h"
4984extern void __bad_percpu_size(void) ;
4985#line 10 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
4986extern struct task_struct *current_task __attribute__((__section__(".data..percpu"))) ;
4987#line 12 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
4988__inline static struct task_struct *( __attribute__((__always_inline__)) get_current)(void)
4989{ struct task_struct *pfo_ret__ ;
4990 int __cil_tmp2 ;
4991 int __cil_tmp3 ;
4992 int __cil_tmp4 ;
4993 int __cil_tmp5 ;
4994
4995 {
4996 {
4997#line 14
4998 __cil_tmp2 = (int )8UL;
4999#line 14
5000 if (__cil_tmp2 == 1) {
5001#line 14
5002 goto case_1;
5003 } else {
5004 {
5005#line 14
5006 __cil_tmp3 = (int )8UL;
5007#line 14
5008 if (__cil_tmp3 == 2) {
5009#line 14
5010 goto case_2;
5011 } else {
5012 {
5013#line 14
5014 __cil_tmp4 = (int )8UL;
5015#line 14
5016 if (__cil_tmp4 == 4) {
5017#line 14
5018 goto case_4;
5019 } else {
5020 {
5021#line 14
5022 __cil_tmp5 = (int )8UL;
5023#line 14
5024 if (__cil_tmp5 == 8) {
5025#line 14
5026 goto case_8;
5027 } else {
5028#line 14
5029 goto switch_default;
5030#line 14
5031 if (0) {
5032 case_1:
5033#line 14
5034
5035
5036
5037
5038
5039
5040
5041
5042#line 14
5043 goto switch_break;
5044 case_2:
5045#line 14
5046 __asm__ ("mov"
5047 "w "
5048 "%%"
5049 "gs"
5050 ":"
5051 "%P"
5052 "1"
5053 ",%0": "=r" (pfo_ret__): "p" (& current_task));
5054#line 14
5055 goto switch_break;
5056 case_4:
5057#line 14
5058
5059
5060
5061
5062
5063
5064
5065
5066#line 14
5067 goto switch_break;
5068 case_8:
5069#line 14
5070 __asm__ ("mov"
5071 "q "
5072 "%%"
5073 "gs"
5074 ":"
5075 "%P"
5076 "1"
5077 ",%0": "=r" (pfo_ret__): "p" (& current_task));
5078#line 14
5079 goto switch_break;
5080 switch_default:
5081 {
5082#line 14
5083 __bad_percpu_size();
5084 }
5085 } else {
5086 switch_break: ;
5087 }
5088 }
5089 }
5090 }
5091 }
5092 }
5093 }
5094 }
5095 }
5096#line 14
5097 return (pfo_ret__);
5098}
5099}
5100#line 34 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/string_64.h"
5101extern void *__memcpy(void *to , void const *from , size_t len ) ;
5102#line 55
5103extern void *memset(void *s , int c , size_t n ) ;
5104#line 24 "include/linux/list.h"
5105__inline static void INIT_LIST_HEAD(struct list_head *list )
5106{
5107
5108 {
5109#line 26
5110 list->next = list;
5111#line 27
5112 list->prev = list;
5113#line 28
5114 return;
5115}
5116}
5117#line 47
5118extern void __list_add(struct list_head *new , struct list_head *prev , struct list_head *next ) ;
5119#line 60 "include/linux/list.h"
5120__inline static void list_add(struct list_head *new , struct list_head *head )
5121{ struct list_head *__cil_tmp3 ;
5122
5123 {
5124 {
5125#line 62
5126 __cil_tmp3 = head->next;
5127#line 62
5128 __list_add(new, head, __cil_tmp3);
5129 }
5130#line 63
5131 return;
5132}
5133}
5134#line 74 "include/linux/list.h"
5135__inline static void list_add_tail(struct list_head *new , struct list_head *head )
5136{ struct list_head *__cil_tmp3 ;
5137
5138 {
5139 {
5140#line 76
5141 __cil_tmp3 = head->prev;
5142#line 76
5143 __list_add(new, __cil_tmp3, head);
5144 }
5145#line 77
5146 return;
5147}
5148}
5149#line 111
5150extern void __list_del_entry(struct list_head *entry ) ;
5151#line 112
5152extern void list_del(struct list_head *entry ) ;
5153#line 153 "include/linux/list.h"
5154__inline static void list_move(struct list_head *list , struct list_head *head )
5155{
5156
5157 {
5158 {
5159#line 155
5160 __list_del_entry(list);
5161#line 156
5162 list_add(list, head);
5163 }
5164#line 157
5165 return;
5166}
5167}
5168#line 186 "include/linux/list.h"
5169__inline static int list_empty(struct list_head const *head )
5170{ unsigned long __cil_tmp2 ;
5171 struct list_head *__cil_tmp3 ;
5172 unsigned long __cil_tmp4 ;
5173
5174 {
5175 {
5176#line 188
5177 __cil_tmp2 = (unsigned long )head;
5178#line 188
5179 __cil_tmp3 = head->next;
5180#line 188
5181 __cil_tmp4 = (unsigned long )__cil_tmp3;
5182#line 188
5183 return (__cil_tmp4 == __cil_tmp2);
5184 }
5185}
5186}
5187#line 261 "include/linux/lockdep.h"
5188extern void lockdep_init_map(struct lockdep_map *lock , char const *name , struct lock_class_key *key ,
5189 int subclass ) ;
5190#line 93 "include/linux/spinlock.h"
5191extern void __raw_spin_lock_init(raw_spinlock_t *lock , char const *name , struct lock_class_key *key ) ;
5192#line 22 "include/linux/spinlock_api_smp.h"
5193extern void _raw_spin_lock(raw_spinlock_t *lock ) __attribute__((__section__(".spinlock.text"))) ;
5194#line 29
5195extern void _raw_spin_lock_irq(raw_spinlock_t *lock ) __attribute__((__section__(".spinlock.text"))) ;
5196#line 32
5197extern unsigned long _raw_spin_lock_irqsave(raw_spinlock_t *lock ) __attribute__((__section__(".spinlock.text"))) ;
5198#line 39
5199extern void _raw_spin_unlock(raw_spinlock_t *lock ) __attribute__((__section__(".spinlock.text"))) ;
5200#line 41
5201extern void _raw_spin_unlock_irq(raw_spinlock_t *lock ) __attribute__((__section__(".spinlock.text"))) ;
5202#line 42
5203extern void _raw_spin_unlock_irqrestore(raw_spinlock_t *lock , unsigned long flags ) __attribute__((__section__(".spinlock.text"))) ;
5204#line 272 "include/linux/spinlock.h"
5205__inline static raw_spinlock_t *spinlock_check(spinlock_t *lock )
5206{
5207
5208 {
5209#line 274
5210 return (& lock->__annonCompField18.rlock);
5211}
5212}
5213#line 283 "include/linux/spinlock.h"
5214__inline static void spin_lock(spinlock_t *lock )
5215{ struct raw_spinlock *__cil_tmp2 ;
5216
5217 {
5218 {
5219#line 285
5220 __cil_tmp2 = & lock->__annonCompField18.rlock;
5221#line 285
5222 _raw_spin_lock(__cil_tmp2);
5223 }
5224#line 286
5225 return;
5226}
5227}
5228#line 308 "include/linux/spinlock.h"
5229__inline static void spin_lock_irq(spinlock_t *lock )
5230{ struct raw_spinlock *__cil_tmp2 ;
5231
5232 {
5233 {
5234#line 310
5235 __cil_tmp2 = & lock->__annonCompField18.rlock;
5236#line 310
5237 _raw_spin_lock_irq(__cil_tmp2);
5238 }
5239#line 311
5240 return;
5241}
5242}
5243#line 323 "include/linux/spinlock.h"
5244__inline static void spin_unlock(spinlock_t *lock )
5245{ struct raw_spinlock *__cil_tmp2 ;
5246
5247 {
5248 {
5249#line 325
5250 __cil_tmp2 = & lock->__annonCompField18.rlock;
5251#line 325
5252 _raw_spin_unlock(__cil_tmp2);
5253 }
5254#line 326
5255 return;
5256}
5257}
5258#line 333 "include/linux/spinlock.h"
5259__inline static void spin_unlock_irq(spinlock_t *lock )
5260{ struct raw_spinlock *__cil_tmp2 ;
5261
5262 {
5263 {
5264#line 335
5265 __cil_tmp2 = & lock->__annonCompField18.rlock;
5266#line 335
5267 _raw_spin_unlock_irq(__cil_tmp2);
5268 }
5269#line 336
5270 return;
5271}
5272}
5273#line 338 "include/linux/spinlock.h"
5274__inline static void spin_unlock_irqrestore(spinlock_t *lock , unsigned long flags )
5275{ struct raw_spinlock *__cil_tmp3 ;
5276
5277 {
5278 {
5279#line 340
5280 while (1) {
5281 while_continue: ;
5282 {
5283#line 340
5284 __cil_tmp3 = & lock->__annonCompField18.rlock;
5285#line 340
5286 _raw_spin_unlock_irqrestore(__cil_tmp3, flags);
5287 }
5288#line 340
5289 goto while_break;
5290 }
5291 while_break___0: ;
5292 }
5293
5294 while_break: ;
5295#line 341
5296 return;
5297}
5298}
5299#line 80 "include/linux/wait.h"
5300extern void __init_waitqueue_head(wait_queue_head_t *q , struct lock_class_key * ) ;
5301#line 156
5302extern void __wake_up(wait_queue_head_t *q , unsigned int mode , int nr , void *key ) ;
5303#line 584
5304extern void prepare_to_wait(wait_queue_head_t *q , wait_queue_t *wait , int state ) ;
5305#line 586
5306extern void finish_wait(wait_queue_head_t *q , wait_queue_t *wait ) ;
5307#line 589
5308extern int autoremove_wake_function(wait_queue_t *wait , unsigned int mode , int sync ,
5309 void *key ) ;
5310#line 115 "include/linux/mutex.h"
5311extern void __mutex_init(struct mutex *lock , char const *name , struct lock_class_key *key ) ;
5312#line 134
5313extern void mutex_lock_nested(struct mutex *lock , unsigned int subclass ) ;
5314#line 169
5315extern void mutex_unlock(struct mutex *lock ) ;
5316#line 156 "include/linux/workqueue.h"
5317extern void __init_work(struct work_struct *work , int onstack ) ;
5318#line 360
5319extern int schedule_work(struct work_struct *work ) ;
5320#line 141 "include/linux/slab.h"
5321extern void kfree(void const * ) ;
5322#line 221 "include/linux/slub_def.h"
5323extern void *__kmalloc(size_t size , gfp_t flags ) ;
5324#line 255 "include/linux/slub_def.h"
5325__inline static void *( __attribute__((__always_inline__)) kmalloc)(size_t size ,
5326 gfp_t flags )
5327{ void *tmp___2 ;
5328
5329 {
5330 {
5331#line 270
5332 tmp___2 = __kmalloc(size, flags);
5333 }
5334#line 270
5335 return (tmp___2);
5336}
5337}
5338#line 39 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
5339extern unsigned long __attribute__((__warn_unused_result__)) _copy_to_user(void *to ,
5340 void const *from ,
5341 unsigned int len ) ;
5342#line 62 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
5343__inline static int __attribute__((__warn_unused_result__)) ( __attribute__((__always_inline__)) copy_to_user)(void *dst ,
5344 void const *src ,
5345 unsigned int size )
5346{ unsigned long tmp ;
5347 unsigned long tmp___0 ;
5348 unsigned long tmp___1 ;
5349
5350 {
5351 {
5352#line 65
5353 might_fault();
5354#line 67
5355 tmp___1 = (unsigned long )_copy_to_user(dst, src, size);
5356#line 67
5357 tmp___0 = tmp___1;
5358#line 67
5359 tmp = tmp___0;
5360 }
5361#line 67
5362 return ((int )tmp);
5363}
5364}
5365#line 303 "include/linux/moduleparam.h"
5366extern struct kernel_param_ops param_ops_int ;
5367#line 329
5368extern struct kernel_param_ops param_ops_bool ;
5369#line 79 "include/linux/module.h"
5370int init_module(void) ;
5371#line 80
5372void cleanup_module(void) ;
5373#line 99
5374extern struct module __this_module ;
5375#line 705 "include/linux/device.h"
5376extern void *dev_get_drvdata(struct device const *dev ) __attribute__((__ldv_model__)) ;
5377#line 706
5378extern int dev_set_drvdata(struct device *dev , void *data ) ;
5379#line 788
5380extern int dev_printk(char const *level , struct device const *dev , char const *fmt
5381 , ...) ;
5382#line 797
5383extern int dev_err(struct device const *dev , char const *fmt , ...) ;
5384#line 803
5385extern int _dev_info(struct device const *dev , char const *fmt , ...) ;
5386#line 399 "include/linux/tty.h"
5387extern void tty_kref_put(struct tty_struct *tty ) ;
5388#line 439
5389extern void tty_flip_buffer_push(struct tty_struct *tty ) ;
5390#line 444
5391extern speed_t tty_get_baud_rate(struct tty_struct *tty ) ;
5392#line 449
5393extern void tty_encode_baud_rate(struct tty_struct *tty , speed_t ibaud , speed_t obaud ) ;
5394#line 505
5395extern struct tty_struct *tty_port_tty_get(struct tty_port *port ) ;
5396#line 6 "include/linux/tty_flip.h"
5397extern int tty_insert_flip_string_fixed_flag(struct tty_struct *tty , unsigned char const *chars ,
5398 char flag , size_t size ) ;
5399#line 23 "include/linux/tty_flip.h"
5400__inline static int tty_insert_flip_string(struct tty_struct *tty , unsigned char const *chars ,
5401 size_t size )
5402{ int tmp ;
5403
5404 {
5405 {
5406#line 25
5407 tmp = tty_insert_flip_string_fixed_flag(tty, chars, (char)0, size);
5408 }
5409#line 25
5410 return (tmp);
5411}
5412}
5413#line 357 "include/linux/sched.h"
5414extern long schedule_timeout(long timeout ) ;
5415#line 929 "include/linux/usb.h"
5416extern int usb_register_driver(struct usb_driver * , struct module * , char const * ) ;
5417#line 931 "include/linux/usb.h"
5418__inline static int usb_register(struct usb_driver *driver )
5419{ int tmp___7 ;
5420
5421 {
5422 {
5423#line 933
5424 tmp___7 = usb_register_driver(driver, & __this_module, "whiteheat");
5425 }
5426#line 933
5427 return (tmp___7);
5428}
5429}
5430#line 935
5431extern void usb_deregister(struct usb_driver * ) ;
5432#line 1268 "include/linux/usb.h"
5433__inline static void usb_fill_bulk_urb(struct urb *urb , struct usb_device *dev ,
5434 unsigned int pipe , void *transfer_buffer ,
5435 int buffer_length , void (*complete_fn)(struct urb * ) ,
5436 void *context )
5437{
5438
5439 {
5440#line 1276
5441 urb->dev = dev;
5442#line 1277
5443 urb->pipe = pipe;
5444#line 1278
5445 urb->transfer_buffer = transfer_buffer;
5446#line 1279
5447 urb->transfer_buffer_length = (u32 )buffer_length;
5448#line 1280
5449 urb->complete = complete_fn;
5450#line 1281
5451 urb->context = context;
5452#line 1282
5453 return;
5454}
5455}
5456#line 1332
5457struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags ) __attribute__((__ldv_model__)) ;
5458#line 1333
5459void usb_free_urb(struct urb *urb ) __attribute__((__ldv_model__)) ;
5460#line 1336
5461extern int usb_submit_urb(struct urb *urb , gfp_t mem_flags ) ;
5462#line 1338
5463extern void usb_kill_urb(struct urb *urb ) ;
5464#line 1377
5465void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
5466 dma_addr_t *dma ) __attribute__((__ldv_model__)) ;
5467#line 1379
5468void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma ) __attribute__((__ldv_model__)) ;
5469#line 1407
5470extern int usb_bulk_msg(struct usb_device *usb_dev , unsigned int pipe , void *data ,
5471 int len , int *actual_length , int timeout ) ;
5472#line 1420
5473extern int usb_clear_halt(struct usb_device *dev , int pipe ) ;
5474#line 1526 "include/linux/usb.h"
5475__inline static unsigned int __create_pipe(struct usb_device *dev , unsigned int endpoint )
5476{ unsigned int __cil_tmp3 ;
5477 int __cil_tmp4 ;
5478 int __cil_tmp5 ;
5479 unsigned int __cil_tmp6 ;
5480
5481 {
5482 {
5483#line 1529
5484 __cil_tmp3 = endpoint << 15;
5485#line 1529
5486 __cil_tmp4 = dev->devnum;
5487#line 1529
5488 __cil_tmp5 = __cil_tmp4 << 8;
5489#line 1529
5490 __cil_tmp6 = (unsigned int )__cil_tmp5;
5491#line 1529
5492 return (__cil_tmp6 | __cil_tmp3);
5493 }
5494}
5495}
5496#line 127 "include/linux/usb/serial.h"
5497__inline static void *usb_get_serial_port_data(struct usb_serial_port *port )
5498{ void *tmp___7 ;
5499 struct device *__cil_tmp3 ;
5500 struct device const *__cil_tmp4 ;
5501
5502 {
5503 {
5504#line 129
5505 __cil_tmp3 = & port->dev;
5506#line 129
5507 __cil_tmp4 = (struct device const *)__cil_tmp3;
5508#line 129
5509 tmp___7 = dev_get_drvdata(__cil_tmp4);
5510 }
5511#line 129
5512 return (tmp___7);
5513}
5514}
5515#line 132 "include/linux/usb/serial.h"
5516__inline static void usb_set_serial_port_data(struct usb_serial_port *port , void *data )
5517{ struct device *__cil_tmp3 ;
5518
5519 {
5520 {
5521#line 135
5522 __cil_tmp3 = & port->dev;
5523#line 135
5524 dev_set_drvdata(__cil_tmp3, data);
5525 }
5526#line 136
5527 return;
5528}
5529}
5530#line 298
5531extern int usb_serial_register(struct usb_serial_driver *driver ) ;
5532#line 299
5533extern void usb_serial_deregister(struct usb_serial_driver *driver ) ;
5534#line 300
5535extern void usb_serial_port_softint(struct usb_serial_port *port ) ;
5536#line 302
5537extern int usb_serial_probe(struct usb_interface *iface , struct usb_device_id const *id ) ;
5538#line 304
5539extern void usb_serial_disconnect(struct usb_interface *iface ) ;
5540#line 309
5541extern int ezusb_writememory(struct usb_serial *serial , int address , unsigned char *data ,
5542 int length , __u8 bRequest ) ;
5543#line 311
5544extern int ezusb_set_reset(struct usb_serial *serial , unsigned char reset_bit ) ;
5545#line 363 "include/linux/usb/serial.h"
5546__inline static void usb_serial_debug_data(int debug , struct device *dev , char const *function ,
5547 int size , unsigned char const *data )
5548{ int i ;
5549 struct device const *__cil_tmp7 ;
5550 unsigned char const *__cil_tmp8 ;
5551 unsigned char __cil_tmp9 ;
5552 int __cil_tmp10 ;
5553
5554 {
5555#line 370
5556 if (debug) {
5557 {
5558#line 371
5559 __cil_tmp7 = (struct device const *)dev;
5560#line 371
5561 dev_printk("<7>", __cil_tmp7, "%s - length = %d, data = ", function, size);
5562#line 373
5563 i = 0;
5564 }
5565 {
5566#line 373
5567 while (1) {
5568 while_continue: ;
5569
5570#line 373
5571 if (i < size) {
5572
5573 } else {
5574#line 373
5575 goto while_break;
5576 }
5577 {
5578#line 374
5579 __cil_tmp8 = data + i;
5580#line 374
5581 __cil_tmp9 = *__cil_tmp8;
5582#line 374
5583 __cil_tmp10 = (int const )__cil_tmp9;
5584#line 374
5585 printk("%.2x ", __cil_tmp10);
5586#line 373
5587 i = i + 1;
5588 }
5589 }
5590 while_break___0: ;
5591 }
5592
5593 while_break:
5594 {
5595#line 375
5596 printk("\n");
5597 }
5598 } else {
5599
5600 }
5601#line 377
5602 return;
5603}
5604}
5605#line 39 "include/linux/firmware.h"
5606extern int request_firmware(struct firmware const **fw , char const *name , struct device *device ) ;
5607#line 46
5608extern void release_firmware(struct firmware const *fw ) ;
5609#line 24 "include/linux/ihex.h"
5610__inline static struct ihex_binrec const *ihex_next_binrec(struct ihex_binrec const *rec )
5611{ int next ;
5612 __u16 tmp___7 ;
5613 struct ihex_binrec const *tmp___9 ;
5614 __u16 tmp___10 ;
5615 __be16 __cil_tmp6 ;
5616 __be16 __cil_tmp7 ;
5617 int __cil_tmp8 ;
5618 int __cil_tmp9 ;
5619 int __cil_tmp10 ;
5620 uint8_t const *__cil_tmp11 ;
5621 void *__cil_tmp12 ;
5622 __be16 __cil_tmp13 ;
5623 __be16 __cil_tmp14 ;
5624 void *__cil_tmp15 ;
5625
5626 {
5627 {
5628#line 27
5629 __cil_tmp6 = rec->len;
5630#line 27
5631 __cil_tmp7 = (__be16 )__cil_tmp6;
5632#line 27
5633 tmp___7 = __fswab16(__cil_tmp7);
5634#line 27
5635 __cil_tmp8 = (int )tmp___7;
5636#line 27
5637 __cil_tmp9 = __cil_tmp8 + 5;
5638#line 27
5639 __cil_tmp10 = __cil_tmp9 & -4;
5640#line 27
5641 next = __cil_tmp10 - 2;
5642#line 28
5643 __cil_tmp11 = & rec->data[next];
5644#line 28
5645 __cil_tmp12 = (void *)__cil_tmp11;
5646#line 28
5647 rec = (struct ihex_binrec const *)__cil_tmp12;
5648#line 30
5649 __cil_tmp13 = rec->len;
5650#line 30
5651 __cil_tmp14 = (__be16 )__cil_tmp13;
5652#line 30
5653 tmp___10 = __fswab16(__cil_tmp14);
5654 }
5655#line 30
5656 if ((int )tmp___10) {
5657#line 30
5658 tmp___9 = rec;
5659 } else {
5660#line 30
5661 __cil_tmp15 = (void *)0;
5662#line 30
5663 tmp___9 = (struct ihex_binrec const *)__cil_tmp15;
5664 }
5665#line 30
5666 return (tmp___9);
5667}
5668}
5669#line 34 "include/linux/ihex.h"
5670__inline static int ihex_validate_fw(struct firmware const *fw )
5671{ struct ihex_binrec const *rec ;
5672 size_t ofs ;
5673 __u16 tmp___7 ;
5674 __u16 tmp___8 ;
5675 size_t __cil_tmp6 ;
5676 size_t __cil_tmp7 ;
5677 size_t __cil_tmp8 ;
5678 size_t __cil_tmp9 ;
5679 u8 const *__cil_tmp10 ;
5680 u8 const *__cil_tmp11 ;
5681 void *__cil_tmp12 ;
5682 __be16 __cil_tmp13 ;
5683 __be16 __cil_tmp14 ;
5684 __be16 __cil_tmp15 ;
5685 __be16 __cil_tmp16 ;
5686 int __cil_tmp17 ;
5687 unsigned long __cil_tmp18 ;
5688 unsigned long __cil_tmp19 ;
5689 unsigned long __cil_tmp20 ;
5690 unsigned long __cil_tmp21 ;
5691
5692 {
5693#line 37
5694 ofs = (size_t )0;
5695 {
5696#line 39
5697 while (1) {
5698 while_continue: ;
5699
5700 {
5701#line 39
5702 __cil_tmp6 = (size_t const )6UL;
5703#line 39
5704 __cil_tmp7 = fw->size;
5705#line 39
5706 __cil_tmp8 = __cil_tmp7 - __cil_tmp6;
5707#line 39
5708 __cil_tmp9 = (size_t )__cil_tmp8;
5709#line 39
5710 if (ofs <= __cil_tmp9) {
5711
5712 } else {
5713#line 39
5714 goto while_break;
5715 }
5716 }
5717 {
5718#line 40
5719 __cil_tmp10 = fw->data;
5720#line 40
5721 __cil_tmp11 = __cil_tmp10 + ofs;
5722#line 40
5723 __cil_tmp12 = (void *)__cil_tmp11;
5724#line 40
5725 rec = (struct ihex_binrec const *)__cil_tmp12;
5726#line 43
5727 __cil_tmp13 = rec->len;
5728#line 43
5729 __cil_tmp14 = (__be16 )__cil_tmp13;
5730#line 43
5731 tmp___7 = __fswab16(__cil_tmp14);
5732 }
5733#line 43
5734 if ((int )tmp___7) {
5735
5736 } else {
5737#line 44
5738 return (0);
5739 }
5740 {
5741#line 47
5742 __cil_tmp15 = rec->len;
5743#line 47
5744 __cil_tmp16 = (__be16 )__cil_tmp15;
5745#line 47
5746 tmp___8 = __fswab16(__cil_tmp16);
5747#line 47
5748 __cil_tmp17 = (int )tmp___8;
5749#line 47
5750 __cil_tmp18 = (unsigned long )__cil_tmp17;
5751#line 47
5752 __cil_tmp19 = 6UL + __cil_tmp18;
5753#line 47
5754 __cil_tmp20 = __cil_tmp19 + 3UL;
5755#line 47
5756 __cil_tmp21 = __cil_tmp20 & 1152921504606846972UL;
5757#line 47
5758 ofs = ofs + __cil_tmp21;
5759 }
5760 }
5761 while_break___0: ;
5762 }
5763
5764 while_break: ;
5765#line 49
5766 return (-22);
5767}
5768}
5769#line 54 "include/linux/ihex.h"
5770__inline static int request_ihex_firmware(struct firmware const **fw , char const *fw_name ,
5771 struct device *dev )
5772{ struct firmware const *lfw ;
5773 int ret ;
5774 struct device const *__cil_tmp6 ;
5775
5776 {
5777 {
5778#line 61
5779 ret = request_firmware(& lfw, fw_name, dev);
5780 }
5781#line 62
5782 if (ret) {
5783#line 63
5784 return (ret);
5785 } else {
5786
5787 }
5788 {
5789#line 64
5790 ret = ihex_validate_fw(lfw);
5791 }
5792#line 65
5793 if (ret) {
5794 {
5795#line 66
5796 __cil_tmp6 = (struct device const *)dev;
5797#line 66
5798 dev_err(__cil_tmp6, "Firmware \"%s\" not valid IHEX records\n", fw_name);
5799#line 68
5800 release_firmware(lfw);
5801 }
5802#line 69
5803 return (ret);
5804 } else {
5805
5806 }
5807#line 71
5808 *fw = lfw;
5809#line 72
5810 return (0);
5811}
5812}
5813#line 91 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
5814static int debug ;
5815#line 115 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
5816static struct usb_device_id const id_table_std[1] = { {(__u16 )3, (__u16 )1808, (__u16 )32769, (unsigned short)0, (unsigned short)0,
5817 (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
5818 (unsigned char)0, 0UL}};
5819#line 120 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
5820static struct usb_device_id const id_table_prerenumeration[1] = { {(__u16 )3, (__u16 )1808, (__u16 )1, (unsigned short)0, (unsigned short)0, (unsigned char)0,
5821 (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
5822 0UL}};
5823#line 125 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
5824static struct usb_device_id const id_table_combined[2] = { {(__u16 )3, (__u16 )1808, (__u16 )32769, (unsigned short)0, (unsigned short)0,
5825 (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
5826 (unsigned char)0, 0UL},
5827 {(__u16 )3, (__u16 )1808, (__u16 )1, (unsigned short)0, (unsigned short)0, (unsigned char)0,
5828 (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
5829 0UL}};
5830#line 131
5831extern struct usb_device_id const __mod_usb_device_table __attribute__((__unused__,
5832__alias__("id_table_combined"))) ;
5833#line 133 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
5834static struct usb_driver whiteheat_driver =
5835#line 133
5836 {"whiteheat", & usb_serial_probe, & usb_serial_disconnect, (int (*)(struct usb_interface *intf ,
5837 unsigned int code ,
5838 void *buf ))0,
5839 (int (*)(struct usb_interface *intf , pm_message_t message ))0, (int (*)(struct usb_interface *intf ))0,
5840 (int (*)(struct usb_interface *intf ))0, (int (*)(struct usb_interface *intf ))0,
5841 (int (*)(struct usb_interface *intf ))0, id_table_combined, {{{{{0U}, 0U, 0U,
5842 (void *)0, {(struct lock_class_key *)0,
5843 {(struct lock_class *)0,
5844 (struct lock_class *)0},
5845 (char const *)0,
5846 0,
5847 0UL}}}},
5848 {(struct list_head *)0,
5849 (struct list_head *)0}},
5850 {{(char const *)0, (struct bus_type *)0, (struct module *)0, (char const *)0,
5851 (_Bool)0, (struct of_device_id const *)0, (int (*)(struct device *dev ))0,
5852 (int (*)(struct device *dev ))0, (void (*)(struct device *dev ))0, (int (*)(struct device *dev ,
5853 pm_message_t state ))0,
5854 (int (*)(struct device *dev ))0, (struct attribute_group const **)0, (struct dev_pm_ops const *)0,
5855 (struct driver_private *)0}, 0}, 1U, 0U, 0U};
5856#line 142
5857static int whiteheat_firmware_download(struct usb_serial *serial , struct usb_device_id const *id ) ;
5858#line 144
5859static int whiteheat_firmware_attach(struct usb_serial *serial ) ;
5860#line 147
5861static int whiteheat_attach(struct usb_serial *serial ) ;
5862#line 148
5863static void whiteheat_release(struct usb_serial *serial ) ;
5864#line 149
5865static int whiteheat_open(struct tty_struct *tty , struct usb_serial_port *port ) ;
5866#line 151
5867static void whiteheat_close(struct usb_serial_port *port ) ;
5868#line 152
5869static int whiteheat_write(struct tty_struct *tty , struct usb_serial_port *port ,
5870 unsigned char const *buf , int count ) ;
5871#line 155
5872static int whiteheat_write_room(struct tty_struct *tty ) ;
5873#line 156
5874static int whiteheat_ioctl(struct tty_struct *tty , unsigned int cmd , unsigned long arg ) ;
5875#line 158
5876static void whiteheat_set_termios(struct tty_struct *tty , struct usb_serial_port *port ,
5877 struct ktermios *old_termios ) ;
5878#line 160
5879static int whiteheat_tiocmget(struct tty_struct *tty ) ;
5880#line 161
5881static int whiteheat_tiocmset(struct tty_struct *tty , unsigned int set , unsigned int clear ) ;
5882#line 163
5883static void whiteheat_break_ctl(struct tty_struct *tty , int break_state ) ;
5884#line 164
5885static int whiteheat_chars_in_buffer(struct tty_struct *tty ) ;
5886#line 165
5887static void whiteheat_throttle(struct tty_struct *tty ) ;
5888#line 166
5889static void whiteheat_unthrottle(struct tty_struct *tty ) ;
5890#line 167
5891static void whiteheat_read_callback(struct urb *urb ) ;
5892#line 168
5893static void whiteheat_write_callback(struct urb *urb ) ;
5894#line 170 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
5895static struct usb_serial_driver whiteheat_fake_device =
5896#line 170
5897 {"Connect Tech - WhiteHEAT - (prerenumeration)", id_table_prerenumeration, (char)1,
5898 {(struct list_head *)0, (struct list_head *)0}, {"whiteheatnofirm", (struct bus_type *)0,
5899 & __this_module, (char const *)0,
5900 (_Bool)0, (struct of_device_id const *)0,
5901 (int (*)(struct device *dev ))0,
5902 (int (*)(struct device *dev ))0,
5903 (void (*)(struct device *dev ))0,
5904 (int (*)(struct device *dev ,
5905 pm_message_t state ))0,
5906 (int (*)(struct device *dev ))0,
5907 (struct attribute_group const **)0,
5908 (struct dev_pm_ops const *)0,
5909 (struct driver_private *)0},
5910 & whiteheat_driver, {{{{{0U}, 0U, 0U, (void *)0, {(struct lock_class_key *)0,
5911 {(struct lock_class *)0, (struct lock_class *)0},
5912 (char const *)0, 0, 0UL}}}},
5913 {(struct list_head *)0, (struct list_head *)0}}, 0UL, 0UL,
5914 & whiteheat_firmware_download, & whiteheat_firmware_attach, (int (*)(struct usb_serial *serial ))0,
5915 (void (*)(struct usb_serial *serial ))0, (void (*)(struct usb_serial *serial ))0,
5916 (int (*)(struct usb_serial_port *port ))0, (int (*)(struct usb_serial_port *port ))0,
5917 (int (*)(struct usb_serial *serial , pm_message_t message ))0, (int (*)(struct usb_serial *serial ))0,
5918 (int (*)(struct tty_struct *tty , struct usb_serial_port *port ))0, (void (*)(struct usb_serial_port *port ))0,
5919 (int (*)(struct tty_struct *tty , struct usb_serial_port *port , unsigned char const *buf ,
5920 int count ))0, (int (*)(struct tty_struct *tty ))0, (int (*)(struct tty_struct *tty ,
5921 unsigned int cmd ,
5922 unsigned long arg ))0,
5923 (void (*)(struct tty_struct *tty , struct usb_serial_port *port , struct ktermios *old ))0,
5924 (void (*)(struct tty_struct *tty , int break_state ))0, (int (*)(struct tty_struct *tty ))0,
5925 (void (*)(struct tty_struct *tty ))0, (void (*)(struct tty_struct *tty ))0, (int (*)(struct tty_struct *tty ))0,
5926 (int (*)(struct tty_struct *tty , unsigned int set , unsigned int clear ))0, (int (*)(struct tty_struct *tty ,
5927 struct serial_icounter_struct *icount ))0,
5928 (void (*)(struct usb_serial_port *port , int on ))0, (int (*)(struct usb_serial_port *port ))0,
5929 (void (*)(struct tty_struct *tty ))0, (void (*)(struct urb *urb ))0, (void (*)(struct urb *urb ))0,
5930 (void (*)(struct urb *urb ))0, (void (*)(struct urb *urb ))0, (void (*)(struct urb *urb ))0,
5931 (int (*)(struct usb_serial_port *port , void *dest , size_t size ))0};
5932#line 183 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
5933static struct usb_serial_driver whiteheat_device =
5934#line 183
5935 {"Connect Tech - WhiteHEAT", id_table_std, (char)4, {(struct list_head *)0, (struct list_head *)0},
5936 {"whiteheat", (struct bus_type *)0, & __this_module, (char const *)0, (_Bool)0,
5937 (struct of_device_id const *)0, (int (*)(struct device *dev ))0, (int (*)(struct device *dev ))0,
5938 (void (*)(struct device *dev ))0, (int (*)(struct device *dev , pm_message_t state ))0,
5939 (int (*)(struct device *dev ))0, (struct attribute_group const **)0, (struct dev_pm_ops const *)0,
5940 (struct driver_private *)0}, & whiteheat_driver, {{{{{0U}, 0U, 0U, (void *)0,
5941 {(struct lock_class_key *)0,
5942 {(struct lock_class *)0,
5943 (struct lock_class *)0},
5944 (char const *)0, 0, 0UL}}}},
5945 {(struct list_head *)0, (struct list_head *)0}},
5946 0UL, 0UL, (int (*)(struct usb_serial *serial , struct usb_device_id const *id ))0,
5947 & whiteheat_attach, (int (*)(struct usb_serial *serial ))0, (void (*)(struct usb_serial *serial ))0,
5948 & whiteheat_release, (int (*)(struct usb_serial_port *port ))0, (int (*)(struct usb_serial_port *port ))0,
5949 (int (*)(struct usb_serial *serial , pm_message_t message ))0, (int (*)(struct usb_serial *serial ))0,
5950 & whiteheat_open, & whiteheat_close, & whiteheat_write, & whiteheat_write_room,
5951 & whiteheat_ioctl, & whiteheat_set_termios, & whiteheat_break_ctl, & whiteheat_chars_in_buffer,
5952 & whiteheat_throttle, & whiteheat_unthrottle, & whiteheat_tiocmget, & whiteheat_tiocmset,
5953 (int (*)(struct tty_struct *tty , struct serial_icounter_struct *icount ))0, (void (*)(struct usb_serial_port *port ,
5954 int on ))0,
5955 (int (*)(struct usb_serial_port *port ))0, (void (*)(struct tty_struct *tty ))0,
5956 (void (*)(struct urb *urb ))0, (void (*)(struct urb *urb ))0, & whiteheat_read_callback,
5957 & whiteheat_write_callback, (void (*)(struct urb *urb ))0, (int (*)(struct usb_serial_port *port ,
5958 void *dest ,
5959 size_t size ))0};
5960#line 225 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
5961static int urb_pool_size = 8;
5962#line 248
5963static int start_command_port(struct usb_serial *serial ) ;
5964#line 249
5965static void stop_command_port(struct usb_serial *serial ) ;
5966#line 250
5967static void command_port_write_callback(struct urb *urb ) ;
5968#line 251
5969static void command_port_read_callback(struct urb *urb ) ;
5970#line 253
5971static int start_port_read(struct usb_serial_port *port ) ;
5972#line 254
5973static struct whiteheat_urb_wrap *urb_to_wrap(struct urb *urb , struct list_head *head ) ;
5974#line 256
5975static struct list_head *list_first(struct list_head *head ) ;
5976#line 257
5977static void rx_data_softint(struct work_struct *work ) ;
5978#line 259
5979static int firm_send_command(struct usb_serial_port *port , __u8 command , __u8 *data ,
5980 __u8 datasize ) ;
5981#line 261
5982static int firm_open(struct usb_serial_port *port ) ;
5983#line 262
5984static int firm_close(struct usb_serial_port *port ) ;
5985#line 263
5986static void firm_setup_port(struct tty_struct *tty ) ;
5987#line 264
5988static int firm_set_rts(struct usb_serial_port *port , __u8 onoff ) ;
5989#line 265
5990static int firm_set_dtr(struct usb_serial_port *port , __u8 onoff ) ;
5991#line 266
5992static int firm_set_break(struct usb_serial_port *port , __u8 onoff ) ;
5993#line 267
5994static int firm_purge(struct usb_serial_port *port , __u8 rxtx ) ;
5995#line 268
5996static int firm_get_dtr_rts(struct usb_serial_port *port ) ;
5997#line 269
5998static int firm_report_tx_done(struct usb_serial_port *port ) ;
5999#line 295 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
6000static int whiteheat_firmware_download(struct usb_serial *serial , struct usb_device_id const *id )
6001{ int response ;
6002 int ret ;
6003 struct firmware const *loader_fw ;
6004 struct firmware const *firmware_fw ;
6005 struct ihex_binrec const *record ;
6006 int tmp___7 ;
6007 int tmp___8 ;
6008 __u16 tmp___9 ;
6009 __u32 tmp___10 ;
6010 __u16 tmp___11 ;
6011 __u32 tmp___12 ;
6012 __u32 tmp___13 ;
6013 __u16 tmp___14 ;
6014 __u32 tmp___15 ;
6015 __u16 tmp___16 ;
6016 __u32 tmp___17 ;
6017 __u16 tmp___18 ;
6018 __u32 tmp___19 ;
6019 __u16 tmp___20 ;
6020 __u32 tmp___21 ;
6021 __u32 tmp___22 ;
6022 void *__cil_tmp24 ;
6023 void *__cil_tmp25 ;
6024 struct usb_device *__cil_tmp26 ;
6025 struct device *__cil_tmp27 ;
6026 struct usb_device *__cil_tmp28 ;
6027 struct device *__cil_tmp29 ;
6028 struct device const *__cil_tmp30 ;
6029 struct usb_device *__cil_tmp31 ;
6030 struct device *__cil_tmp32 ;
6031 struct usb_device *__cil_tmp33 ;
6032 struct device *__cil_tmp34 ;
6033 struct device const *__cil_tmp35 ;
6034 u8 const *__cil_tmp36 ;
6035 __be16 __cil_tmp37 ;
6036 __be16 __cil_tmp38 ;
6037 __be32 __cil_tmp39 ;
6038 __be32 __cil_tmp40 ;
6039 int __cil_tmp41 ;
6040 uint8_t const *__cil_tmp42 ;
6041 unsigned char *__cil_tmp43 ;
6042 int __cil_tmp44 ;
6043 __u8 __cil_tmp45 ;
6044 __be16 __cil_tmp46 ;
6045 __be16 __cil_tmp47 ;
6046 __be32 __cil_tmp48 ;
6047 __be32 __cil_tmp49 ;
6048 struct usb_device *__cil_tmp50 ;
6049 struct device *__cil_tmp51 ;
6050 struct device const *__cil_tmp52 ;
6051 uint8_t const *__cil_tmp53 ;
6052 int __cil_tmp54 ;
6053 u8 const *__cil_tmp55 ;
6054 __be32 __cil_tmp56 ;
6055 __be32 __cil_tmp57 ;
6056 __be16 __cil_tmp58 ;
6057 __be16 __cil_tmp59 ;
6058 __be32 __cil_tmp60 ;
6059 __be32 __cil_tmp61 ;
6060 int __cil_tmp62 ;
6061 uint8_t const *__cil_tmp63 ;
6062 unsigned char *__cil_tmp64 ;
6063 int __cil_tmp65 ;
6064 __u8 __cil_tmp66 ;
6065 __be16 __cil_tmp67 ;
6066 __be16 __cil_tmp68 ;
6067 __be32 __cil_tmp69 ;
6068 __be32 __cil_tmp70 ;
6069 struct usb_device *__cil_tmp71 ;
6070 struct device *__cil_tmp72 ;
6071 struct device const *__cil_tmp73 ;
6072 uint8_t const *__cil_tmp74 ;
6073 int __cil_tmp75 ;
6074 u8 const *__cil_tmp76 ;
6075 __be32 __cil_tmp77 ;
6076 __be32 __cil_tmp78 ;
6077 __be16 __cil_tmp79 ;
6078 __be16 __cil_tmp80 ;
6079 __be32 __cil_tmp81 ;
6080 __be32 __cil_tmp82 ;
6081 int __cil_tmp83 ;
6082 uint8_t const *__cil_tmp84 ;
6083 unsigned char *__cil_tmp85 ;
6084 int __cil_tmp86 ;
6085 __u8 __cil_tmp87 ;
6086 __be16 __cil_tmp88 ;
6087 __be16 __cil_tmp89 ;
6088 __be32 __cil_tmp90 ;
6089 __be32 __cil_tmp91 ;
6090 struct usb_device *__cil_tmp92 ;
6091 struct device *__cil_tmp93 ;
6092 struct device const *__cil_tmp94 ;
6093 uint8_t const *__cil_tmp95 ;
6094 int __cil_tmp96 ;
6095
6096 {
6097#line 298
6098 ret = -2;
6099#line 299
6100 __cil_tmp24 = (void *)0;
6101#line 299
6102 loader_fw = (struct firmware const *)__cil_tmp24;
6103#line 299
6104 __cil_tmp25 = (void *)0;
6105#line 299
6106 firmware_fw = (struct firmware const *)__cil_tmp25;
6107 {
6108#line 302
6109 while (1) {
6110 while_continue: ;
6111
6112#line 302
6113 if (debug) {
6114 {
6115#line 302
6116 printk("<7>%s: %s\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
6117 "whiteheat_firmware_download");
6118 }
6119 } else {
6120
6121 }
6122#line 302
6123 goto while_break;
6124 }
6125 while_break___4: ;
6126 }
6127
6128 while_break:
6129 {
6130#line 304
6131 __cil_tmp26 = serial->dev;
6132#line 304
6133 __cil_tmp27 = & __cil_tmp26->dev;
6134#line 304
6135 tmp___7 = request_ihex_firmware(& firmware_fw, "whiteheat.fw", __cil_tmp27);
6136 }
6137#line 304
6138 if (tmp___7) {
6139 {
6140#line 306
6141 __cil_tmp28 = serial->dev;
6142#line 306
6143 __cil_tmp29 = & __cil_tmp28->dev;
6144#line 306
6145 __cil_tmp30 = (struct device const *)__cil_tmp29;
6146#line 306
6147 dev_err(__cil_tmp30, "%s - request \"whiteheat.fw\" failed\n", "whiteheat_firmware_download");
6148 }
6149#line 308
6150 goto out;
6151 } else {
6152
6153 }
6154 {
6155#line 310
6156 __cil_tmp31 = serial->dev;
6157#line 310
6158 __cil_tmp32 = & __cil_tmp31->dev;
6159#line 310
6160 tmp___8 = request_ihex_firmware(& loader_fw, "whiteheat_loader.fw", __cil_tmp32);
6161 }
6162#line 310
6163 if (tmp___8) {
6164 {
6165#line 312
6166 __cil_tmp33 = serial->dev;
6167#line 312
6168 __cil_tmp34 = & __cil_tmp33->dev;
6169#line 312
6170 __cil_tmp35 = (struct device const *)__cil_tmp34;
6171#line 312
6172 dev_err(__cil_tmp35, "%s - request \"whiteheat_loader.fw\" failed\n", "whiteheat_firmware_download");
6173 }
6174#line 315
6175 goto out;
6176 } else {
6177
6178 }
6179 {
6180#line 317
6181 ret = 0;
6182#line 318
6183 response = ezusb_set_reset(serial, (unsigned char)1);
6184#line 320
6185 __cil_tmp36 = loader_fw->data;
6186#line 320
6187 record = (struct ihex_binrec const *)__cil_tmp36;
6188 }
6189 {
6190#line 321
6191 while (1) {
6192 while_continue___0: ;
6193
6194#line 321
6195 if (record) {
6196
6197 } else {
6198#line 321
6199 goto while_break___0;
6200 }
6201 {
6202#line 322
6203 __cil_tmp37 = record->len;
6204#line 322
6205 __cil_tmp38 = (__be16 )__cil_tmp37;
6206#line 322
6207 tmp___9 = __fswab16(__cil_tmp38);
6208#line 322
6209 __cil_tmp39 = record->addr;
6210#line 322
6211 __cil_tmp40 = (__be32 )__cil_tmp39;
6212#line 322
6213 tmp___10 = __fswab32(__cil_tmp40);
6214#line 322
6215 __cil_tmp41 = (int )tmp___10;
6216#line 322
6217 __cil_tmp42 = & record->data[0];
6218#line 322
6219 __cil_tmp43 = (unsigned char *)__cil_tmp42;
6220#line 322
6221 __cil_tmp44 = (int )tmp___9;
6222#line 322
6223 __cil_tmp45 = (__u8 )160;
6224#line 322
6225 response = ezusb_writememory(serial, __cil_tmp41, __cil_tmp43, __cil_tmp44, __cil_tmp45);
6226 }
6227#line 325
6228 if (response < 0) {
6229 {
6230#line 326
6231 __cil_tmp46 = record->len;
6232#line 326
6233 __cil_tmp47 = (__be16 )__cil_tmp46;
6234#line 326
6235 tmp___11 = __fswab16(__cil_tmp47);
6236#line 326
6237 __cil_tmp48 = record->addr;
6238#line 326
6239 __cil_tmp49 = (__be32 )__cil_tmp48;
6240#line 326
6241 tmp___12 = __fswab32(__cil_tmp49);
6242#line 326
6243 __cil_tmp50 = serial->dev;
6244#line 326
6245 __cil_tmp51 = & __cil_tmp50->dev;
6246#line 326
6247 __cil_tmp52 = (struct device const *)__cil_tmp51;
6248#line 326
6249 __cil_tmp53 = & record->data[0];
6250#line 326
6251 __cil_tmp54 = (int )tmp___11;
6252#line 326
6253 dev_err(__cil_tmp52, "%s - ezusb_writememory failed for loader (%d %04X %p %d)\n",
6254 "whiteheat_firmware_download", response, tmp___12, __cil_tmp53, __cil_tmp54);
6255 }
6256#line 330
6257 goto while_break___0;
6258 } else {
6259
6260 }
6261 {
6262#line 332
6263 record = ihex_next_binrec(record);
6264 }
6265 }
6266 while_break___5: ;
6267 }
6268
6269 while_break___0:
6270 {
6271#line 335
6272 response = ezusb_set_reset(serial, (unsigned char)0);
6273#line 337
6274 __cil_tmp55 = firmware_fw->data;
6275#line 337
6276 record = (struct ihex_binrec const *)__cil_tmp55;
6277 }
6278 {
6279#line 338
6280 while (1) {
6281 while_continue___1: ;
6282
6283#line 338
6284 if (record) {
6285 {
6286#line 338
6287 __cil_tmp56 = record->addr;
6288#line 338
6289 __cil_tmp57 = (__be32 )__cil_tmp56;
6290#line 338
6291 tmp___13 = __fswab32(__cil_tmp57);
6292 }
6293#line 338
6294 if (tmp___13 < 6976U) {
6295
6296 } else {
6297#line 338
6298 goto while_break___1;
6299 }
6300 } else {
6301#line 338
6302 goto while_break___1;
6303 }
6304 {
6305#line 339
6306 record = ihex_next_binrec(record);
6307 }
6308 }
6309 while_break___6: ;
6310 }
6311
6312 while_break___1: ;
6313 {
6314#line 340
6315 while (1) {
6316 while_continue___2: ;
6317
6318#line 340
6319 if (record) {
6320
6321 } else {
6322#line 340
6323 goto while_break___2;
6324 }
6325 {
6326#line 341
6327 __cil_tmp58 = record->len;
6328#line 341
6329 __cil_tmp59 = (__be16 )__cil_tmp58;
6330#line 341
6331 tmp___14 = __fswab16(__cil_tmp59);
6332#line 341
6333 __cil_tmp60 = record->addr;
6334#line 341
6335 __cil_tmp61 = (__be32 )__cil_tmp60;
6336#line 341
6337 tmp___15 = __fswab32(__cil_tmp61);
6338#line 341
6339 __cil_tmp62 = (int )tmp___15;
6340#line 341
6341 __cil_tmp63 = & record->data[0];
6342#line 341
6343 __cil_tmp64 = (unsigned char *)__cil_tmp63;
6344#line 341
6345 __cil_tmp65 = (int )tmp___14;
6346#line 341
6347 __cil_tmp66 = (__u8 )163;
6348#line 341
6349 response = ezusb_writememory(serial, __cil_tmp62, __cil_tmp64, __cil_tmp65, __cil_tmp66);
6350 }
6351#line 344
6352 if (response < 0) {
6353 {
6354#line 345
6355 __cil_tmp67 = record->len;
6356#line 345
6357 __cil_tmp68 = (__be16 )__cil_tmp67;
6358#line 345
6359 tmp___16 = __fswab16(__cil_tmp68);
6360#line 345
6361 __cil_tmp69 = record->addr;
6362#line 345
6363 __cil_tmp70 = (__be32 )__cil_tmp69;
6364#line 345
6365 tmp___17 = __fswab32(__cil_tmp70);
6366#line 345
6367 __cil_tmp71 = serial->dev;
6368#line 345
6369 __cil_tmp72 = & __cil_tmp71->dev;
6370#line 345
6371 __cil_tmp73 = (struct device const *)__cil_tmp72;
6372#line 345
6373 __cil_tmp74 = & record->data[0];
6374#line 345
6375 __cil_tmp75 = (int )tmp___16;
6376#line 345
6377 dev_err(__cil_tmp73, "%s - ezusb_writememory failed for first firmware step (%d %04X %p %d)\n",
6378 "whiteheat_firmware_download", response, tmp___17, __cil_tmp74, __cil_tmp75);
6379 }
6380#line 350
6381 goto while_break___2;
6382 } else {
6383
6384 }
6385#line 352
6386 record = record + 1;
6387 }
6388 while_break___7: ;
6389 }
6390
6391 while_break___2:
6392 {
6393#line 355
6394 response = ezusb_set_reset(serial, (unsigned char)1);
6395#line 357
6396 __cil_tmp76 = firmware_fw->data;
6397#line 357
6398 record = (struct ihex_binrec const *)__cil_tmp76;
6399 }
6400 {
6401#line 358
6402 while (1) {
6403 while_continue___3: ;
6404
6405#line 358
6406 if (record) {
6407 {
6408#line 358
6409 __cil_tmp77 = record->addr;
6410#line 358
6411 __cil_tmp78 = (__be32 )__cil_tmp77;
6412#line 358
6413 tmp___22 = __fswab32(__cil_tmp78);
6414 }
6415#line 358
6416 if (tmp___22 < 6976U) {
6417
6418 } else {
6419#line 358
6420 goto while_break___3;
6421 }
6422 } else {
6423#line 358
6424 goto while_break___3;
6425 }
6426 {
6427#line 359
6428 __cil_tmp79 = record->len;
6429#line 359
6430 __cil_tmp80 = (__be16 )__cil_tmp79;
6431#line 359
6432 tmp___18 = __fswab16(__cil_tmp80);
6433#line 359
6434 __cil_tmp81 = record->addr;
6435#line 359
6436 __cil_tmp82 = (__be32 )__cil_tmp81;
6437#line 359
6438 tmp___19 = __fswab32(__cil_tmp82);
6439#line 359
6440 __cil_tmp83 = (int )tmp___19;
6441#line 359
6442 __cil_tmp84 = & record->data[0];
6443#line 359
6444 __cil_tmp85 = (unsigned char *)__cil_tmp84;
6445#line 359
6446 __cil_tmp86 = (int )tmp___18;
6447#line 359
6448 __cil_tmp87 = (__u8 )160;
6449#line 359
6450 response = ezusb_writememory(serial, __cil_tmp83, __cil_tmp85, __cil_tmp86, __cil_tmp87);
6451 }
6452#line 362
6453 if (response < 0) {
6454 {
6455#line 363
6456 __cil_tmp88 = record->len;
6457#line 363
6458 __cil_tmp89 = (__be16 )__cil_tmp88;
6459#line 363
6460 tmp___20 = __fswab16(__cil_tmp89);
6461#line 363
6462 __cil_tmp90 = record->addr;
6463#line 363
6464 __cil_tmp91 = (__be32 )__cil_tmp90;
6465#line 363
6466 tmp___21 = __fswab32(__cil_tmp91);
6467#line 363
6468 __cil_tmp92 = serial->dev;
6469#line 363
6470 __cil_tmp93 = & __cil_tmp92->dev;
6471#line 363
6472 __cil_tmp94 = (struct device const *)__cil_tmp93;
6473#line 363
6474 __cil_tmp95 = & record->data[0];
6475#line 363
6476 __cil_tmp96 = (int )tmp___20;
6477#line 363
6478 dev_err(__cil_tmp94, "%s - ezusb_writememory failed for second firmware step (%d %04X %p %d)\n",
6479 "whiteheat_firmware_download", response, tmp___21, __cil_tmp95, __cil_tmp96);
6480 }
6481#line 368
6482 goto while_break___3;
6483 } else {
6484
6485 }
6486#line 370
6487 record = record + 1;
6488 }
6489 while_break___8: ;
6490 }
6491
6492 while_break___3:
6493 {
6494#line 372
6495 ret = 0;
6496#line 373
6497 response = ezusb_set_reset(serial, (unsigned char)0);
6498 }
6499 out:
6500 {
6501#line 375
6502 release_firmware(loader_fw);
6503#line 376
6504 release_firmware(firmware_fw);
6505 }
6506#line 377
6507 return (ret);
6508}
6509}
6510#line 381 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
6511static int whiteheat_firmware_attach(struct usb_serial *serial )
6512{
6513
6514 {
6515#line 384
6516 return (1);
6517}
6518}
6519#line 478 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
6520static struct lock_class_key __key___7 ;
6521#line 479 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
6522static struct lock_class_key __key___8 ;
6523#line 482 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
6524static struct lock_class_key __key___9 ;
6525#line 557 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
6526static struct lock_class_key __key___10 ;
6527#line 559 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
6528static struct lock_class_key __key___11 ;
6529#line 391 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
6530static int whiteheat_attach(struct usb_serial *serial )
6531{ struct usb_serial_port *command_port ;
6532 struct whiteheat_command_private *command_info ;
6533 struct usb_serial_port *port ;
6534 struct whiteheat_private *info ;
6535 struct whiteheat_hw_info *hw_info ;
6536 int pipe ;
6537 int ret ;
6538 int alen ;
6539 __u8 *command ;
6540 __u8 *result ;
6541 int i ;
6542 int j ;
6543 struct urb *urb ;
6544 int buf_size ;
6545 struct whiteheat_urb_wrap *wrap ;
6546 struct list_head *tmp___7 ;
6547 unsigned int tmp___8 ;
6548 void *tmp___9 ;
6549 void *tmp___10 ;
6550 unsigned int tmp___11 ;
6551 void *tmp___12 ;
6552 atomic_long_t __constr_expr_0 ;
6553 void *tmp___13 ;
6554 unsigned int tmp___14 ;
6555 void *tmp___15 ;
6556 unsigned int tmp___16 ;
6557 void *tmp___17 ;
6558 void *tmp___18 ;
6559 struct list_head const *__mptr ;
6560 struct list_head const *__mptr___0 ;
6561 struct usb_device *__cil_tmp32 ;
6562 __u8 __cil_tmp33 ;
6563 unsigned int __cil_tmp34 ;
6564 int __cil_tmp35 ;
6565 unsigned int __cil_tmp36 ;
6566 unsigned int __cil_tmp37 ;
6567 size_t __cil_tmp38 ;
6568 __u8 *__cil_tmp39 ;
6569 __u8 *__cil_tmp40 ;
6570 unsigned long __cil_tmp41 ;
6571 struct usb_device *__cil_tmp42 ;
6572 struct usb_device *__cil_tmp43 ;
6573 unsigned int __cil_tmp44 ;
6574 void *__cil_tmp45 ;
6575 struct usb_device *__cil_tmp46 ;
6576 struct device *__cil_tmp47 ;
6577 struct device const *__cil_tmp48 ;
6578 struct usb_serial_driver *__cil_tmp49 ;
6579 char const *__cil_tmp50 ;
6580 struct usb_device *__cil_tmp51 ;
6581 struct device *__cil_tmp52 ;
6582 struct device const *__cil_tmp53 ;
6583 struct usb_serial_driver *__cil_tmp54 ;
6584 char const *__cil_tmp55 ;
6585 struct usb_device *__cil_tmp56 ;
6586 __u8 __cil_tmp57 ;
6587 unsigned int __cil_tmp58 ;
6588 int __cil_tmp59 ;
6589 unsigned int __cil_tmp60 ;
6590 unsigned int __cil_tmp61 ;
6591 unsigned int __cil_tmp62 ;
6592 struct usb_device *__cil_tmp63 ;
6593 struct usb_device *__cil_tmp64 ;
6594 unsigned int __cil_tmp65 ;
6595 void *__cil_tmp66 ;
6596 unsigned long __cil_tmp67 ;
6597 int __cil_tmp68 ;
6598 struct usb_device *__cil_tmp69 ;
6599 struct device *__cil_tmp70 ;
6600 struct device const *__cil_tmp71 ;
6601 struct usb_serial_driver *__cil_tmp72 ;
6602 char const *__cil_tmp73 ;
6603 unsigned long __cil_tmp74 ;
6604 unsigned long __cil_tmp75 ;
6605 struct usb_device *__cil_tmp76 ;
6606 struct device *__cil_tmp77 ;
6607 struct device const *__cil_tmp78 ;
6608 struct usb_serial_driver *__cil_tmp79 ;
6609 char const *__cil_tmp80 ;
6610 __u8 *__cil_tmp81 ;
6611 __u8 __cil_tmp82 ;
6612 int __cil_tmp83 ;
6613 __u8 *__cil_tmp84 ;
6614 __u8 __cil_tmp85 ;
6615 int __cil_tmp86 ;
6616 struct usb_device *__cil_tmp87 ;
6617 struct device *__cil_tmp88 ;
6618 struct device const *__cil_tmp89 ;
6619 struct usb_serial_driver *__cil_tmp90 ;
6620 char const *__cil_tmp91 ;
6621 __u8 *__cil_tmp92 ;
6622 __u8 __cil_tmp93 ;
6623 int __cil_tmp94 ;
6624 __u8 *__cil_tmp95 ;
6625 struct usb_device *__cil_tmp96 ;
6626 struct device *__cil_tmp97 ;
6627 struct device const *__cil_tmp98 ;
6628 struct usb_serial_driver *__cil_tmp99 ;
6629 char const *__cil_tmp100 ;
6630 __u8 __cil_tmp101 ;
6631 int __cil_tmp102 ;
6632 __u8 __cil_tmp103 ;
6633 int __cil_tmp104 ;
6634 unsigned char __cil_tmp105 ;
6635 int __cil_tmp106 ;
6636 void *__cil_tmp107 ;
6637 unsigned long __cil_tmp108 ;
6638 unsigned long __cil_tmp109 ;
6639 struct device *__cil_tmp110 ;
6640 struct device const *__cil_tmp111 ;
6641 struct usb_serial_driver *__cil_tmp112 ;
6642 char const *__cil_tmp113 ;
6643 spinlock_t *__cil_tmp114 ;
6644 struct raw_spinlock *__cil_tmp115 ;
6645 struct mutex *__cil_tmp116 ;
6646 struct work_struct *__cil_tmp117 ;
6647 struct lockdep_map *__cil_tmp118 ;
6648 struct list_head *__cil_tmp119 ;
6649 struct list_head *__cil_tmp120 ;
6650 struct list_head *__cil_tmp121 ;
6651 struct list_head *__cil_tmp122 ;
6652 struct list_head *__cil_tmp123 ;
6653 struct list_head *__cil_tmp124 ;
6654 struct device *__cil_tmp125 ;
6655 struct device const *__cil_tmp126 ;
6656 struct urb *__cil_tmp127 ;
6657 u32 __cil_tmp128 ;
6658 size_t __cil_tmp129 ;
6659 void *__cil_tmp130 ;
6660 struct device *__cil_tmp131 ;
6661 struct device const *__cil_tmp132 ;
6662 struct device *__cil_tmp133 ;
6663 struct device const *__cil_tmp134 ;
6664 struct usb_device *__cil_tmp135 ;
6665 __u8 __cil_tmp136 ;
6666 unsigned int __cil_tmp137 ;
6667 struct usb_device *__cil_tmp138 ;
6668 int __cil_tmp139 ;
6669 unsigned int __cil_tmp140 ;
6670 unsigned int __cil_tmp141 ;
6671 unsigned int __cil_tmp142 ;
6672 void *__cil_tmp143 ;
6673 void *__cil_tmp144 ;
6674 struct list_head *__cil_tmp145 ;
6675 struct list_head *__cil_tmp146 ;
6676 struct device *__cil_tmp147 ;
6677 struct device const *__cil_tmp148 ;
6678 struct urb *__cil_tmp149 ;
6679 u32 __cil_tmp150 ;
6680 size_t __cil_tmp151 ;
6681 void *__cil_tmp152 ;
6682 struct device *__cil_tmp153 ;
6683 struct device const *__cil_tmp154 ;
6684 struct device *__cil_tmp155 ;
6685 struct device const *__cil_tmp156 ;
6686 struct usb_device *__cil_tmp157 ;
6687 __u8 __cil_tmp158 ;
6688 unsigned int __cil_tmp159 ;
6689 struct usb_device *__cil_tmp160 ;
6690 int __cil_tmp161 ;
6691 unsigned int __cil_tmp162 ;
6692 unsigned int __cil_tmp163 ;
6693 void *__cil_tmp164 ;
6694 void *__cil_tmp165 ;
6695 struct list_head *__cil_tmp166 ;
6696 struct list_head *__cil_tmp167 ;
6697 void *__cil_tmp168 ;
6698 void *__cil_tmp169 ;
6699 unsigned long __cil_tmp170 ;
6700 unsigned long __cil_tmp171 ;
6701 struct usb_device *__cil_tmp172 ;
6702 struct device *__cil_tmp173 ;
6703 struct device const *__cil_tmp174 ;
6704 struct usb_serial_driver *__cil_tmp175 ;
6705 char const *__cil_tmp176 ;
6706 struct mutex *__cil_tmp177 ;
6707 wait_queue_head_t *__cil_tmp178 ;
6708 void *__cil_tmp179 ;
6709 struct urb *__cil_tmp180 ;
6710 struct urb *__cil_tmp181 ;
6711 void const *__cil_tmp182 ;
6712 void const *__cil_tmp183 ;
6713 struct usb_device *__cil_tmp184 ;
6714 struct device *__cil_tmp185 ;
6715 struct device const *__cil_tmp186 ;
6716 struct usb_serial_driver *__cil_tmp187 ;
6717 char const *__cil_tmp188 ;
6718 struct usb_device *__cil_tmp189 ;
6719 struct device *__cil_tmp190 ;
6720 struct device const *__cil_tmp191 ;
6721 struct usb_serial_driver *__cil_tmp192 ;
6722 char const *__cil_tmp193 ;
6723 struct usb_device *__cil_tmp194 ;
6724 struct device *__cil_tmp195 ;
6725 struct device const *__cil_tmp196 ;
6726 struct usb_serial_driver *__cil_tmp197 ;
6727 char const *__cil_tmp198 ;
6728 void const *__cil_tmp199 ;
6729 unsigned char __cil_tmp200 ;
6730 int __cil_tmp201 ;
6731 struct list_head *__cil_tmp202 ;
6732 struct whiteheat_urb_wrap *__cil_tmp203 ;
6733 struct list_head *__cil_tmp204 ;
6734 unsigned int __cil_tmp205 ;
6735 char *__cil_tmp206 ;
6736 char *__cil_tmp207 ;
6737 void const *__cil_tmp208 ;
6738 void *__cil_tmp209 ;
6739 void const *__cil_tmp210 ;
6740 struct list_head *__cil_tmp211 ;
6741 struct whiteheat_urb_wrap *__cil_tmp212 ;
6742 struct list_head *__cil_tmp213 ;
6743 unsigned int __cil_tmp214 ;
6744 char *__cil_tmp215 ;
6745 char *__cil_tmp216 ;
6746 void const *__cil_tmp217 ;
6747 void *__cil_tmp218 ;
6748 void const *__cil_tmp219 ;
6749 void const *__cil_tmp220 ;
6750 void const *__cil_tmp221 ;
6751 void const *__cil_tmp222 ;
6752
6753 {
6754 {
6755#line 410
6756 command_port = serial->port[4];
6757#line 412
6758 __cil_tmp32 = serial->dev;
6759#line 412
6760 __cil_tmp33 = command_port->bulk_out_endpointAddress;
6761#line 412
6762 __cil_tmp34 = (unsigned int )__cil_tmp33;
6763#line 412
6764 tmp___8 = __create_pipe(__cil_tmp32, __cil_tmp34);
6765#line 412
6766 __cil_tmp35 = 3 << 30;
6767#line 412
6768 __cil_tmp36 = (unsigned int )__cil_tmp35;
6769#line 412
6770 __cil_tmp37 = __cil_tmp36 | tmp___8;
6771#line 412
6772 pipe = (int )__cil_tmp37;
6773#line 414
6774 __cil_tmp38 = (size_t )2;
6775#line 414
6776 tmp___9 = kmalloc(__cil_tmp38, 208U);
6777#line 414
6778 command = (__u8 *)tmp___9;
6779 }
6780#line 415
6781 if (! command) {
6782#line 416
6783 goto no_command_buffer;
6784 } else {
6785
6786 }
6787 {
6788#line 417
6789 __cil_tmp39 = command + 0;
6790#line 417
6791 *__cil_tmp39 = (__u8 )11;
6792#line 418
6793 __cil_tmp40 = command + 1;
6794#line 418
6795 *__cil_tmp40 = (__u8 )0;
6796#line 420
6797 __cil_tmp41 = 19UL + 1UL;
6798#line 420
6799 tmp___10 = kmalloc(__cil_tmp41, 208U);
6800#line 420
6801 result = (__u8 *)tmp___10;
6802 }
6803#line 421
6804 if (! result) {
6805#line 422
6806 goto no_result_buffer;
6807 } else {
6808
6809 }
6810 {
6811#line 428
6812 __cil_tmp42 = serial->dev;
6813#line 428
6814 usb_clear_halt(__cil_tmp42, pipe);
6815#line 429
6816 __cil_tmp43 = serial->dev;
6817#line 429
6818 __cil_tmp44 = (unsigned int )pipe;
6819#line 429
6820 __cil_tmp45 = (void *)command;
6821#line 429
6822 ret = usb_bulk_msg(__cil_tmp43, __cil_tmp44, __cil_tmp45, 2, & alen, 2000);
6823 }
6824#line 431
6825 if (ret) {
6826 {
6827#line 432
6828 __cil_tmp46 = serial->dev;
6829#line 432
6830 __cil_tmp47 = & __cil_tmp46->dev;
6831#line 432
6832 __cil_tmp48 = (struct device const *)__cil_tmp47;
6833#line 432
6834 __cil_tmp49 = serial->type;
6835#line 432
6836 __cil_tmp50 = __cil_tmp49->description;
6837#line 432
6838 dev_err(__cil_tmp48, "%s: Couldn\'t send command [%d]\n", __cil_tmp50, ret);
6839 }
6840#line 434
6841 goto no_firmware;
6842 } else
6843#line 435
6844 if (alen != 2) {
6845 {
6846#line 436
6847 __cil_tmp51 = serial->dev;
6848#line 436
6849 __cil_tmp52 = & __cil_tmp51->dev;
6850#line 436
6851 __cil_tmp53 = (struct device const *)__cil_tmp52;
6852#line 436
6853 __cil_tmp54 = serial->type;
6854#line 436
6855 __cil_tmp55 = __cil_tmp54->description;
6856#line 436
6857 dev_err(__cil_tmp53, "%s: Send command incomplete [%d]\n", __cil_tmp55, alen);
6858 }
6859#line 438
6860 goto no_firmware;
6861 } else {
6862
6863 }
6864 {
6865#line 441
6866 __cil_tmp56 = serial->dev;
6867#line 441
6868 __cil_tmp57 = command_port->bulk_in_endpointAddress;
6869#line 441
6870 __cil_tmp58 = (unsigned int )__cil_tmp57;
6871#line 441
6872 tmp___11 = __create_pipe(__cil_tmp56, __cil_tmp58);
6873#line 441
6874 __cil_tmp59 = 3 << 30;
6875#line 441
6876 __cil_tmp60 = (unsigned int )__cil_tmp59;
6877#line 441
6878 __cil_tmp61 = __cil_tmp60 | tmp___11;
6879#line 441
6880 __cil_tmp62 = __cil_tmp61 | 128U;
6881#line 441
6882 pipe = (int )__cil_tmp62;
6883#line 444
6884 __cil_tmp63 = serial->dev;
6885#line 444
6886 usb_clear_halt(__cil_tmp63, pipe);
6887#line 445
6888 __cil_tmp64 = serial->dev;
6889#line 445
6890 __cil_tmp65 = (unsigned int )pipe;
6891#line 445
6892 __cil_tmp66 = (void *)result;
6893#line 445
6894 __cil_tmp67 = 19UL + 1UL;
6895#line 445
6896 __cil_tmp68 = (int )__cil_tmp67;
6897#line 445
6898 ret = usb_bulk_msg(__cil_tmp64, __cil_tmp65, __cil_tmp66, __cil_tmp68, & alen, 2000);
6899 }
6900#line 447
6901 if (ret) {
6902 {
6903#line 448
6904 __cil_tmp69 = serial->dev;
6905#line 448
6906 __cil_tmp70 = & __cil_tmp69->dev;
6907#line 448
6908 __cil_tmp71 = (struct device const *)__cil_tmp70;
6909#line 448
6910 __cil_tmp72 = serial->type;
6911#line 448
6912 __cil_tmp73 = __cil_tmp72->description;
6913#line 448
6914 dev_err(__cil_tmp71, "%s: Couldn\'t get results [%d]\n", __cil_tmp73, ret);
6915 }
6916#line 450
6917 goto no_firmware;
6918 } else {
6919 {
6920#line 451
6921 __cil_tmp74 = 19UL + 1UL;
6922#line 451
6923 __cil_tmp75 = (unsigned long )alen;
6924#line 451
6925 if (__cil_tmp75 != __cil_tmp74) {
6926 {
6927#line 452
6928 __cil_tmp76 = serial->dev;
6929#line 452
6930 __cil_tmp77 = & __cil_tmp76->dev;
6931#line 452
6932 __cil_tmp78 = (struct device const *)__cil_tmp77;
6933#line 452
6934 __cil_tmp79 = serial->type;
6935#line 452
6936 __cil_tmp80 = __cil_tmp79->description;
6937#line 452
6938 dev_err(__cil_tmp78, "%s: Get results incomplete [%d]\n", __cil_tmp80, alen);
6939 }
6940#line 454
6941 goto no_firmware;
6942 } else {
6943 {
6944#line 455
6945 __cil_tmp81 = command + 0;
6946#line 455
6947 __cil_tmp82 = *__cil_tmp81;
6948#line 455
6949 __cil_tmp83 = (int )__cil_tmp82;
6950#line 455
6951 __cil_tmp84 = result + 0;
6952#line 455
6953 __cil_tmp85 = *__cil_tmp84;
6954#line 455
6955 __cil_tmp86 = (int )__cil_tmp85;
6956#line 455
6957 if (__cil_tmp86 != __cil_tmp83) {
6958 {
6959#line 456
6960 __cil_tmp87 = serial->dev;
6961#line 456
6962 __cil_tmp88 = & __cil_tmp87->dev;
6963#line 456
6964 __cil_tmp89 = (struct device const *)__cil_tmp88;
6965#line 456
6966 __cil_tmp90 = serial->type;
6967#line 456
6968 __cil_tmp91 = __cil_tmp90->description;
6969#line 456
6970 __cil_tmp92 = result + 0;
6971#line 456
6972 __cil_tmp93 = *__cil_tmp92;
6973#line 456
6974 __cil_tmp94 = (int )__cil_tmp93;
6975#line 456
6976 dev_err(__cil_tmp89, "%s: Command failed [%d]\n", __cil_tmp91, __cil_tmp94);
6977 }
6978#line 458
6979 goto no_firmware;
6980 } else {
6981
6982 }
6983 }
6984 }
6985 }
6986 }
6987 {
6988#line 461
6989 __cil_tmp95 = result + 1;
6990#line 461
6991 hw_info = (struct whiteheat_hw_info *)__cil_tmp95;
6992#line 463
6993 __cil_tmp96 = serial->dev;
6994#line 463
6995 __cil_tmp97 = & __cil_tmp96->dev;
6996#line 463
6997 __cil_tmp98 = (struct device const *)__cil_tmp97;
6998#line 463
6999 __cil_tmp99 = serial->type;
7000#line 463
7001 __cil_tmp100 = __cil_tmp99->description;
7002#line 463
7003 __cil_tmp101 = hw_info->sw_major_rev;
7004#line 463
7005 __cil_tmp102 = (int )__cil_tmp101;
7006#line 463
7007 __cil_tmp103 = hw_info->sw_minor_rev;
7008#line 463
7009 __cil_tmp104 = (int )__cil_tmp103;
7010#line 463
7011 _dev_info(__cil_tmp98, "%s: Driver %s: Firmware v%d.%02d\n", __cil_tmp100, "v2.0",
7012 __cil_tmp102, __cil_tmp104);
7013#line 467
7014 i = 0;
7015 }
7016 {
7017#line 467
7018 while (1) {
7019 while_continue: ;
7020
7021 {
7022#line 467
7023 __cil_tmp105 = serial->num_ports;
7024#line 467
7025 __cil_tmp106 = (int )__cil_tmp105;
7026#line 467
7027 if (i < __cil_tmp106) {
7028
7029 } else {
7030#line 467
7031 goto while_break;
7032 }
7033 }
7034 {
7035#line 468
7036 port = serial->port[i];
7037#line 470
7038 tmp___12 = kmalloc(416UL, 208U);
7039#line 470
7040 info = (struct whiteheat_private *)tmp___12;
7041 }
7042 {
7043#line 471
7044 __cil_tmp107 = (void *)0;
7045#line 471
7046 __cil_tmp108 = (unsigned long )__cil_tmp107;
7047#line 471
7048 __cil_tmp109 = (unsigned long )info;
7049#line 471
7050 if (__cil_tmp109 == __cil_tmp108) {
7051 {
7052#line 472
7053 __cil_tmp110 = & port->dev;
7054#line 472
7055 __cil_tmp111 = (struct device const *)__cil_tmp110;
7056#line 472
7057 __cil_tmp112 = serial->type;
7058#line 472
7059 __cil_tmp113 = __cil_tmp112->description;
7060#line 472
7061 dev_err(__cil_tmp111, "%s: Out of memory for port structures\n", __cil_tmp113);
7062 }
7063#line 475
7064 goto no_private;
7065 } else {
7066
7067 }
7068 }
7069 {
7070#line 478
7071 while (1) {
7072 while_continue___0: ;
7073 {
7074#line 478
7075 __cil_tmp114 = & info->lock;
7076#line 478
7077 spinlock_check(__cil_tmp114);
7078 }
7079 {
7080#line 478
7081 while (1) {
7082 while_continue___1: ;
7083 {
7084#line 478
7085 __cil_tmp115 = & info->lock.__annonCompField18.rlock;
7086#line 478
7087 __raw_spin_lock_init(__cil_tmp115, "&(&info->lock)->rlock", & __key___7);
7088 }
7089#line 478
7090 goto while_break___1;
7091 }
7092 while_break___13: ;
7093 }
7094
7095 while_break___1: ;
7096#line 478
7097 goto while_break___0;
7098 }
7099 while_break___12: ;
7100 }
7101
7102 while_break___0: ;
7103 {
7104#line 479
7105 while (1) {
7106 while_continue___2: ;
7107 {
7108#line 479
7109 __cil_tmp116 = & info->deathwarrant;
7110#line 479
7111 __mutex_init(__cil_tmp116, "&info->deathwarrant", & __key___8);
7112 }
7113#line 479
7114 goto while_break___2;
7115 }
7116 while_break___14: ;
7117 }
7118
7119 while_break___2:
7120#line 480
7121 info->flags = (__u8 )0;
7122#line 481
7123 info->mcr = (__u8 )0;
7124 {
7125#line 482
7126 while (1) {
7127 while_continue___3: ;
7128
7129 {
7130#line 482
7131 while (1) {
7132 while_continue___4: ;
7133 {
7134#line 482
7135 __cil_tmp117 = & info->rx_work;
7136#line 482
7137 __init_work(__cil_tmp117, 0);
7138#line 482
7139 __constr_expr_0.counter = 2097664L;
7140#line 482
7141 info->rx_work.data = __constr_expr_0;
7142#line 482
7143 __cil_tmp118 = & info->rx_work.lockdep_map;
7144#line 482
7145 lockdep_init_map(__cil_tmp118, "(&info->rx_work)", & __key___9, 0);
7146#line 482
7147 __cil_tmp119 = & info->rx_work.entry;
7148#line 482
7149 INIT_LIST_HEAD(__cil_tmp119);
7150 }
7151 {
7152#line 482
7153 while (1) {
7154 while_continue___5: ;
7155#line 482
7156 info->rx_work.func = & rx_data_softint;
7157#line 482
7158 goto while_break___5;
7159 }
7160 while_break___17: ;
7161 }
7162
7163 while_break___5: ;
7164#line 482
7165 goto while_break___4;
7166 }
7167 while_break___16: ;
7168 }
7169
7170 while_break___4: ;
7171#line 482
7172 goto while_break___3;
7173 }
7174 while_break___15: ;
7175 }
7176
7177 while_break___3:
7178 {
7179#line 483
7180 info->port = port;
7181#line 485
7182 __cil_tmp120 = & info->rx_urbs_free;
7183#line 485
7184 INIT_LIST_HEAD(__cil_tmp120);
7185#line 486
7186 __cil_tmp121 = & info->rx_urbs_submitted;
7187#line 486
7188 INIT_LIST_HEAD(__cil_tmp121);
7189#line 487
7190 __cil_tmp122 = & info->rx_urb_q;
7191#line 487
7192 INIT_LIST_HEAD(__cil_tmp122);
7193#line 488
7194 __cil_tmp123 = & info->tx_urbs_free;
7195#line 488
7196 INIT_LIST_HEAD(__cil_tmp123);
7197#line 489
7198 __cil_tmp124 = & info->tx_urbs_submitted;
7199#line 489
7200 INIT_LIST_HEAD(__cil_tmp124);
7201#line 491
7202 j = 0;
7203 }
7204 {
7205#line 491
7206 while (1) {
7207 while_continue___6: ;
7208
7209#line 491
7210 if (j < urb_pool_size) {
7211
7212 } else {
7213#line 491
7214 goto while_break___6;
7215 }
7216 {
7217#line 492
7218 urb = usb_alloc_urb(0, 208U);
7219 }
7220#line 493
7221 if (! urb) {
7222 {
7223#line 494
7224 __cil_tmp125 = & port->dev;
7225#line 494
7226 __cil_tmp126 = (struct device const *)__cil_tmp125;
7227#line 494
7228 dev_err(__cil_tmp126, "No free urbs available\n");
7229 }
7230#line 495
7231 goto no_rx_urb;
7232 } else {
7233
7234 }
7235 {
7236#line 497
7237 __cil_tmp127 = port->read_urb;
7238#line 497
7239 __cil_tmp128 = __cil_tmp127->transfer_buffer_length;
7240#line 497
7241 buf_size = (int )__cil_tmp128;
7242#line 498
7243 __cil_tmp129 = (size_t )buf_size;
7244#line 498
7245 urb->transfer_buffer = kmalloc(__cil_tmp129, 208U);
7246 }
7247 {
7248#line 499
7249 __cil_tmp130 = urb->transfer_buffer;
7250#line 499
7251 if (! __cil_tmp130) {
7252 {
7253#line 500
7254 __cil_tmp131 = & port->dev;
7255#line 500
7256 __cil_tmp132 = (struct device const *)__cil_tmp131;
7257#line 500
7258 dev_err(__cil_tmp132, "Couldn\'t allocate urb buffer\n");
7259 }
7260#line 502
7261 goto no_rx_buf;
7262 } else {
7263
7264 }
7265 }
7266 {
7267#line 504
7268 tmp___13 = kmalloc(24UL, 208U);
7269#line 504
7270 wrap = (struct whiteheat_urb_wrap *)tmp___13;
7271 }
7272#line 505
7273 if (! wrap) {
7274 {
7275#line 506
7276 __cil_tmp133 = & port->dev;
7277#line 506
7278 __cil_tmp134 = (struct device const *)__cil_tmp133;
7279#line 506
7280 dev_err(__cil_tmp134, "Couldn\'t allocate urb wrapper\n");
7281 }
7282#line 508
7283 goto no_rx_wrap;
7284 } else {
7285
7286 }
7287 {
7288#line 510
7289 __cil_tmp135 = serial->dev;
7290#line 510
7291 __cil_tmp136 = port->bulk_in_endpointAddress;
7292#line 510
7293 __cil_tmp137 = (unsigned int )__cil_tmp136;
7294#line 510
7295 tmp___14 = __create_pipe(__cil_tmp135, __cil_tmp137);
7296#line 510
7297 __cil_tmp138 = serial->dev;
7298#line 510
7299 __cil_tmp139 = 3 << 30;
7300#line 510
7301 __cil_tmp140 = (unsigned int )__cil_tmp139;
7302#line 510
7303 __cil_tmp141 = __cil_tmp140 | tmp___14;
7304#line 510
7305 __cil_tmp142 = __cil_tmp141 | 128U;
7306#line 510
7307 __cil_tmp143 = urb->transfer_buffer;
7308#line 510
7309 __cil_tmp144 = (void *)port;
7310#line 510
7311 usb_fill_bulk_urb(urb, __cil_tmp138, __cil_tmp142, __cil_tmp143, buf_size, & whiteheat_read_callback,
7312 __cil_tmp144);
7313#line 515
7314 wrap->urb = urb;
7315#line 516
7316 __cil_tmp145 = & wrap->list;
7317#line 516
7318 __cil_tmp146 = & info->rx_urbs_free;
7319#line 516
7320 list_add(__cil_tmp145, __cil_tmp146);
7321#line 518
7322 urb = usb_alloc_urb(0, 208U);
7323 }
7324#line 519
7325 if (! urb) {
7326 {
7327#line 520
7328 __cil_tmp147 = & port->dev;
7329#line 520
7330 __cil_tmp148 = (struct device const *)__cil_tmp147;
7331#line 520
7332 dev_err(__cil_tmp148, "No free urbs available\n");
7333 }
7334#line 521
7335 goto no_tx_urb;
7336 } else {
7337
7338 }
7339 {
7340#line 523
7341 __cil_tmp149 = port->write_urb;
7342#line 523
7343 __cil_tmp150 = __cil_tmp149->transfer_buffer_length;
7344#line 523
7345 buf_size = (int )__cil_tmp150;
7346#line 524
7347 __cil_tmp151 = (size_t )buf_size;
7348#line 524
7349 urb->transfer_buffer = kmalloc(__cil_tmp151, 208U);
7350 }
7351 {
7352#line 525
7353 __cil_tmp152 = urb->transfer_buffer;
7354#line 525
7355 if (! __cil_tmp152) {
7356 {
7357#line 526
7358 __cil_tmp153 = & port->dev;
7359#line 526
7360 __cil_tmp154 = (struct device const *)__cil_tmp153;
7361#line 526
7362 dev_err(__cil_tmp154, "Couldn\'t allocate urb buffer\n");
7363 }
7364#line 528
7365 goto no_tx_buf;
7366 } else {
7367
7368 }
7369 }
7370 {
7371#line 530
7372 tmp___15 = kmalloc(24UL, 208U);
7373#line 530
7374 wrap = (struct whiteheat_urb_wrap *)tmp___15;
7375 }
7376#line 531
7377 if (! wrap) {
7378 {
7379#line 532
7380 __cil_tmp155 = & port->dev;
7381#line 532
7382 __cil_tmp156 = (struct device const *)__cil_tmp155;
7383#line 532
7384 dev_err(__cil_tmp156, "Couldn\'t allocate urb wrapper\n");
7385 }
7386#line 534
7387 goto no_tx_wrap;
7388 } else {
7389
7390 }
7391 {
7392#line 536
7393 __cil_tmp157 = serial->dev;
7394#line 536
7395 __cil_tmp158 = port->bulk_out_endpointAddress;
7396#line 536
7397 __cil_tmp159 = (unsigned int )__cil_tmp158;
7398#line 536
7399 tmp___16 = __create_pipe(__cil_tmp157, __cil_tmp159);
7400#line 536
7401 __cil_tmp160 = serial->dev;
7402#line 536
7403 __cil_tmp161 = 3 << 30;
7404#line 536
7405 __cil_tmp162 = (unsigned int )__cil_tmp161;
7406#line 536
7407 __cil_tmp163 = __cil_tmp162 | tmp___16;
7408#line 536
7409 __cil_tmp164 = urb->transfer_buffer;
7410#line 536
7411 __cil_tmp165 = (void *)port;
7412#line 536
7413 usb_fill_bulk_urb(urb, __cil_tmp160, __cil_tmp163, __cil_tmp164, buf_size, & whiteheat_write_callback,
7414 __cil_tmp165);
7415#line 541
7416 wrap->urb = urb;
7417#line 542
7418 __cil_tmp166 = & wrap->list;
7419#line 542
7420 __cil_tmp167 = & info->tx_urbs_free;
7421#line 542
7422 list_add(__cil_tmp166, __cil_tmp167);
7423#line 491
7424 j = j + 1;
7425 }
7426 }
7427 while_break___18: ;
7428 }
7429
7430 while_break___6:
7431 {
7432#line 545
7433 __cil_tmp168 = (void *)info;
7434#line 545
7435 usb_set_serial_port_data(port, __cil_tmp168);
7436#line 467
7437 i = i + 1;
7438 }
7439 }
7440 while_break___11: ;
7441 }
7442
7443 while_break:
7444 {
7445#line 548
7446 tmp___17 = kmalloc(328UL, 208U);
7447#line 548
7448 command_info = (struct whiteheat_command_private *)tmp___17;
7449 }
7450 {
7451#line 550
7452 __cil_tmp169 = (void *)0;
7453#line 550
7454 __cil_tmp170 = (unsigned long )__cil_tmp169;
7455#line 550
7456 __cil_tmp171 = (unsigned long )command_info;
7457#line 550
7458 if (__cil_tmp171 == __cil_tmp170) {
7459 {
7460#line 551
7461 __cil_tmp172 = serial->dev;
7462#line 551
7463 __cil_tmp173 = & __cil_tmp172->dev;
7464#line 551
7465 __cil_tmp174 = (struct device const *)__cil_tmp173;
7466#line 551
7467 __cil_tmp175 = serial->type;
7468#line 551
7469 __cil_tmp176 = __cil_tmp175->description;
7470#line 551
7471 dev_err(__cil_tmp174, "%s: Out of memory for port structures\n", __cil_tmp176);
7472 }
7473#line 554
7474 goto no_command_private;
7475 } else {
7476
7477 }
7478 }
7479 {
7480#line 557
7481 while (1) {
7482 while_continue___7: ;
7483 {
7484#line 557
7485 __cil_tmp177 = & command_info->mutex;
7486#line 557
7487 __mutex_init(__cil_tmp177, "&command_info->mutex", & __key___10);
7488 }
7489#line 557
7490 goto while_break___7;
7491 }
7492 while_break___19: ;
7493 }
7494
7495 while_break___7:
7496#line 558
7497 command_info->port_running = (__u8 )0;
7498 {
7499#line 559
7500 while (1) {
7501 while_continue___8: ;
7502 {
7503#line 559
7504 __cil_tmp178 = & command_info->wait_command;
7505#line 559
7506 __init_waitqueue_head(__cil_tmp178, & __key___11);
7507 }
7508#line 559
7509 goto while_break___8;
7510 }
7511 while_break___20: ;
7512 }
7513
7514 while_break___8:
7515 {
7516#line 560
7517 __cil_tmp179 = (void *)command_info;
7518#line 560
7519 usb_set_serial_port_data(command_port, __cil_tmp179);
7520#line 561
7521 __cil_tmp180 = command_port->write_urb;
7522#line 561
7523 __cil_tmp180->complete = & command_port_write_callback;
7524#line 562
7525 __cil_tmp181 = command_port->read_urb;
7526#line 562
7527 __cil_tmp181->complete = & command_port_read_callback;
7528#line 563
7529 __cil_tmp182 = (void const *)result;
7530#line 563
7531 kfree(__cil_tmp182);
7532#line 564
7533 __cil_tmp183 = (void const *)command;
7534#line 564
7535 kfree(__cil_tmp183);
7536 }
7537#line 566
7538 return (0);
7539 no_firmware:
7540 {
7541#line 570
7542 __cil_tmp184 = serial->dev;
7543#line 570
7544 __cil_tmp185 = & __cil_tmp184->dev;
7545#line 570
7546 __cil_tmp186 = (struct device const *)__cil_tmp185;
7547#line 570
7548 __cil_tmp187 = serial->type;
7549#line 570
7550 __cil_tmp188 = __cil_tmp187->description;
7551#line 570
7552 dev_err(__cil_tmp186, "%s: Unable to retrieve firmware version, try replugging\n",
7553 __cil_tmp188);
7554#line 573
7555 __cil_tmp189 = serial->dev;
7556#line 573
7557 __cil_tmp190 = & __cil_tmp189->dev;
7558#line 573
7559 __cil_tmp191 = (struct device const *)__cil_tmp190;
7560#line 573
7561 __cil_tmp192 = serial->type;
7562#line 573
7563 __cil_tmp193 = __cil_tmp192->description;
7564#line 573
7565 dev_err(__cil_tmp191, "%s: If the firmware is not running (status led not blinking)\n",
7566 __cil_tmp193);
7567#line 576
7568 __cil_tmp194 = serial->dev;
7569#line 576
7570 __cil_tmp195 = & __cil_tmp194->dev;
7571#line 576
7572 __cil_tmp196 = (struct device const *)__cil_tmp195;
7573#line 576
7574 __cil_tmp197 = serial->type;
7575#line 576
7576 __cil_tmp198 = __cil_tmp197->description;
7577#line 576
7578 dev_err(__cil_tmp196, "%s: please contact support@connecttech.com\n", __cil_tmp198);
7579#line 579
7580 __cil_tmp199 = (void const *)result;
7581#line 579
7582 kfree(__cil_tmp199);
7583 }
7584#line 580
7585 return (-19);
7586 no_command_private:
7587#line 583
7588 __cil_tmp200 = serial->num_ports;
7589#line 583
7590 __cil_tmp201 = (int )__cil_tmp200;
7591#line 583
7592 i = __cil_tmp201 - 1;
7593 {
7594#line 583
7595 while (1) {
7596 while_continue___9: ;
7597
7598#line 583
7599 if (i >= 0) {
7600
7601 } else {
7602#line 583
7603 goto while_break___9;
7604 }
7605 {
7606#line 584
7607 port = serial->port[i];
7608#line 585
7609 tmp___18 = usb_get_serial_port_data(port);
7610#line 585
7611 info = (struct whiteheat_private *)tmp___18;
7612#line 586
7613 j = urb_pool_size - 1;
7614 }
7615 {
7616#line 586
7617 while (1) {
7618 while_continue___10: ;
7619
7620#line 586
7621 if (j >= 0) {
7622
7623 } else {
7624#line 586
7625 goto while_break___10;
7626 }
7627 {
7628#line 587
7629 __cil_tmp202 = & info->tx_urbs_free;
7630#line 587
7631 tmp___7 = list_first(__cil_tmp202);
7632#line 588
7633 list_del(tmp___7);
7634#line 589
7635 __mptr = (struct list_head const *)tmp___7;
7636#line 589
7637 __cil_tmp203 = (struct whiteheat_urb_wrap *)0;
7638#line 589
7639 __cil_tmp204 = & __cil_tmp203->list;
7640#line 589
7641 __cil_tmp205 = (unsigned int )__cil_tmp204;
7642#line 589
7643 __cil_tmp206 = (char *)__mptr;
7644#line 589
7645 __cil_tmp207 = __cil_tmp206 - __cil_tmp205;
7646#line 589
7647 wrap = (struct whiteheat_urb_wrap *)__cil_tmp207;
7648#line 590
7649 urb = wrap->urb;
7650#line 591
7651 __cil_tmp208 = (void const *)wrap;
7652#line 591
7653 kfree(__cil_tmp208);
7654 }
7655 no_tx_wrap:
7656 {
7657#line 593
7658 __cil_tmp209 = urb->transfer_buffer;
7659#line 593
7660 __cil_tmp210 = (void const *)__cil_tmp209;
7661#line 593
7662 kfree(__cil_tmp210);
7663 }
7664 no_tx_buf:
7665 {
7666#line 595
7667 usb_free_urb(urb);
7668 }
7669 no_tx_urb:
7670 {
7671#line 597
7672 __cil_tmp211 = & info->rx_urbs_free;
7673#line 597
7674 tmp___7 = list_first(__cil_tmp211);
7675#line 598
7676 list_del(tmp___7);
7677#line 599
7678 __mptr___0 = (struct list_head const *)tmp___7;
7679#line 599
7680 __cil_tmp212 = (struct whiteheat_urb_wrap *)0;
7681#line 599
7682 __cil_tmp213 = & __cil_tmp212->list;
7683#line 599
7684 __cil_tmp214 = (unsigned int )__cil_tmp213;
7685#line 599
7686 __cil_tmp215 = (char *)__mptr___0;
7687#line 599
7688 __cil_tmp216 = __cil_tmp215 - __cil_tmp214;
7689#line 599
7690 wrap = (struct whiteheat_urb_wrap *)__cil_tmp216;
7691#line 600
7692 urb = wrap->urb;
7693#line 601
7694 __cil_tmp217 = (void const *)wrap;
7695#line 601
7696 kfree(__cil_tmp217);
7697 }
7698 no_rx_wrap:
7699 {
7700#line 603
7701 __cil_tmp218 = urb->transfer_buffer;
7702#line 603
7703 __cil_tmp219 = (void const *)__cil_tmp218;
7704#line 603
7705 kfree(__cil_tmp219);
7706 }
7707 no_rx_buf:
7708 {
7709#line 605
7710 usb_free_urb(urb);
7711 }
7712 no_rx_urb:
7713#line 586
7714 j = j - 1;
7715 }
7716 while_break___22: ;
7717 }
7718
7719 while_break___10:
7720 {
7721#line 609
7722 __cil_tmp220 = (void const *)info;
7723#line 609
7724 kfree(__cil_tmp220);
7725 }
7726 no_private:
7727#line 583
7728 i = i - 1;
7729 }
7730 while_break___21: ;
7731 }
7732
7733 while_break___9:
7734 {
7735#line 613
7736 __cil_tmp221 = (void const *)result;
7737#line 613
7738 kfree(__cil_tmp221);
7739 }
7740 no_result_buffer:
7741 {
7742#line 615
7743 __cil_tmp222 = (void const *)command;
7744#line 615
7745 kfree(__cil_tmp222);
7746 }
7747 no_command_buffer:
7748#line 617
7749 return (-12);
7750}
7751}
7752#line 621 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
7753static void whiteheat_release(struct usb_serial *serial )
7754{ struct usb_serial_port *command_port ;
7755 struct usb_serial_port *port ;
7756 struct whiteheat_private *info ;
7757 struct whiteheat_urb_wrap *wrap ;
7758 struct urb *urb ;
7759 struct list_head *tmp___7 ;
7760 struct list_head *tmp2 ;
7761 int i ;
7762 void *tmp___8 ;
7763 void *tmp___9 ;
7764 struct list_head const *__mptr ;
7765 struct list_head const *__mptr___0 ;
7766 void const *__cil_tmp14 ;
7767 unsigned char __cil_tmp15 ;
7768 int __cil_tmp16 ;
7769 struct list_head *__cil_tmp17 ;
7770 unsigned long __cil_tmp18 ;
7771 unsigned long __cil_tmp19 ;
7772 struct whiteheat_urb_wrap *__cil_tmp20 ;
7773 struct list_head *__cil_tmp21 ;
7774 unsigned int __cil_tmp22 ;
7775 char *__cil_tmp23 ;
7776 char *__cil_tmp24 ;
7777 void const *__cil_tmp25 ;
7778 void *__cil_tmp26 ;
7779 void const *__cil_tmp27 ;
7780 struct list_head *__cil_tmp28 ;
7781 unsigned long __cil_tmp29 ;
7782 unsigned long __cil_tmp30 ;
7783 struct whiteheat_urb_wrap *__cil_tmp31 ;
7784 struct list_head *__cil_tmp32 ;
7785 unsigned int __cil_tmp33 ;
7786 char *__cil_tmp34 ;
7787 char *__cil_tmp35 ;
7788 void const *__cil_tmp36 ;
7789 void *__cil_tmp37 ;
7790 void const *__cil_tmp38 ;
7791 void const *__cil_tmp39 ;
7792
7793 {
7794 {
7795#line 632
7796 while (1) {
7797 while_continue: ;
7798
7799#line 632
7800 if (debug) {
7801 {
7802#line 632
7803 printk("<7>%s: %s\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
7804 "whiteheat_release");
7805 }
7806 } else {
7807
7808 }
7809#line 632
7810 goto while_break;
7811 }
7812 while_break___3: ;
7813 }
7814
7815 while_break:
7816 {
7817#line 635
7818 command_port = serial->port[4];
7819#line 636
7820 tmp___8 = usb_get_serial_port_data(command_port);
7821#line 636
7822 __cil_tmp14 = (void const *)tmp___8;
7823#line 636
7824 kfree(__cil_tmp14);
7825#line 638
7826 i = 0;
7827 }
7828 {
7829#line 638
7830 while (1) {
7831 while_continue___0: ;
7832
7833 {
7834#line 638
7835 __cil_tmp15 = serial->num_ports;
7836#line 638
7837 __cil_tmp16 = (int )__cil_tmp15;
7838#line 638
7839 if (i < __cil_tmp16) {
7840
7841 } else {
7842#line 638
7843 goto while_break___0;
7844 }
7845 }
7846 {
7847#line 639
7848 port = serial->port[i];
7849#line 640
7850 tmp___9 = usb_get_serial_port_data(port);
7851#line 640
7852 info = (struct whiteheat_private *)tmp___9;
7853#line 641
7854 tmp___7 = info->rx_urbs_free.next;
7855#line 641
7856 tmp2 = tmp___7->next;
7857 }
7858 {
7859#line 641
7860 while (1) {
7861 while_continue___1: ;
7862
7863 {
7864#line 641
7865 __cil_tmp17 = & info->rx_urbs_free;
7866#line 641
7867 __cil_tmp18 = (unsigned long )__cil_tmp17;
7868#line 641
7869 __cil_tmp19 = (unsigned long )tmp___7;
7870#line 641
7871 if (__cil_tmp19 != __cil_tmp18) {
7872
7873 } else {
7874#line 641
7875 goto while_break___1;
7876 }
7877 }
7878 {
7879#line 642
7880 list_del(tmp___7);
7881#line 643
7882 __mptr = (struct list_head const *)tmp___7;
7883#line 643
7884 __cil_tmp20 = (struct whiteheat_urb_wrap *)0;
7885#line 643
7886 __cil_tmp21 = & __cil_tmp20->list;
7887#line 643
7888 __cil_tmp22 = (unsigned int )__cil_tmp21;
7889#line 643
7890 __cil_tmp23 = (char *)__mptr;
7891#line 643
7892 __cil_tmp24 = __cil_tmp23 - __cil_tmp22;
7893#line 643
7894 wrap = (struct whiteheat_urb_wrap *)__cil_tmp24;
7895#line 644
7896 urb = wrap->urb;
7897#line 645
7898 __cil_tmp25 = (void const *)wrap;
7899#line 645
7900 kfree(__cil_tmp25);
7901#line 646
7902 __cil_tmp26 = urb->transfer_buffer;
7903#line 646
7904 __cil_tmp27 = (void const *)__cil_tmp26;
7905#line 646
7906 kfree(__cil_tmp27);
7907#line 647
7908 usb_free_urb(urb);
7909#line 641
7910 tmp___7 = tmp2;
7911#line 641
7912 tmp2 = tmp___7->next;
7913 }
7914 }
7915 while_break___5: ;
7916 }
7917
7918 while_break___1:
7919#line 649
7920 tmp___7 = info->tx_urbs_free.next;
7921#line 649
7922 tmp2 = tmp___7->next;
7923 {
7924#line 649
7925 while (1) {
7926 while_continue___2: ;
7927
7928 {
7929#line 649
7930 __cil_tmp28 = & info->tx_urbs_free;
7931#line 649
7932 __cil_tmp29 = (unsigned long )__cil_tmp28;
7933#line 649
7934 __cil_tmp30 = (unsigned long )tmp___7;
7935#line 649
7936 if (__cil_tmp30 != __cil_tmp29) {
7937
7938 } else {
7939#line 649
7940 goto while_break___2;
7941 }
7942 }
7943 {
7944#line 650
7945 list_del(tmp___7);
7946#line 651
7947 __mptr___0 = (struct list_head const *)tmp___7;
7948#line 651
7949 __cil_tmp31 = (struct whiteheat_urb_wrap *)0;
7950#line 651
7951 __cil_tmp32 = & __cil_tmp31->list;
7952#line 651
7953 __cil_tmp33 = (unsigned int )__cil_tmp32;
7954#line 651
7955 __cil_tmp34 = (char *)__mptr___0;
7956#line 651
7957 __cil_tmp35 = __cil_tmp34 - __cil_tmp33;
7958#line 651
7959 wrap = (struct whiteheat_urb_wrap *)__cil_tmp35;
7960#line 652
7961 urb = wrap->urb;
7962#line 653
7963 __cil_tmp36 = (void const *)wrap;
7964#line 653
7965 kfree(__cil_tmp36);
7966#line 654
7967 __cil_tmp37 = urb->transfer_buffer;
7968#line 654
7969 __cil_tmp38 = (void const *)__cil_tmp37;
7970#line 654
7971 kfree(__cil_tmp38);
7972#line 655
7973 usb_free_urb(urb);
7974#line 649
7975 tmp___7 = tmp2;
7976#line 649
7977 tmp2 = tmp___7->next;
7978 }
7979 }
7980 while_break___6: ;
7981 }
7982
7983 while_break___2:
7984 {
7985#line 657
7986 __cil_tmp39 = (void const *)info;
7987#line 657
7988 kfree(__cil_tmp39);
7989#line 638
7990 i = i + 1;
7991 }
7992 }
7993 while_break___4: ;
7994 }
7995
7996 while_break___0: ;
7997#line 659
7998 return;
7999}
8000}
8001#line 661 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
8002static int whiteheat_open(struct tty_struct *tty , struct usb_serial_port *port )
8003{ int retval ;
8004 unsigned char __cil_tmp4 ;
8005 int __cil_tmp5 ;
8006 struct usb_serial *__cil_tmp6 ;
8007 struct usb_serial *__cil_tmp7 ;
8008 __u8 __cil_tmp8 ;
8009 struct usb_serial *__cil_tmp9 ;
8010 struct usb_serial *__cil_tmp10 ;
8011 struct usb_device *__cil_tmp11 ;
8012 struct urb *__cil_tmp12 ;
8013 unsigned int __cil_tmp13 ;
8014 int __cil_tmp14 ;
8015 struct usb_serial *__cil_tmp15 ;
8016 struct usb_device *__cil_tmp16 ;
8017 struct urb *__cil_tmp17 ;
8018 unsigned int __cil_tmp18 ;
8019 int __cil_tmp19 ;
8020 struct device *__cil_tmp20 ;
8021 struct device const *__cil_tmp21 ;
8022 struct usb_serial *__cil_tmp22 ;
8023
8024 {
8025#line 663
8026 retval = 0;
8027 {
8028#line 665
8029 while (1) {
8030 while_continue: ;
8031
8032#line 665
8033 if (debug) {
8034 {
8035#line 665
8036 __cil_tmp4 = port->number;
8037#line 665
8038 __cil_tmp5 = (int )__cil_tmp4;
8039#line 665
8040 printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
8041 "whiteheat_open", __cil_tmp5);
8042 }
8043 } else {
8044
8045 }
8046#line 665
8047 goto while_break;
8048 }
8049 while_break___1: ;
8050 }
8051
8052 while_break:
8053 {
8054#line 667
8055 __cil_tmp6 = port->serial;
8056#line 667
8057 retval = start_command_port(__cil_tmp6);
8058 }
8059#line 668
8060 if (retval) {
8061#line 669
8062 goto exit;
8063 } else {
8064
8065 }
8066#line 671
8067 if (tty) {
8068#line 672
8069 tty->low_latency = (unsigned char)1;
8070 } else {
8071
8072 }
8073 {
8074#line 675
8075 retval = firm_open(port);
8076 }
8077#line 676
8078 if (retval) {
8079 {
8080#line 677
8081 __cil_tmp7 = port->serial;
8082#line 677
8083 stop_command_port(__cil_tmp7);
8084 }
8085#line 678
8086 goto exit;
8087 } else {
8088
8089 }
8090 {
8091#line 681
8092 __cil_tmp8 = (__u8 )3;
8093#line 681
8094 retval = firm_purge(port, __cil_tmp8);
8095 }
8096#line 682
8097 if (retval) {
8098 {
8099#line 683
8100 firm_close(port);
8101#line 684
8102 __cil_tmp9 = port->serial;
8103#line 684
8104 stop_command_port(__cil_tmp9);
8105 }
8106#line 685
8107 goto exit;
8108 } else {
8109
8110 }
8111#line 688
8112 if (tty) {
8113 {
8114#line 689
8115 firm_setup_port(tty);
8116 }
8117 } else {
8118
8119 }
8120 {
8121#line 692
8122 __cil_tmp10 = port->serial;
8123#line 692
8124 __cil_tmp11 = __cil_tmp10->dev;
8125#line 692
8126 __cil_tmp12 = port->read_urb;
8127#line 692
8128 __cil_tmp13 = __cil_tmp12->pipe;
8129#line 692
8130 __cil_tmp14 = (int )__cil_tmp13;
8131#line 692
8132 usb_clear_halt(__cil_tmp11, __cil_tmp14);
8133#line 693
8134 __cil_tmp15 = port->serial;
8135#line 693
8136 __cil_tmp16 = __cil_tmp15->dev;
8137#line 693
8138 __cil_tmp17 = port->write_urb;
8139#line 693
8140 __cil_tmp18 = __cil_tmp17->pipe;
8141#line 693
8142 __cil_tmp19 = (int )__cil_tmp18;
8143#line 693
8144 usb_clear_halt(__cil_tmp16, __cil_tmp19);
8145#line 696
8146 retval = start_port_read(port);
8147 }
8148#line 697
8149 if (retval) {
8150 {
8151#line 698
8152 __cil_tmp20 = & port->dev;
8153#line 698
8154 __cil_tmp21 = (struct device const *)__cil_tmp20;
8155#line 698
8156 dev_err(__cil_tmp21, "%s - failed submitting read urb, error %d\n", "whiteheat_open",
8157 retval);
8158#line 701
8159 firm_close(port);
8160#line 702
8161 __cil_tmp22 = port->serial;
8162#line 702
8163 stop_command_port(__cil_tmp22);
8164 }
8165#line 703
8166 goto exit;
8167 } else {
8168
8169 }
8170 exit:
8171 {
8172#line 707
8173 while (1) {
8174 while_continue___0: ;
8175
8176#line 707
8177 if (debug) {
8178 {
8179#line 707
8180 printk("<7>%s: %s - exit, retval = %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
8181 "whiteheat_open", retval);
8182 }
8183 } else {
8184
8185 }
8186#line 707
8187 goto while_break___0;
8188 }
8189 while_break___2: ;
8190 }
8191
8192 while_break___0: ;
8193#line 708
8194 return (retval);
8195}
8196}
8197#line 712 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
8198static void whiteheat_close(struct usb_serial_port *port )
8199{ struct whiteheat_private *info ;
8200 void *tmp___7 ;
8201 struct whiteheat_urb_wrap *wrap ;
8202 struct urb *urb ;
8203 struct list_head *tmp___8 ;
8204 struct list_head *tmp2 ;
8205 struct list_head const *__mptr ;
8206 struct list_head const *__mptr___0 ;
8207 unsigned char __cil_tmp10 ;
8208 int __cil_tmp11 ;
8209 struct mutex *__cil_tmp12 ;
8210 spinlock_t *__cil_tmp13 ;
8211 struct list_head *__cil_tmp14 ;
8212 unsigned long __cil_tmp15 ;
8213 unsigned long __cil_tmp16 ;
8214 struct whiteheat_urb_wrap *__cil_tmp17 ;
8215 struct list_head *__cil_tmp18 ;
8216 unsigned int __cil_tmp19 ;
8217 char *__cil_tmp20 ;
8218 char *__cil_tmp21 ;
8219 spinlock_t *__cil_tmp22 ;
8220 spinlock_t *__cil_tmp23 ;
8221 struct list_head *__cil_tmp24 ;
8222 struct list_head *__cil_tmp25 ;
8223 unsigned long __cil_tmp26 ;
8224 unsigned long __cil_tmp27 ;
8225 struct list_head *__cil_tmp28 ;
8226 struct list_head *__cil_tmp29 ;
8227 unsigned long __cil_tmp30 ;
8228 unsigned long __cil_tmp31 ;
8229 struct whiteheat_urb_wrap *__cil_tmp32 ;
8230 struct list_head *__cil_tmp33 ;
8231 unsigned int __cil_tmp34 ;
8232 char *__cil_tmp35 ;
8233 char *__cil_tmp36 ;
8234 spinlock_t *__cil_tmp37 ;
8235 spinlock_t *__cil_tmp38 ;
8236 struct list_head *__cil_tmp39 ;
8237 spinlock_t *__cil_tmp40 ;
8238 struct mutex *__cil_tmp41 ;
8239 struct usb_serial *__cil_tmp42 ;
8240
8241 {
8242 {
8243#line 714
8244 tmp___7 = usb_get_serial_port_data(port);
8245#line 714
8246 info = (struct whiteheat_private *)tmp___7;
8247 }
8248 {
8249#line 720
8250 while (1) {
8251 while_continue: ;
8252
8253#line 720
8254 if (debug) {
8255 {
8256#line 720
8257 __cil_tmp10 = port->number;
8258#line 720
8259 __cil_tmp11 = (int )__cil_tmp10;
8260#line 720
8261 printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
8262 "whiteheat_close", __cil_tmp11);
8263 }
8264 } else {
8265
8266 }
8267#line 720
8268 goto while_break;
8269 }
8270 while_break___3: ;
8271 }
8272
8273 while_break:
8274 {
8275#line 722
8276 firm_report_tx_done(port);
8277#line 723
8278 firm_close(port);
8279#line 726
8280 __cil_tmp12 = & info->deathwarrant;
8281#line 726
8282 mutex_lock_nested(__cil_tmp12, 0U);
8283#line 727
8284 __cil_tmp13 = & info->lock;
8285#line 727
8286 spin_lock_irq(__cil_tmp13);
8287#line 728
8288 tmp___8 = info->rx_urbs_submitted.next;
8289#line 728
8290 tmp2 = tmp___8->next;
8291 }
8292 {
8293#line 728
8294 while (1) {
8295 while_continue___0: ;
8296
8297 {
8298#line 728
8299 __cil_tmp14 = & info->rx_urbs_submitted;
8300#line 728
8301 __cil_tmp15 = (unsigned long )__cil_tmp14;
8302#line 728
8303 __cil_tmp16 = (unsigned long )tmp___8;
8304#line 728
8305 if (__cil_tmp16 != __cil_tmp15) {
8306
8307 } else {
8308#line 728
8309 goto while_break___0;
8310 }
8311 }
8312 {
8313#line 729
8314 __mptr = (struct list_head const *)tmp___8;
8315#line 729
8316 __cil_tmp17 = (struct whiteheat_urb_wrap *)0;
8317#line 729
8318 __cil_tmp18 = & __cil_tmp17->list;
8319#line 729
8320 __cil_tmp19 = (unsigned int )__cil_tmp18;
8321#line 729
8322 __cil_tmp20 = (char *)__mptr;
8323#line 729
8324 __cil_tmp21 = __cil_tmp20 - __cil_tmp19;
8325#line 729
8326 wrap = (struct whiteheat_urb_wrap *)__cil_tmp21;
8327#line 730
8328 urb = wrap->urb;
8329#line 731
8330 list_del(tmp___8);
8331#line 732
8332 __cil_tmp22 = & info->lock;
8333#line 732
8334 spin_unlock_irq(__cil_tmp22);
8335#line 733
8336 usb_kill_urb(urb);
8337#line 734
8338 __cil_tmp23 = & info->lock;
8339#line 734
8340 spin_lock_irq(__cil_tmp23);
8341#line 735
8342 __cil_tmp24 = & info->rx_urbs_free;
8343#line 735
8344 list_add(tmp___8, __cil_tmp24);
8345#line 728
8346 tmp___8 = tmp2;
8347#line 728
8348 tmp2 = tmp___8->next;
8349 }
8350 }
8351 while_break___4: ;
8352 }
8353
8354 while_break___0:
8355#line 737
8356 tmp___8 = info->rx_urb_q.next;
8357#line 737
8358 tmp2 = tmp___8->next;
8359 {
8360#line 737
8361 while (1) {
8362 while_continue___1: ;
8363
8364 {
8365#line 737
8366 __cil_tmp25 = & info->rx_urb_q;
8367#line 737
8368 __cil_tmp26 = (unsigned long )__cil_tmp25;
8369#line 737
8370 __cil_tmp27 = (unsigned long )tmp___8;
8371#line 737
8372 if (__cil_tmp27 != __cil_tmp26) {
8373
8374 } else {
8375#line 737
8376 goto while_break___1;
8377 }
8378 }
8379 {
8380#line 738
8381 __cil_tmp28 = & info->rx_urbs_free;
8382#line 738
8383 list_move(tmp___8, __cil_tmp28);
8384#line 737
8385 tmp___8 = tmp2;
8386#line 737
8387 tmp2 = tmp___8->next;
8388 }
8389 }
8390 while_break___5: ;
8391 }
8392
8393 while_break___1:
8394#line 739
8395 tmp___8 = info->tx_urbs_submitted.next;
8396#line 739
8397 tmp2 = tmp___8->next;
8398 {
8399#line 739
8400 while (1) {
8401 while_continue___2: ;
8402
8403 {
8404#line 739
8405 __cil_tmp29 = & info->tx_urbs_submitted;
8406#line 739
8407 __cil_tmp30 = (unsigned long )__cil_tmp29;
8408#line 739
8409 __cil_tmp31 = (unsigned long )tmp___8;
8410#line 739
8411 if (__cil_tmp31 != __cil_tmp30) {
8412
8413 } else {
8414#line 739
8415 goto while_break___2;
8416 }
8417 }
8418 {
8419#line 740
8420 __mptr___0 = (struct list_head const *)tmp___8;
8421#line 740
8422 __cil_tmp32 = (struct whiteheat_urb_wrap *)0;
8423#line 740
8424 __cil_tmp33 = & __cil_tmp32->list;
8425#line 740
8426 __cil_tmp34 = (unsigned int )__cil_tmp33;
8427#line 740
8428 __cil_tmp35 = (char *)__mptr___0;
8429#line 740
8430 __cil_tmp36 = __cil_tmp35 - __cil_tmp34;
8431#line 740
8432 wrap = (struct whiteheat_urb_wrap *)__cil_tmp36;
8433#line 741
8434 urb = wrap->urb;
8435#line 742
8436 list_del(tmp___8);
8437#line 743
8438 __cil_tmp37 = & info->lock;
8439#line 743
8440 spin_unlock_irq(__cil_tmp37);
8441#line 744
8442 usb_kill_urb(urb);
8443#line 745
8444 __cil_tmp38 = & info->lock;
8445#line 745
8446 spin_lock_irq(__cil_tmp38);
8447#line 746
8448 __cil_tmp39 = & info->tx_urbs_free;
8449#line 746
8450 list_add(tmp___8, __cil_tmp39);
8451#line 739
8452 tmp___8 = tmp2;
8453#line 739
8454 tmp2 = tmp___8->next;
8455 }
8456 }
8457 while_break___6: ;
8458 }
8459
8460 while_break___2:
8461 {
8462#line 748
8463 __cil_tmp40 = & info->lock;
8464#line 748
8465 spin_unlock_irq(__cil_tmp40);
8466#line 749
8467 __cil_tmp41 = & info->deathwarrant;
8468#line 749
8469 mutex_unlock(__cil_tmp41);
8470#line 750
8471 __cil_tmp42 = port->serial;
8472#line 750
8473 stop_command_port(__cil_tmp42);
8474 }
8475#line 751
8476 return;
8477}
8478}
8479#line 754 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
8480static int whiteheat_write(struct tty_struct *tty , struct usb_serial_port *port ,
8481 unsigned char const *buf , int count )
8482{ struct usb_serial *serial ;
8483 struct whiteheat_private *info ;
8484 void *tmp___7 ;
8485 struct whiteheat_urb_wrap *wrap ;
8486 struct urb *urb ;
8487 int result ;
8488 int bytes ;
8489 int sent ;
8490 unsigned long flags ;
8491 struct list_head *tmp___8 ;
8492 raw_spinlock_t *tmp___9 ;
8493 int tmp___10 ;
8494 struct list_head const *__mptr ;
8495 size_t __len ;
8496 void *__ret ;
8497 raw_spinlock_t *tmp___11 ;
8498 raw_spinlock_t *tmp___12 ;
8499 unsigned char __cil_tmp22 ;
8500 int __cil_tmp23 ;
8501 spinlock_t *__cil_tmp24 ;
8502 struct list_head *__cil_tmp25 ;
8503 struct list_head const *__cil_tmp26 ;
8504 spinlock_t *__cil_tmp27 ;
8505 struct list_head *__cil_tmp28 ;
8506 spinlock_t *__cil_tmp29 ;
8507 struct whiteheat_urb_wrap *__cil_tmp30 ;
8508 struct list_head *__cil_tmp31 ;
8509 unsigned int __cil_tmp32 ;
8510 char *__cil_tmp33 ;
8511 char *__cil_tmp34 ;
8512 int __cil_tmp35 ;
8513 void *__cil_tmp36 ;
8514 unsigned char const *__cil_tmp37 ;
8515 void const *__cil_tmp38 ;
8516 struct device *__cil_tmp39 ;
8517 void *__cil_tmp40 ;
8518 unsigned char const *__cil_tmp41 ;
8519 struct device *__cil_tmp42 ;
8520 struct device const *__cil_tmp43 ;
8521 spinlock_t *__cil_tmp44 ;
8522 struct list_head *__cil_tmp45 ;
8523 spinlock_t *__cil_tmp46 ;
8524 spinlock_t *__cil_tmp47 ;
8525 struct list_head *__cil_tmp48 ;
8526 spinlock_t *__cil_tmp49 ;
8527
8528 {
8529 {
8530#line 757
8531 serial = port->serial;
8532#line 758
8533 tmp___7 = usb_get_serial_port_data(port);
8534#line 758
8535 info = (struct whiteheat_private *)tmp___7;
8536#line 763
8537 sent = 0;
8538 }
8539 {
8540#line 767
8541 while (1) {
8542 while_continue: ;
8543
8544#line 767
8545 if (debug) {
8546 {
8547#line 767
8548 __cil_tmp22 = port->number;
8549#line 767
8550 __cil_tmp23 = (int )__cil_tmp22;
8551#line 767
8552 printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
8553 "whiteheat_write", __cil_tmp23);
8554 }
8555 } else {
8556
8557 }
8558#line 767
8559 goto while_break;
8560 }
8561 while_break___8: ;
8562 }
8563
8564 while_break: ;
8565#line 769
8566 if (count == 0) {
8567 {
8568#line 770
8569 while (1) {
8570 while_continue___0: ;
8571
8572#line 770
8573 if (debug) {
8574 {
8575#line 770
8576 printk("<7>%s: %s - write request of 0 bytes\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
8577 "whiteheat_write");
8578 }
8579 } else {
8580
8581 }
8582#line 770
8583 goto while_break___0;
8584 }
8585 while_break___9: ;
8586 }
8587
8588 while_break___0: ;
8589#line 771
8590 return (0);
8591 } else {
8592
8593 }
8594 {
8595#line 774
8596 while (1) {
8597 while_continue___1: ;
8598
8599#line 774
8600 if (count) {
8601
8602 } else {
8603#line 774
8604 goto while_break___1;
8605 }
8606 {
8607#line 775
8608 while (1) {
8609 while_continue___2: ;
8610
8611 {
8612#line 775
8613 while (1) {
8614 while_continue___3: ;
8615 {
8616#line 775
8617 __cil_tmp24 = & info->lock;
8618#line 775
8619 tmp___9 = spinlock_check(__cil_tmp24);
8620#line 775
8621 flags = _raw_spin_lock_irqsave(tmp___9);
8622 }
8623#line 775
8624 goto while_break___3;
8625 }
8626 while_break___12: ;
8627 }
8628
8629 while_break___3: ;
8630#line 775
8631 goto while_break___2;
8632 }
8633 while_break___11: ;
8634 }
8635
8636 while_break___2:
8637 {
8638#line 776
8639 __cil_tmp25 = & info->tx_urbs_free;
8640#line 776
8641 __cil_tmp26 = (struct list_head const *)__cil_tmp25;
8642#line 776
8643 tmp___10 = list_empty(__cil_tmp26);
8644 }
8645#line 776
8646 if (tmp___10) {
8647 {
8648#line 777
8649 __cil_tmp27 = & info->lock;
8650#line 777
8651 spin_unlock_irqrestore(__cil_tmp27, flags);
8652 }
8653#line 778
8654 goto while_break___1;
8655 } else {
8656
8657 }
8658 {
8659#line 780
8660 __cil_tmp28 = & info->tx_urbs_free;
8661#line 780
8662 tmp___8 = list_first(__cil_tmp28);
8663#line 781
8664 list_del(tmp___8);
8665#line 782
8666 __cil_tmp29 = & info->lock;
8667#line 782
8668 spin_unlock_irqrestore(__cil_tmp29, flags);
8669#line 784
8670 __mptr = (struct list_head const *)tmp___8;
8671#line 784
8672 __cil_tmp30 = (struct whiteheat_urb_wrap *)0;
8673#line 784
8674 __cil_tmp31 = & __cil_tmp30->list;
8675#line 784
8676 __cil_tmp32 = (unsigned int )__cil_tmp31;
8677#line 784
8678 __cil_tmp33 = (char *)__mptr;
8679#line 784
8680 __cil_tmp34 = __cil_tmp33 - __cil_tmp32;
8681#line 784
8682 wrap = (struct whiteheat_urb_wrap *)__cil_tmp34;
8683#line 785
8684 urb = wrap->urb;
8685 }
8686 {
8687#line 786
8688 __cil_tmp35 = port->bulk_out_size;
8689#line 786
8690 if (count > __cil_tmp35) {
8691#line 786
8692 bytes = port->bulk_out_size;
8693 } else {
8694#line 786
8695 bytes = count;
8696 }
8697 }
8698 {
8699#line 788
8700 __len = (size_t )bytes;
8701#line 788
8702 __cil_tmp36 = urb->transfer_buffer;
8703#line 788
8704 __cil_tmp37 = buf + sent;
8705#line 788
8706 __cil_tmp38 = (void const *)__cil_tmp37;
8707#line 788
8708 __ret = __builtin_memcpy(__cil_tmp36, __cil_tmp38, __len);
8709#line 790
8710 __cil_tmp39 = & port->dev;
8711#line 790
8712 __cil_tmp40 = urb->transfer_buffer;
8713#line 790
8714 __cil_tmp41 = (unsigned char const *)__cil_tmp40;
8715#line 790
8716 usb_serial_debug_data(debug, __cil_tmp39, "whiteheat_write", bytes, __cil_tmp41);
8717#line 793
8718 urb->dev = serial->dev;
8719#line 794
8720 urb->transfer_buffer_length = (u32 )bytes;
8721#line 795
8722 result = usb_submit_urb(urb, 32U);
8723 }
8724#line 796
8725 if (result) {
8726 {
8727#line 797
8728 __cil_tmp42 = & port->dev;
8729#line 797
8730 __cil_tmp43 = (struct device const *)__cil_tmp42;
8731#line 797
8732 dev_err(__cil_tmp43, "%s - failed submitting write urb, error %d\n", "whiteheat_write",
8733 result);
8734#line 800
8735 sent = result;
8736 }
8737 {
8738#line 801
8739 while (1) {
8740 while_continue___4: ;
8741
8742 {
8743#line 801
8744 while (1) {
8745 while_continue___5: ;
8746 {
8747#line 801
8748 __cil_tmp44 = & info->lock;
8749#line 801
8750 tmp___11 = spinlock_check(__cil_tmp44);
8751#line 801
8752 flags = _raw_spin_lock_irqsave(tmp___11);
8753 }
8754#line 801
8755 goto while_break___5;
8756 }
8757 while_break___14: ;
8758 }
8759
8760 while_break___5: ;
8761#line 801
8762 goto while_break___4;
8763 }
8764 while_break___13: ;
8765 }
8766
8767 while_break___4:
8768 {
8769#line 802
8770 __cil_tmp45 = & info->tx_urbs_free;
8771#line 802
8772 list_add(tmp___8, __cil_tmp45);
8773#line 803
8774 __cil_tmp46 = & info->lock;
8775#line 803
8776 spin_unlock_irqrestore(__cil_tmp46, flags);
8777 }
8778#line 804
8779 goto while_break___1;
8780 } else {
8781#line 806
8782 sent = sent + bytes;
8783#line 807
8784 count = count - bytes;
8785 {
8786#line 808
8787 while (1) {
8788 while_continue___6: ;
8789
8790 {
8791#line 808
8792 while (1) {
8793 while_continue___7: ;
8794 {
8795#line 808
8796 __cil_tmp47 = & info->lock;
8797#line 808
8798 tmp___12 = spinlock_check(__cil_tmp47);
8799#line 808
8800 flags = _raw_spin_lock_irqsave(tmp___12);
8801 }
8802#line 808
8803 goto while_break___7;
8804 }
8805 while_break___16: ;
8806 }
8807
8808 while_break___7: ;
8809#line 808
8810 goto while_break___6;
8811 }
8812 while_break___15: ;
8813 }
8814
8815 while_break___6:
8816 {
8817#line 809
8818 __cil_tmp48 = & info->tx_urbs_submitted;
8819#line 809
8820 list_add(tmp___8, __cil_tmp48);
8821#line 810
8822 __cil_tmp49 = & info->lock;
8823#line 810
8824 spin_unlock_irqrestore(__cil_tmp49, flags);
8825 }
8826 }
8827 }
8828 while_break___10: ;
8829 }
8830
8831 while_break___1: ;
8832#line 814
8833 return (sent);
8834}
8835}
8836#line 817 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
8837static int whiteheat_write_room(struct tty_struct *tty )
8838{ struct usb_serial_port *port ;
8839 struct whiteheat_private *info ;
8840 void *tmp___7 ;
8841 struct list_head *tmp___8 ;
8842 int room ;
8843 unsigned long flags ;
8844 raw_spinlock_t *tmp___9 ;
8845 void *__cil_tmp9 ;
8846 unsigned char __cil_tmp10 ;
8847 int __cil_tmp11 ;
8848 spinlock_t *__cil_tmp12 ;
8849 struct list_head *__cil_tmp13 ;
8850 unsigned long __cil_tmp14 ;
8851 unsigned long __cil_tmp15 ;
8852 spinlock_t *__cil_tmp16 ;
8853 int __cil_tmp17 ;
8854
8855 {
8856 {
8857#line 819
8858 __cil_tmp9 = tty->driver_data;
8859#line 819
8860 port = (struct usb_serial_port *)__cil_tmp9;
8861#line 820
8862 tmp___7 = usb_get_serial_port_data(port);
8863#line 820
8864 info = (struct whiteheat_private *)tmp___7;
8865#line 822
8866 room = 0;
8867 }
8868 {
8869#line 825
8870 while (1) {
8871 while_continue: ;
8872
8873#line 825
8874 if (debug) {
8875 {
8876#line 825
8877 __cil_tmp10 = port->number;
8878#line 825
8879 __cil_tmp11 = (int )__cil_tmp10;
8880#line 825
8881 printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
8882 "whiteheat_write_room", __cil_tmp11);
8883 }
8884 } else {
8885
8886 }
8887#line 825
8888 goto while_break;
8889 }
8890 while_break___4: ;
8891 }
8892
8893 while_break: ;
8894 {
8895#line 827
8896 while (1) {
8897 while_continue___0: ;
8898
8899 {
8900#line 827
8901 while (1) {
8902 while_continue___1: ;
8903 {
8904#line 827
8905 __cil_tmp12 = & info->lock;
8906#line 827
8907 tmp___9 = spinlock_check(__cil_tmp12);
8908#line 827
8909 flags = _raw_spin_lock_irqsave(tmp___9);
8910 }
8911#line 827
8912 goto while_break___1;
8913 }
8914 while_break___6: ;
8915 }
8916
8917 while_break___1: ;
8918#line 827
8919 goto while_break___0;
8920 }
8921 while_break___5: ;
8922 }
8923
8924 while_break___0:
8925#line 828
8926 tmp___8 = info->tx_urbs_free.next;
8927 {
8928#line 828
8929 while (1) {
8930 while_continue___2: ;
8931
8932 {
8933#line 828
8934 __cil_tmp13 = & info->tx_urbs_free;
8935#line 828
8936 __cil_tmp14 = (unsigned long )__cil_tmp13;
8937#line 828
8938 __cil_tmp15 = (unsigned long )tmp___8;
8939#line 828
8940 if (__cil_tmp15 != __cil_tmp14) {
8941
8942 } else {
8943#line 828
8944 goto while_break___2;
8945 }
8946 }
8947#line 829
8948 room = room + 1;
8949#line 828
8950 tmp___8 = tmp___8->next;
8951 }
8952 while_break___7: ;
8953 }
8954
8955 while_break___2:
8956 {
8957#line 830
8958 __cil_tmp16 = & info->lock;
8959#line 830
8960 spin_unlock_irqrestore(__cil_tmp16, flags);
8961#line 831
8962 __cil_tmp17 = port->bulk_out_size;
8963#line 831
8964 room = room * __cil_tmp17;
8965 }
8966 {
8967#line 833
8968 while (1) {
8969 while_continue___3: ;
8970
8971#line 833
8972 if (debug) {
8973 {
8974#line 833
8975 printk("<7>%s: %s - returns %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
8976 "whiteheat_write_room", room);
8977 }
8978 } else {
8979
8980 }
8981#line 833
8982 goto while_break___3;
8983 }
8984 while_break___8: ;
8985 }
8986
8987 while_break___3: ;
8988#line 834
8989 return (room);
8990}
8991}
8992#line 837 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
8993static int whiteheat_tiocmget(struct tty_struct *tty )
8994{ struct usb_serial_port *port ;
8995 struct whiteheat_private *info ;
8996 void *tmp___7 ;
8997 unsigned int modem_signals ;
8998 void *__cil_tmp6 ;
8999 unsigned char __cil_tmp7 ;
9000 int __cil_tmp8 ;
9001 __u8 __cil_tmp9 ;
9002 int __cil_tmp10 ;
9003 __u8 __cil_tmp11 ;
9004 int __cil_tmp12 ;
9005
9006 {
9007 {
9008#line 839
9009 __cil_tmp6 = tty->driver_data;
9010#line 839
9011 port = (struct usb_serial_port *)__cil_tmp6;
9012#line 840
9013 tmp___7 = usb_get_serial_port_data(port);
9014#line 840
9015 info = (struct whiteheat_private *)tmp___7;
9016#line 841
9017 modem_signals = 0U;
9018 }
9019 {
9020#line 843
9021 while (1) {
9022 while_continue: ;
9023
9024#line 843
9025 if (debug) {
9026 {
9027#line 843
9028 __cil_tmp7 = port->number;
9029#line 843
9030 __cil_tmp8 = (int )__cil_tmp7;
9031#line 843
9032 printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
9033 "whiteheat_tiocmget", __cil_tmp8);
9034 }
9035 } else {
9036
9037 }
9038#line 843
9039 goto while_break;
9040 }
9041 while_break___0: ;
9042 }
9043
9044 while_break:
9045 {
9046#line 845
9047 firm_get_dtr_rts(port);
9048 }
9049 {
9050#line 846
9051 __cil_tmp9 = info->mcr;
9052#line 846
9053 __cil_tmp10 = (int )__cil_tmp9;
9054#line 846
9055 if (__cil_tmp10 & 1) {
9056#line 847
9057 modem_signals = modem_signals | 2U;
9058 } else {
9059
9060 }
9061 }
9062 {
9063#line 848
9064 __cil_tmp11 = info->mcr;
9065#line 848
9066 __cil_tmp12 = (int )__cil_tmp11;
9067#line 848
9068 if (__cil_tmp12 & 2) {
9069#line 849
9070 modem_signals = modem_signals | 4U;
9071 } else {
9072
9073 }
9074 }
9075#line 851
9076 return ((int )modem_signals);
9077}
9078}
9079#line 854 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
9080static int whiteheat_tiocmset(struct tty_struct *tty , unsigned int set , unsigned int clear )
9081{ struct usb_serial_port *port ;
9082 struct whiteheat_private *info ;
9083 void *tmp___7 ;
9084 void *__cil_tmp7 ;
9085 unsigned char __cil_tmp8 ;
9086 int __cil_tmp9 ;
9087 __u8 __cil_tmp10 ;
9088 int __cil_tmp11 ;
9089 int __cil_tmp12 ;
9090 __u8 __cil_tmp13 ;
9091 int __cil_tmp14 ;
9092 int __cil_tmp15 ;
9093 __u8 __cil_tmp16 ;
9094 int __cil_tmp17 ;
9095 int __cil_tmp18 ;
9096 __u8 __cil_tmp19 ;
9097 int __cil_tmp20 ;
9098 int __cil_tmp21 ;
9099 __u8 __cil_tmp22 ;
9100 int __cil_tmp23 ;
9101 int __cil_tmp24 ;
9102 __u8 __cil_tmp25 ;
9103 __u8 __cil_tmp26 ;
9104 int __cil_tmp27 ;
9105 int __cil_tmp28 ;
9106 __u8 __cil_tmp29 ;
9107
9108 {
9109 {
9110#line 857
9111 __cil_tmp7 = tty->driver_data;
9112#line 857
9113 port = (struct usb_serial_port *)__cil_tmp7;
9114#line 858
9115 tmp___7 = usb_get_serial_port_data(port);
9116#line 858
9117 info = (struct whiteheat_private *)tmp___7;
9118 }
9119 {
9120#line 860
9121 while (1) {
9122 while_continue: ;
9123
9124#line 860
9125 if (debug) {
9126 {
9127#line 860
9128 __cil_tmp8 = port->number;
9129#line 860
9130 __cil_tmp9 = (int )__cil_tmp8;
9131#line 860
9132 printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
9133 "whiteheat_tiocmset", __cil_tmp9);
9134 }
9135 } else {
9136
9137 }
9138#line 860
9139 goto while_break;
9140 }
9141 while_break___0: ;
9142 }
9143
9144 while_break: ;
9145#line 862
9146 if (set & 4U) {
9147#line 863
9148 __cil_tmp10 = info->mcr;
9149#line 863
9150 __cil_tmp11 = (int )__cil_tmp10;
9151#line 863
9152 __cil_tmp12 = __cil_tmp11 | 2;
9153#line 863
9154 info->mcr = (__u8 )__cil_tmp12;
9155 } else {
9156
9157 }
9158#line 864
9159 if (set & 2U) {
9160#line 865
9161 __cil_tmp13 = info->mcr;
9162#line 865
9163 __cil_tmp14 = (int )__cil_tmp13;
9164#line 865
9165 __cil_tmp15 = __cil_tmp14 | 1;
9166#line 865
9167 info->mcr = (__u8 )__cil_tmp15;
9168 } else {
9169
9170 }
9171#line 867
9172 if (clear & 4U) {
9173#line 868
9174 __cil_tmp16 = info->mcr;
9175#line 868
9176 __cil_tmp17 = (int )__cil_tmp16;
9177#line 868
9178 __cil_tmp18 = __cil_tmp17 & -3;
9179#line 868
9180 info->mcr = (__u8 )__cil_tmp18;
9181 } else {
9182
9183 }
9184#line 869
9185 if (clear & 2U) {
9186#line 870
9187 __cil_tmp19 = info->mcr;
9188#line 870
9189 __cil_tmp20 = (int )__cil_tmp19;
9190#line 870
9191 __cil_tmp21 = __cil_tmp20 & -2;
9192#line 870
9193 info->mcr = (__u8 )__cil_tmp21;
9194 } else {
9195
9196 }
9197 {
9198#line 872
9199 __cil_tmp22 = info->mcr;
9200#line 872
9201 __cil_tmp23 = (int )__cil_tmp22;
9202#line 872
9203 __cil_tmp24 = __cil_tmp23 & 1;
9204#line 872
9205 __cil_tmp25 = (__u8 )__cil_tmp24;
9206#line 872
9207 firm_set_dtr(port, __cil_tmp25);
9208#line 873
9209 __cil_tmp26 = info->mcr;
9210#line 873
9211 __cil_tmp27 = (int )__cil_tmp26;
9212#line 873
9213 __cil_tmp28 = __cil_tmp27 & 2;
9214#line 873
9215 __cil_tmp29 = (__u8 )__cil_tmp28;
9216#line 873
9217 firm_set_rts(port, __cil_tmp29);
9218 }
9219#line 874
9220 return (0);
9221}
9222}
9223#line 878 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
9224static int whiteheat_ioctl(struct tty_struct *tty , unsigned int cmd , unsigned long arg )
9225{ struct usb_serial_port *port ;
9226 struct serial_struct serstruct ;
9227 void *user_arg ;
9228 int tmp___7 ;
9229 int tmp ;
9230 int tmp___8 ;
9231 void *__cil_tmp10 ;
9232 unsigned char __cil_tmp11 ;
9233 int __cil_tmp12 ;
9234 int __cil_tmp13 ;
9235 void *__cil_tmp14 ;
9236 struct usb_serial *__cil_tmp15 ;
9237 unsigned char __cil_tmp16 ;
9238 unsigned char __cil_tmp17 ;
9239 unsigned int __cil_tmp18 ;
9240 unsigned int __cil_tmp19 ;
9241 unsigned int __cil_tmp20 ;
9242 void const *__cil_tmp21 ;
9243 unsigned int __cil_tmp22 ;
9244
9245 {
9246#line 881
9247 __cil_tmp10 = tty->driver_data;
9248#line 881
9249 port = (struct usb_serial_port *)__cil_tmp10;
9250#line 883
9251 user_arg = (void *)arg;
9252 {
9253#line 885
9254 while (1) {
9255 while_continue: ;
9256
9257#line 885
9258 if (debug) {
9259 {
9260#line 885
9261 __cil_tmp11 = port->number;
9262#line 885
9263 __cil_tmp12 = (int )__cil_tmp11;
9264#line 885
9265 printk("<7>%s: %s - port %d, cmd 0x%.4x\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
9266 "whiteheat_ioctl", __cil_tmp12, cmd);
9267 }
9268 } else {
9269
9270 }
9271#line 885
9272 goto while_break;
9273 }
9274 while_break___0: ;
9275 }
9276
9277 while_break: ;
9278 {
9279#line 888
9280 __cil_tmp13 = (int )cmd;
9281#line 888
9282 if (__cil_tmp13 == 21534) {
9283#line 888
9284 goto case_21534;
9285 } else {
9286#line 903
9287 goto switch_default;
9288#line 887
9289 if (0) {
9290 case_21534:
9291 {
9292#line 889
9293 __cil_tmp14 = (void *)(& serstruct);
9294#line 889
9295 memset(__cil_tmp14, 0, 72UL);
9296#line 890
9297 serstruct.type = 11;
9298#line 891
9299 __cil_tmp15 = port->serial;
9300#line 891
9301 __cil_tmp16 = __cil_tmp15->minor;
9302#line 891
9303 serstruct.line = (int )__cil_tmp16;
9304#line 892
9305 __cil_tmp17 = port->number;
9306#line 892
9307 serstruct.port = (unsigned int )__cil_tmp17;
9308#line 893
9309 __cil_tmp18 = 1U << 7;
9310#line 893
9311 __cil_tmp19 = 1U << 6;
9312#line 893
9313 __cil_tmp20 = __cil_tmp19 | __cil_tmp18;
9314#line 893
9315 serstruct.flags = (int )__cil_tmp20;
9316#line 894
9317 serstruct.xmit_fifo_size = port->bulk_out_size;
9318#line 895
9319 serstruct.custom_divisor = 0;
9320#line 896
9321 serstruct.baud_base = 460800;
9322#line 897
9323 serstruct.close_delay = (unsigned short)7500;
9324#line 898
9325 serstruct.closing_wait = (unsigned short)7500;
9326#line 900
9327 __cil_tmp21 = (void const *)(& serstruct);
9328#line 900
9329 __cil_tmp22 = (unsigned int )72UL;
9330#line 900
9331 tmp___8 = (int )copy_to_user(user_arg, __cil_tmp21, __cil_tmp22);
9332#line 900
9333 tmp = tmp___8;
9334#line 900
9335 tmp___7 = tmp;
9336 }
9337#line 900
9338 if (tmp___7) {
9339#line 901
9340 return (-14);
9341 } else {
9342
9343 }
9344#line 902
9345 goto switch_break;
9346 switch_default:
9347#line 904
9348 goto switch_break;
9349 } else {
9350 switch_break: ;
9351 }
9352 }
9353 }
9354#line 907
9355 return (-515);
9356}
9357}
9358#line 911 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
9359static void whiteheat_set_termios(struct tty_struct *tty , struct usb_serial_port *port ,
9360 struct ktermios *old_termios )
9361{
9362
9363 {
9364 {
9365#line 914
9366 firm_setup_port(tty);
9367 }
9368#line 915
9369 return;
9370}
9371}
9372#line 917 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
9373static void whiteheat_break_ctl(struct tty_struct *tty , int break_state )
9374{ struct usb_serial_port *port ;
9375 void *__cil_tmp4 ;
9376 __u8 __cil_tmp5 ;
9377
9378 {
9379 {
9380#line 919
9381 __cil_tmp4 = tty->driver_data;
9382#line 919
9383 port = (struct usb_serial_port *)__cil_tmp4;
9384#line 920
9385 __cil_tmp5 = (__u8 )break_state;
9386#line 920
9387 firm_set_break(port, __cil_tmp5);
9388 }
9389#line 921
9390 return;
9391}
9392}
9393#line 924 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
9394static int whiteheat_chars_in_buffer(struct tty_struct *tty )
9395{ struct usb_serial_port *port ;
9396 struct whiteheat_private *info ;
9397 void *tmp___7 ;
9398 struct list_head *tmp___8 ;
9399 struct whiteheat_urb_wrap *wrap ;
9400 int chars ;
9401 unsigned long flags ;
9402 raw_spinlock_t *tmp___9 ;
9403 struct list_head const *__mptr ;
9404 void *__cil_tmp11 ;
9405 unsigned char __cil_tmp12 ;
9406 int __cil_tmp13 ;
9407 spinlock_t *__cil_tmp14 ;
9408 struct list_head *__cil_tmp15 ;
9409 unsigned long __cil_tmp16 ;
9410 unsigned long __cil_tmp17 ;
9411 struct whiteheat_urb_wrap *__cil_tmp18 ;
9412 struct list_head *__cil_tmp19 ;
9413 unsigned int __cil_tmp20 ;
9414 char *__cil_tmp21 ;
9415 char *__cil_tmp22 ;
9416 struct urb *__cil_tmp23 ;
9417 u32 __cil_tmp24 ;
9418 u32 __cil_tmp25 ;
9419 u32 __cil_tmp26 ;
9420 spinlock_t *__cil_tmp27 ;
9421
9422 {
9423 {
9424#line 926
9425 __cil_tmp11 = tty->driver_data;
9426#line 926
9427 port = (struct usb_serial_port *)__cil_tmp11;
9428#line 927
9429 tmp___7 = usb_get_serial_port_data(port);
9430#line 927
9431 info = (struct whiteheat_private *)tmp___7;
9432#line 930
9433 chars = 0;
9434 }
9435 {
9436#line 933
9437 while (1) {
9438 while_continue: ;
9439
9440#line 933
9441 if (debug) {
9442 {
9443#line 933
9444 __cil_tmp12 = port->number;
9445#line 933
9446 __cil_tmp13 = (int )__cil_tmp12;
9447#line 933
9448 printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
9449 "whiteheat_chars_in_buffer", __cil_tmp13);
9450 }
9451 } else {
9452
9453 }
9454#line 933
9455 goto while_break;
9456 }
9457 while_break___4: ;
9458 }
9459
9460 while_break: ;
9461 {
9462#line 935
9463 while (1) {
9464 while_continue___0: ;
9465
9466 {
9467#line 935
9468 while (1) {
9469 while_continue___1: ;
9470 {
9471#line 935
9472 __cil_tmp14 = & info->lock;
9473#line 935
9474 tmp___9 = spinlock_check(__cil_tmp14);
9475#line 935
9476 flags = _raw_spin_lock_irqsave(tmp___9);
9477 }
9478#line 935
9479 goto while_break___1;
9480 }
9481 while_break___6: ;
9482 }
9483
9484 while_break___1: ;
9485#line 935
9486 goto while_break___0;
9487 }
9488 while_break___5: ;
9489 }
9490
9491 while_break___0:
9492#line 936
9493 tmp___8 = info->tx_urbs_submitted.next;
9494 {
9495#line 936
9496 while (1) {
9497 while_continue___2: ;
9498
9499 {
9500#line 936
9501 __cil_tmp15 = & info->tx_urbs_submitted;
9502#line 936
9503 __cil_tmp16 = (unsigned long )__cil_tmp15;
9504#line 936
9505 __cil_tmp17 = (unsigned long )tmp___8;
9506#line 936
9507 if (__cil_tmp17 != __cil_tmp16) {
9508
9509 } else {
9510#line 936
9511 goto while_break___2;
9512 }
9513 }
9514#line 937
9515 __mptr = (struct list_head const *)tmp___8;
9516#line 937
9517 __cil_tmp18 = (struct whiteheat_urb_wrap *)0;
9518#line 937
9519 __cil_tmp19 = & __cil_tmp18->list;
9520#line 937
9521 __cil_tmp20 = (unsigned int )__cil_tmp19;
9522#line 937
9523 __cil_tmp21 = (char *)__mptr;
9524#line 937
9525 __cil_tmp22 = __cil_tmp21 - __cil_tmp20;
9526#line 937
9527 wrap = (struct whiteheat_urb_wrap *)__cil_tmp22;
9528#line 938
9529 __cil_tmp23 = wrap->urb;
9530#line 938
9531 __cil_tmp24 = __cil_tmp23->transfer_buffer_length;
9532#line 938
9533 __cil_tmp25 = (u32 )chars;
9534#line 938
9535 __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
9536#line 938
9537 chars = (int )__cil_tmp26;
9538#line 936
9539 tmp___8 = tmp___8->next;
9540 }
9541 while_break___7: ;
9542 }
9543
9544 while_break___2:
9545 {
9546#line 940
9547 __cil_tmp27 = & info->lock;
9548#line 940
9549 spin_unlock_irqrestore(__cil_tmp27, flags);
9550 }
9551 {
9552#line 942
9553 while (1) {
9554 while_continue___3: ;
9555
9556#line 942
9557 if (debug) {
9558 {
9559#line 942
9560 printk("<7>%s: %s - returns %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
9561 "whiteheat_chars_in_buffer", chars);
9562 }
9563 } else {
9564
9565 }
9566#line 942
9567 goto while_break___3;
9568 }
9569 while_break___8: ;
9570 }
9571
9572 while_break___3: ;
9573#line 943
9574 return (chars);
9575}
9576}
9577#line 947 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
9578static void whiteheat_throttle(struct tty_struct *tty )
9579{ struct usb_serial_port *port ;
9580 struct whiteheat_private *info ;
9581 void *tmp___7 ;
9582 void *__cil_tmp5 ;
9583 unsigned char __cil_tmp6 ;
9584 int __cil_tmp7 ;
9585 spinlock_t *__cil_tmp8 ;
9586 __u8 __cil_tmp9 ;
9587 int __cil_tmp10 ;
9588 int __cil_tmp11 ;
9589 spinlock_t *__cil_tmp12 ;
9590
9591 {
9592 {
9593#line 949
9594 __cil_tmp5 = tty->driver_data;
9595#line 949
9596 port = (struct usb_serial_port *)__cil_tmp5;
9597#line 950
9598 tmp___7 = usb_get_serial_port_data(port);
9599#line 950
9600 info = (struct whiteheat_private *)tmp___7;
9601 }
9602 {
9603#line 952
9604 while (1) {
9605 while_continue: ;
9606
9607#line 952
9608 if (debug) {
9609 {
9610#line 952
9611 __cil_tmp6 = port->number;
9612#line 952
9613 __cil_tmp7 = (int )__cil_tmp6;
9614#line 952
9615 printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
9616 "whiteheat_throttle", __cil_tmp7);
9617 }
9618 } else {
9619
9620 }
9621#line 952
9622 goto while_break;
9623 }
9624 while_break___0: ;
9625 }
9626
9627 while_break:
9628 {
9629#line 954
9630 __cil_tmp8 = & info->lock;
9631#line 954
9632 spin_lock_irq(__cil_tmp8);
9633#line 955
9634 __cil_tmp9 = info->flags;
9635#line 955
9636 __cil_tmp10 = (int )__cil_tmp9;
9637#line 955
9638 __cil_tmp11 = __cil_tmp10 | 1;
9639#line 955
9640 info->flags = (__u8 )__cil_tmp11;
9641#line 956
9642 __cil_tmp12 = & info->lock;
9643#line 956
9644 spin_unlock_irq(__cil_tmp12);
9645 }
9646#line 957
9647 return;
9648}
9649}
9650#line 960 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
9651static void whiteheat_unthrottle(struct tty_struct *tty )
9652{ struct usb_serial_port *port ;
9653 struct whiteheat_private *info ;
9654 void *tmp___7 ;
9655 int actually_throttled ;
9656 void *__cil_tmp6 ;
9657 unsigned char __cil_tmp7 ;
9658 int __cil_tmp8 ;
9659 spinlock_t *__cil_tmp9 ;
9660 __u8 __cil_tmp10 ;
9661 int __cil_tmp11 ;
9662 __u8 __cil_tmp12 ;
9663 int __cil_tmp13 ;
9664 int __cil_tmp14 ;
9665 spinlock_t *__cil_tmp15 ;
9666 struct work_struct *__cil_tmp16 ;
9667
9668 {
9669 {
9670#line 962
9671 __cil_tmp6 = tty->driver_data;
9672#line 962
9673 port = (struct usb_serial_port *)__cil_tmp6;
9674#line 963
9675 tmp___7 = usb_get_serial_port_data(port);
9676#line 963
9677 info = (struct whiteheat_private *)tmp___7;
9678 }
9679 {
9680#line 966
9681 while (1) {
9682 while_continue: ;
9683
9684#line 966
9685 if (debug) {
9686 {
9687#line 966
9688 __cil_tmp7 = port->number;
9689#line 966
9690 __cil_tmp8 = (int )__cil_tmp7;
9691#line 966
9692 printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
9693 "whiteheat_unthrottle", __cil_tmp8);
9694 }
9695 } else {
9696
9697 }
9698#line 966
9699 goto while_break;
9700 }
9701 while_break___0: ;
9702 }
9703
9704 while_break:
9705 {
9706#line 968
9707 __cil_tmp9 = & info->lock;
9708#line 968
9709 spin_lock_irq(__cil_tmp9);
9710#line 969
9711 __cil_tmp10 = info->flags;
9712#line 969
9713 __cil_tmp11 = (int )__cil_tmp10;
9714#line 969
9715 actually_throttled = __cil_tmp11 & 2;
9716#line 970
9717 __cil_tmp12 = info->flags;
9718#line 970
9719 __cil_tmp13 = (int )__cil_tmp12;
9720#line 970
9721 __cil_tmp14 = __cil_tmp13 & -4;
9722#line 970
9723 info->flags = (__u8 )__cil_tmp14;
9724#line 971
9725 __cil_tmp15 = & info->lock;
9726#line 971
9727 spin_unlock_irq(__cil_tmp15);
9728 }
9729#line 973
9730 if (actually_throttled) {
9731 {
9732#line 974
9733 __cil_tmp16 = & info->rx_work;
9734#line 974
9735 rx_data_softint(__cil_tmp16);
9736 }
9737 } else {
9738
9739 }
9740#line 975
9741 return;
9742}
9743}
9744#line 981 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
9745static void command_port_write_callback(struct urb *urb )
9746{ int status ;
9747
9748 {
9749#line 983
9750 status = urb->status;
9751 {
9752#line 985
9753 while (1) {
9754 while_continue: ;
9755
9756#line 985
9757 if (debug) {
9758 {
9759#line 985
9760 printk("<7>%s: %s\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
9761 "command_port_write_callback");
9762 }
9763 } else {
9764
9765 }
9766#line 985
9767 goto while_break;
9768 }
9769 while_break___1: ;
9770 }
9771
9772 while_break: ;
9773#line 987
9774 if (status) {
9775 {
9776#line 988
9777 while (1) {
9778 while_continue___0: ;
9779
9780#line 988
9781 if (debug) {
9782 {
9783#line 988
9784 printk("<7>%s: nonzero urb status: %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
9785 status);
9786 }
9787 } else {
9788
9789 }
9790#line 988
9791 goto while_break___0;
9792 }
9793 while_break___2: ;
9794 }
9795
9796 while_break___0: ;
9797#line 989
9798 return;
9799 } else {
9800
9801 }
9802#line 991
9803 return;
9804}
9805}
9806#line 994 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
9807static void command_port_read_callback(struct urb *urb )
9808{ struct usb_serial_port *command_port ;
9809 struct whiteheat_command_private *command_info ;
9810 int status ;
9811 unsigned char *data ;
9812 int result ;
9813 void *tmp___7 ;
9814 size_t __len ;
9815 void *__ret ;
9816 void *__cil_tmp10 ;
9817 void *__cil_tmp11 ;
9818 wait_queue_head_t *__cil_tmp12 ;
9819 void *__cil_tmp13 ;
9820 struct device *__cil_tmp14 ;
9821 u32 __cil_tmp15 ;
9822 int __cil_tmp16 ;
9823 unsigned char const *__cil_tmp17 ;
9824 unsigned char *__cil_tmp18 ;
9825 unsigned char __cil_tmp19 ;
9826 int __cil_tmp20 ;
9827 wait_queue_head_t *__cil_tmp21 ;
9828 void *__cil_tmp22 ;
9829 unsigned char *__cil_tmp23 ;
9830 unsigned char __cil_tmp24 ;
9831 int __cil_tmp25 ;
9832 wait_queue_head_t *__cil_tmp26 ;
9833 void *__cil_tmp27 ;
9834 unsigned char *__cil_tmp28 ;
9835 unsigned char __cil_tmp29 ;
9836 int __cil_tmp30 ;
9837 unsigned char *__cil_tmp31 ;
9838 unsigned char __cil_tmp32 ;
9839 int __cil_tmp33 ;
9840 u32 __cil_tmp34 ;
9841 u32 __cil_tmp35 ;
9842 __u8 *__cil_tmp36 ;
9843 void *__cil_tmp37 ;
9844 unsigned char *__cil_tmp38 ;
9845 void const *__cil_tmp39 ;
9846 wait_queue_head_t *__cil_tmp40 ;
9847 void *__cil_tmp41 ;
9848 struct urb *__cil_tmp42 ;
9849 struct usb_serial *__cil_tmp43 ;
9850 struct urb *__cil_tmp44 ;
9851
9852 {
9853#line 996
9854 __cil_tmp10 = urb->context;
9855#line 996
9856 command_port = (struct usb_serial_port *)__cil_tmp10;
9857#line 998
9858 status = urb->status;
9859#line 999
9860 __cil_tmp11 = urb->transfer_buffer;
9861#line 999
9862 data = (unsigned char *)__cil_tmp11;
9863 {
9864#line 1002
9865 while (1) {
9866 while_continue: ;
9867
9868#line 1002
9869 if (debug) {
9870 {
9871#line 1002
9872 printk("<7>%s: %s\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
9873 "command_port_read_callback");
9874 }
9875 } else {
9876
9877 }
9878#line 1002
9879 goto while_break;
9880 }
9881 while_break___5: ;
9882 }
9883
9884 while_break:
9885 {
9886#line 1004
9887 tmp___7 = usb_get_serial_port_data(command_port);
9888#line 1004
9889 command_info = (struct whiteheat_command_private *)tmp___7;
9890 }
9891#line 1005
9892 if (! command_info) {
9893 {
9894#line 1006
9895 while (1) {
9896 while_continue___0: ;
9897
9898#line 1006
9899 if (debug) {
9900 {
9901#line 1006
9902 printk("<7>%s: %s - command_info is NULL, exiting.\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
9903 "command_port_read_callback");
9904 }
9905 } else {
9906
9907 }
9908#line 1006
9909 goto while_break___0;
9910 }
9911 while_break___6: ;
9912 }
9913
9914 while_break___0: ;
9915#line 1007
9916 return;
9917 } else {
9918
9919 }
9920#line 1009
9921 if (status) {
9922 {
9923#line 1010
9924 while (1) {
9925 while_continue___1: ;
9926
9927#line 1010
9928 if (debug) {
9929 {
9930#line 1010
9931 printk("<7>%s: %s - nonzero urb status: %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
9932 "command_port_read_callback", status);
9933 }
9934 } else {
9935
9936 }
9937#line 1010
9938 goto while_break___1;
9939 }
9940 while_break___7: ;
9941 }
9942
9943 while_break___1: ;
9944#line 1011
9945 if (status != -2) {
9946#line 1012
9947 command_info->command_finished = (__u8 )17;
9948 } else {
9949
9950 }
9951 {
9952#line 1013
9953 __cil_tmp12 = & command_info->wait_command;
9954#line 1013
9955 __cil_tmp13 = (void *)0;
9956#line 1013
9957 __wake_up(__cil_tmp12, 3U, 1, __cil_tmp13);
9958 }
9959#line 1014
9960 return;
9961 } else {
9962
9963 }
9964 {
9965#line 1017
9966 __cil_tmp14 = & command_port->dev;
9967#line 1017
9968 __cil_tmp15 = urb->actual_length;
9969#line 1017
9970 __cil_tmp16 = (int )__cil_tmp15;
9971#line 1017
9972 __cil_tmp17 = (unsigned char const *)data;
9973#line 1017
9974 usb_serial_debug_data(debug, __cil_tmp14, "command_port_read_callback", __cil_tmp16,
9975 __cil_tmp17);
9976 }
9977 {
9978#line 1020
9979 __cil_tmp18 = data + 0;
9980#line 1020
9981 __cil_tmp19 = *__cil_tmp18;
9982#line 1020
9983 __cil_tmp20 = (int )__cil_tmp19;
9984#line 1020
9985 if (__cil_tmp20 == 16) {
9986 {
9987#line 1021
9988 command_info->command_finished = (__u8 )16;
9989#line 1022
9990 __cil_tmp21 = & command_info->wait_command;
9991#line 1022
9992 __cil_tmp22 = (void *)0;
9993#line 1022
9994 __wake_up(__cil_tmp21, 3U, 1, __cil_tmp22);
9995 }
9996 } else {
9997 {
9998#line 1023
9999 __cil_tmp23 = data + 0;
10000#line 1023
10001 __cil_tmp24 = *__cil_tmp23;
10002#line 1023
10003 __cil_tmp25 = (int )__cil_tmp24;
10004#line 1023
10005 if (__cil_tmp25 == 17) {
10006 {
10007#line 1024
10008 command_info->command_finished = (__u8 )17;
10009#line 1025
10010 __cil_tmp26 = & command_info->wait_command;
10011#line 1025
10012 __cil_tmp27 = (void *)0;
10013#line 1025
10014 __wake_up(__cil_tmp26, 3U, 1, __cil_tmp27);
10015 }
10016 } else {
10017 {
10018#line 1026
10019 __cil_tmp28 = data + 0;
10020#line 1026
10021 __cil_tmp29 = *__cil_tmp28;
10022#line 1026
10023 __cil_tmp30 = (int )__cil_tmp29;
10024#line 1026
10025 if (__cil_tmp30 == 13) {
10026 {
10027#line 1029
10028 while (1) {
10029 while_continue___2: ;
10030
10031#line 1029
10032 if (debug) {
10033 {
10034#line 1029
10035 printk("<7>%s: %s - event received\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10036 "command_port_read_callback");
10037 }
10038 } else {
10039
10040 }
10041#line 1029
10042 goto while_break___2;
10043 }
10044 while_break___8: ;
10045 }
10046
10047 while_break___2: ;
10048 } else {
10049 {
10050#line 1030
10051 __cil_tmp31 = data + 0;
10052#line 1030
10053 __cil_tmp32 = *__cil_tmp31;
10054#line 1030
10055 __cil_tmp33 = (int )__cil_tmp32;
10056#line 1030
10057 if (__cil_tmp33 == 10) {
10058 {
10059#line 1031
10060 __cil_tmp34 = urb->actual_length;
10061#line 1031
10062 __cil_tmp35 = __cil_tmp34 - 1U;
10063#line 1031
10064 __len = (size_t )__cil_tmp35;
10065#line 1031
10066 __cil_tmp36 = & command_info->result_buffer[0];
10067#line 1031
10068 __cil_tmp37 = (void *)__cil_tmp36;
10069#line 1031
10070 __cil_tmp38 = data + 1;
10071#line 1031
10072 __cil_tmp39 = (void const *)__cil_tmp38;
10073#line 1031
10074 __ret = __builtin_memcpy(__cil_tmp37, __cil_tmp39, __len);
10075#line 1033
10076 command_info->command_finished = (__u8 )16;
10077#line 1034
10078 __cil_tmp40 = & command_info->wait_command;
10079#line 1034
10080 __cil_tmp41 = (void *)0;
10081#line 1034
10082 __wake_up(__cil_tmp40, 3U, 1, __cil_tmp41);
10083 }
10084 } else {
10085 {
10086#line 1036
10087 while (1) {
10088 while_continue___3: ;
10089
10090#line 1036
10091 if (debug) {
10092 {
10093#line 1036
10094 printk("<7>%s: %s - bad reply from firmware\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10095 "command_port_read_callback");
10096 }
10097 } else {
10098
10099 }
10100#line 1036
10101 goto while_break___3;
10102 }
10103 while_break___9: ;
10104 }
10105
10106 while_break___3: ;
10107 }
10108 }
10109 }
10110 }
10111 }
10112 }
10113 }
10114 }
10115 {
10116#line 1039
10117 __cil_tmp42 = command_port->read_urb;
10118#line 1039
10119 __cil_tmp43 = command_port->serial;
10120#line 1039
10121 __cil_tmp42->dev = __cil_tmp43->dev;
10122#line 1040
10123 __cil_tmp44 = command_port->read_urb;
10124#line 1040
10125 result = usb_submit_urb(__cil_tmp44, 32U);
10126 }
10127#line 1041
10128 if (result) {
10129 {
10130#line 1042
10131 while (1) {
10132 while_continue___4: ;
10133
10134#line 1042
10135 if (debug) {
10136 {
10137#line 1042
10138 printk("<7>%s: %s - failed resubmitting read urb, error %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10139 "command_port_read_callback", result);
10140 }
10141 } else {
10142
10143 }
10144#line 1042
10145 goto while_break___4;
10146 }
10147 while_break___10: ;
10148 }
10149
10150 while_break___4: ;
10151 } else {
10152
10153 }
10154#line 1044
10155 return;
10156}
10157}
10158#line 1047 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
10159static void whiteheat_read_callback(struct urb *urb )
10160{ struct usb_serial_port *port ;
10161 struct whiteheat_urb_wrap *wrap ;
10162 unsigned char *data ;
10163 struct whiteheat_private *info ;
10164 void *tmp___7 ;
10165 int status ;
10166 void *__cil_tmp8 ;
10167 void *__cil_tmp9 ;
10168 unsigned char __cil_tmp10 ;
10169 int __cil_tmp11 ;
10170 spinlock_t *__cil_tmp12 ;
10171 struct list_head *__cil_tmp13 ;
10172 spinlock_t *__cil_tmp14 ;
10173 struct device *__cil_tmp15 ;
10174 struct device const *__cil_tmp16 ;
10175 struct list_head *__cil_tmp17 ;
10176 spinlock_t *__cil_tmp18 ;
10177 spinlock_t *__cil_tmp19 ;
10178 struct list_head *__cil_tmp20 ;
10179 struct list_head *__cil_tmp21 ;
10180 spinlock_t *__cil_tmp22 ;
10181 struct device *__cil_tmp23 ;
10182 u32 __cil_tmp24 ;
10183 int __cil_tmp25 ;
10184 unsigned char const *__cil_tmp26 ;
10185 spinlock_t *__cil_tmp27 ;
10186 struct list_head *__cil_tmp28 ;
10187 struct list_head *__cil_tmp29 ;
10188 __u8 __cil_tmp30 ;
10189 int __cil_tmp31 ;
10190 __u8 __cil_tmp32 ;
10191 int __cil_tmp33 ;
10192 int __cil_tmp34 ;
10193 spinlock_t *__cil_tmp35 ;
10194 spinlock_t *__cil_tmp36 ;
10195 struct work_struct *__cil_tmp37 ;
10196
10197 {
10198 {
10199#line 1049
10200 __cil_tmp8 = urb->context;
10201#line 1049
10202 port = (struct usb_serial_port *)__cil_tmp8;
10203#line 1051
10204 __cil_tmp9 = urb->transfer_buffer;
10205#line 1051
10206 data = (unsigned char *)__cil_tmp9;
10207#line 1052
10208 tmp___7 = usb_get_serial_port_data(port);
10209#line 1052
10210 info = (struct whiteheat_private *)tmp___7;
10211#line 1053
10212 status = urb->status;
10213 }
10214 {
10215#line 1055
10216 while (1) {
10217 while_continue: ;
10218
10219#line 1055
10220 if (debug) {
10221 {
10222#line 1055
10223 __cil_tmp10 = port->number;
10224#line 1055
10225 __cil_tmp11 = (int )__cil_tmp10;
10226#line 1055
10227 printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10228 "whiteheat_read_callback", __cil_tmp11);
10229 }
10230 } else {
10231
10232 }
10233#line 1055
10234 goto while_break;
10235 }
10236 while_break___1: ;
10237 }
10238
10239 while_break:
10240 {
10241#line 1057
10242 __cil_tmp12 = & info->lock;
10243#line 1057
10244 spin_lock(__cil_tmp12);
10245#line 1058
10246 __cil_tmp13 = & info->rx_urbs_submitted;
10247#line 1058
10248 wrap = urb_to_wrap(urb, __cil_tmp13);
10249 }
10250#line 1059
10251 if (! wrap) {
10252 {
10253#line 1060
10254 __cil_tmp14 = & info->lock;
10255#line 1060
10256 spin_unlock(__cil_tmp14);
10257#line 1061
10258 __cil_tmp15 = & port->dev;
10259#line 1061
10260 __cil_tmp16 = (struct device const *)__cil_tmp15;
10261#line 1061
10262 dev_err(__cil_tmp16, "%s - Not my urb!\n", "whiteheat_read_callback");
10263 }
10264#line 1062
10265 return;
10266 } else {
10267
10268 }
10269 {
10270#line 1064
10271 __cil_tmp17 = & wrap->list;
10272#line 1064
10273 list_del(__cil_tmp17);
10274#line 1065
10275 __cil_tmp18 = & info->lock;
10276#line 1065
10277 spin_unlock(__cil_tmp18);
10278 }
10279#line 1067
10280 if (status) {
10281 {
10282#line 1068
10283 while (1) {
10284 while_continue___0: ;
10285
10286#line 1068
10287 if (debug) {
10288 {
10289#line 1068
10290 printk("<7>%s: %s - nonzero read bulk status received: %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10291 "whiteheat_read_callback", status);
10292 }
10293 } else {
10294
10295 }
10296#line 1068
10297 goto while_break___0;
10298 }
10299 while_break___2: ;
10300 }
10301
10302 while_break___0:
10303 {
10304#line 1070
10305 __cil_tmp19 = & info->lock;
10306#line 1070
10307 spin_lock(__cil_tmp19);
10308#line 1071
10309 __cil_tmp20 = & wrap->list;
10310#line 1071
10311 __cil_tmp21 = & info->rx_urbs_free;
10312#line 1071
10313 list_add(__cil_tmp20, __cil_tmp21);
10314#line 1072
10315 __cil_tmp22 = & info->lock;
10316#line 1072
10317 spin_unlock(__cil_tmp22);
10318 }
10319#line 1073
10320 return;
10321 } else {
10322
10323 }
10324 {
10325#line 1076
10326 __cil_tmp23 = & port->dev;
10327#line 1076
10328 __cil_tmp24 = urb->actual_length;
10329#line 1076
10330 __cil_tmp25 = (int )__cil_tmp24;
10331#line 1076
10332 __cil_tmp26 = (unsigned char const *)data;
10333#line 1076
10334 usb_serial_debug_data(debug, __cil_tmp23, "whiteheat_read_callback", __cil_tmp25,
10335 __cil_tmp26);
10336#line 1079
10337 __cil_tmp27 = & info->lock;
10338#line 1079
10339 spin_lock(__cil_tmp27);
10340#line 1080
10341 __cil_tmp28 = & wrap->list;
10342#line 1080
10343 __cil_tmp29 = & info->rx_urb_q;
10344#line 1080
10345 list_add_tail(__cil_tmp28, __cil_tmp29);
10346 }
10347 {
10348#line 1081
10349 __cil_tmp30 = info->flags;
10350#line 1081
10351 __cil_tmp31 = (int )__cil_tmp30;
10352#line 1081
10353 if (__cil_tmp31 & 1) {
10354 {
10355#line 1082
10356 __cil_tmp32 = info->flags;
10357#line 1082
10358 __cil_tmp33 = (int )__cil_tmp32;
10359#line 1082
10360 __cil_tmp34 = __cil_tmp33 | 2;
10361#line 1082
10362 info->flags = (__u8 )__cil_tmp34;
10363#line 1083
10364 __cil_tmp35 = & info->lock;
10365#line 1083
10366 spin_unlock(__cil_tmp35);
10367 }
10368#line 1084
10369 return;
10370 } else {
10371
10372 }
10373 }
10374 {
10375#line 1086
10376 __cil_tmp36 = & info->lock;
10377#line 1086
10378 spin_unlock(__cil_tmp36);
10379#line 1088
10380 __cil_tmp37 = & info->rx_work;
10381#line 1088
10382 schedule_work(__cil_tmp37);
10383 }
10384#line 1089
10385 return;
10386}
10387}
10388#line 1092 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
10389static void whiteheat_write_callback(struct urb *urb )
10390{ struct usb_serial_port *port ;
10391 struct whiteheat_private *info ;
10392 void *tmp___7 ;
10393 struct whiteheat_urb_wrap *wrap ;
10394 int status ;
10395 void *__cil_tmp7 ;
10396 unsigned char __cil_tmp8 ;
10397 int __cil_tmp9 ;
10398 spinlock_t *__cil_tmp10 ;
10399 struct list_head *__cil_tmp11 ;
10400 spinlock_t *__cil_tmp12 ;
10401 struct device *__cil_tmp13 ;
10402 struct device const *__cil_tmp14 ;
10403 struct list_head *__cil_tmp15 ;
10404 struct list_head *__cil_tmp16 ;
10405 spinlock_t *__cil_tmp17 ;
10406
10407 {
10408 {
10409#line 1094
10410 __cil_tmp7 = urb->context;
10411#line 1094
10412 port = (struct usb_serial_port *)__cil_tmp7;
10413#line 1095
10414 tmp___7 = usb_get_serial_port_data(port);
10415#line 1095
10416 info = (struct whiteheat_private *)tmp___7;
10417#line 1097
10418 status = urb->status;
10419 }
10420 {
10421#line 1099
10422 while (1) {
10423 while_continue: ;
10424
10425#line 1099
10426 if (debug) {
10427 {
10428#line 1099
10429 __cil_tmp8 = port->number;
10430#line 1099
10431 __cil_tmp9 = (int )__cil_tmp8;
10432#line 1099
10433 printk("<7>%s: %s - port %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10434 "whiteheat_write_callback", __cil_tmp9);
10435 }
10436 } else {
10437
10438 }
10439#line 1099
10440 goto while_break;
10441 }
10442 while_break___1: ;
10443 }
10444
10445 while_break:
10446 {
10447#line 1101
10448 __cil_tmp10 = & info->lock;
10449#line 1101
10450 spin_lock(__cil_tmp10);
10451#line 1102
10452 __cil_tmp11 = & info->tx_urbs_submitted;
10453#line 1102
10454 wrap = urb_to_wrap(urb, __cil_tmp11);
10455 }
10456#line 1103
10457 if (! wrap) {
10458 {
10459#line 1104
10460 __cil_tmp12 = & info->lock;
10461#line 1104
10462 spin_unlock(__cil_tmp12);
10463#line 1105
10464 __cil_tmp13 = & port->dev;
10465#line 1105
10466 __cil_tmp14 = (struct device const *)__cil_tmp13;
10467#line 1105
10468 dev_err(__cil_tmp14, "%s - Not my urb!\n", "whiteheat_write_callback");
10469 }
10470#line 1106
10471 return;
10472 } else {
10473
10474 }
10475 {
10476#line 1108
10477 __cil_tmp15 = & wrap->list;
10478#line 1108
10479 __cil_tmp16 = & info->tx_urbs_free;
10480#line 1108
10481 list_move(__cil_tmp15, __cil_tmp16);
10482#line 1109
10483 __cil_tmp17 = & info->lock;
10484#line 1109
10485 spin_unlock(__cil_tmp17);
10486 }
10487#line 1111
10488 if (status) {
10489 {
10490#line 1112
10491 while (1) {
10492 while_continue___0: ;
10493
10494#line 1112
10495 if (debug) {
10496 {
10497#line 1112
10498 printk("<7>%s: %s - nonzero write bulk status received: %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10499 "whiteheat_write_callback", status);
10500 }
10501 } else {
10502
10503 }
10504#line 1112
10505 goto while_break___0;
10506 }
10507 while_break___2: ;
10508 }
10509
10510 while_break___0: ;
10511#line 1114
10512 return;
10513 } else {
10514
10515 }
10516 {
10517#line 1117
10518 usb_serial_port_softint(port);
10519 }
10520#line 1118
10521 return;
10522}
10523}
10524#line 1124 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
10525static int firm_send_command(struct usb_serial_port *port , __u8 command , __u8 *data ,
10526 __u8 datasize )
10527{ struct usb_serial_port *command_port ;
10528 struct whiteheat_command_private *command_info ;
10529 struct whiteheat_private *info ;
10530 __u8 *transfer_buffer ;
10531 int retval ;
10532 int t ;
10533 void *tmp___7 ;
10534 size_t __len ;
10535 void *__ret ;
10536 long __ret___0 ;
10537 wait_queue_t __wait ;
10538 struct task_struct *tmp___8 ;
10539 void *tmp___9 ;
10540 size_t __len___0 ;
10541 void *__ret___1 ;
10542 int __cil_tmp20 ;
10543 struct usb_serial *__cil_tmp21 ;
10544 struct mutex *__cil_tmp22 ;
10545 struct urb *__cil_tmp23 ;
10546 void *__cil_tmp24 ;
10547 __u8 *__cil_tmp25 ;
10548 __u8 *__cil_tmp26 ;
10549 void *__cil_tmp27 ;
10550 void const *__cil_tmp28 ;
10551 struct urb *__cil_tmp29 ;
10552 int __cil_tmp30 ;
10553 int __cil_tmp31 ;
10554 struct urb *__cil_tmp32 ;
10555 struct usb_serial *__cil_tmp33 ;
10556 struct urb *__cil_tmp34 ;
10557 __u8 __cil_tmp35 ;
10558 bool __cil_tmp36 ;
10559 wait_queue_head_t *__cil_tmp37 ;
10560 __u8 __cil_tmp38 ;
10561 wait_queue_head_t *__cil_tmp39 ;
10562 struct urb *__cil_tmp40 ;
10563 __u8 __cil_tmp41 ;
10564 int __cil_tmp42 ;
10565 __u8 __cil_tmp43 ;
10566 int __cil_tmp44 ;
10567 __u8 __cil_tmp45 ;
10568 int __cil_tmp46 ;
10569 int __cil_tmp47 ;
10570 __u8 *__cil_tmp48 ;
10571 void *__cil_tmp49 ;
10572 __u8 *__cil_tmp50 ;
10573 void const *__cil_tmp51 ;
10574 __u8 *__cil_tmp52 ;
10575 void *__cil_tmp53 ;
10576 __u8 *__cil_tmp54 ;
10577 void const *__cil_tmp55 ;
10578 struct mutex *__cil_tmp56 ;
10579
10580 {
10581#line 1131
10582 retval = 0;
10583 {
10584#line 1134
10585 while (1) {
10586 while_continue: ;
10587
10588#line 1134
10589 if (debug) {
10590 {
10591#line 1134
10592 __cil_tmp20 = (int )command;
10593#line 1134
10594 printk("<7>%s: %s - command %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10595 "firm_send_command", __cil_tmp20);
10596 }
10597 } else {
10598
10599 }
10600#line 1134
10601 goto while_break;
10602 }
10603 while_break___6: ;
10604 }
10605
10606 while_break:
10607 {
10608#line 1136
10609 __cil_tmp21 = port->serial;
10610#line 1136
10611 command_port = __cil_tmp21->port[4];
10612#line 1137
10613 tmp___7 = usb_get_serial_port_data(command_port);
10614#line 1137
10615 command_info = (struct whiteheat_command_private *)tmp___7;
10616#line 1138
10617 __cil_tmp22 = & command_info->mutex;
10618#line 1138
10619 mutex_lock_nested(__cil_tmp22, 0U);
10620#line 1139
10621 command_info->command_finished = (__u8 )0;
10622#line 1141
10623 __cil_tmp23 = command_port->write_urb;
10624#line 1141
10625 __cil_tmp24 = __cil_tmp23->transfer_buffer;
10626#line 1141
10627 transfer_buffer = (__u8 *)__cil_tmp24;
10628#line 1142
10629 __cil_tmp25 = transfer_buffer + 0;
10630#line 1142
10631 *__cil_tmp25 = command;
10632#line 1143
10633 __len = (size_t )datasize;
10634#line 1143
10635 __cil_tmp26 = transfer_buffer + 1;
10636#line 1143
10637 __cil_tmp27 = (void *)__cil_tmp26;
10638#line 1143
10639 __cil_tmp28 = (void const *)data;
10640#line 1143
10641 __ret = __builtin_memcpy(__cil_tmp27, __cil_tmp28, __len);
10642#line 1144
10643 __cil_tmp29 = command_port->write_urb;
10644#line 1144
10645 __cil_tmp30 = (int )datasize;
10646#line 1144
10647 __cil_tmp31 = __cil_tmp30 + 1;
10648#line 1144
10649 __cil_tmp29->transfer_buffer_length = (u32 )__cil_tmp31;
10650#line 1145
10651 __cil_tmp32 = command_port->write_urb;
10652#line 1145
10653 __cil_tmp33 = port->serial;
10654#line 1145
10655 __cil_tmp32->dev = __cil_tmp33->dev;
10656#line 1146
10657 __cil_tmp34 = command_port->write_urb;
10658#line 1146
10659 retval = usb_submit_urb(__cil_tmp34, 16U);
10660 }
10661#line 1147
10662 if (retval) {
10663 {
10664#line 1148
10665 while (1) {
10666 while_continue___0: ;
10667
10668#line 1148
10669 if (debug) {
10670 {
10671#line 1148
10672 printk("<7>%s: %s - submit urb failed\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10673 "firm_send_command");
10674 }
10675 } else {
10676
10677 }
10678#line 1148
10679 goto while_break___0;
10680 }
10681 while_break___7: ;
10682 }
10683
10684 while_break___0: ;
10685#line 1149
10686 goto exit;
10687 } else {
10688
10689 }
10690#line 1153
10691 __ret___0 = 500L;
10692 {
10693#line 1153
10694 __cil_tmp35 = command_info->command_finished;
10695#line 1153
10696 __cil_tmp36 = (bool )__cil_tmp35;
10697#line 1153
10698 if (! __cil_tmp36) {
10699 {
10700#line 1153
10701 while (1) {
10702 while_continue___1: ;
10703 {
10704#line 1153
10705 tmp___8 = get_current();
10706#line 1153
10707 __wait.flags = 0U;
10708#line 1153
10709 __wait.private = (void *)tmp___8;
10710#line 1153
10711 __wait.func = & autoremove_wake_function;
10712#line 1153
10713 __wait.task_list.next = & __wait.task_list;
10714#line 1153
10715 __wait.task_list.prev = & __wait.task_list;
10716 }
10717 {
10718#line 1153
10719 while (1) {
10720 while_continue___2: ;
10721 {
10722#line 1153
10723 __cil_tmp37 = & command_info->wait_command;
10724#line 1153
10725 prepare_to_wait(__cil_tmp37, & __wait, 2);
10726 }
10727 {
10728#line 1153
10729 __cil_tmp38 = command_info->command_finished;
10730#line 1153
10731 if ((bool )__cil_tmp38) {
10732#line 1153
10733 goto while_break___2;
10734 } else {
10735
10736 }
10737 }
10738 {
10739#line 1153
10740 __ret___0 = schedule_timeout(__ret___0);
10741 }
10742#line 1153
10743 if (! __ret___0) {
10744#line 1153
10745 goto while_break___2;
10746 } else {
10747
10748 }
10749 }
10750 while_break___9: ;
10751 }
10752
10753 while_break___2:
10754 {
10755#line 1153
10756 __cil_tmp39 = & command_info->wait_command;
10757#line 1153
10758 finish_wait(__cil_tmp39, & __wait);
10759 }
10760#line 1153
10761 goto while_break___1;
10762 }
10763 while_break___8: ;
10764 }
10765
10766 while_break___1: ;
10767 } else {
10768
10769 }
10770 }
10771#line 1153
10772 t = (int )__ret___0;
10773#line 1155
10774 if (! t) {
10775 {
10776#line 1156
10777 __cil_tmp40 = command_port->write_urb;
10778#line 1156
10779 usb_kill_urb(__cil_tmp40);
10780 }
10781 } else {
10782
10783 }
10784 {
10785#line 1158
10786 __cil_tmp41 = command_info->command_finished;
10787#line 1158
10788 __cil_tmp42 = (int )__cil_tmp41;
10789#line 1158
10790 if (__cil_tmp42 == 0) {
10791 {
10792#line 1159
10793 while (1) {
10794 while_continue___3: ;
10795
10796#line 1159
10797 if (debug) {
10798 {
10799#line 1159
10800 printk("<7>%s: %s - command timed out.\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10801 "firm_send_command");
10802 }
10803 } else {
10804
10805 }
10806#line 1159
10807 goto while_break___3;
10808 }
10809 while_break___10: ;
10810 }
10811
10812 while_break___3:
10813#line 1160
10814 retval = -110;
10815#line 1161
10816 goto exit;
10817 } else {
10818
10819 }
10820 }
10821 {
10822#line 1164
10823 __cil_tmp43 = command_info->command_finished;
10824#line 1164
10825 __cil_tmp44 = (int )__cil_tmp43;
10826#line 1164
10827 if (__cil_tmp44 == 17) {
10828 {
10829#line 1165
10830 while (1) {
10831 while_continue___4: ;
10832
10833#line 1165
10834 if (debug) {
10835 {
10836#line 1165
10837 printk("<7>%s: %s - command failed.\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10838 "firm_send_command");
10839 }
10840 } else {
10841
10842 }
10843#line 1165
10844 goto while_break___4;
10845 }
10846 while_break___11: ;
10847 }
10848
10849 while_break___4:
10850#line 1166
10851 retval = -5;
10852#line 1167
10853 goto exit;
10854 } else {
10855
10856 }
10857 }
10858 {
10859#line 1170
10860 __cil_tmp45 = command_info->command_finished;
10861#line 1170
10862 __cil_tmp46 = (int )__cil_tmp45;
10863#line 1170
10864 if (__cil_tmp46 == 16) {
10865 {
10866#line 1171
10867 while (1) {
10868 while_continue___5: ;
10869
10870#line 1171
10871 if (debug) {
10872 {
10873#line 1171
10874 printk("<7>%s: %s - command completed.\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
10875 "firm_send_command");
10876 }
10877 } else {
10878
10879 }
10880#line 1171
10881 goto while_break___5;
10882 }
10883 while_break___12: ;
10884 }
10885
10886 while_break___5: ;
10887 {
10888#line 1173
10889 __cil_tmp47 = (int )command;
10890#line 1173
10891 if (__cil_tmp47 == 10) {
10892#line 1173
10893 goto case_10;
10894 } else
10895#line 1172
10896 if (0) {
10897 case_10:
10898 {
10899#line 1174
10900 tmp___9 = usb_get_serial_port_data(port);
10901#line 1174
10902 info = (struct whiteheat_private *)tmp___9;
10903#line 1175
10904 __len___0 = 1UL;
10905 }
10906#line 1175
10907 if (__len___0 >= 64UL) {
10908 {
10909#line 1175
10910 __cil_tmp48 = & info->mcr;
10911#line 1175
10912 __cil_tmp49 = (void *)__cil_tmp48;
10913#line 1175
10914 __cil_tmp50 = & command_info->result_buffer[0];
10915#line 1175
10916 __cil_tmp51 = (void const *)__cil_tmp50;
10917#line 1175
10918 __ret___1 = __memcpy(__cil_tmp49, __cil_tmp51, __len___0);
10919 }
10920 } else {
10921 {
10922#line 1175
10923 __cil_tmp52 = & info->mcr;
10924#line 1175
10925 __cil_tmp53 = (void *)__cil_tmp52;
10926#line 1175
10927 __cil_tmp54 = & command_info->result_buffer[0];
10928#line 1175
10929 __cil_tmp55 = (void const *)__cil_tmp54;
10930#line 1175
10931 __ret___1 = __builtin_memcpy(__cil_tmp53, __cil_tmp55, __len___0);
10932 }
10933 }
10934#line 1177
10935 goto switch_break;
10936 } else {
10937 switch_break: ;
10938 }
10939 }
10940 } else {
10941
10942 }
10943 }
10944 exit:
10945 {
10946#line 1181
10947 __cil_tmp56 = & command_info->mutex;
10948#line 1181
10949 mutex_unlock(__cil_tmp56);
10950 }
10951#line 1182
10952 return (retval);
10953}
10954}
10955#line 1186 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
10956static int firm_open(struct usb_serial_port *port )
10957{ struct whiteheat_simple open_command ;
10958 int tmp___7 ;
10959 struct usb_serial *__cil_tmp4 ;
10960 unsigned char __cil_tmp5 ;
10961 int __cil_tmp6 ;
10962 unsigned char __cil_tmp7 ;
10963 int __cil_tmp8 ;
10964 int __cil_tmp9 ;
10965 int __cil_tmp10 ;
10966 __u8 __cil_tmp11 ;
10967 __u8 *__cil_tmp12 ;
10968 __u8 __cil_tmp13 ;
10969
10970 {
10971 {
10972#line 1190
10973 __cil_tmp4 = port->serial;
10974#line 1190
10975 __cil_tmp5 = __cil_tmp4->minor;
10976#line 1190
10977 __cil_tmp6 = (int )__cil_tmp5;
10978#line 1190
10979 __cil_tmp7 = port->number;
10980#line 1190
10981 __cil_tmp8 = (int )__cil_tmp7;
10982#line 1190
10983 __cil_tmp9 = __cil_tmp8 - __cil_tmp6;
10984#line 1190
10985 __cil_tmp10 = __cil_tmp9 + 1;
10986#line 1190
10987 open_command.port = (__u8 )__cil_tmp10;
10988#line 1191
10989 __cil_tmp11 = (__u8 )1;
10990#line 1191
10991 __cil_tmp12 = (__u8 *)(& open_command);
10992#line 1191
10993 __cil_tmp13 = (__u8 )1UL;
10994#line 1191
10995 tmp___7 = firm_send_command(port, __cil_tmp11, __cil_tmp12, __cil_tmp13);
10996 }
10997#line 1191
10998 return (tmp___7);
10999}
11000}
11001#line 1196 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11002static int firm_close(struct usb_serial_port *port )
11003{ struct whiteheat_simple close_command ;
11004 int tmp___7 ;
11005 struct usb_serial *__cil_tmp4 ;
11006 unsigned char __cil_tmp5 ;
11007 int __cil_tmp6 ;
11008 unsigned char __cil_tmp7 ;
11009 int __cil_tmp8 ;
11010 int __cil_tmp9 ;
11011 int __cil_tmp10 ;
11012 __u8 __cil_tmp11 ;
11013 __u8 *__cil_tmp12 ;
11014 __u8 __cil_tmp13 ;
11015
11016 {
11017 {
11018#line 1200
11019 __cil_tmp4 = port->serial;
11020#line 1200
11021 __cil_tmp5 = __cil_tmp4->minor;
11022#line 1200
11023 __cil_tmp6 = (int )__cil_tmp5;
11024#line 1200
11025 __cil_tmp7 = port->number;
11026#line 1200
11027 __cil_tmp8 = (int )__cil_tmp7;
11028#line 1200
11029 __cil_tmp9 = __cil_tmp8 - __cil_tmp6;
11030#line 1200
11031 __cil_tmp10 = __cil_tmp9 + 1;
11032#line 1200
11033 close_command.port = (__u8 )__cil_tmp10;
11034#line 1201
11035 __cil_tmp11 = (__u8 )2;
11036#line 1201
11037 __cil_tmp12 = (__u8 *)(& close_command);
11038#line 1201
11039 __cil_tmp13 = (__u8 )1UL;
11040#line 1201
11041 tmp___7 = firm_send_command(port, __cil_tmp11, __cil_tmp12, __cil_tmp13);
11042 }
11043#line 1201
11044 return (tmp___7);
11045}
11046}
11047#line 1206 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11048static void firm_setup_port(struct tty_struct *tty )
11049{ struct usb_serial_port *port ;
11050 struct whiteheat_port_settings port_settings ;
11051 unsigned int cflag ;
11052 char const *tmp___7 ;
11053 char const *tmp___8 ;
11054 char const *tmp___9 ;
11055 char const *tmp___10 ;
11056 void *__cil_tmp9 ;
11057 struct ktermios *__cil_tmp10 ;
11058 unsigned char __cil_tmp11 ;
11059 int __cil_tmp12 ;
11060 int __cil_tmp13 ;
11061 unsigned int __cil_tmp14 ;
11062 int __cil_tmp15 ;
11063 unsigned int __cil_tmp16 ;
11064 int __cil_tmp17 ;
11065 unsigned int __cil_tmp18 ;
11066 int __cil_tmp19 ;
11067 int __cil_tmp20 ;
11068 int __cil_tmp21 ;
11069 int __cil_tmp22 ;
11070 int __cil_tmp23 ;
11071 int __cil_tmp24 ;
11072 int __cil_tmp25 ;
11073 int __cil_tmp26 ;
11074 struct ktermios *__cil_tmp27 ;
11075 tcflag_t __cil_tmp28 ;
11076 int __cil_tmp29 ;
11077 struct ktermios *__cil_tmp30 ;
11078 struct ktermios *__cil_tmp31 ;
11079 int __cil_tmp32 ;
11080 int __cil_tmp33 ;
11081 __u8 __cil_tmp34 ;
11082 __u8 *__cil_tmp35 ;
11083 __u8 __cil_tmp36 ;
11084
11085 {
11086#line 1208
11087 __cil_tmp9 = tty->driver_data;
11088#line 1208
11089 port = (struct usb_serial_port *)__cil_tmp9;
11090#line 1210
11091 __cil_tmp10 = tty->termios;
11092#line 1210
11093 cflag = __cil_tmp10->c_cflag;
11094#line 1212
11095 __cil_tmp11 = port->number;
11096#line 1212
11097 __cil_tmp12 = (int )__cil_tmp11;
11098#line 1212
11099 __cil_tmp13 = __cil_tmp12 + 1;
11100#line 1212
11101 port_settings.port = (__u8 )__cil_tmp13;
11102 {
11103#line 1216
11104 __cil_tmp14 = cflag & 48U;
11105#line 1216
11106 __cil_tmp15 = (int )__cil_tmp14;
11107#line 1216
11108 if (__cil_tmp15 == 0) {
11109#line 1216
11110 goto case_0;
11111 } else {
11112 {
11113#line 1217
11114 __cil_tmp16 = cflag & 48U;
11115#line 1217
11116 __cil_tmp17 = (int )__cil_tmp16;
11117#line 1217
11118 if (__cil_tmp17 == 16) {
11119#line 1217
11120 goto case_16;
11121 } else {
11122 {
11123#line 1218
11124 __cil_tmp18 = cflag & 48U;
11125#line 1218
11126 __cil_tmp19 = (int )__cil_tmp18;
11127#line 1218
11128 if (__cil_tmp19 == 32) {
11129#line 1218
11130 goto case_32;
11131 } else {
11132#line 1219
11133 goto switch_default;
11134#line 1215
11135 if (0) {
11136 case_0:
11137#line 1216
11138 port_settings.bits = (__u8 )5;
11139#line 1216
11140 goto switch_break;
11141 case_16:
11142#line 1217
11143 port_settings.bits = (__u8 )6;
11144#line 1217
11145 goto switch_break;
11146 case_32:
11147#line 1218
11148 port_settings.bits = (__u8 )7;
11149#line 1218
11150 goto switch_break;
11151 switch_default:
11152#line 1220
11153 port_settings.bits = (__u8 )8;
11154#line 1220
11155 goto switch_break;
11156 } else {
11157 switch_break: ;
11158 }
11159 }
11160 }
11161 }
11162 }
11163 }
11164 }
11165 {
11166#line 1222
11167 while (1) {
11168 while_continue: ;
11169
11170#line 1222
11171 if (debug) {
11172 {
11173#line 1222
11174 __cil_tmp20 = (int )port_settings.bits;
11175#line 1222
11176 printk("<7>%s: %s - data bits = %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11177 "firm_setup_port", __cil_tmp20);
11178 }
11179 } else {
11180
11181 }
11182#line 1222
11183 goto while_break;
11184 }
11185 while_break___6: ;
11186 }
11187
11188 while_break: ;
11189#line 1225
11190 if (cflag & 256U) {
11191#line 1226
11192 if (cflag & 1073741824U) {
11193#line 1227
11194 if (cflag & 512U) {
11195#line 1228
11196 port_settings.parity = (__u8 )'1';
11197 } else {
11198#line 1230
11199 port_settings.parity = (__u8 )'0';
11200 }
11201 } else
11202#line 1232
11203 if (cflag & 512U) {
11204#line 1233
11205 port_settings.parity = (__u8 )'o';
11206 } else {
11207#line 1235
11208 port_settings.parity = (__u8 )'e';
11209 }
11210 } else {
11211#line 1237
11212 port_settings.parity = (__u8 )'n';
11213 }
11214 {
11215#line 1238
11216 while (1) {
11217 while_continue___0: ;
11218
11219#line 1238
11220 if (debug) {
11221 {
11222#line 1238
11223 __cil_tmp21 = (int )port_settings.parity;
11224#line 1238
11225 printk("<7>%s: %s - parity = %c\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11226 "firm_setup_port", __cil_tmp21);
11227 }
11228 } else {
11229
11230 }
11231#line 1238
11232 goto while_break___0;
11233 }
11234 while_break___7: ;
11235 }
11236
11237 while_break___0: ;
11238#line 1241
11239 if (cflag & 64U) {
11240#line 1242
11241 port_settings.stop = (__u8 )2;
11242 } else {
11243#line 1244
11244 port_settings.stop = (__u8 )1;
11245 }
11246 {
11247#line 1245
11248 while (1) {
11249 while_continue___1: ;
11250
11251#line 1245
11252 if (debug) {
11253 {
11254#line 1245
11255 __cil_tmp22 = (int )port_settings.stop;
11256#line 1245
11257 printk("<7>%s: %s - stop bits = %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11258 "firm_setup_port", __cil_tmp22);
11259 }
11260 } else {
11261
11262 }
11263#line 1245
11264 goto while_break___1;
11265 }
11266 while_break___8: ;
11267 }
11268
11269 while_break___1: ;
11270#line 1248
11271 if (cflag & 2147483648U) {
11272#line 1249
11273 port_settings.hflow = (__u8 )136;
11274 } else {
11275#line 1252
11276 port_settings.hflow = (__u8 )0;
11277 }
11278 {
11279#line 1253
11280 while (1) {
11281 while_continue___2: ;
11282
11283#line 1253
11284 if (debug) {
11285 {
11286#line 1253
11287 __cil_tmp23 = (int )port_settings.hflow;
11288#line 1253
11289 if (__cil_tmp23 & 2) {
11290#line 1253
11291 tmp___7 = "DTR";
11292 } else {
11293#line 1253
11294 tmp___7 = "";
11295 }
11296 }
11297 {
11298#line 1253
11299 __cil_tmp24 = (int )port_settings.hflow;
11300#line 1253
11301 if (__cil_tmp24 & 16) {
11302#line 1253
11303 tmp___8 = "DSR";
11304 } else {
11305#line 1253
11306 tmp___8 = "";
11307 }
11308 }
11309 {
11310#line 1253
11311 __cil_tmp25 = (int )port_settings.hflow;
11312#line 1253
11313 if (__cil_tmp25 & 128) {
11314#line 1253
11315 tmp___9 = "RTS";
11316 } else {
11317#line 1253
11318 tmp___9 = "";
11319 }
11320 }
11321 {
11322#line 1253
11323 __cil_tmp26 = (int )port_settings.hflow;
11324#line 1253
11325 if (__cil_tmp26 & 8) {
11326#line 1253
11327 tmp___10 = "CTS";
11328 } else {
11329#line 1253
11330 tmp___10 = "";
11331 }
11332 }
11333 {
11334#line 1253
11335 printk("<7>%s: %s - hardware flow control = %s %s %s %s\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11336 "firm_setup_port", tmp___10, tmp___9, tmp___8, tmp___7);
11337 }
11338 } else {
11339
11340 }
11341#line 1253
11342 goto while_break___2;
11343 }
11344 while_break___9: ;
11345 }
11346
11347 while_break___2: ;
11348 {
11349#line 1260
11350 __cil_tmp27 = tty->termios;
11351#line 1260
11352 __cil_tmp28 = __cil_tmp27->c_iflag;
11353#line 1260
11354 if (__cil_tmp28 & 4096U) {
11355#line 1261
11356 port_settings.sflow = (__u8 )'b';
11357 } else {
11358#line 1263
11359 port_settings.sflow = (__u8 )'n';
11360 }
11361 }
11362 {
11363#line 1264
11364 while (1) {
11365 while_continue___3: ;
11366
11367#line 1264
11368 if (debug) {
11369 {
11370#line 1264
11371 __cil_tmp29 = (int )port_settings.sflow;
11372#line 1264
11373 printk("<7>%s: %s - software flow control = %c\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11374 "firm_setup_port", __cil_tmp29);
11375 }
11376 } else {
11377
11378 }
11379#line 1264
11380 goto while_break___3;
11381 }
11382 while_break___10: ;
11383 }
11384
11385 while_break___3:
11386#line 1266
11387 __cil_tmp30 = tty->termios;
11388#line 1266
11389 port_settings.xon = __cil_tmp30->c_cc[8];
11390#line 1267
11391 __cil_tmp31 = tty->termios;
11392#line 1267
11393 port_settings.xoff = __cil_tmp31->c_cc[9];
11394 {
11395#line 1268
11396 while (1) {
11397 while_continue___4: ;
11398
11399#line 1268
11400 if (debug) {
11401 {
11402#line 1268
11403 __cil_tmp32 = (int )port_settings.xon;
11404#line 1268
11405 __cil_tmp33 = (int )port_settings.xoff;
11406#line 1268
11407 printk("<7>%s: %s - XON = %2x, XOFF = %2x\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11408 "firm_setup_port", __cil_tmp32, __cil_tmp33);
11409 }
11410 } else {
11411
11412 }
11413#line 1268
11414 goto while_break___4;
11415 }
11416 while_break___11: ;
11417 }
11418
11419 while_break___4:
11420 {
11421#line 1272
11422 port_settings.baud = tty_get_baud_rate(tty);
11423 }
11424 {
11425#line 1273
11426 while (1) {
11427 while_continue___5: ;
11428
11429#line 1273
11430 if (debug) {
11431 {
11432#line 1273
11433 printk("<7>%s: %s - baud rate = %d\n", "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c",
11434 "firm_setup_port", port_settings.baud);
11435 }
11436 } else {
11437
11438 }
11439#line 1273
11440 goto while_break___5;
11441 }
11442 while_break___12: ;
11443 }
11444
11445 while_break___5:
11446 {
11447#line 1276
11448 tty_encode_baud_rate(tty, port_settings.baud, port_settings.baud);
11449#line 1278
11450 port_settings.lloop = (__u8 )0;
11451#line 1281
11452 __cil_tmp34 = (__u8 )3;
11453#line 1281
11454 __cil_tmp35 = (__u8 *)(& port_settings);
11455#line 1281
11456 __cil_tmp36 = (__u8 )13UL;
11457#line 1281
11458 firm_send_command(port, __cil_tmp34, __cil_tmp35, __cil_tmp36);
11459 }
11460#line 1283
11461 return;
11462}
11463}
11464#line 1286 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11465static int firm_set_rts(struct usb_serial_port *port , __u8 onoff )
11466{ struct whiteheat_set_rdb rts_command ;
11467 int tmp___7 ;
11468 struct usb_serial *__cil_tmp5 ;
11469 unsigned char __cil_tmp6 ;
11470 int __cil_tmp7 ;
11471 unsigned char __cil_tmp8 ;
11472 int __cil_tmp9 ;
11473 int __cil_tmp10 ;
11474 int __cil_tmp11 ;
11475 __u8 __cil_tmp12 ;
11476 __u8 *__cil_tmp13 ;
11477 __u8 __cil_tmp14 ;
11478
11479 {
11480 {
11481#line 1290
11482 __cil_tmp5 = port->serial;
11483#line 1290
11484 __cil_tmp6 = __cil_tmp5->minor;
11485#line 1290
11486 __cil_tmp7 = (int )__cil_tmp6;
11487#line 1290
11488 __cil_tmp8 = port->number;
11489#line 1290
11490 __cil_tmp9 = (int )__cil_tmp8;
11491#line 1290
11492 __cil_tmp10 = __cil_tmp9 - __cil_tmp7;
11493#line 1290
11494 __cil_tmp11 = __cil_tmp10 + 1;
11495#line 1290
11496 rts_command.port = (__u8 )__cil_tmp11;
11497#line 1291
11498 rts_command.state = onoff;
11499#line 1292
11500 __cil_tmp12 = (__u8 )4;
11501#line 1292
11502 __cil_tmp13 = (__u8 *)(& rts_command);
11503#line 1292
11504 __cil_tmp14 = (__u8 )2UL;
11505#line 1292
11506 tmp___7 = firm_send_command(port, __cil_tmp12, __cil_tmp13, __cil_tmp14);
11507 }
11508#line 1292
11509 return (tmp___7);
11510}
11511}
11512#line 1297 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11513static int firm_set_dtr(struct usb_serial_port *port , __u8 onoff )
11514{ struct whiteheat_set_rdb dtr_command ;
11515 int tmp___7 ;
11516 struct usb_serial *__cil_tmp5 ;
11517 unsigned char __cil_tmp6 ;
11518 int __cil_tmp7 ;
11519 unsigned char __cil_tmp8 ;
11520 int __cil_tmp9 ;
11521 int __cil_tmp10 ;
11522 int __cil_tmp11 ;
11523 __u8 __cil_tmp12 ;
11524 __u8 *__cil_tmp13 ;
11525 __u8 __cil_tmp14 ;
11526
11527 {
11528 {
11529#line 1301
11530 __cil_tmp5 = port->serial;
11531#line 1301
11532 __cil_tmp6 = __cil_tmp5->minor;
11533#line 1301
11534 __cil_tmp7 = (int )__cil_tmp6;
11535#line 1301
11536 __cil_tmp8 = port->number;
11537#line 1301
11538 __cil_tmp9 = (int )__cil_tmp8;
11539#line 1301
11540 __cil_tmp10 = __cil_tmp9 - __cil_tmp7;
11541#line 1301
11542 __cil_tmp11 = __cil_tmp10 + 1;
11543#line 1301
11544 dtr_command.port = (__u8 )__cil_tmp11;
11545#line 1302
11546 dtr_command.state = onoff;
11547#line 1303
11548 __cil_tmp12 = (__u8 )5;
11549#line 1303
11550 __cil_tmp13 = (__u8 *)(& dtr_command);
11551#line 1303
11552 __cil_tmp14 = (__u8 )2UL;
11553#line 1303
11554 tmp___7 = firm_send_command(port, __cil_tmp12, __cil_tmp13, __cil_tmp14);
11555 }
11556#line 1303
11557 return (tmp___7);
11558}
11559}
11560#line 1308 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11561static int firm_set_break(struct usb_serial_port *port , __u8 onoff )
11562{ struct whiteheat_set_rdb break_command ;
11563 int tmp___7 ;
11564 struct usb_serial *__cil_tmp5 ;
11565 unsigned char __cil_tmp6 ;
11566 int __cil_tmp7 ;
11567 unsigned char __cil_tmp8 ;
11568 int __cil_tmp9 ;
11569 int __cil_tmp10 ;
11570 int __cil_tmp11 ;
11571 __u8 __cil_tmp12 ;
11572 __u8 *__cil_tmp13 ;
11573 __u8 __cil_tmp14 ;
11574
11575 {
11576 {
11577#line 1312
11578 __cil_tmp5 = port->serial;
11579#line 1312
11580 __cil_tmp6 = __cil_tmp5->minor;
11581#line 1312
11582 __cil_tmp7 = (int )__cil_tmp6;
11583#line 1312
11584 __cil_tmp8 = port->number;
11585#line 1312
11586 __cil_tmp9 = (int )__cil_tmp8;
11587#line 1312
11588 __cil_tmp10 = __cil_tmp9 - __cil_tmp7;
11589#line 1312
11590 __cil_tmp11 = __cil_tmp10 + 1;
11591#line 1312
11592 break_command.port = (__u8 )__cil_tmp11;
11593#line 1313
11594 break_command.state = onoff;
11595#line 1314
11596 __cil_tmp12 = (__u8 )6;
11597#line 1314
11598 __cil_tmp13 = (__u8 *)(& break_command);
11599#line 1314
11600 __cil_tmp14 = (__u8 )2UL;
11601#line 1314
11602 tmp___7 = firm_send_command(port, __cil_tmp12, __cil_tmp13, __cil_tmp14);
11603 }
11604#line 1314
11605 return (tmp___7);
11606}
11607}
11608#line 1319 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11609static int firm_purge(struct usb_serial_port *port , __u8 rxtx )
11610{ struct whiteheat_purge purge_command ;
11611 int tmp___7 ;
11612 struct usb_serial *__cil_tmp5 ;
11613 unsigned char __cil_tmp6 ;
11614 int __cil_tmp7 ;
11615 unsigned char __cil_tmp8 ;
11616 int __cil_tmp9 ;
11617 int __cil_tmp10 ;
11618 int __cil_tmp11 ;
11619 __u8 __cil_tmp12 ;
11620 __u8 *__cil_tmp13 ;
11621 __u8 __cil_tmp14 ;
11622
11623 {
11624 {
11625#line 1323
11626 __cil_tmp5 = port->serial;
11627#line 1323
11628 __cil_tmp6 = __cil_tmp5->minor;
11629#line 1323
11630 __cil_tmp7 = (int )__cil_tmp6;
11631#line 1323
11632 __cil_tmp8 = port->number;
11633#line 1323
11634 __cil_tmp9 = (int )__cil_tmp8;
11635#line 1323
11636 __cil_tmp10 = __cil_tmp9 - __cil_tmp7;
11637#line 1323
11638 __cil_tmp11 = __cil_tmp10 + 1;
11639#line 1323
11640 purge_command.port = (__u8 )__cil_tmp11;
11641#line 1324
11642 purge_command.what = rxtx;
11643#line 1325
11644 __cil_tmp12 = (__u8 )9;
11645#line 1325
11646 __cil_tmp13 = (__u8 *)(& purge_command);
11647#line 1325
11648 __cil_tmp14 = (__u8 )2UL;
11649#line 1325
11650 tmp___7 = firm_send_command(port, __cil_tmp12, __cil_tmp13, __cil_tmp14);
11651 }
11652#line 1325
11653 return (tmp___7);
11654}
11655}
11656#line 1330 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11657static int firm_get_dtr_rts(struct usb_serial_port *port )
11658{ struct whiteheat_simple get_dr_command ;
11659 int tmp___7 ;
11660 struct usb_serial *__cil_tmp4 ;
11661 unsigned char __cil_tmp5 ;
11662 int __cil_tmp6 ;
11663 unsigned char __cil_tmp7 ;
11664 int __cil_tmp8 ;
11665 int __cil_tmp9 ;
11666 int __cil_tmp10 ;
11667 __u8 __cil_tmp11 ;
11668 __u8 *__cil_tmp12 ;
11669 __u8 __cil_tmp13 ;
11670
11671 {
11672 {
11673#line 1334
11674 __cil_tmp4 = port->serial;
11675#line 1334
11676 __cil_tmp5 = __cil_tmp4->minor;
11677#line 1334
11678 __cil_tmp6 = (int )__cil_tmp5;
11679#line 1334
11680 __cil_tmp7 = port->number;
11681#line 1334
11682 __cil_tmp8 = (int )__cil_tmp7;
11683#line 1334
11684 __cil_tmp9 = __cil_tmp8 - __cil_tmp6;
11685#line 1334
11686 __cil_tmp10 = __cil_tmp9 + 1;
11687#line 1334
11688 get_dr_command.port = (__u8 )__cil_tmp10;
11689#line 1335
11690 __cil_tmp11 = (__u8 )10;
11691#line 1335
11692 __cil_tmp12 = (__u8 *)(& get_dr_command);
11693#line 1335
11694 __cil_tmp13 = (__u8 )1UL;
11695#line 1335
11696 tmp___7 = firm_send_command(port, __cil_tmp11, __cil_tmp12, __cil_tmp13);
11697 }
11698#line 1335
11699 return (tmp___7);
11700}
11701}
11702#line 1340 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11703static int firm_report_tx_done(struct usb_serial_port *port )
11704{ struct whiteheat_simple close_command ;
11705 int tmp___7 ;
11706 struct usb_serial *__cil_tmp4 ;
11707 unsigned char __cil_tmp5 ;
11708 int __cil_tmp6 ;
11709 unsigned char __cil_tmp7 ;
11710 int __cil_tmp8 ;
11711 int __cil_tmp9 ;
11712 int __cil_tmp10 ;
11713 __u8 __cil_tmp11 ;
11714 __u8 *__cil_tmp12 ;
11715 __u8 __cil_tmp13 ;
11716
11717 {
11718 {
11719#line 1344
11720 __cil_tmp4 = port->serial;
11721#line 1344
11722 __cil_tmp5 = __cil_tmp4->minor;
11723#line 1344
11724 __cil_tmp6 = (int )__cil_tmp5;
11725#line 1344
11726 __cil_tmp7 = port->number;
11727#line 1344
11728 __cil_tmp8 = (int )__cil_tmp7;
11729#line 1344
11730 __cil_tmp9 = __cil_tmp8 - __cil_tmp6;
11731#line 1344
11732 __cil_tmp10 = __cil_tmp9 + 1;
11733#line 1344
11734 close_command.port = (__u8 )__cil_tmp10;
11735#line 1345
11736 __cil_tmp11 = (__u8 )12;
11737#line 1345
11738 __cil_tmp12 = (__u8 *)(& close_command);
11739#line 1345
11740 __cil_tmp13 = (__u8 )1UL;
11741#line 1345
11742 tmp___7 = firm_send_command(port, __cil_tmp11, __cil_tmp12, __cil_tmp13);
11743 }
11744#line 1345
11745 return (tmp___7);
11746}
11747}
11748#line 1353 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11749static int start_command_port(struct usb_serial *serial )
11750{ struct usb_serial_port *command_port ;
11751 struct whiteheat_command_private *command_info ;
11752 int retval ;
11753 void *tmp___7 ;
11754 struct mutex *__cil_tmp6 ;
11755 __u8 __cil_tmp7 ;
11756 struct usb_device *__cil_tmp8 ;
11757 struct urb *__cil_tmp9 ;
11758 unsigned int __cil_tmp10 ;
11759 int __cil_tmp11 ;
11760 struct urb *__cil_tmp12 ;
11761 struct urb *__cil_tmp13 ;
11762 struct usb_device *__cil_tmp14 ;
11763 struct device *__cil_tmp15 ;
11764 struct device const *__cil_tmp16 ;
11765 __u8 __cil_tmp17 ;
11766 int __cil_tmp18 ;
11767 int __cil_tmp19 ;
11768 struct mutex *__cil_tmp20 ;
11769
11770 {
11771 {
11772#line 1357
11773 retval = 0;
11774#line 1359
11775 command_port = serial->port[4];
11776#line 1360
11777 tmp___7 = usb_get_serial_port_data(command_port);
11778#line 1360
11779 command_info = (struct whiteheat_command_private *)tmp___7;
11780#line 1361
11781 __cil_tmp6 = & command_info->mutex;
11782#line 1361
11783 mutex_lock_nested(__cil_tmp6, 0U);
11784 }
11785 {
11786#line 1362
11787 __cil_tmp7 = command_info->port_running;
11788#line 1362
11789 if (! __cil_tmp7) {
11790 {
11791#line 1364
11792 __cil_tmp8 = serial->dev;
11793#line 1364
11794 __cil_tmp9 = command_port->read_urb;
11795#line 1364
11796 __cil_tmp10 = __cil_tmp9->pipe;
11797#line 1364
11798 __cil_tmp11 = (int )__cil_tmp10;
11799#line 1364
11800 usb_clear_halt(__cil_tmp8, __cil_tmp11);
11801#line 1366
11802 __cil_tmp12 = command_port->read_urb;
11803#line 1366
11804 __cil_tmp12->dev = serial->dev;
11805#line 1367
11806 __cil_tmp13 = command_port->read_urb;
11807#line 1367
11808 retval = usb_submit_urb(__cil_tmp13, 208U);
11809 }
11810#line 1368
11811 if (retval) {
11812 {
11813#line 1369
11814 __cil_tmp14 = serial->dev;
11815#line 1369
11816 __cil_tmp15 = & __cil_tmp14->dev;
11817#line 1369
11818 __cil_tmp16 = (struct device const *)__cil_tmp15;
11819#line 1369
11820 dev_err(__cil_tmp16, "%s - failed submitting read urb, error %d\n", "start_command_port",
11821 retval);
11822 }
11823#line 1372
11824 goto exit;
11825 } else {
11826
11827 }
11828 } else {
11829
11830 }
11831 }
11832#line 1375
11833 __cil_tmp17 = command_info->port_running;
11834#line 1375
11835 __cil_tmp18 = (int )__cil_tmp17;
11836#line 1375
11837 __cil_tmp19 = __cil_tmp18 + 1;
11838#line 1375
11839 command_info->port_running = (__u8 )__cil_tmp19;
11840 exit:
11841 {
11842#line 1378
11843 __cil_tmp20 = & command_info->mutex;
11844#line 1378
11845 mutex_unlock(__cil_tmp20);
11846 }
11847#line 1379
11848 return (retval);
11849}
11850}
11851#line 1383 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11852static void stop_command_port(struct usb_serial *serial )
11853{ struct usb_serial_port *command_port ;
11854 struct whiteheat_command_private *command_info ;
11855 void *tmp___7 ;
11856 struct mutex *__cil_tmp5 ;
11857 __u8 __cil_tmp6 ;
11858 int __cil_tmp7 ;
11859 int __cil_tmp8 ;
11860 __u8 __cil_tmp9 ;
11861 struct urb *__cil_tmp10 ;
11862 struct mutex *__cil_tmp11 ;
11863
11864 {
11865 {
11866#line 1388
11867 command_port = serial->port[4];
11868#line 1389
11869 tmp___7 = usb_get_serial_port_data(command_port);
11870#line 1389
11871 command_info = (struct whiteheat_command_private *)tmp___7;
11872#line 1390
11873 __cil_tmp5 = & command_info->mutex;
11874#line 1390
11875 mutex_lock_nested(__cil_tmp5, 0U);
11876#line 1391
11877 __cil_tmp6 = command_info->port_running;
11878#line 1391
11879 __cil_tmp7 = (int )__cil_tmp6;
11880#line 1391
11881 __cil_tmp8 = __cil_tmp7 - 1;
11882#line 1391
11883 command_info->port_running = (__u8 )__cil_tmp8;
11884 }
11885 {
11886#line 1392
11887 __cil_tmp9 = command_info->port_running;
11888#line 1392
11889 if (! __cil_tmp9) {
11890 {
11891#line 1393
11892 __cil_tmp10 = command_port->read_urb;
11893#line 1393
11894 usb_kill_urb(__cil_tmp10);
11895 }
11896 } else {
11897
11898 }
11899 }
11900 {
11901#line 1394
11902 __cil_tmp11 = & command_info->mutex;
11903#line 1394
11904 mutex_unlock(__cil_tmp11);
11905 }
11906#line 1395
11907 return;
11908}
11909}
11910#line 1398 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
11911static int start_port_read(struct usb_serial_port *port )
11912{ struct whiteheat_private *info ;
11913 void *tmp___7 ;
11914 struct whiteheat_urb_wrap *wrap ;
11915 struct urb *urb ;
11916 int retval ;
11917 unsigned long flags ;
11918 struct list_head *tmp___8 ;
11919 struct list_head *tmp2 ;
11920 raw_spinlock_t *tmp___9 ;
11921 struct list_head const *__mptr ;
11922 raw_spinlock_t *tmp___10 ;
11923 struct list_head const *__mptr___0 ;
11924 raw_spinlock_t *tmp___11 ;
11925 raw_spinlock_t *tmp___12 ;
11926 spinlock_t *__cil_tmp16 ;
11927 struct list_head *__cil_tmp17 ;
11928 unsigned long __cil_tmp18 ;
11929 unsigned long __cil_tmp19 ;
11930 struct whiteheat_urb_wrap *__cil_tmp20 ;
11931 struct list_head *__cil_tmp21 ;
11932 unsigned int __cil_tmp22 ;
11933 char *__cil_tmp23 ;
11934 char *__cil_tmp24 ;
11935 struct usb_serial *__cil_tmp25 ;
11936 spinlock_t *__cil_tmp26 ;
11937 spinlock_t *__cil_tmp27 ;
11938 struct list_head *__cil_tmp28 ;
11939 struct list_head *__cil_tmp29 ;
11940 unsigned long __cil_tmp30 ;
11941 unsigned long __cil_tmp31 ;
11942 struct whiteheat_urb_wrap *__cil_tmp32 ;
11943 struct list_head *__cil_tmp33 ;
11944 unsigned int __cil_tmp34 ;
11945 char *__cil_tmp35 ;
11946 char *__cil_tmp36 ;
11947 spinlock_t *__cil_tmp37 ;
11948 spinlock_t *__cil_tmp38 ;
11949 struct list_head *__cil_tmp39 ;
11950 spinlock_t *__cil_tmp40 ;
11951 struct list_head *__cil_tmp41 ;
11952 spinlock_t *__cil_tmp42 ;
11953
11954 {
11955 {
11956#line 1400
11957 tmp___7 = usb_get_serial_port_data(port);
11958#line 1400
11959 info = (struct whiteheat_private *)tmp___7;
11960#line 1403
11961 retval = 0;
11962 }
11963 {
11964#line 1408
11965 while (1) {
11966 while_continue: ;
11967
11968 {
11969#line 1408
11970 while (1) {
11971 while_continue___0: ;
11972 {
11973#line 1408
11974 __cil_tmp16 = & info->lock;
11975#line 1408
11976 tmp___9 = spinlock_check(__cil_tmp16);
11977#line 1408
11978 flags = _raw_spin_lock_irqsave(tmp___9);
11979 }
11980#line 1408
11981 goto while_break___0;
11982 }
11983 while_break___10: ;
11984 }
11985
11986 while_break___0: ;
11987#line 1408
11988 goto while_break;
11989 }
11990 while_break___9: ;
11991 }
11992
11993 while_break:
11994#line 1410
11995 tmp___8 = info->rx_urbs_free.next;
11996#line 1410
11997 tmp2 = tmp___8->next;
11998 {
11999#line 1410
12000 while (1) {
12001 while_continue___1: ;
12002
12003 {
12004#line 1410
12005 __cil_tmp17 = & info->rx_urbs_free;
12006#line 1410
12007 __cil_tmp18 = (unsigned long )__cil_tmp17;
12008#line 1410
12009 __cil_tmp19 = (unsigned long )tmp___8;
12010#line 1410
12011 if (__cil_tmp19 != __cil_tmp18) {
12012
12013 } else {
12014#line 1410
12015 goto while_break___1;
12016 }
12017 }
12018 {
12019#line 1411
12020 list_del(tmp___8);
12021#line 1412
12022 __mptr = (struct list_head const *)tmp___8;
12023#line 1412
12024 __cil_tmp20 = (struct whiteheat_urb_wrap *)0;
12025#line 1412
12026 __cil_tmp21 = & __cil_tmp20->list;
12027#line 1412
12028 __cil_tmp22 = (unsigned int )__cil_tmp21;
12029#line 1412
12030 __cil_tmp23 = (char *)__mptr;
12031#line 1412
12032 __cil_tmp24 = __cil_tmp23 - __cil_tmp22;
12033#line 1412
12034 wrap = (struct whiteheat_urb_wrap *)__cil_tmp24;
12035#line 1413
12036 urb = wrap->urb;
12037#line 1414
12038 __cil_tmp25 = port->serial;
12039#line 1414
12040 urb->dev = __cil_tmp25->dev;
12041#line 1415
12042 __cil_tmp26 = & info->lock;
12043#line 1415
12044 spin_unlock_irqrestore(__cil_tmp26, flags);
12045#line 1416
12046 retval = usb_submit_urb(urb, 208U);
12047 }
12048#line 1417
12049 if (retval) {
12050 {
12051#line 1418
12052 while (1) {
12053 while_continue___2: ;
12054
12055 {
12056#line 1418
12057 while (1) {
12058 while_continue___3: ;
12059 {
12060#line 1418
12061 __cil_tmp27 = & info->lock;
12062#line 1418
12063 tmp___10 = spinlock_check(__cil_tmp27);
12064#line 1418
12065 flags = _raw_spin_lock_irqsave(tmp___10);
12066 }
12067#line 1418
12068 goto while_break___3;
12069 }
12070 while_break___13: ;
12071 }
12072
12073 while_break___3: ;
12074#line 1418
12075 goto while_break___2;
12076 }
12077 while_break___12: ;
12078 }
12079
12080 while_break___2:
12081 {
12082#line 1419
12083 __cil_tmp28 = & info->rx_urbs_free;
12084#line 1419
12085 list_add(tmp___8, __cil_tmp28);
12086#line 1420
12087 tmp___8 = info->rx_urbs_submitted.next;
12088#line 1420
12089 tmp2 = tmp___8->next;
12090 }
12091 {
12092#line 1420
12093 while (1) {
12094 while_continue___4: ;
12095
12096 {
12097#line 1420
12098 __cil_tmp29 = & info->rx_urbs_submitted;
12099#line 1420
12100 __cil_tmp30 = (unsigned long )__cil_tmp29;
12101#line 1420
12102 __cil_tmp31 = (unsigned long )tmp___8;
12103#line 1420
12104 if (__cil_tmp31 != __cil_tmp30) {
12105
12106 } else {
12107#line 1420
12108 goto while_break___4;
12109 }
12110 }
12111 {
12112#line 1421
12113 __mptr___0 = (struct list_head const *)tmp___8;
12114#line 1421
12115 __cil_tmp32 = (struct whiteheat_urb_wrap *)0;
12116#line 1421
12117 __cil_tmp33 = & __cil_tmp32->list;
12118#line 1421
12119 __cil_tmp34 = (unsigned int )__cil_tmp33;
12120#line 1421
12121 __cil_tmp35 = (char *)__mptr___0;
12122#line 1421
12123 __cil_tmp36 = __cil_tmp35 - __cil_tmp34;
12124#line 1421
12125 wrap = (struct whiteheat_urb_wrap *)__cil_tmp36;
12126#line 1422
12127 urb = wrap->urb;
12128#line 1423
12129 list_del(tmp___8);
12130#line 1424
12131 __cil_tmp37 = & info->lock;
12132#line 1424
12133 spin_unlock_irqrestore(__cil_tmp37, flags);
12134#line 1425
12135 usb_kill_urb(urb);
12136 }
12137 {
12138#line 1426
12139 while (1) {
12140 while_continue___5: ;
12141
12142 {
12143#line 1426
12144 while (1) {
12145 while_continue___6: ;
12146 {
12147#line 1426
12148 __cil_tmp38 = & info->lock;
12149#line 1426
12150 tmp___11 = spinlock_check(__cil_tmp38);
12151#line 1426
12152 flags = _raw_spin_lock_irqsave(tmp___11);
12153 }
12154#line 1426
12155 goto while_break___6;
12156 }
12157 while_break___16: ;
12158 }
12159
12160 while_break___6: ;
12161#line 1426
12162 goto while_break___5;
12163 }
12164 while_break___15: ;
12165 }
12166
12167 while_break___5:
12168 {
12169#line 1427
12170 __cil_tmp39 = & info->rx_urbs_free;
12171#line 1427
12172 list_add(tmp___8, __cil_tmp39);
12173#line 1420
12174 tmp___8 = tmp2;
12175#line 1420
12176 tmp2 = tmp___8->next;
12177 }
12178 }
12179 while_break___14: ;
12180 }
12181
12182 while_break___4: ;
12183#line 1429
12184 goto while_break___1;
12185 } else {
12186
12187 }
12188 {
12189#line 1431
12190 while (1) {
12191 while_continue___7: ;
12192
12193 {
12194#line 1431
12195 while (1) {
12196 while_continue___8: ;
12197 {
12198#line 1431
12199 __cil_tmp40 = & info->lock;
12200#line 1431
12201 tmp___12 = spinlock_check(__cil_tmp40);
12202#line 1431
12203 flags = _raw_spin_lock_irqsave(tmp___12);
12204 }
12205#line 1431
12206 goto while_break___8;
12207 }
12208 while_break___18: ;
12209 }
12210
12211 while_break___8: ;
12212#line 1431
12213 goto while_break___7;
12214 }
12215 while_break___17: ;
12216 }
12217
12218 while_break___7:
12219 {
12220#line 1432
12221 __cil_tmp41 = & info->rx_urbs_submitted;
12222#line 1432
12223 list_add(tmp___8, __cil_tmp41);
12224#line 1410
12225 tmp___8 = tmp2;
12226#line 1410
12227 tmp2 = tmp___8->next;
12228 }
12229 }
12230 while_break___11: ;
12231 }
12232
12233 while_break___1:
12234 {
12235#line 1435
12236 __cil_tmp42 = & info->lock;
12237#line 1435
12238 spin_unlock_irqrestore(__cil_tmp42, flags);
12239 }
12240#line 1437
12241 return (retval);
12242}
12243}
12244#line 1441 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12245static struct whiteheat_urb_wrap *urb_to_wrap(struct urb *urb , struct list_head *head )
12246{ struct whiteheat_urb_wrap *wrap ;
12247 struct list_head *tmp___7 ;
12248 struct list_head const *__mptr ;
12249 unsigned long __cil_tmp6 ;
12250 unsigned long __cil_tmp7 ;
12251 struct whiteheat_urb_wrap *__cil_tmp8 ;
12252 struct list_head *__cil_tmp9 ;
12253 unsigned int __cil_tmp10 ;
12254 char *__cil_tmp11 ;
12255 char *__cil_tmp12 ;
12256 unsigned long __cil_tmp13 ;
12257 struct urb *__cil_tmp14 ;
12258 unsigned long __cil_tmp15 ;
12259 void *__cil_tmp16 ;
12260
12261 {
12262#line 1447
12263 tmp___7 = head->next;
12264 {
12265#line 1447
12266 while (1) {
12267 while_continue: ;
12268
12269 {
12270#line 1447
12271 __cil_tmp6 = (unsigned long )head;
12272#line 1447
12273 __cil_tmp7 = (unsigned long )tmp___7;
12274#line 1447
12275 if (__cil_tmp7 != __cil_tmp6) {
12276
12277 } else {
12278#line 1447
12279 goto while_break;
12280 }
12281 }
12282#line 1448
12283 __mptr = (struct list_head const *)tmp___7;
12284#line 1448
12285 __cil_tmp8 = (struct whiteheat_urb_wrap *)0;
12286#line 1448
12287 __cil_tmp9 = & __cil_tmp8->list;
12288#line 1448
12289 __cil_tmp10 = (unsigned int )__cil_tmp9;
12290#line 1448
12291 __cil_tmp11 = (char *)__mptr;
12292#line 1448
12293 __cil_tmp12 = __cil_tmp11 - __cil_tmp10;
12294#line 1448
12295 wrap = (struct whiteheat_urb_wrap *)__cil_tmp12;
12296 {
12297#line 1449
12298 __cil_tmp13 = (unsigned long )urb;
12299#line 1449
12300 __cil_tmp14 = wrap->urb;
12301#line 1449
12302 __cil_tmp15 = (unsigned long )__cil_tmp14;
12303#line 1449
12304 if (__cil_tmp15 == __cil_tmp13) {
12305#line 1450
12306 return (wrap);
12307 } else {
12308
12309 }
12310 }
12311#line 1447
12312 tmp___7 = tmp___7->next;
12313 }
12314 while_break___0: ;
12315 }
12316
12317 while_break: ;
12318 {
12319#line 1453
12320 __cil_tmp16 = (void *)0;
12321#line 1453
12322 return ((struct whiteheat_urb_wrap *)__cil_tmp16);
12323 }
12324}
12325}
12326#line 1457 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12327static struct list_head *list_first(struct list_head *head )
12328{
12329
12330 {
12331#line 1459
12332 return (head->next);
12333}
12334}
12335#line 1463 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12336static void rx_data_softint(struct work_struct *work )
12337{ struct whiteheat_private *info ;
12338 struct work_struct const *__mptr ;
12339 struct usb_serial_port *port ;
12340 struct tty_struct *tty ;
12341 struct tty_struct *tmp___7 ;
12342 struct whiteheat_urb_wrap *wrap ;
12343 struct urb *urb ;
12344 unsigned long flags ;
12345 struct list_head *tmp___8 ;
12346 struct list_head *tmp2 ;
12347 int result ;
12348 int sent ;
12349 raw_spinlock_t *tmp___9 ;
12350 struct list_head const *__mptr___0 ;
12351 int tmp___10 ;
12352 raw_spinlock_t *tmp___11 ;
12353 raw_spinlock_t *tmp___12 ;
12354 struct whiteheat_private *__cil_tmp19 ;
12355 struct work_struct *__cil_tmp20 ;
12356 unsigned int __cil_tmp21 ;
12357 char *__cil_tmp22 ;
12358 char *__cil_tmp23 ;
12359 struct tty_port *__cil_tmp24 ;
12360 spinlock_t *__cil_tmp25 ;
12361 __u8 __cil_tmp26 ;
12362 int __cil_tmp27 ;
12363 spinlock_t *__cil_tmp28 ;
12364 struct list_head *__cil_tmp29 ;
12365 unsigned long __cil_tmp30 ;
12366 unsigned long __cil_tmp31 ;
12367 spinlock_t *__cil_tmp32 ;
12368 struct whiteheat_urb_wrap *__cil_tmp33 ;
12369 struct list_head *__cil_tmp34 ;
12370 unsigned int __cil_tmp35 ;
12371 char *__cil_tmp36 ;
12372 char *__cil_tmp37 ;
12373 void *__cil_tmp38 ;
12374 unsigned char const *__cil_tmp39 ;
12375 u32 __cil_tmp40 ;
12376 size_t __cil_tmp41 ;
12377 struct usb_serial *__cil_tmp42 ;
12378 struct device *__cil_tmp43 ;
12379 struct device const *__cil_tmp44 ;
12380 spinlock_t *__cil_tmp45 ;
12381 struct list_head *__cil_tmp46 ;
12382 spinlock_t *__cil_tmp47 ;
12383 struct list_head *__cil_tmp48 ;
12384 spinlock_t *__cil_tmp49 ;
12385
12386 {
12387 {
12388#line 1466
12389 __mptr = (struct work_struct const *)work;
12390#line 1466
12391 __cil_tmp19 = (struct whiteheat_private *)0;
12392#line 1466
12393 __cil_tmp20 = & __cil_tmp19->rx_work;
12394#line 1466
12395 __cil_tmp21 = (unsigned int )__cil_tmp20;
12396#line 1466
12397 __cil_tmp22 = (char *)__mptr;
12398#line 1466
12399 __cil_tmp23 = __cil_tmp22 - __cil_tmp21;
12400#line 1466
12401 info = (struct whiteheat_private *)__cil_tmp23;
12402#line 1467
12403 port = info->port;
12404#line 1468
12405 __cil_tmp24 = & port->port;
12406#line 1468
12407 tmp___7 = tty_port_tty_get(__cil_tmp24);
12408#line 1468
12409 tty = tmp___7;
12410#line 1475
12411 sent = 0;
12412 }
12413 {
12414#line 1477
12415 while (1) {
12416 while_continue: ;
12417
12418 {
12419#line 1477
12420 while (1) {
12421 while_continue___0: ;
12422 {
12423#line 1477
12424 __cil_tmp25 = & info->lock;
12425#line 1477
12426 tmp___9 = spinlock_check(__cil_tmp25);
12427#line 1477
12428 flags = _raw_spin_lock_irqsave(tmp___9);
12429 }
12430#line 1477
12431 goto while_break___0;
12432 }
12433 while_break___7: ;
12434 }
12435
12436 while_break___0: ;
12437#line 1477
12438 goto while_break;
12439 }
12440 while_break___6: ;
12441 }
12442
12443 while_break: ;
12444 {
12445#line 1478
12446 __cil_tmp26 = info->flags;
12447#line 1478
12448 __cil_tmp27 = (int )__cil_tmp26;
12449#line 1478
12450 if (__cil_tmp27 & 1) {
12451 {
12452#line 1479
12453 __cil_tmp28 = & info->lock;
12454#line 1479
12455 spin_unlock_irqrestore(__cil_tmp28, flags);
12456 }
12457#line 1480
12458 goto out;
12459 } else {
12460
12461 }
12462 }
12463#line 1483
12464 tmp___8 = info->rx_urb_q.next;
12465#line 1483
12466 tmp2 = tmp___8->next;
12467 {
12468#line 1483
12469 while (1) {
12470 while_continue___1: ;
12471
12472 {
12473#line 1483
12474 __cil_tmp29 = & info->rx_urb_q;
12475#line 1483
12476 __cil_tmp30 = (unsigned long )__cil_tmp29;
12477#line 1483
12478 __cil_tmp31 = (unsigned long )tmp___8;
12479#line 1483
12480 if (__cil_tmp31 != __cil_tmp30) {
12481
12482 } else {
12483#line 1483
12484 goto while_break___1;
12485 }
12486 }
12487 {
12488#line 1484
12489 list_del(tmp___8);
12490#line 1485
12491 __cil_tmp32 = & info->lock;
12492#line 1485
12493 spin_unlock_irqrestore(__cil_tmp32, flags);
12494#line 1487
12495 __mptr___0 = (struct list_head const *)tmp___8;
12496#line 1487
12497 __cil_tmp33 = (struct whiteheat_urb_wrap *)0;
12498#line 1487
12499 __cil_tmp34 = & __cil_tmp33->list;
12500#line 1487
12501 __cil_tmp35 = (unsigned int )__cil_tmp34;
12502#line 1487
12503 __cil_tmp36 = (char *)__mptr___0;
12504#line 1487
12505 __cil_tmp37 = __cil_tmp36 - __cil_tmp35;
12506#line 1487
12507 wrap = (struct whiteheat_urb_wrap *)__cil_tmp37;
12508#line 1488
12509 urb = wrap->urb;
12510 }
12511#line 1490
12512 if (tty) {
12513#line 1490
12514 if (urb->actual_length) {
12515 {
12516#line 1491
12517 __cil_tmp38 = urb->transfer_buffer;
12518#line 1491
12519 __cil_tmp39 = (unsigned char const *)__cil_tmp38;
12520#line 1491
12521 __cil_tmp40 = urb->actual_length;
12522#line 1491
12523 __cil_tmp41 = (size_t )__cil_tmp40;
12524#line 1491
12525 tmp___10 = tty_insert_flip_string(tty, __cil_tmp39, __cil_tmp41);
12526#line 1491
12527 sent = sent + tmp___10;
12528 }
12529 } else {
12530
12531 }
12532 } else {
12533
12534 }
12535 {
12536#line 1494
12537 __cil_tmp42 = port->serial;
12538#line 1494
12539 urb->dev = __cil_tmp42->dev;
12540#line 1495
12541 result = usb_submit_urb(urb, 32U);
12542 }
12543#line 1496
12544 if (result) {
12545 {
12546#line 1497
12547 __cil_tmp43 = & port->dev;
12548#line 1497
12549 __cil_tmp44 = (struct device const *)__cil_tmp43;
12550#line 1497
12551 dev_err(__cil_tmp44, "%s - failed resubmitting read urb, error %d\n", "rx_data_softint",
12552 result);
12553 }
12554 {
12555#line 1500
12556 while (1) {
12557 while_continue___2: ;
12558
12559 {
12560#line 1500
12561 while (1) {
12562 while_continue___3: ;
12563 {
12564#line 1500
12565 __cil_tmp45 = & info->lock;
12566#line 1500
12567 tmp___11 = spinlock_check(__cil_tmp45);
12568#line 1500
12569 flags = _raw_spin_lock_irqsave(tmp___11);
12570 }
12571#line 1500
12572 goto while_break___3;
12573 }
12574 while_break___10: ;
12575 }
12576
12577 while_break___3: ;
12578#line 1500
12579 goto while_break___2;
12580 }
12581 while_break___9: ;
12582 }
12583
12584 while_break___2:
12585 {
12586#line 1501
12587 __cil_tmp46 = & info->rx_urbs_free;
12588#line 1501
12589 list_add(tmp___8, __cil_tmp46);
12590 }
12591#line 1502
12592 goto __Cont;
12593 } else {
12594
12595 }
12596 {
12597#line 1505
12598 while (1) {
12599 while_continue___4: ;
12600
12601 {
12602#line 1505
12603 while (1) {
12604 while_continue___5: ;
12605 {
12606#line 1505
12607 __cil_tmp47 = & info->lock;
12608#line 1505
12609 tmp___12 = spinlock_check(__cil_tmp47);
12610#line 1505
12611 flags = _raw_spin_lock_irqsave(tmp___12);
12612 }
12613#line 1505
12614 goto while_break___5;
12615 }
12616 while_break___12: ;
12617 }
12618
12619 while_break___5: ;
12620#line 1505
12621 goto while_break___4;
12622 }
12623 while_break___11: ;
12624 }
12625
12626 while_break___4:
12627 {
12628#line 1506
12629 __cil_tmp48 = & info->rx_urbs_submitted;
12630#line 1506
12631 list_add(tmp___8, __cil_tmp48);
12632 }
12633 __Cont:
12634#line 1483
12635 tmp___8 = tmp2;
12636#line 1483
12637 tmp2 = tmp___8->next;
12638 }
12639 while_break___8: ;
12640 }
12641
12642 while_break___1:
12643 {
12644#line 1508
12645 __cil_tmp49 = & info->lock;
12646#line 1508
12647 spin_unlock_irqrestore(__cil_tmp49, flags);
12648 }
12649#line 1510
12650 if (sent) {
12651 {
12652#line 1511
12653 tty_flip_buffer_push(tty);
12654 }
12655 } else {
12656
12657 }
12658 out:
12659 {
12660#line 1513
12661 tty_kref_put(tty);
12662 }
12663#line 1514
12664 return;
12665}
12666}
12667#line 1520
12668static int whiteheat_init(void) __attribute__((__section__(".init.text"), __no_instrument_function__)) ;
12669#line 1520
12670static int whiteheat_init(void) __attribute__((__section__(".init.text"), __no_instrument_function__)) ;
12671#line 1520 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12672static int whiteheat_init(void)
12673{ int retval ;
12674
12675 {
12676 {
12677#line 1523
12678 retval = usb_serial_register(& whiteheat_fake_device);
12679 }
12680#line 1524
12681 if (retval) {
12682#line 1525
12683 goto failed_fake_register;
12684 } else {
12685
12686 }
12687 {
12688#line 1526
12689 retval = usb_serial_register(& whiteheat_device);
12690 }
12691#line 1527
12692 if (retval) {
12693#line 1528
12694 goto failed_device_register;
12695 } else {
12696
12697 }
12698 {
12699#line 1529
12700 retval = usb_register(& whiteheat_driver);
12701 }
12702#line 1530
12703 if (retval) {
12704#line 1531
12705 goto failed_usb_register;
12706 } else {
12707
12708 }
12709 {
12710#line 1532
12711 printk("<6>whiteheat: v2.0:USB ConnectTech WhiteHEAT driver\n");
12712 }
12713#line 1534
12714 return (0);
12715 failed_usb_register:
12716 {
12717#line 1536
12718 usb_serial_deregister(& whiteheat_device);
12719 }
12720 failed_device_register:
12721 {
12722#line 1538
12723 usb_serial_deregister(& whiteheat_fake_device);
12724 }
12725 failed_fake_register:
12726#line 1540
12727 return (retval);
12728}
12729}
12730#line 1544
12731static void whiteheat_exit(void) __attribute__((__section__(".exit.text"), __no_instrument_function__)) ;
12732#line 1544
12733static void whiteheat_exit(void) __attribute__((__section__(".exit.text"), __no_instrument_function__)) ;
12734#line 1544 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12735static void whiteheat_exit(void)
12736{
12737
12738 {
12739 {
12740#line 1546
12741 usb_deregister(& whiteheat_driver);
12742#line 1547
12743 usb_serial_deregister(& whiteheat_fake_device);
12744#line 1548
12745 usb_serial_deregister(& whiteheat_device);
12746 }
12747#line 1549
12748 return;
12749}
12750}
12751#line 1552 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12752int init_module(void)
12753{ int tmp___7 ;
12754
12755 {
12756 {
12757#line 1552
12758 tmp___7 = whiteheat_init();
12759 }
12760#line 1552
12761 return (tmp___7);
12762}
12763}
12764#line 1553 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12765void cleanup_module(void)
12766{
12767
12768 {
12769 {
12770#line 1553
12771 whiteheat_exit();
12772 }
12773#line 1553
12774 return;
12775}
12776}
12777#line 1555 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12778static char const __mod_author1555[87] __attribute__((__used__, __unused__, __section__(".modinfo"),
12779__aligned__(1))) =
12780#line 1555
12781 { (char const )'a', (char const )'u', (char const )'t', (char const )'h',
12782 (char const )'o', (char const )'r', (char const )'=', (char const )'G',
12783 (char const )'r', (char const )'e', (char const )'g', (char const )' ',
12784 (char const )'K', (char const )'r', (char const )'o', (char const )'a',
12785 (char const )'h', (char const )'-', (char const )'H', (char const )'a',
12786 (char const )'r', (char const )'t', (char const )'m', (char const )'a',
12787 (char const )'n', (char const )' ', (char const )'<', (char const )'g',
12788 (char const )'r', (char const )'e', (char const )'g', (char const )'@',
12789 (char const )'k', (char const )'r', (char const )'o', (char const )'a',
12790 (char const )'h', (char const )'.', (char const )'c', (char const )'o',
12791 (char const )'m', (char const )'>', (char const )',', (char const )' ',
12792 (char const )'S', (char const )'t', (char const )'u', (char const )'a',
12793 (char const )'r', (char const )'t', (char const )' ', (char const )'M',
12794 (char const )'a', (char const )'c', (char const )'D', (char const )'o',
12795 (char const )'n', (char const )'a', (char const )'l', (char const )'d',
12796 (char const )' ', (char const )'<', (char const )'s', (char const )'t',
12797 (char const )'u', (char const )'a', (char const )'r', (char const )'t',
12798 (char const )'m', (char const )'@', (char const )'c', (char const )'o',
12799 (char const )'n', (char const )'n', (char const )'e', (char const )'c',
12800 (char const )'t', (char const )'t', (char const )'e', (char const )'c',
12801 (char const )'h', (char const )'.', (char const )'c', (char const )'o',
12802 (char const )'m', (char const )'>', (char const )'\000'};
12803#line 1556 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12804static char const __mod_description1556[45] __attribute__((__used__, __unused__,
12805__section__(".modinfo"), __aligned__(1))) =
12806#line 1556
12807 { (char const )'d', (char const )'e', (char const )'s', (char const )'c',
12808 (char const )'r', (char const )'i', (char const )'p', (char const )'t',
12809 (char const )'i', (char const )'o', (char const )'n', (char const )'=',
12810 (char const )'U', (char const )'S', (char const )'B', (char const )' ',
12811 (char const )'C', (char const )'o', (char const )'n', (char const )'n',
12812 (char const )'e', (char const )'c', (char const )'t', (char const )'T',
12813 (char const )'e', (char const )'c', (char const )'h', (char const )' ',
12814 (char const )'W', (char const )'h', (char const )'i', (char const )'t',
12815 (char const )'e', (char const )'H', (char const )'E', (char const )'A',
12816 (char const )'T', (char const )' ', (char const )'d', (char const )'r',
12817 (char const )'i', (char const )'v', (char const )'e', (char const )'r',
12818 (char const )'\000'};
12819#line 1557 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12820static char const __mod_license1557[12] __attribute__((__used__, __unused__, __section__(".modinfo"),
12821__aligned__(1))) =
12822#line 1557
12823 { (char const )'l', (char const )'i', (char const )'c', (char const )'e',
12824 (char const )'n', (char const )'s', (char const )'e', (char const )'=',
12825 (char const )'G', (char const )'P', (char const )'L', (char const )'\000'};
12826#line 1559 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12827static char const __mod_firmware1559[22] __attribute__((__used__, __unused__, __section__(".modinfo"),
12828__aligned__(1))) =
12829#line 1559
12830 { (char const )'f', (char const )'i', (char const )'r', (char const )'m',
12831 (char const )'w', (char const )'a', (char const )'r', (char const )'e',
12832 (char const )'=', (char const )'w', (char const )'h', (char const )'i',
12833 (char const )'t', (char const )'e', (char const )'h', (char const )'e',
12834 (char const )'a', (char const )'t', (char const )'.', (char const )'f',
12835 (char const )'w', (char const )'\000'};
12836#line 1560 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12837static char const __mod_firmware1560[29] __attribute__((__used__, __unused__, __section__(".modinfo"),
12838__aligned__(1))) =
12839#line 1560
12840 { (char const )'f', (char const )'i', (char const )'r', (char const )'m',
12841 (char const )'w', (char const )'a', (char const )'r', (char const )'e',
12842 (char const )'=', (char const )'w', (char const )'h', (char const )'i',
12843 (char const )'t', (char const )'e', (char const )'h', (char const )'e',
12844 (char const )'a', (char const )'t', (char const )'_', (char const )'l',
12845 (char const )'o', (char const )'a', (char const )'d', (char const )'e',
12846 (char const )'r', (char const )'.', (char const )'f', (char const )'w',
12847 (char const )'\000'};
12848#line 1562 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12849static char const __param_str_urb_pool_size[14] =
12850#line 1562
12851 { (char const )'u', (char const )'r', (char const )'b', (char const )'_',
12852 (char const )'p', (char const )'o', (char const )'o', (char const )'l',
12853 (char const )'_', (char const )'s', (char const )'i', (char const )'z',
12854 (char const )'e', (char const )'\000'};
12855#line 1562 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12856static struct kernel_param const __param_urb_pool_size __attribute__((__used__,
12857__unused__, __section__("__param"), __aligned__(sizeof(void *)))) = {__param_str_urb_pool_size, (struct kernel_param_ops const *)(& param_ops_int),
12858 (u16 )0, (u16 )0, {(void *)(& urb_pool_size)}};
12859#line 1562 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12860static char const __mod_urb_pool_sizetype1562[27] __attribute__((__used__, __unused__,
12861__section__(".modinfo"), __aligned__(1))) =
12862#line 1562
12863 { (char const )'p', (char const )'a', (char const )'r', (char const )'m',
12864 (char const )'t', (char const )'y', (char const )'p', (char const )'e',
12865 (char const )'=', (char const )'u', (char const )'r', (char const )'b',
12866 (char const )'_', (char const )'p', (char const )'o', (char const )'o',
12867 (char const )'l', (char const )'_', (char const )'s', (char const )'i',
12868 (char const )'z', (char const )'e', (char const )':', (char const )'i',
12869 (char const )'n', (char const )'t', (char const )'\000'};
12870#line 1563 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12871static char const __mod_urb_pool_size1563[55] __attribute__((__used__, __unused__,
12872__section__(".modinfo"), __aligned__(1))) =
12873#line 1563
12874 { (char const )'p', (char const )'a', (char const )'r', (char const )'m',
12875 (char const )'=', (char const )'u', (char const )'r', (char const )'b',
12876 (char const )'_', (char const )'p', (char const )'o', (char const )'o',
12877 (char const )'l', (char const )'_', (char const )'s', (char const )'i',
12878 (char const )'z', (char const )'e', (char const )':', (char const )'N',
12879 (char const )'u', (char const )'m', (char const )'b', (char const )'e',
12880 (char const )'r', (char const )' ', (char const )'o', (char const )'f',
12881 (char const )' ', (char const )'u', (char const )'r', (char const )'b',
12882 (char const )'s', (char const )' ', (char const )'t', (char const )'o',
12883 (char const )' ', (char const )'u', (char const )'s', (char const )'e',
12884 (char const )' ', (char const )'f', (char const )'o', (char const )'r',
12885 (char const )' ', (char const )'b', (char const )'u', (char const )'f',
12886 (char const )'f', (char const )'e', (char const )'r', (char const )'i',
12887 (char const )'n', (char const )'g', (char const )'\000'};
12888#line 1565 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12889static char const __param_str_debug[6] = { (char const )'d', (char const )'e', (char const )'b', (char const )'u',
12890 (char const )'g', (char const )'\000'};
12891#line 1565 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12892static struct kernel_param const __param_debug __attribute__((__used__, __unused__,
12893__section__("__param"), __aligned__(sizeof(void *)))) = {__param_str_debug, (struct kernel_param_ops const *)(& param_ops_bool), (u16 )420,
12894 (u16 )0, {(void *)(& debug)}};
12895#line 1565 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12896static char const __mod_debugtype1565[20] __attribute__((__used__, __unused__,
12897__section__(".modinfo"), __aligned__(1))) =
12898#line 1565
12899 { (char const )'p', (char const )'a', (char const )'r', (char const )'m',
12900 (char const )'t', (char const )'y', (char const )'p', (char const )'e',
12901 (char const )'=', (char const )'d', (char const )'e', (char const )'b',
12902 (char const )'u', (char const )'g', (char const )':', (char const )'b',
12903 (char const )'o', (char const )'o', (char const )'l', (char const )'\000'};
12904#line 1566 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12905static char const __mod_debug1566[32] __attribute__((__used__, __unused__, __section__(".modinfo"),
12906__aligned__(1))) =
12907#line 1566
12908 { (char const )'p', (char const )'a', (char const )'r', (char const )'m',
12909 (char const )'=', (char const )'d', (char const )'e', (char const )'b',
12910 (char const )'u', (char const )'g', (char const )':', (char const )'D',
12911 (char const )'e', (char const )'b', (char const )'u', (char const )'g',
12912 (char const )' ', (char const )'e', (char const )'n', (char const )'a',
12913 (char const )'b', (char const )'l', (char const )'e', (char const )'d',
12914 (char const )' ', (char const )'o', (char const )'r', (char const )' ',
12915 (char const )'n', (char const )'o', (char const )'t', (char const )'\000'};
12916#line 1584
12917void ldv_check_final_state(void) __attribute__((__ldv_model__)) ;
12918#line 1587
12919extern void ldv_check_return_value(int res ) ;
12920#line 1590
12921extern void ldv_initialize(void) ;
12922#line 1593
12923extern int nondet_int(void) ;
12924#line 1596 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12925int LDV_IN_INTERRUPT ;
12926#line 1629 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12927static int res_whiteheat_firmware_download_0 ;
12928#line 1709 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12929static int res_whiteheat_open_4 ;
12930#line 1599 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/drivers/usb/serial/whiteheat.c.common.c"
12931void main(void)
12932{ struct usb_serial *var_group1 ;
12933 struct usb_device_id const *var_whiteheat_firmware_download_0_p1 ;
12934 struct tty_struct *var_group2 ;
12935 struct usb_serial_port *var_group3 ;
12936 unsigned char const *var_whiteheat_write_6_p2 ;
12937 int var_whiteheat_write_6_p3 ;
12938 unsigned int var_whiteheat_ioctl_10_p1 ;
12939 unsigned long var_whiteheat_ioctl_10_p2 ;
12940 struct ktermios *var_whiteheat_set_termios_11_p2 ;
12941 int var_whiteheat_break_ctl_12_p1 ;
12942 unsigned int var_whiteheat_tiocmset_9_p1 ;
12943 unsigned int var_whiteheat_tiocmset_9_p2 ;
12944 struct urb *var_group4 ;
12945 int tmp___7 ;
12946 int ldv_s_whiteheat_fake_device_usb_serial_driver ;
12947 int ldv_s_whiteheat_device_usb_serial_driver ;
12948 int tmp___8 ;
12949 int tmp___9 ;
12950 int __cil_tmp19 ;
12951 int __cil_tmp20 ;
12952
12953 {
12954 {
12955#line 1969
12956 LDV_IN_INTERRUPT = 1;
12957#line 1978
12958 ldv_initialize();
12959#line 2000
12960 tmp___7 = whiteheat_init();
12961 }
12962#line 2000
12963 if (tmp___7) {
12964#line 2001
12965 goto ldv_final;
12966 } else {
12967
12968 }
12969#line 2002
12970 ldv_s_whiteheat_fake_device_usb_serial_driver = 0;
12971#line 2005
12972 ldv_s_whiteheat_device_usb_serial_driver = 0;
12973 {
12974#line 2009
12975 while (1) {
12976 while_continue: ;
12977 {
12978#line 2009
12979 tmp___9 = nondet_int();
12980 }
12981#line 2009
12982 if (tmp___9) {
12983
12984 } else {
12985 {
12986#line 2009
12987 __cil_tmp19 = ldv_s_whiteheat_fake_device_usb_serial_driver == 0;
12988#line 2009
12989 if (! __cil_tmp19) {
12990
12991 } else {
12992 {
12993#line 2009
12994 __cil_tmp20 = ldv_s_whiteheat_device_usb_serial_driver == 0;
12995#line 2009
12996 if (! __cil_tmp20) {
12997
12998 } else {
12999#line 2009
13000 goto while_break;
13001 }
13002 }
13003 }
13004 }
13005 }
13006 {
13007#line 2014
13008 tmp___8 = nondet_int();
13009 }
13010#line 2016
13011 if (tmp___8 == 0) {
13012#line 2016
13013 goto case_0;
13014 } else
13015#line 2051
13016 if (tmp___8 == 1) {
13017#line 2051
13018 goto case_1;
13019 } else
13020#line 2083
13021 if (tmp___8 == 2) {
13022#line 2083
13023 goto case_2;
13024 } else
13025#line 2118
13026 if (tmp___8 == 3) {
13027#line 2118
13028 goto case_3;
13029 } else
13030#line 2150
13031 if (tmp___8 == 4) {
13032#line 2150
13033 goto case_4;
13034 } else
13035#line 2182
13036 if (tmp___8 == 5) {
13037#line 2182
13038 goto case_5;
13039 } else
13040#line 2214
13041 if (tmp___8 == 6) {
13042#line 2214
13043 goto case_6;
13044 } else
13045#line 2246
13046 if (tmp___8 == 7) {
13047#line 2246
13048 goto case_7;
13049 } else
13050#line 2278
13051 if (tmp___8 == 8) {
13052#line 2278
13053 goto case_8;
13054 } else
13055#line 2310
13056 if (tmp___8 == 9) {
13057#line 2310
13058 goto case_9;
13059 } else
13060#line 2342
13061 if (tmp___8 == 10) {
13062#line 2342
13063 goto case_10;
13064 } else
13065#line 2374
13066 if (tmp___8 == 11) {
13067#line 2374
13068 goto case_11;
13069 } else
13070#line 2406
13071 if (tmp___8 == 12) {
13072#line 2406
13073 goto case_12;
13074 } else
13075#line 2438
13076 if (tmp___8 == 13) {
13077#line 2438
13078 goto case_13;
13079 } else
13080#line 2470
13081 if (tmp___8 == 14) {
13082#line 2470
13083 goto case_14;
13084 } else
13085#line 2502
13086 if (tmp___8 == 15) {
13087#line 2502
13088 goto case_15;
13089 } else
13090#line 2534
13091 if (tmp___8 == 16) {
13092#line 2534
13093 goto case_16;
13094 } else
13095#line 2566
13096 if (tmp___8 == 17) {
13097#line 2566
13098 goto case_17;
13099 } else {
13100#line 2598
13101 goto switch_default;
13102#line 2014
13103 if (0) {
13104 case_0:
13105#line 2019
13106 if (ldv_s_whiteheat_fake_device_usb_serial_driver == 0) {
13107 {
13108#line 2040
13109 res_whiteheat_firmware_download_0 = whiteheat_firmware_download(var_group1,
13110 var_whiteheat_firmware_download_0_p1);
13111#line 2041
13112 ldv_check_return_value(res_whiteheat_firmware_download_0);
13113 }
13114#line 2042
13115 if (res_whiteheat_firmware_download_0) {
13116#line 2043
13117 goto ldv_module_exit;
13118 } else {
13119
13120 }
13121#line 2044
13122 ldv_s_whiteheat_fake_device_usb_serial_driver = 0;
13123 } else {
13124
13125 }
13126#line 2050
13127 goto switch_break;
13128 case_1:
13129 {
13130#line 2075
13131 whiteheat_firmware_attach(var_group1);
13132 }
13133#line 2082
13134 goto switch_break;
13135 case_2:
13136#line 2086
13137 if (ldv_s_whiteheat_device_usb_serial_driver == 0) {
13138 {
13139#line 2107
13140 res_whiteheat_open_4 = whiteheat_open(var_group2, var_group3);
13141#line 2108
13142 ldv_check_return_value(res_whiteheat_open_4);
13143 }
13144#line 2109
13145 if (res_whiteheat_open_4) {
13146#line 2110
13147 goto ldv_module_exit;
13148 } else {
13149
13150 }
13151#line 2111
13152 ldv_s_whiteheat_device_usb_serial_driver = ldv_s_whiteheat_device_usb_serial_driver + 1;
13153 } else {
13154
13155 }
13156#line 2117
13157 goto switch_break;
13158 case_3:
13159#line 2121
13160 if (ldv_s_whiteheat_device_usb_serial_driver == 1) {
13161 {
13162#line 2142
13163 whiteheat_close(var_group3);
13164#line 2143
13165 ldv_s_whiteheat_device_usb_serial_driver = ldv_s_whiteheat_device_usb_serial_driver + 1;
13166 }
13167 } else {
13168
13169 }
13170#line 2149
13171 goto switch_break;
13172 case_4:
13173#line 2153
13174 if (ldv_s_whiteheat_device_usb_serial_driver == 2) {
13175 {
13176#line 2174
13177 whiteheat_release(var_group1);
13178#line 2175
13179 ldv_s_whiteheat_device_usb_serial_driver = 0;
13180 }
13181 } else {
13182
13183 }
13184#line 2181
13185 goto switch_break;
13186 case_5:
13187 {
13188#line 2206
13189 whiteheat_attach(var_group1);
13190 }
13191#line 2213
13192 goto switch_break;
13193 case_6:
13194 {
13195#line 2238
13196 whiteheat_write(var_group2, var_group3, var_whiteheat_write_6_p2, var_whiteheat_write_6_p3);
13197 }
13198#line 2245
13199 goto switch_break;
13200 case_7:
13201 {
13202#line 2270
13203 whiteheat_write_room(var_group2);
13204 }
13205#line 2277
13206 goto switch_break;
13207 case_8:
13208 {
13209#line 2302
13210 whiteheat_ioctl(var_group2, var_whiteheat_ioctl_10_p1, var_whiteheat_ioctl_10_p2);
13211 }
13212#line 2309
13213 goto switch_break;
13214 case_9:
13215 {
13216#line 2334
13217 whiteheat_set_termios(var_group2, var_group3, var_whiteheat_set_termios_11_p2);
13218 }
13219#line 2341
13220 goto switch_break;
13221 case_10:
13222 {
13223#line 2366
13224 whiteheat_break_ctl(var_group2, var_whiteheat_break_ctl_12_p1);
13225 }
13226#line 2373
13227 goto switch_break;
13228 case_11:
13229 {
13230#line 2398
13231 whiteheat_tiocmget(var_group2);
13232 }
13233#line 2405
13234 goto switch_break;
13235 case_12:
13236 {
13237#line 2430
13238 whiteheat_tiocmset(var_group2, var_whiteheat_tiocmset_9_p1, var_whiteheat_tiocmset_9_p2);
13239 }
13240#line 2437
13241 goto switch_break;
13242 case_13:
13243 {
13244#line 2462
13245 whiteheat_chars_in_buffer(var_group2);
13246 }
13247#line 2469
13248 goto switch_break;
13249 case_14:
13250 {
13251#line 2494
13252 whiteheat_throttle(var_group2);
13253 }
13254#line 2501
13255 goto switch_break;
13256 case_15:
13257 {
13258#line 2526
13259 whiteheat_unthrottle(var_group2);
13260 }
13261#line 2533
13262 goto switch_break;
13263 case_16:
13264 {
13265#line 2558
13266 whiteheat_read_callback(var_group4);
13267 }
13268#line 2565
13269 goto switch_break;
13270 case_17:
13271 {
13272#line 2590
13273 whiteheat_write_callback(var_group4);
13274 }
13275#line 2597
13276 goto switch_break;
13277 switch_default:
13278#line 2598
13279 goto switch_break;
13280 } else {
13281 switch_break: ;
13282 }
13283 }
13284 }
13285 while_break___0: ;
13286 }
13287
13288 while_break: ;
13289 ldv_module_exit:
13290 {
13291#line 2626
13292 whiteheat_exit();
13293 }
13294 ldv_final:
13295 {
13296#line 2629
13297 ldv_check_final_state();
13298 }
13299#line 2632
13300 return;
13301}
13302}
13303#line 5 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/engine-blast-assert.h"
13304void ldv_blast_assert(void)
13305{
13306
13307 {
13308 ERROR:
13309#line 6
13310 goto ERROR;
13311}
13312}
13313#line 7 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/engine-blast.h"
13314extern void *ldv_undefined_pointer(void) ;
13315#line 10 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
13316void ldv_assume_stop(void) __attribute__((__ldv_model_inline__)) ;
13317#line 22
13318void ldv_assume_stop(void) __attribute__((__ldv_model_inline__)) ;
13319#line 22 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
13320void ldv_assume_stop(void)
13321{
13322
13323 {
13324 LDV_STOP:
13325#line 23
13326 goto LDV_STOP;
13327}
13328}
13329#line 29 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
13330int ldv_urb_state = 0;
13331#line 31 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
13332int ldv_coherent_state = 0;
13333#line 62
13334void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
13335 dma_addr_t *dma ) __attribute__((__ldv_model__)) ;
13336#line 62 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
13337void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
13338 dma_addr_t *dma )
13339{ void *arbitrary_memory ;
13340 void *tmp___7 ;
13341
13342 {
13343 {
13344#line 64
13345 while (1) {
13346 while_continue: ;
13347 {
13348#line 64
13349 tmp___7 = ldv_undefined_pointer();
13350#line 64
13351 arbitrary_memory = tmp___7;
13352 }
13353#line 64
13354 if (! arbitrary_memory) {
13355#line 64
13356 return ((void *)0);
13357 } else {
13358
13359 }
13360#line 64
13361 ldv_coherent_state = ldv_coherent_state + 1;
13362#line 64
13363 return (arbitrary_memory);
13364#line 64
13365 goto while_break;
13366 }
13367 while_break___0: ;
13368 }
13369
13370 while_break: ;
13371#line 65
13372 return ((void *)0);
13373}
13374}
13375#line 68
13376void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma ) __attribute__((__ldv_model__)) ;
13377#line 68 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
13378void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma )
13379{ void *__cil_tmp5 ;
13380 unsigned long __cil_tmp6 ;
13381 unsigned long __cil_tmp7 ;
13382 int __cil_tmp8 ;
13383
13384 {
13385 {
13386#line 70
13387 while (1) {
13388 while_continue: ;
13389
13390 {
13391#line 70
13392 __cil_tmp5 = (void *)0;
13393#line 70
13394 __cil_tmp6 = (unsigned long )__cil_tmp5;
13395#line 70
13396 __cil_tmp7 = (unsigned long )addr;
13397#line 70
13398 __cil_tmp8 = __cil_tmp7 != __cil_tmp6;
13399#line 70
13400 if (! __cil_tmp8) {
13401 {
13402#line 70
13403 ldv_assume_stop();
13404 }
13405 } else {
13406
13407 }
13408 }
13409#line 70
13410 if (addr) {
13411#line 70
13412 if (ldv_coherent_state >= 1) {
13413
13414 } else {
13415 {
13416#line 70
13417 ldv_blast_assert();
13418 }
13419 }
13420#line 70
13421 ldv_coherent_state = ldv_coherent_state - 1;
13422 } else {
13423
13424 }
13425#line 70
13426 goto while_break;
13427 }
13428 while_break___0: ;
13429 }
13430
13431 while_break: ;
13432#line 71
13433 return;
13434}
13435}
13436#line 74
13437struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags ) __attribute__((__ldv_model__)) ;
13438#line 74 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
13439struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags )
13440{ void *arbitrary_memory ;
13441 void *tmp___7 ;
13442 void *__cil_tmp5 ;
13443
13444 {
13445 {
13446#line 75
13447 while (1) {
13448 while_continue: ;
13449 {
13450#line 75
13451 tmp___7 = ldv_undefined_pointer();
13452#line 75
13453 arbitrary_memory = tmp___7;
13454 }
13455#line 75
13456 if (! arbitrary_memory) {
13457 {
13458#line 75
13459 __cil_tmp5 = (void *)0;
13460#line 75
13461 return ((struct urb *)__cil_tmp5);
13462 }
13463 } else {
13464
13465 }
13466#line 75
13467 ldv_urb_state = ldv_urb_state + 1;
13468#line 75
13469 return ((struct urb *)arbitrary_memory);
13470#line 75
13471 goto while_break;
13472 }
13473 while_break___0: ;
13474 }
13475
13476 while_break: ;
13477#line 76
13478 return ((struct urb *)0);
13479}
13480}
13481#line 79
13482void usb_free_urb(struct urb *urb ) __attribute__((__ldv_model__)) ;
13483#line 79 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
13484void usb_free_urb(struct urb *urb )
13485{ struct urb *__cil_tmp2 ;
13486 unsigned long __cil_tmp3 ;
13487 unsigned long __cil_tmp4 ;
13488 int __cil_tmp5 ;
13489
13490 {
13491 {
13492#line 80
13493 while (1) {
13494 while_continue: ;
13495
13496 {
13497#line 80
13498 __cil_tmp2 = (struct urb *)0;
13499#line 80
13500 __cil_tmp3 = (unsigned long )__cil_tmp2;
13501#line 80
13502 __cil_tmp4 = (unsigned long )urb;
13503#line 80
13504 __cil_tmp5 = __cil_tmp4 != __cil_tmp3;
13505#line 80
13506 if (! __cil_tmp5) {
13507 {
13508#line 80
13509 ldv_assume_stop();
13510 }
13511 } else {
13512
13513 }
13514 }
13515#line 80
13516 if (urb) {
13517#line 80
13518 if (ldv_urb_state >= 1) {
13519
13520 } else {
13521 {
13522#line 80
13523 ldv_blast_assert();
13524 }
13525 }
13526#line 80
13527 ldv_urb_state = ldv_urb_state - 1;
13528 } else {
13529
13530 }
13531#line 80
13532 goto while_break;
13533 }
13534 while_break___0: ;
13535 }
13536
13537 while_break: ;
13538#line 81
13539 return;
13540}
13541}
13542#line 84
13543void ldv_check_final_state(void) __attribute__((__ldv_model__)) ;
13544#line 84 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/serial/whiteheat.ko--X--bulklinux-3.0.1--X--68_1/linux-3.0.1/csd_deg_dscv/11/dscv_tempdir/dscv/ri/68_1/kernel-rules/files/model0068.c"
13545void ldv_check_final_state(void)
13546{
13547
13548 {
13549#line 86
13550 if (ldv_urb_state == 0) {
13551
13552 } else {
13553 {
13554#line 86
13555 ldv_blast_assert();
13556 }
13557 }
13558#line 88
13559 if (ldv_coherent_state == 0) {
13560
13561 } else {
13562 {
13563#line 88
13564 ldv_blast_assert();
13565 }
13566 }
13567#line 89
13568 return;
13569}
13570}