Showing error 1228

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: ldv-linux-3.4/43_1a_cilled_safe_ok_nondet_linux-43_1a-drivers--staging--comedi--drivers--unioxx5.ko-ldv_main0_sequence_infinite_withcheck_stateful.cil.out.c
Line in file: 3778
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

   1/* Generated by CIL v. 1.3.7 */
   2/* print_CIL_Input is true */
   3
   4#line 23 "include/asm-generic/int-ll64.h"
   5typedef unsigned short __u16;
   6#line 26 "include/asm-generic/int-ll64.h"
   7typedef unsigned int __u32;
   8#line 30 "include/asm-generic/int-ll64.h"
   9typedef unsigned long long __u64;
  10#line 43 "include/asm-generic/int-ll64.h"
  11typedef unsigned char u8;
  12#line 45 "include/asm-generic/int-ll64.h"
  13typedef short s16;
  14#line 46 "include/asm-generic/int-ll64.h"
  15typedef unsigned short u16;
  16#line 49 "include/asm-generic/int-ll64.h"
  17typedef unsigned int u32;
  18#line 51 "include/asm-generic/int-ll64.h"
  19typedef long long s64;
  20#line 52 "include/asm-generic/int-ll64.h"
  21typedef unsigned long long u64;
  22#line 14 "include/asm-generic/posix_types.h"
  23typedef long __kernel_long_t;
  24#line 15 "include/asm-generic/posix_types.h"
  25typedef unsigned long __kernel_ulong_t;
  26#line 75 "include/asm-generic/posix_types.h"
  27typedef __kernel_ulong_t __kernel_size_t;
  28#line 76 "include/asm-generic/posix_types.h"
  29typedef __kernel_long_t __kernel_ssize_t;
  30#line 91 "include/asm-generic/posix_types.h"
  31typedef long long __kernel_loff_t;
  32#line 21 "include/linux/types.h"
  33typedef __u32 __kernel_dev_t;
  34#line 24 "include/linux/types.h"
  35typedef __kernel_dev_t dev_t;
  36#line 27 "include/linux/types.h"
  37typedef unsigned short umode_t;
  38#line 38 "include/linux/types.h"
  39typedef _Bool bool;
  40#line 54 "include/linux/types.h"
  41typedef __kernel_loff_t loff_t;
  42#line 63 "include/linux/types.h"
  43typedef __kernel_size_t size_t;
  44#line 68 "include/linux/types.h"
  45typedef __kernel_ssize_t ssize_t;
  46#line 155 "include/linux/types.h"
  47typedef u64 dma_addr_t;
  48#line 202 "include/linux/types.h"
  49typedef unsigned int gfp_t;
  50#line 206 "include/linux/types.h"
  51typedef u64 phys_addr_t;
  52#line 211 "include/linux/types.h"
  53typedef phys_addr_t resource_size_t;
  54#line 221 "include/linux/types.h"
  55struct __anonstruct_atomic_t_6 {
  56   int counter ;
  57};
  58#line 221 "include/linux/types.h"
  59typedef struct __anonstruct_atomic_t_6 atomic_t;
  60#line 226 "include/linux/types.h"
  61struct __anonstruct_atomic64_t_7 {
  62   long counter ;
  63};
  64#line 226 "include/linux/types.h"
  65typedef struct __anonstruct_atomic64_t_7 atomic64_t;
  66#line 227 "include/linux/types.h"
  67struct list_head {
  68   struct list_head *next ;
  69   struct list_head *prev ;
  70};
  71#line 232
  72struct hlist_node;
  73#line 232 "include/linux/types.h"
  74struct hlist_head {
  75   struct hlist_node *first ;
  76};
  77#line 236 "include/linux/types.h"
  78struct hlist_node {
  79   struct hlist_node *next ;
  80   struct hlist_node **pprev ;
  81};
  82#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
  83struct module;
  84#line 55
  85struct module;
  86#line 146 "include/linux/init.h"
  87typedef void (*ctor_fn_t)(void);
  88#line 46 "include/linux/dynamic_debug.h"
  89struct device;
  90#line 46
  91struct device;
  92#line 57
  93struct completion;
  94#line 57
  95struct completion;
  96#line 58 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page_types.h"
  97struct page;
  98#line 58
  99struct page;
 100#line 26 "include/asm-generic/getorder.h"
 101struct task_struct;
 102#line 26
 103struct task_struct;
 104#line 28
 105struct mm_struct;
 106#line 28
 107struct mm_struct;
 108#line 13 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
 109typedef unsigned long pgdval_t;
 110#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
 111typedef unsigned long pgprotval_t;
 112#line 18 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_64_types.h"
 113struct pgprot {
 114   pgprotval_t pgprot ;
 115};
 116#line 192 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 117typedef struct pgprot pgprot_t;
 118#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 119struct __anonstruct_pgd_t_16 {
 120   pgdval_t pgd ;
 121};
 122#line 194 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 123typedef struct __anonstruct_pgd_t_16 pgd_t;
 124#line 282 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/pgtable_types.h"
 125typedef struct page *pgtable_t;
 126#line 290
 127struct file;
 128#line 290
 129struct file;
 130#line 339
 131struct cpumask;
 132#line 339
 133struct cpumask;
 134#line 327 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
 135struct arch_spinlock;
 136#line 327
 137struct arch_spinlock;
 138#line 306 "include/linux/bitmap.h"
 139struct bug_entry {
 140   int bug_addr_disp ;
 141   int file_disp ;
 142   unsigned short line ;
 143   unsigned short flags ;
 144};
 145#line 89 "include/linux/bug.h"
 146struct cpumask {
 147   unsigned long bits[64U] ;
 148};
 149#line 637 "include/linux/cpumask.h"
 150typedef struct cpumask *cpumask_var_t;
 151#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
 152struct static_key;
 153#line 234
 154struct static_key;
 155#line 433 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
 156struct kmem_cache;
 157#line 23 "include/asm-generic/atomic-long.h"
 158typedef atomic64_t atomic_long_t;
 159#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 160typedef u16 __ticket_t;
 161#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 162typedef u32 __ticketpair_t;
 163#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 164struct __raw_tickets {
 165   __ticket_t head ;
 166   __ticket_t tail ;
 167};
 168#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 169union __anonunion_ldv_5907_29 {
 170   __ticketpair_t head_tail ;
 171   struct __raw_tickets tickets ;
 172};
 173#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 174struct arch_spinlock {
 175   union __anonunion_ldv_5907_29 ldv_5907 ;
 176};
 177#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 178typedef struct arch_spinlock arch_spinlock_t;
 179#line 34 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 180struct lockdep_map;
 181#line 34
 182struct lockdep_map;
 183#line 55 "include/linux/debug_locks.h"
 184struct stack_trace {
 185   unsigned int nr_entries ;
 186   unsigned int max_entries ;
 187   unsigned long *entries ;
 188   int skip ;
 189};
 190#line 26 "include/linux/stacktrace.h"
 191struct lockdep_subclass_key {
 192   char __one_byte ;
 193};
 194#line 53 "include/linux/lockdep.h"
 195struct lock_class_key {
 196   struct lockdep_subclass_key subkeys[8U] ;
 197};
 198#line 59 "include/linux/lockdep.h"
 199struct lock_class {
 200   struct list_head hash_entry ;
 201   struct list_head lock_entry ;
 202   struct lockdep_subclass_key *key ;
 203   unsigned int subclass ;
 204   unsigned int dep_gen_id ;
 205   unsigned long usage_mask ;
 206   struct stack_trace usage_traces[13U] ;
 207   struct list_head locks_after ;
 208   struct list_head locks_before ;
 209   unsigned int version ;
 210   unsigned long ops ;
 211   char const   *name ;
 212   int name_version ;
 213   unsigned long contention_point[4U] ;
 214   unsigned long contending_point[4U] ;
 215};
 216#line 144 "include/linux/lockdep.h"
 217struct lockdep_map {
 218   struct lock_class_key *key ;
 219   struct lock_class *class_cache[2U] ;
 220   char const   *name ;
 221   int cpu ;
 222   unsigned long ip ;
 223};
 224#line 556 "include/linux/lockdep.h"
 225struct raw_spinlock {
 226   arch_spinlock_t raw_lock ;
 227   unsigned int magic ;
 228   unsigned int owner_cpu ;
 229   void *owner ;
 230   struct lockdep_map dep_map ;
 231};
 232#line 32 "include/linux/spinlock_types.h"
 233typedef struct raw_spinlock raw_spinlock_t;
 234#line 33 "include/linux/spinlock_types.h"
 235struct __anonstruct_ldv_6122_33 {
 236   u8 __padding[24U] ;
 237   struct lockdep_map dep_map ;
 238};
 239#line 33 "include/linux/spinlock_types.h"
 240union __anonunion_ldv_6123_32 {
 241   struct raw_spinlock rlock ;
 242   struct __anonstruct_ldv_6122_33 ldv_6122 ;
 243};
 244#line 33 "include/linux/spinlock_types.h"
 245struct spinlock {
 246   union __anonunion_ldv_6123_32 ldv_6123 ;
 247};
 248#line 76 "include/linux/spinlock_types.h"
 249typedef struct spinlock spinlock_t;
 250#line 48 "include/linux/wait.h"
 251struct __wait_queue_head {
 252   spinlock_t lock ;
 253   struct list_head task_list ;
 254};
 255#line 53 "include/linux/wait.h"
 256typedef struct __wait_queue_head wait_queue_head_t;
 257#line 98 "include/linux/nodemask.h"
 258struct __anonstruct_nodemask_t_36 {
 259   unsigned long bits[16U] ;
 260};
 261#line 98 "include/linux/nodemask.h"
 262typedef struct __anonstruct_nodemask_t_36 nodemask_t;
 263#line 670 "include/linux/mmzone.h"
 264struct mutex {
 265   atomic_t count ;
 266   spinlock_t wait_lock ;
 267   struct list_head wait_list ;
 268   struct task_struct *owner ;
 269   char const   *name ;
 270   void *magic ;
 271   struct lockdep_map dep_map ;
 272};
 273#line 171 "include/linux/mutex.h"
 274struct rw_semaphore;
 275#line 171
 276struct rw_semaphore;
 277#line 172 "include/linux/mutex.h"
 278struct rw_semaphore {
 279   long count ;
 280   raw_spinlock_t wait_lock ;
 281   struct list_head wait_list ;
 282   struct lockdep_map dep_map ;
 283};
 284#line 128 "include/linux/rwsem.h"
 285struct completion {
 286   unsigned int done ;
 287   wait_queue_head_t wait ;
 288};
 289#line 139 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/e820.h"
 290struct resource {
 291   resource_size_t start ;
 292   resource_size_t end ;
 293   char const   *name ;
 294   unsigned long flags ;
 295   struct resource *parent ;
 296   struct resource *sibling ;
 297   struct resource *child ;
 298};
 299#line 312 "include/linux/jiffies.h"
 300union ktime {
 301   s64 tv64 ;
 302};
 303#line 59 "include/linux/ktime.h"
 304typedef union ktime ktime_t;
 305#line 341
 306struct tvec_base;
 307#line 341
 308struct tvec_base;
 309#line 342 "include/linux/ktime.h"
 310struct timer_list {
 311   struct list_head entry ;
 312   unsigned long expires ;
 313   struct tvec_base *base ;
 314   void (*function)(unsigned long  ) ;
 315   unsigned long data ;
 316   int slack ;
 317   int start_pid ;
 318   void *start_site ;
 319   char start_comm[16U] ;
 320   struct lockdep_map lockdep_map ;
 321};
 322#line 302 "include/linux/timer.h"
 323struct work_struct;
 324#line 302
 325struct work_struct;
 326#line 45 "include/linux/workqueue.h"
 327struct work_struct {
 328   atomic_long_t data ;
 329   struct list_head entry ;
 330   void (*func)(struct work_struct * ) ;
 331   struct lockdep_map lockdep_map ;
 332};
 333#line 46 "include/linux/pm.h"
 334struct pm_message {
 335   int event ;
 336};
 337#line 52 "include/linux/pm.h"
 338typedef struct pm_message pm_message_t;
 339#line 53 "include/linux/pm.h"
 340struct dev_pm_ops {
 341   int (*prepare)(struct device * ) ;
 342   void (*complete)(struct device * ) ;
 343   int (*suspend)(struct device * ) ;
 344   int (*resume)(struct device * ) ;
 345   int (*freeze)(struct device * ) ;
 346   int (*thaw)(struct device * ) ;
 347   int (*poweroff)(struct device * ) ;
 348   int (*restore)(struct device * ) ;
 349   int (*suspend_late)(struct device * ) ;
 350   int (*resume_early)(struct device * ) ;
 351   int (*freeze_late)(struct device * ) ;
 352   int (*thaw_early)(struct device * ) ;
 353   int (*poweroff_late)(struct device * ) ;
 354   int (*restore_early)(struct device * ) ;
 355   int (*suspend_noirq)(struct device * ) ;
 356   int (*resume_noirq)(struct device * ) ;
 357   int (*freeze_noirq)(struct device * ) ;
 358   int (*thaw_noirq)(struct device * ) ;
 359   int (*poweroff_noirq)(struct device * ) ;
 360   int (*restore_noirq)(struct device * ) ;
 361   int (*runtime_suspend)(struct device * ) ;
 362   int (*runtime_resume)(struct device * ) ;
 363   int (*runtime_idle)(struct device * ) ;
 364};
 365#line 289
 366enum rpm_status {
 367    RPM_ACTIVE = 0,
 368    RPM_RESUMING = 1,
 369    RPM_SUSPENDED = 2,
 370    RPM_SUSPENDING = 3
 371} ;
 372#line 296
 373enum rpm_request {
 374    RPM_REQ_NONE = 0,
 375    RPM_REQ_IDLE = 1,
 376    RPM_REQ_SUSPEND = 2,
 377    RPM_REQ_AUTOSUSPEND = 3,
 378    RPM_REQ_RESUME = 4
 379} ;
 380#line 304
 381struct wakeup_source;
 382#line 304
 383struct wakeup_source;
 384#line 494 "include/linux/pm.h"
 385struct pm_subsys_data {
 386   spinlock_t lock ;
 387   unsigned int refcount ;
 388};
 389#line 499
 390struct dev_pm_qos_request;
 391#line 499
 392struct pm_qos_constraints;
 393#line 499 "include/linux/pm.h"
 394struct dev_pm_info {
 395   pm_message_t power_state ;
 396   unsigned char can_wakeup : 1 ;
 397   unsigned char async_suspend : 1 ;
 398   bool is_prepared ;
 399   bool is_suspended ;
 400   bool ignore_children ;
 401   spinlock_t lock ;
 402   struct list_head entry ;
 403   struct completion completion ;
 404   struct wakeup_source *wakeup ;
 405   bool wakeup_path ;
 406   struct timer_list suspend_timer ;
 407   unsigned long timer_expires ;
 408   struct work_struct work ;
 409   wait_queue_head_t wait_queue ;
 410   atomic_t usage_count ;
 411   atomic_t child_count ;
 412   unsigned char disable_depth : 3 ;
 413   unsigned char idle_notification : 1 ;
 414   unsigned char request_pending : 1 ;
 415   unsigned char deferred_resume : 1 ;
 416   unsigned char run_wake : 1 ;
 417   unsigned char runtime_auto : 1 ;
 418   unsigned char no_callbacks : 1 ;
 419   unsigned char irq_safe : 1 ;
 420   unsigned char use_autosuspend : 1 ;
 421   unsigned char timer_autosuspends : 1 ;
 422   enum rpm_request request ;
 423   enum rpm_status runtime_status ;
 424   int runtime_error ;
 425   int autosuspend_delay ;
 426   unsigned long last_busy ;
 427   unsigned long active_jiffies ;
 428   unsigned long suspended_jiffies ;
 429   unsigned long accounting_timestamp ;
 430   ktime_t suspend_time ;
 431   s64 max_time_suspended_ns ;
 432   struct dev_pm_qos_request *pq_req ;
 433   struct pm_subsys_data *subsys_data ;
 434   struct pm_qos_constraints *constraints ;
 435};
 436#line 558 "include/linux/pm.h"
 437struct dev_pm_domain {
 438   struct dev_pm_ops ops ;
 439};
 440#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
 441struct __anonstruct_mm_context_t_101 {
 442   void *ldt ;
 443   int size ;
 444   unsigned short ia32_compat ;
 445   struct mutex lock ;
 446   void *vdso ;
 447};
 448#line 22 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/mmu.h"
 449typedef struct __anonstruct_mm_context_t_101 mm_context_t;
 450#line 18 "include/asm-generic/pci_iomap.h"
 451struct vm_area_struct;
 452#line 18
 453struct vm_area_struct;
 454#line 835 "include/linux/sysctl.h"
 455struct rb_node {
 456   unsigned long rb_parent_color ;
 457   struct rb_node *rb_right ;
 458   struct rb_node *rb_left ;
 459};
 460#line 108 "include/linux/rbtree.h"
 461struct rb_root {
 462   struct rb_node *rb_node ;
 463};
 464#line 18 "include/linux/elf.h"
 465typedef __u64 Elf64_Addr;
 466#line 19 "include/linux/elf.h"
 467typedef __u16 Elf64_Half;
 468#line 23 "include/linux/elf.h"
 469typedef __u32 Elf64_Word;
 470#line 24 "include/linux/elf.h"
 471typedef __u64 Elf64_Xword;
 472#line 193 "include/linux/elf.h"
 473struct elf64_sym {
 474   Elf64_Word st_name ;
 475   unsigned char st_info ;
 476   unsigned char st_other ;
 477   Elf64_Half st_shndx ;
 478   Elf64_Addr st_value ;
 479   Elf64_Xword st_size ;
 480};
 481#line 201 "include/linux/elf.h"
 482typedef struct elf64_sym Elf64_Sym;
 483#line 445
 484struct sock;
 485#line 445
 486struct sock;
 487#line 446
 488struct kobject;
 489#line 446
 490struct kobject;
 491#line 447
 492enum kobj_ns_type {
 493    KOBJ_NS_TYPE_NONE = 0,
 494    KOBJ_NS_TYPE_NET = 1,
 495    KOBJ_NS_TYPES = 2
 496} ;
 497#line 453 "include/linux/elf.h"
 498struct kobj_ns_type_operations {
 499   enum kobj_ns_type type ;
 500   void *(*grab_current_ns)(void) ;
 501   void const   *(*netlink_ns)(struct sock * ) ;
 502   void const   *(*initial_ns)(void) ;
 503   void (*drop_ns)(void * ) ;
 504};
 505#line 57 "include/linux/kobject_ns.h"
 506struct attribute {
 507   char const   *name ;
 508   umode_t mode ;
 509   struct lock_class_key *key ;
 510   struct lock_class_key skey ;
 511};
 512#line 33 "include/linux/sysfs.h"
 513struct attribute_group {
 514   char const   *name ;
 515   umode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
 516   struct attribute **attrs ;
 517};
 518#line 62 "include/linux/sysfs.h"
 519struct bin_attribute {
 520   struct attribute attr ;
 521   size_t size ;
 522   void *private ;
 523   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 524                   loff_t  , size_t  ) ;
 525   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
 526                    loff_t  , size_t  ) ;
 527   int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
 528};
 529#line 98 "include/linux/sysfs.h"
 530struct sysfs_ops {
 531   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
 532   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
 533   void const   *(*namespace)(struct kobject * , struct attribute  const  * ) ;
 534};
 535#line 117
 536struct sysfs_dirent;
 537#line 117
 538struct sysfs_dirent;
 539#line 182 "include/linux/sysfs.h"
 540struct kref {
 541   atomic_t refcount ;
 542};
 543#line 49 "include/linux/kobject.h"
 544struct kset;
 545#line 49
 546struct kobj_type;
 547#line 49 "include/linux/kobject.h"
 548struct kobject {
 549   char const   *name ;
 550   struct list_head entry ;
 551   struct kobject *parent ;
 552   struct kset *kset ;
 553   struct kobj_type *ktype ;
 554   struct sysfs_dirent *sd ;
 555   struct kref kref ;
 556   unsigned char state_initialized : 1 ;
 557   unsigned char state_in_sysfs : 1 ;
 558   unsigned char state_add_uevent_sent : 1 ;
 559   unsigned char state_remove_uevent_sent : 1 ;
 560   unsigned char uevent_suppress : 1 ;
 561};
 562#line 107 "include/linux/kobject.h"
 563struct kobj_type {
 564   void (*release)(struct kobject * ) ;
 565   struct sysfs_ops  const  *sysfs_ops ;
 566   struct attribute **default_attrs ;
 567   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject * ) ;
 568   void const   *(*namespace)(struct kobject * ) ;
 569};
 570#line 115 "include/linux/kobject.h"
 571struct kobj_uevent_env {
 572   char *envp[32U] ;
 573   int envp_idx ;
 574   char buf[2048U] ;
 575   int buflen ;
 576};
 577#line 122 "include/linux/kobject.h"
 578struct kset_uevent_ops {
 579   int (* const  filter)(struct kset * , struct kobject * ) ;
 580   char const   *(* const  name)(struct kset * , struct kobject * ) ;
 581   int (* const  uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
 582};
 583#line 139 "include/linux/kobject.h"
 584struct kset {
 585   struct list_head list ;
 586   spinlock_t list_lock ;
 587   struct kobject kobj ;
 588   struct kset_uevent_ops  const  *uevent_ops ;
 589};
 590#line 215
 591struct kernel_param;
 592#line 215
 593struct kernel_param;
 594#line 216 "include/linux/kobject.h"
 595struct kernel_param_ops {
 596   int (*set)(char const   * , struct kernel_param  const  * ) ;
 597   int (*get)(char * , struct kernel_param  const  * ) ;
 598   void (*free)(void * ) ;
 599};
 600#line 49 "include/linux/moduleparam.h"
 601struct kparam_string;
 602#line 49
 603struct kparam_array;
 604#line 49 "include/linux/moduleparam.h"
 605union __anonunion_ldv_13363_134 {
 606   void *arg ;
 607   struct kparam_string  const  *str ;
 608   struct kparam_array  const  *arr ;
 609};
 610#line 49 "include/linux/moduleparam.h"
 611struct kernel_param {
 612   char const   *name ;
 613   struct kernel_param_ops  const  *ops ;
 614   u16 perm ;
 615   s16 level ;
 616   union __anonunion_ldv_13363_134 ldv_13363 ;
 617};
 618#line 61 "include/linux/moduleparam.h"
 619struct kparam_string {
 620   unsigned int maxlen ;
 621   char *string ;
 622};
 623#line 67 "include/linux/moduleparam.h"
 624struct kparam_array {
 625   unsigned int max ;
 626   unsigned int elemsize ;
 627   unsigned int *num ;
 628   struct kernel_param_ops  const  *ops ;
 629   void *elem ;
 630};
 631#line 458 "include/linux/moduleparam.h"
 632struct static_key {
 633   atomic_t enabled ;
 634};
 635#line 225 "include/linux/jump_label.h"
 636struct tracepoint;
 637#line 225
 638struct tracepoint;
 639#line 226 "include/linux/jump_label.h"
 640struct tracepoint_func {
 641   void *func ;
 642   void *data ;
 643};
 644#line 29 "include/linux/tracepoint.h"
 645struct tracepoint {
 646   char const   *name ;
 647   struct static_key key ;
 648   void (*regfunc)(void) ;
 649   void (*unregfunc)(void) ;
 650   struct tracepoint_func *funcs ;
 651};
 652#line 86 "include/linux/tracepoint.h"
 653struct kernel_symbol {
 654   unsigned long value ;
 655   char const   *name ;
 656};
 657#line 27 "include/linux/export.h"
 658struct mod_arch_specific {
 659
 660};
 661#line 34 "include/linux/module.h"
 662struct module_param_attrs;
 663#line 34 "include/linux/module.h"
 664struct module_kobject {
 665   struct kobject kobj ;
 666   struct module *mod ;
 667   struct kobject *drivers_dir ;
 668   struct module_param_attrs *mp ;
 669};
 670#line 43 "include/linux/module.h"
 671struct module_attribute {
 672   struct attribute attr ;
 673   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
 674   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const   * ,
 675                    size_t  ) ;
 676   void (*setup)(struct module * , char const   * ) ;
 677   int (*test)(struct module * ) ;
 678   void (*free)(struct module * ) ;
 679};
 680#line 69
 681struct exception_table_entry;
 682#line 69
 683struct exception_table_entry;
 684#line 198
 685enum module_state {
 686    MODULE_STATE_LIVE = 0,
 687    MODULE_STATE_COMING = 1,
 688    MODULE_STATE_GOING = 2
 689} ;
 690#line 204 "include/linux/module.h"
 691struct module_ref {
 692   unsigned long incs ;
 693   unsigned long decs ;
 694};
 695#line 219
 696struct module_sect_attrs;
 697#line 219
 698struct module_notes_attrs;
 699#line 219
 700struct ftrace_event_call;
 701#line 219 "include/linux/module.h"
 702struct module {
 703   enum module_state state ;
 704   struct list_head list ;
 705   char name[56U] ;
 706   struct module_kobject mkobj ;
 707   struct module_attribute *modinfo_attrs ;
 708   char const   *version ;
 709   char const   *srcversion ;
 710   struct kobject *holders_dir ;
 711   struct kernel_symbol  const  *syms ;
 712   unsigned long const   *crcs ;
 713   unsigned int num_syms ;
 714   struct kernel_param *kp ;
 715   unsigned int num_kp ;
 716   unsigned int num_gpl_syms ;
 717   struct kernel_symbol  const  *gpl_syms ;
 718   unsigned long const   *gpl_crcs ;
 719   struct kernel_symbol  const  *unused_syms ;
 720   unsigned long const   *unused_crcs ;
 721   unsigned int num_unused_syms ;
 722   unsigned int num_unused_gpl_syms ;
 723   struct kernel_symbol  const  *unused_gpl_syms ;
 724   unsigned long const   *unused_gpl_crcs ;
 725   struct kernel_symbol  const  *gpl_future_syms ;
 726   unsigned long const   *gpl_future_crcs ;
 727   unsigned int num_gpl_future_syms ;
 728   unsigned int num_exentries ;
 729   struct exception_table_entry *extable ;
 730   int (*init)(void) ;
 731   void *module_init ;
 732   void *module_core ;
 733   unsigned int init_size ;
 734   unsigned int core_size ;
 735   unsigned int init_text_size ;
 736   unsigned int core_text_size ;
 737   unsigned int init_ro_size ;
 738   unsigned int core_ro_size ;
 739   struct mod_arch_specific arch ;
 740   unsigned int taints ;
 741   unsigned int num_bugs ;
 742   struct list_head bug_list ;
 743   struct bug_entry *bug_table ;
 744   Elf64_Sym *symtab ;
 745   Elf64_Sym *core_symtab ;
 746   unsigned int num_symtab ;
 747   unsigned int core_num_syms ;
 748   char *strtab ;
 749   char *core_strtab ;
 750   struct module_sect_attrs *sect_attrs ;
 751   struct module_notes_attrs *notes_attrs ;
 752   char *args ;
 753   void *percpu ;
 754   unsigned int percpu_size ;
 755   unsigned int num_tracepoints ;
 756   struct tracepoint * const  *tracepoints_ptrs ;
 757   unsigned int num_trace_bprintk_fmt ;
 758   char const   **trace_bprintk_fmt_start ;
 759   struct ftrace_event_call **trace_events ;
 760   unsigned int num_trace_events ;
 761   struct list_head source_list ;
 762   struct list_head target_list ;
 763   struct task_struct *waiter ;
 764   void (*exit)(void) ;
 765   struct module_ref *refptr ;
 766   ctor_fn_t (**ctors)(void) ;
 767   unsigned int num_ctors ;
 768};
 769#line 88 "include/linux/kmemleak.h"
 770struct kmem_cache_cpu {
 771   void **freelist ;
 772   unsigned long tid ;
 773   struct page *page ;
 774   struct page *partial ;
 775   int node ;
 776   unsigned int stat[26U] ;
 777};
 778#line 55 "include/linux/slub_def.h"
 779struct kmem_cache_node {
 780   spinlock_t list_lock ;
 781   unsigned long nr_partial ;
 782   struct list_head partial ;
 783   atomic_long_t nr_slabs ;
 784   atomic_long_t total_objects ;
 785   struct list_head full ;
 786};
 787#line 66 "include/linux/slub_def.h"
 788struct kmem_cache_order_objects {
 789   unsigned long x ;
 790};
 791#line 76 "include/linux/slub_def.h"
 792struct kmem_cache {
 793   struct kmem_cache_cpu *cpu_slab ;
 794   unsigned long flags ;
 795   unsigned long min_partial ;
 796   int size ;
 797   int objsize ;
 798   int offset ;
 799   int cpu_partial ;
 800   struct kmem_cache_order_objects oo ;
 801   struct kmem_cache_order_objects max ;
 802   struct kmem_cache_order_objects min ;
 803   gfp_t allocflags ;
 804   int refcount ;
 805   void (*ctor)(void * ) ;
 806   int inuse ;
 807   int align ;
 808   int reserved ;
 809   char const   *name ;
 810   struct list_head list ;
 811   struct kobject kobj ;
 812   int remote_node_defrag_ratio ;
 813   struct kmem_cache_node *node[1024U] ;
 814};
 815#line 54 "include/linux/delay.h"
 816struct prio_tree_node;
 817#line 54 "include/linux/delay.h"
 818struct raw_prio_tree_node {
 819   struct prio_tree_node *left ;
 820   struct prio_tree_node *right ;
 821   struct prio_tree_node *parent ;
 822};
 823#line 19 "include/linux/prio_tree.h"
 824struct prio_tree_node {
 825   struct prio_tree_node *left ;
 826   struct prio_tree_node *right ;
 827   struct prio_tree_node *parent ;
 828   unsigned long start ;
 829   unsigned long last ;
 830};
 831#line 116
 832struct address_space;
 833#line 116
 834struct address_space;
 835#line 117 "include/linux/prio_tree.h"
 836union __anonunion_ldv_14287_136 {
 837   unsigned long index ;
 838   void *freelist ;
 839};
 840#line 117 "include/linux/prio_tree.h"
 841struct __anonstruct_ldv_14297_140 {
 842   unsigned short inuse ;
 843   unsigned short objects : 15 ;
 844   unsigned char frozen : 1 ;
 845};
 846#line 117 "include/linux/prio_tree.h"
 847union __anonunion_ldv_14298_139 {
 848   atomic_t _mapcount ;
 849   struct __anonstruct_ldv_14297_140 ldv_14297 ;
 850};
 851#line 117 "include/linux/prio_tree.h"
 852struct __anonstruct_ldv_14300_138 {
 853   union __anonunion_ldv_14298_139 ldv_14298 ;
 854   atomic_t _count ;
 855};
 856#line 117 "include/linux/prio_tree.h"
 857union __anonunion_ldv_14301_137 {
 858   unsigned long counters ;
 859   struct __anonstruct_ldv_14300_138 ldv_14300 ;
 860};
 861#line 117 "include/linux/prio_tree.h"
 862struct __anonstruct_ldv_14302_135 {
 863   union __anonunion_ldv_14287_136 ldv_14287 ;
 864   union __anonunion_ldv_14301_137 ldv_14301 ;
 865};
 866#line 117 "include/linux/prio_tree.h"
 867struct __anonstruct_ldv_14309_142 {
 868   struct page *next ;
 869   int pages ;
 870   int pobjects ;
 871};
 872#line 117 "include/linux/prio_tree.h"
 873union __anonunion_ldv_14310_141 {
 874   struct list_head lru ;
 875   struct __anonstruct_ldv_14309_142 ldv_14309 ;
 876};
 877#line 117 "include/linux/prio_tree.h"
 878union __anonunion_ldv_14315_143 {
 879   unsigned long private ;
 880   struct kmem_cache *slab ;
 881   struct page *first_page ;
 882};
 883#line 117 "include/linux/prio_tree.h"
 884struct page {
 885   unsigned long flags ;
 886   struct address_space *mapping ;
 887   struct __anonstruct_ldv_14302_135 ldv_14302 ;
 888   union __anonunion_ldv_14310_141 ldv_14310 ;
 889   union __anonunion_ldv_14315_143 ldv_14315 ;
 890   unsigned long debug_flags ;
 891};
 892#line 192 "include/linux/mm_types.h"
 893struct __anonstruct_vm_set_145 {
 894   struct list_head list ;
 895   void *parent ;
 896   struct vm_area_struct *head ;
 897};
 898#line 192 "include/linux/mm_types.h"
 899union __anonunion_shared_144 {
 900   struct __anonstruct_vm_set_145 vm_set ;
 901   struct raw_prio_tree_node prio_tree_node ;
 902};
 903#line 192
 904struct anon_vma;
 905#line 192
 906struct vm_operations_struct;
 907#line 192
 908struct mempolicy;
 909#line 192 "include/linux/mm_types.h"
 910struct vm_area_struct {
 911   struct mm_struct *vm_mm ;
 912   unsigned long vm_start ;
 913   unsigned long vm_end ;
 914   struct vm_area_struct *vm_next ;
 915   struct vm_area_struct *vm_prev ;
 916   pgprot_t vm_page_prot ;
 917   unsigned long vm_flags ;
 918   struct rb_node vm_rb ;
 919   union __anonunion_shared_144 shared ;
 920   struct list_head anon_vma_chain ;
 921   struct anon_vma *anon_vma ;
 922   struct vm_operations_struct  const  *vm_ops ;
 923   unsigned long vm_pgoff ;
 924   struct file *vm_file ;
 925   void *vm_private_data ;
 926   struct mempolicy *vm_policy ;
 927};
 928#line 255 "include/linux/mm_types.h"
 929struct core_thread {
 930   struct task_struct *task ;
 931   struct core_thread *next ;
 932};
 933#line 261 "include/linux/mm_types.h"
 934struct core_state {
 935   atomic_t nr_threads ;
 936   struct core_thread dumper ;
 937   struct completion startup ;
 938};
 939#line 274 "include/linux/mm_types.h"
 940struct mm_rss_stat {
 941   atomic_long_t count[3U] ;
 942};
 943#line 287
 944struct linux_binfmt;
 945#line 287
 946struct mmu_notifier_mm;
 947#line 287 "include/linux/mm_types.h"
 948struct mm_struct {
 949   struct vm_area_struct *mmap ;
 950   struct rb_root mm_rb ;
 951   struct vm_area_struct *mmap_cache ;
 952   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
 953                                      unsigned long  , unsigned long  ) ;
 954   void (*unmap_area)(struct mm_struct * , unsigned long  ) ;
 955   unsigned long mmap_base ;
 956   unsigned long task_size ;
 957   unsigned long cached_hole_size ;
 958   unsigned long free_area_cache ;
 959   pgd_t *pgd ;
 960   atomic_t mm_users ;
 961   atomic_t mm_count ;
 962   int map_count ;
 963   spinlock_t page_table_lock ;
 964   struct rw_semaphore mmap_sem ;
 965   struct list_head mmlist ;
 966   unsigned long hiwater_rss ;
 967   unsigned long hiwater_vm ;
 968   unsigned long total_vm ;
 969   unsigned long locked_vm ;
 970   unsigned long pinned_vm ;
 971   unsigned long shared_vm ;
 972   unsigned long exec_vm ;
 973   unsigned long stack_vm ;
 974   unsigned long reserved_vm ;
 975   unsigned long def_flags ;
 976   unsigned long nr_ptes ;
 977   unsigned long start_code ;
 978   unsigned long end_code ;
 979   unsigned long start_data ;
 980   unsigned long end_data ;
 981   unsigned long start_brk ;
 982   unsigned long brk ;
 983   unsigned long start_stack ;
 984   unsigned long arg_start ;
 985   unsigned long arg_end ;
 986   unsigned long env_start ;
 987   unsigned long env_end ;
 988   unsigned long saved_auxv[44U] ;
 989   struct mm_rss_stat rss_stat ;
 990   struct linux_binfmt *binfmt ;
 991   cpumask_var_t cpu_vm_mask_var ;
 992   mm_context_t context ;
 993   unsigned int faultstamp ;
 994   unsigned int token_priority ;
 995   unsigned int last_interval ;
 996   unsigned long flags ;
 997   struct core_state *core_state ;
 998   spinlock_t ioctx_lock ;
 999   struct hlist_head ioctx_list ;
1000   struct task_struct *owner ;
1001   struct file *exe_file ;
1002   unsigned long num_exe_file_vmas ;
1003   struct mmu_notifier_mm *mmu_notifier_mm ;
1004   pgtable_t pmd_huge_pte ;
1005   struct cpumask cpumask_allocation ;
1006};
1007#line 178 "include/linux/mm.h"
1008struct vm_fault {
1009   unsigned int flags ;
1010   unsigned long pgoff ;
1011   void *virtual_address ;
1012   struct page *page ;
1013};
1014#line 195 "include/linux/mm.h"
1015struct vm_operations_struct {
1016   void (*open)(struct vm_area_struct * ) ;
1017   void (*close)(struct vm_area_struct * ) ;
1018   int (*fault)(struct vm_area_struct * , struct vm_fault * ) ;
1019   int (*page_mkwrite)(struct vm_area_struct * , struct vm_fault * ) ;
1020   int (*access)(struct vm_area_struct * , unsigned long  , void * , int  , int  ) ;
1021   int (*set_policy)(struct vm_area_struct * , struct mempolicy * ) ;
1022   struct mempolicy *(*get_policy)(struct vm_area_struct * , unsigned long  ) ;
1023   int (*migrate)(struct vm_area_struct * , nodemask_t const   * , nodemask_t const   * ,
1024                  unsigned long  ) ;
1025};
1026#line 1631
1027struct klist_node;
1028#line 1631
1029struct klist_node;
1030#line 37 "include/linux/klist.h"
1031struct klist_node {
1032   void *n_klist ;
1033   struct list_head n_node ;
1034   struct kref n_ref ;
1035};
1036#line 67
1037struct dma_map_ops;
1038#line 67 "include/linux/klist.h"
1039struct dev_archdata {
1040   void *acpi_handle ;
1041   struct dma_map_ops *dma_ops ;
1042   void *iommu ;
1043};
1044#line 17 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1045struct device_private;
1046#line 17
1047struct device_private;
1048#line 18
1049struct device_driver;
1050#line 18
1051struct device_driver;
1052#line 19
1053struct driver_private;
1054#line 19
1055struct driver_private;
1056#line 20
1057struct class;
1058#line 20
1059struct class;
1060#line 21
1061struct subsys_private;
1062#line 21
1063struct subsys_private;
1064#line 22
1065struct bus_type;
1066#line 22
1067struct bus_type;
1068#line 23
1069struct device_node;
1070#line 23
1071struct device_node;
1072#line 24
1073struct iommu_ops;
1074#line 24
1075struct iommu_ops;
1076#line 25 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/device.h"
1077struct bus_attribute {
1078   struct attribute attr ;
1079   ssize_t (*show)(struct bus_type * , char * ) ;
1080   ssize_t (*store)(struct bus_type * , char const   * , size_t  ) ;
1081};
1082#line 51 "include/linux/device.h"
1083struct device_attribute;
1084#line 51
1085struct driver_attribute;
1086#line 51 "include/linux/device.h"
1087struct bus_type {
1088   char const   *name ;
1089   char const   *dev_name ;
1090   struct device *dev_root ;
1091   struct bus_attribute *bus_attrs ;
1092   struct device_attribute *dev_attrs ;
1093   struct driver_attribute *drv_attrs ;
1094   int (*match)(struct device * , struct device_driver * ) ;
1095   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1096   int (*probe)(struct device * ) ;
1097   int (*remove)(struct device * ) ;
1098   void (*shutdown)(struct device * ) ;
1099   int (*suspend)(struct device * , pm_message_t  ) ;
1100   int (*resume)(struct device * ) ;
1101   struct dev_pm_ops  const  *pm ;
1102   struct iommu_ops *iommu_ops ;
1103   struct subsys_private *p ;
1104};
1105#line 125
1106struct device_type;
1107#line 182
1108struct of_device_id;
1109#line 182 "include/linux/device.h"
1110struct device_driver {
1111   char const   *name ;
1112   struct bus_type *bus ;
1113   struct module *owner ;
1114   char const   *mod_name ;
1115   bool suppress_bind_attrs ;
1116   struct of_device_id  const  *of_match_table ;
1117   int (*probe)(struct device * ) ;
1118   int (*remove)(struct device * ) ;
1119   void (*shutdown)(struct device * ) ;
1120   int (*suspend)(struct device * , pm_message_t  ) ;
1121   int (*resume)(struct device * ) ;
1122   struct attribute_group  const  **groups ;
1123   struct dev_pm_ops  const  *pm ;
1124   struct driver_private *p ;
1125};
1126#line 245 "include/linux/device.h"
1127struct driver_attribute {
1128   struct attribute attr ;
1129   ssize_t (*show)(struct device_driver * , char * ) ;
1130   ssize_t (*store)(struct device_driver * , char const   * , size_t  ) ;
1131};
1132#line 299
1133struct class_attribute;
1134#line 299 "include/linux/device.h"
1135struct class {
1136   char const   *name ;
1137   struct module *owner ;
1138   struct class_attribute *class_attrs ;
1139   struct device_attribute *dev_attrs ;
1140   struct bin_attribute *dev_bin_attrs ;
1141   struct kobject *dev_kobj ;
1142   int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
1143   char *(*devnode)(struct device * , umode_t * ) ;
1144   void (*class_release)(struct class * ) ;
1145   void (*dev_release)(struct device * ) ;
1146   int (*suspend)(struct device * , pm_message_t  ) ;
1147   int (*resume)(struct device * ) ;
1148   struct kobj_ns_type_operations  const  *ns_type ;
1149   void const   *(*namespace)(struct device * ) ;
1150   struct dev_pm_ops  const  *pm ;
1151   struct subsys_private *p ;
1152};
1153#line 394 "include/linux/device.h"
1154struct class_attribute {
1155   struct attribute attr ;
1156   ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
1157   ssize_t (*store)(struct class * , struct class_attribute * , char const   * , size_t  ) ;
1158   void const   *(*namespace)(struct class * , struct class_attribute  const  * ) ;
1159};
1160#line 447 "include/linux/device.h"
1161struct device_type {
1162   char const   *name ;
1163   struct attribute_group  const  **groups ;
1164   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
1165   char *(*devnode)(struct device * , umode_t * ) ;
1166   void (*release)(struct device * ) ;
1167   struct dev_pm_ops  const  *pm ;
1168};
1169#line 474 "include/linux/device.h"
1170struct device_attribute {
1171   struct attribute attr ;
1172   ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
1173   ssize_t (*store)(struct device * , struct device_attribute * , char const   * ,
1174                    size_t  ) ;
1175};
1176#line 557 "include/linux/device.h"
1177struct device_dma_parameters {
1178   unsigned int max_segment_size ;
1179   unsigned long segment_boundary_mask ;
1180};
1181#line 567
1182struct dma_coherent_mem;
1183#line 567 "include/linux/device.h"
1184struct device {
1185   struct device *parent ;
1186   struct device_private *p ;
1187   struct kobject kobj ;
1188   char const   *init_name ;
1189   struct device_type  const  *type ;
1190   struct mutex mutex ;
1191   struct bus_type *bus ;
1192   struct device_driver *driver ;
1193   void *platform_data ;
1194   struct dev_pm_info power ;
1195   struct dev_pm_domain *pm_domain ;
1196   int numa_node ;
1197   u64 *dma_mask ;
1198   u64 coherent_dma_mask ;
1199   struct device_dma_parameters *dma_parms ;
1200   struct list_head dma_pools ;
1201   struct dma_coherent_mem *dma_mem ;
1202   struct dev_archdata archdata ;
1203   struct device_node *of_node ;
1204   dev_t devt ;
1205   u32 id ;
1206   spinlock_t devres_lock ;
1207   struct list_head devres_head ;
1208   struct klist_node knode_class ;
1209   struct class *class ;
1210   struct attribute_group  const  **groups ;
1211   void (*release)(struct device * ) ;
1212};
1213#line 681 "include/linux/device.h"
1214struct wakeup_source {
1215   char const   *name ;
1216   struct list_head entry ;
1217   spinlock_t lock ;
1218   struct timer_list timer ;
1219   unsigned long timer_expires ;
1220   ktime_t total_time ;
1221   ktime_t max_time ;
1222   ktime_t last_time ;
1223   unsigned long event_count ;
1224   unsigned long active_count ;
1225   unsigned long relax_count ;
1226   unsigned long hit_count ;
1227   unsigned char active : 1 ;
1228};
1229#line 999 "include/linux/device.h"
1230struct dma_attrs {
1231   unsigned long flags[1U] ;
1232};
1233#line 67 "include/linux/dma-attrs.h"
1234enum dma_data_direction {
1235    DMA_BIDIRECTIONAL = 0,
1236    DMA_TO_DEVICE = 1,
1237    DMA_FROM_DEVICE = 2,
1238    DMA_NONE = 3
1239} ;
1240#line 74 "include/linux/dma-attrs.h"
1241struct scatterlist {
1242   unsigned long sg_magic ;
1243   unsigned long page_link ;
1244   unsigned int offset ;
1245   unsigned int length ;
1246   dma_addr_t dma_address ;
1247   unsigned int dma_length ;
1248};
1249#line 268 "include/linux/scatterlist.h"
1250struct dma_map_ops {
1251   void *(*alloc)(struct device * , size_t  , dma_addr_t * , gfp_t  , struct dma_attrs * ) ;
1252   void (*free)(struct device * , size_t  , void * , dma_addr_t  , struct dma_attrs * ) ;
1253   int (*mmap)(struct device * , struct vm_area_struct * , void * , dma_addr_t  ,
1254               size_t  , struct dma_attrs * ) ;
1255   dma_addr_t (*map_page)(struct device * , struct page * , unsigned long  , size_t  ,
1256                          enum dma_data_direction  , struct dma_attrs * ) ;
1257   void (*unmap_page)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
1258                      struct dma_attrs * ) ;
1259   int (*map_sg)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
1260                 struct dma_attrs * ) ;
1261   void (*unmap_sg)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
1262                    struct dma_attrs * ) ;
1263   void (*sync_single_for_cpu)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ) ;
1264   void (*sync_single_for_device)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ) ;
1265   void (*sync_sg_for_cpu)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ) ;
1266   void (*sync_sg_for_device)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ) ;
1267   int (*mapping_error)(struct device * , dma_addr_t  ) ;
1268   int (*dma_supported)(struct device * , u64  ) ;
1269   int (*set_dma_mask)(struct device * , u64  ) ;
1270   int is_phys ;
1271};
1272#line 202 "include/linux/dma-mapping.h"
1273struct exception_table_entry {
1274   unsigned long insn ;
1275   unsigned long fixup ;
1276};
1277#line 334 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedi.h"
1278struct comedi_insn {
1279   unsigned int insn ;
1280   unsigned int n ;
1281   unsigned int *data ;
1282   unsigned int subdev ;
1283   unsigned int chanspec ;
1284   unsigned int unused[3U] ;
1285};
1286#line 348 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedi.h"
1287struct comedi_cmd {
1288   unsigned int subdev ;
1289   unsigned int flags ;
1290   unsigned int start_src ;
1291   unsigned int start_arg ;
1292   unsigned int scan_begin_src ;
1293   unsigned int scan_begin_arg ;
1294   unsigned int convert_src ;
1295   unsigned int convert_arg ;
1296   unsigned int scan_end_src ;
1297   unsigned int scan_end_arg ;
1298   unsigned int stop_src ;
1299   unsigned int stop_arg ;
1300   unsigned int *chanlist ;
1301   unsigned int chanlist_len ;
1302   short *data ;
1303   unsigned int data_len ;
1304};
1305#line 387 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedi.h"
1306struct comedi_krange {
1307   int min ;
1308   int max ;
1309   unsigned int flags ;
1310};
1311#line 418 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedi.h"
1312struct comedi_devconfig {
1313   char board_name[20U] ;
1314   int options[32U] ;
1315};
1316#line 892
1317struct comedi_device;
1318#line 892
1319struct comedi_async;
1320#line 892
1321struct comedi_lrange;
1322#line 892 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedi.h"
1323struct comedi_subdevice {
1324   struct comedi_device *device ;
1325   int type ;
1326   int n_chan ;
1327   int subdev_flags ;
1328   int len_chanlist ;
1329   void *private ;
1330   struct comedi_async *async ;
1331   void *lock ;
1332   void *busy ;
1333   unsigned int runflags ;
1334   spinlock_t spin_lock ;
1335   int io_bits ;
1336   unsigned int maxdata ;
1337   unsigned int const   *maxdata_list ;
1338   unsigned int flags ;
1339   unsigned int const   *flaglist ;
1340   unsigned int settling_time_0 ;
1341   struct comedi_lrange  const  *range_table ;
1342   struct comedi_lrange  const  * const  *range_table_list ;
1343   unsigned int *chanlist ;
1344   int (*insn_read)(struct comedi_device * , struct comedi_subdevice * , struct comedi_insn * ,
1345                    unsigned int * ) ;
1346   int (*insn_write)(struct comedi_device * , struct comedi_subdevice * , struct comedi_insn * ,
1347                     unsigned int * ) ;
1348   int (*insn_bits)(struct comedi_device * , struct comedi_subdevice * , struct comedi_insn * ,
1349                    unsigned int * ) ;
1350   int (*insn_config)(struct comedi_device * , struct comedi_subdevice * , struct comedi_insn * ,
1351                      unsigned int * ) ;
1352   int (*do_cmd)(struct comedi_device * , struct comedi_subdevice * ) ;
1353   int (*do_cmdtest)(struct comedi_device * , struct comedi_subdevice * , struct comedi_cmd * ) ;
1354   int (*poll)(struct comedi_device * , struct comedi_subdevice * ) ;
1355   int (*cancel)(struct comedi_device * , struct comedi_subdevice * ) ;
1356   int (*buf_change)(struct comedi_device * , struct comedi_subdevice * , unsigned long  ) ;
1357   void (*munge)(struct comedi_device * , struct comedi_subdevice * , void * , unsigned int  ,
1358                 unsigned int  ) ;
1359   enum dma_data_direction async_dma_dir ;
1360   unsigned int state ;
1361   struct device *class_dev ;
1362   int minor ;
1363};
1364#line 127 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedidev.h"
1365struct comedi_buf_page {
1366   void *virt_addr ;
1367   dma_addr_t dma_addr ;
1368};
1369#line 132 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedidev.h"
1370struct comedi_async {
1371   struct comedi_subdevice *subdevice ;
1372   void *prealloc_buf ;
1373   unsigned int prealloc_bufsz ;
1374   struct comedi_buf_page *buf_page_list ;
1375   unsigned int n_buf_pages ;
1376   unsigned int max_bufsize ;
1377   unsigned int mmap_count ;
1378   unsigned int buf_write_count ;
1379   unsigned int buf_write_alloc_count ;
1380   unsigned int buf_read_count ;
1381   unsigned int buf_read_alloc_count ;
1382   unsigned int buf_write_ptr ;
1383   unsigned int buf_read_ptr ;
1384   unsigned int cur_chan ;
1385   unsigned int scan_progress ;
1386   unsigned int munge_chan ;
1387   unsigned int munge_count ;
1388   unsigned int munge_ptr ;
1389   unsigned int events ;
1390   struct comedi_cmd cmd ;
1391   wait_queue_head_t wait_head ;
1392   unsigned int cb_mask ;
1393   int (*cb_func)(unsigned int  , void * ) ;
1394   void *cb_arg ;
1395   int (*inttrig)(struct comedi_device * , struct comedi_subdevice * , unsigned int  ) ;
1396};
1397#line 181 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedidev.h"
1398struct comedi_driver {
1399   struct comedi_driver *next ;
1400   char const   *driver_name ;
1401   struct module *module ;
1402   int (*attach)(struct comedi_device * , struct comedi_devconfig * ) ;
1403   int (*detach)(struct comedi_device * ) ;
1404   unsigned int num_names ;
1405   char const   * const  *board_name ;
1406   int offset ;
1407};
1408#line 197
1409struct fasync_struct;
1410#line 197 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedidev.h"
1411struct comedi_device {
1412   int use_count ;
1413   struct comedi_driver *driver ;
1414   void *private ;
1415   struct device *class_dev ;
1416   int minor ;
1417   struct device *hw_dev ;
1418   char const   *board_name ;
1419   void const   *board_ptr ;
1420   int attached ;
1421   spinlock_t spinlock ;
1422   struct mutex mutex ;
1423   int in_request_module ;
1424   int n_subdevices ;
1425   struct comedi_subdevice *subdevices ;
1426   unsigned long iobase ;
1427   unsigned int irq ;
1428   struct comedi_subdevice *read_subdev ;
1429   struct comedi_subdevice *write_subdev ;
1430   struct fasync_struct *async_queue ;
1431   int (*open)(struct comedi_device * ) ;
1432   void (*close)(struct comedi_device * ) ;
1433};
1434#line 338 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedidev.h"
1435struct comedi_lrange {
1436   int length ;
1437   struct comedi_krange range[0U] ;
1438};
1439#line 464 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedidev.h"
1440struct unioxx5_subd_priv {
1441   int usp_iobase ;
1442   unsigned char usp_module_type[12U] ;
1443   unsigned char usp_extra_data[12U][4U] ;
1444   unsigned char usp_prev_wr_val[3U] ;
1445   unsigned char usp_prev_cn_val[3U] ;
1446};
1447#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
1448void ldv_spin_lock(void) ;
1449#line 3
1450void ldv_spin_unlock(void) ;
1451#line 4
1452int ldv_spin_trylock(void) ;
1453#line 101 "include/linux/printk.h"
1454extern int printk(char const   *  , ...) ;
1455#line 93 "include/linux/spinlock.h"
1456extern void __raw_spin_lock_init(raw_spinlock_t * , char const   * , struct lock_class_key * ) ;
1457#line 272 "include/linux/spinlock.h"
1458__inline static raw_spinlock_t *spinlock_check(spinlock_t *lock ) 
1459{ 
1460
1461  {
1462#line 274
1463  return ((struct raw_spinlock *)lock);
1464}
1465}
1466#line 137 "include/linux/ioport.h"
1467extern struct resource ioport_resource ;
1468#line 181
1469extern struct resource *__request_region(struct resource * , resource_size_t  , resource_size_t  ,
1470                                         char const   * , int  ) ;
1471#line 192
1472extern void __release_region(struct resource * , resource_size_t  , resource_size_t  ) ;
1473#line 308 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/io.h"
1474__inline static void outb(unsigned char value , int port ) 
1475{ 
1476
1477  {
1478#line 308
1479  __asm__  volatile   ("outb %b0, %w1": : "a" (value), "Nd" (port));
1480#line 309
1481  return;
1482}
1483}
1484#line 308 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/io.h"
1485__inline static unsigned char inb(int port ) 
1486{ unsigned char value ;
1487
1488  {
1489#line 308
1490  __asm__  volatile   ("inb %w1, %b0": "=a" (value): "Nd" (port));
1491#line 308
1492  return (value);
1493}
1494}
1495#line 309 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/io.h"
1496__inline static unsigned short inw(int port ) 
1497{ unsigned short value ;
1498
1499  {
1500#line 309
1501  __asm__  volatile   ("inw %w1, %w0": "=a" (value): "Nd" (port));
1502#line 309
1503  return (value);
1504}
1505}
1506#line 26 "include/linux/export.h"
1507extern struct module __this_module ;
1508#line 161 "include/linux/slab.h"
1509extern void kfree(void const   * ) ;
1510#line 220 "include/linux/slub_def.h"
1511extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t  ) ;
1512#line 223
1513void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
1514#line 225
1515extern void *__kmalloc(size_t  , gfp_t  ) ;
1516#line 243 "include/linux/slab.h"
1517__inline static void *kmalloc_array(size_t n , size_t size , gfp_t flags ) 
1518{ void *tmp ;
1519  unsigned long __cil_tmp5 ;
1520  size_t __cil_tmp6 ;
1521
1522  {
1523#line 245
1524  if (size != 0UL) {
1525    {
1526#line 245
1527    __cil_tmp5 = 0xffffffffffffffffUL / size;
1528#line 245
1529    if (__cil_tmp5 < n) {
1530#line 246
1531      return ((void *)0);
1532    } else {
1533
1534    }
1535    }
1536  } else {
1537
1538  }
1539  {
1540#line 247
1541  __cil_tmp6 = n * size;
1542#line 247
1543  tmp = __kmalloc(__cil_tmp6, flags);
1544  }
1545#line 247
1546  return (tmp);
1547}
1548}
1549#line 256 "include/linux/slab.h"
1550__inline static void *ldv_kcalloc_14(size_t n , size_t size , gfp_t flags ) 
1551{ void *tmp ;
1552  unsigned int __cil_tmp5 ;
1553
1554  {
1555  {
1556#line 258
1557  __cil_tmp5 = flags | 32768U;
1558#line 258
1559  tmp = kmalloc_array(n, size, __cil_tmp5);
1560  }
1561#line 258
1562  return (tmp);
1563}
1564}
1565#line 256
1566__inline static void *kcalloc(size_t n , size_t size , gfp_t flags ) ;
1567#line 353
1568__inline static void *kzalloc(size_t size , gfp_t flags ) ;
1569#line 10 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
1570extern void *__VERIFIER_nondet_pointer(void) ;
1571#line 11
1572void ldv_check_alloc_flags(gfp_t flags ) ;
1573#line 12
1574void ldv_check_alloc_nonatomic(void) ;
1575#line 14
1576struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
1577#line 10 "include/asm-generic/delay.h"
1578extern void __const_udelay(unsigned long  ) ;
1579#line 287 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedidev.h"
1580extern int comedi_driver_register(struct comedi_driver * ) ;
1581#line 288
1582extern int comedi_driver_unregister(struct comedi_driver * ) ;
1583#line 336
1584extern struct comedi_lrange  const  range_unipolar5 ;
1585#line 354 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/drivers/staging/comedi/drivers/../comedidev.h"
1586__inline static int alloc_subdevices(struct comedi_device *dev , unsigned int num_subdevices ) 
1587{ unsigned int i ;
1588  void *tmp ;
1589  struct lock_class_key __key ;
1590  unsigned long __cil_tmp6 ;
1591  unsigned long __cil_tmp7 ;
1592  size_t __cil_tmp8 ;
1593  unsigned long __cil_tmp9 ;
1594  unsigned long __cil_tmp10 ;
1595  struct comedi_subdevice *__cil_tmp11 ;
1596  unsigned long __cil_tmp12 ;
1597  unsigned long __cil_tmp13 ;
1598  unsigned long __cil_tmp14 ;
1599  struct comedi_subdevice *__cil_tmp15 ;
1600  unsigned long __cil_tmp16 ;
1601  unsigned long __cil_tmp17 ;
1602  unsigned long __cil_tmp18 ;
1603  unsigned long __cil_tmp19 ;
1604  struct comedi_subdevice *__cil_tmp20 ;
1605  struct comedi_subdevice *__cil_tmp21 ;
1606  unsigned long __cil_tmp22 ;
1607  unsigned long __cil_tmp23 ;
1608  unsigned long __cil_tmp24 ;
1609  struct comedi_subdevice *__cil_tmp25 ;
1610  struct comedi_subdevice *__cil_tmp26 ;
1611  unsigned long __cil_tmp27 ;
1612  unsigned long __cil_tmp28 ;
1613  unsigned long __cil_tmp29 ;
1614  unsigned long __cil_tmp30 ;
1615  unsigned long __cil_tmp31 ;
1616  struct comedi_subdevice *__cil_tmp32 ;
1617  struct comedi_subdevice *__cil_tmp33 ;
1618  unsigned long __cil_tmp34 ;
1619  unsigned long __cil_tmp35 ;
1620  spinlock_t *__cil_tmp36 ;
1621  unsigned long __cil_tmp37 ;
1622  unsigned long __cil_tmp38 ;
1623  unsigned long __cil_tmp39 ;
1624  struct comedi_subdevice *__cil_tmp40 ;
1625  struct comedi_subdevice *__cil_tmp41 ;
1626  unsigned long __cil_tmp42 ;
1627  unsigned long __cil_tmp43 ;
1628  struct raw_spinlock *__cil_tmp44 ;
1629  unsigned long __cil_tmp45 ;
1630  unsigned long __cil_tmp46 ;
1631  unsigned long __cil_tmp47 ;
1632  struct comedi_subdevice *__cil_tmp48 ;
1633  struct comedi_subdevice *__cil_tmp49 ;
1634  unsigned long __cil_tmp50 ;
1635  unsigned long __cil_tmp51 ;
1636
1637  {
1638  {
1639#line 359
1640  __cil_tmp6 = (unsigned long )dev;
1641#line 359
1642  __cil_tmp7 = __cil_tmp6 + 316;
1643#line 359
1644  *((int *)__cil_tmp7) = (int )num_subdevices;
1645#line 360
1646  __cil_tmp8 = (size_t )num_subdevices;
1647#line 360
1648  tmp = kcalloc(__cil_tmp8, 304UL, 208U);
1649#line 360
1650  __cil_tmp9 = (unsigned long )dev;
1651#line 360
1652  __cil_tmp10 = __cil_tmp9 + 320;
1653#line 360
1654  *((struct comedi_subdevice **)__cil_tmp10) = (struct comedi_subdevice *)tmp;
1655  }
1656  {
1657#line 363
1658  __cil_tmp11 = (struct comedi_subdevice *)0;
1659#line 363
1660  __cil_tmp12 = (unsigned long )__cil_tmp11;
1661#line 363
1662  __cil_tmp13 = (unsigned long )dev;
1663#line 363
1664  __cil_tmp14 = __cil_tmp13 + 320;
1665#line 363
1666  __cil_tmp15 = *((struct comedi_subdevice **)__cil_tmp14);
1667#line 363
1668  __cil_tmp16 = (unsigned long )__cil_tmp15;
1669#line 363
1670  if (__cil_tmp16 == __cil_tmp12) {
1671#line 364
1672    return (-12);
1673  } else {
1674
1675  }
1676  }
1677#line 365
1678  i = 0U;
1679#line 365
1680  goto ldv_19184;
1681  ldv_19183: 
1682  {
1683#line 366
1684  __cil_tmp17 = (unsigned long )i;
1685#line 366
1686  __cil_tmp18 = (unsigned long )dev;
1687#line 366
1688  __cil_tmp19 = __cil_tmp18 + 320;
1689#line 366
1690  __cil_tmp20 = *((struct comedi_subdevice **)__cil_tmp19);
1691#line 366
1692  __cil_tmp21 = __cil_tmp20 + __cil_tmp17;
1693#line 366
1694  *((struct comedi_device **)__cil_tmp21) = dev;
1695#line 367
1696  __cil_tmp22 = (unsigned long )i;
1697#line 367
1698  __cil_tmp23 = (unsigned long )dev;
1699#line 367
1700  __cil_tmp24 = __cil_tmp23 + 320;
1701#line 367
1702  __cil_tmp25 = *((struct comedi_subdevice **)__cil_tmp24);
1703#line 367
1704  __cil_tmp26 = __cil_tmp25 + __cil_tmp22;
1705#line 367
1706  __cil_tmp27 = (unsigned long )__cil_tmp26;
1707#line 367
1708  __cil_tmp28 = __cil_tmp27 + 280;
1709#line 367
1710  *((enum dma_data_direction *)__cil_tmp28) = (enum dma_data_direction )3;
1711#line 368
1712  __cil_tmp29 = (unsigned long )i;
1713#line 368
1714  __cil_tmp30 = (unsigned long )dev;
1715#line 368
1716  __cil_tmp31 = __cil_tmp30 + 320;
1717#line 368
1718  __cil_tmp32 = *((struct comedi_subdevice **)__cil_tmp31);
1719#line 368
1720  __cil_tmp33 = __cil_tmp32 + __cil_tmp29;
1721#line 368
1722  __cil_tmp34 = (unsigned long )__cil_tmp33;
1723#line 368
1724  __cil_tmp35 = __cil_tmp34 + 64;
1725#line 368
1726  __cil_tmp36 = (spinlock_t *)__cil_tmp35;
1727#line 368
1728  spinlock_check(__cil_tmp36);
1729#line 368
1730  __cil_tmp37 = (unsigned long )i;
1731#line 368
1732  __cil_tmp38 = (unsigned long )dev;
1733#line 368
1734  __cil_tmp39 = __cil_tmp38 + 320;
1735#line 368
1736  __cil_tmp40 = *((struct comedi_subdevice **)__cil_tmp39);
1737#line 368
1738  __cil_tmp41 = __cil_tmp40 + __cil_tmp37;
1739#line 368
1740  __cil_tmp42 = (unsigned long )__cil_tmp41;
1741#line 368
1742  __cil_tmp43 = __cil_tmp42 + 64;
1743#line 368
1744  __cil_tmp44 = (struct raw_spinlock *)__cil_tmp43;
1745#line 368
1746  __raw_spin_lock_init(__cil_tmp44, "&(&dev->subdevices[i].spin_lock)->rlock", & __key);
1747#line 369
1748  __cil_tmp45 = (unsigned long )i;
1749#line 369
1750  __cil_tmp46 = (unsigned long )dev;
1751#line 369
1752  __cil_tmp47 = __cil_tmp46 + 320;
1753#line 369
1754  __cil_tmp48 = *((struct comedi_subdevice **)__cil_tmp47);
1755#line 369
1756  __cil_tmp49 = __cil_tmp48 + __cil_tmp45;
1757#line 369
1758  __cil_tmp50 = (unsigned long )__cil_tmp49;
1759#line 369
1760  __cil_tmp51 = __cil_tmp50 + 296;
1761#line 369
1762  *((int *)__cil_tmp51) = -1;
1763#line 365
1764  i = i + 1U;
1765  }
1766  ldv_19184: ;
1767#line 365
1768  if (i < num_subdevices) {
1769#line 366
1770    goto ldv_19183;
1771  } else {
1772#line 368
1773    goto ldv_19185;
1774  }
1775  ldv_19185: ;
1776#line 371
1777  return (0);
1778}
1779}
1780#line 101 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
1781static int unioxx5_attach(struct comedi_device *dev , struct comedi_devconfig *it ) ;
1782#line 103
1783static int unioxx5_subdev_write(struct comedi_device *dev , struct comedi_subdevice *subdev ,
1784                                struct comedi_insn *insn , unsigned int *data ) ;
1785#line 106
1786static int unioxx5_subdev_read(struct comedi_device *dev , struct comedi_subdevice *subdev ,
1787                               struct comedi_insn *insn , unsigned int *data ) ;
1788#line 109
1789static int unioxx5_insn_config(struct comedi_device *dev , struct comedi_subdevice *subdev ,
1790                               struct comedi_insn *insn , unsigned int *data ) ;
1791#line 112
1792static int unioxx5_detach(struct comedi_device *dev ) ;
1793#line 113
1794static int __unioxx5_subdev_init(struct comedi_subdevice *subdev , int subdev_iobase ,
1795                                 int minor ) ;
1796#line 115
1797static int __unioxx5_digital_write(struct unioxx5_subd_priv *usp , unsigned int *data ,
1798                                   int channel , int minor ) ;
1799#line 117
1800static int __unioxx5_digital_read(struct unioxx5_subd_priv *usp , unsigned int *data ,
1801                                  int channel , int minor ) ;
1802#line 120
1803static int __unioxx5_analog_write(struct unioxx5_subd_priv *usp , unsigned int *data ,
1804                                  int channel , int minor ) ;
1805#line 122
1806static int __unioxx5_analog_read(struct unioxx5_subd_priv *usp , unsigned int *data ,
1807                                 int channel , int minor ) ;
1808#line 124
1809static int __unioxx5_define_chan_offset(int chan_num ) ;
1810#line 125
1811static void __unioxx5_analog_config(struct unioxx5_subd_priv *usp , int channel ) ;
1812#line 127 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
1813static struct comedi_driver unioxx5_driver  = 
1814#line 127
1815     {(struct comedi_driver *)0, "unioxx5", & __this_module, & unioxx5_attach, & unioxx5_detach,
1816    0U, (char const   * const  *)0, 0};
1817#line 134 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
1818static int unioxx5_driver_init_module(void) 
1819{ int tmp ;
1820
1821  {
1822  {
1823#line 136
1824  tmp = comedi_driver_register(& unioxx5_driver);
1825  }
1826#line 136
1827  return (tmp);
1828}
1829}
1830#line 139 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
1831static void unioxx5_driver_cleanup_module(void) 
1832{ 
1833
1834  {
1835  {
1836#line 141
1837  comedi_driver_unregister(& unioxx5_driver);
1838  }
1839#line 142
1840  return;
1841}
1842}
1843#line 147 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
1844static int unioxx5_attach(struct comedi_device *dev , struct comedi_devconfig *it ) 
1845{ int iobase ;
1846  int i ;
1847  int n_subd ;
1848  int id ;
1849  int num ;
1850  int ba ;
1851  unsigned char tmp ;
1852  unsigned char tmp___0 ;
1853  int tmp___1 ;
1854  int tmp___2 ;
1855  unsigned long __cil_tmp13 ;
1856  unsigned long __cil_tmp14 ;
1857  unsigned long __cil_tmp15 ;
1858  unsigned long __cil_tmp16 ;
1859  unsigned long __cil_tmp17 ;
1860  unsigned long __cil_tmp18 ;
1861  unsigned long __cil_tmp19 ;
1862  unsigned long __cil_tmp20 ;
1863  int __cil_tmp21 ;
1864  int __cil_tmp22 ;
1865  unsigned int __cil_tmp23 ;
1866  unsigned long __cil_tmp24 ;
1867  unsigned long __cil_tmp25 ;
1868  unsigned long __cil_tmp26 ;
1869  struct comedi_subdevice *__cil_tmp27 ;
1870  struct comedi_subdevice *__cil_tmp28 ;
1871  unsigned long __cil_tmp29 ;
1872  unsigned long __cil_tmp30 ;
1873  int __cil_tmp31 ;
1874
1875  {
1876#line 153
1877  __cil_tmp13 = 0 * 4UL;
1878#line 153
1879  __cil_tmp14 = 20 + __cil_tmp13;
1880#line 153
1881  __cil_tmp15 = (unsigned long )it;
1882#line 153
1883  __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
1884#line 153
1885  iobase = *((int *)__cil_tmp16);
1886#line 155
1887  __cil_tmp17 = (unsigned long )dev;
1888#line 155
1889  __cil_tmp18 = __cil_tmp17 + 48;
1890#line 155
1891  *((char const   **)__cil_tmp18) = "unioxx5";
1892#line 156
1893  __cil_tmp19 = (unsigned long )dev;
1894#line 156
1895  __cil_tmp20 = __cil_tmp19 + 328;
1896#line 156
1897  *((unsigned long *)__cil_tmp20) = (unsigned long )iobase;
1898#line 157
1899  iobase = iobase + 40960;
1900#line 160
1901  n_subd = 0;
1902#line 160
1903  i = n_subd;
1904#line 160
1905  ba = iobase;
1906#line 160
1907  goto ldv_19347;
1908  ldv_19346: 
1909  {
1910#line 161
1911  __cil_tmp21 = ba + 14;
1912#line 161
1913  tmp = inb(__cil_tmp21);
1914#line 161
1915  id = (int )tmp;
1916#line 162
1917  __cil_tmp22 = ba + 15;
1918#line 162
1919  tmp___0 = inb(__cil_tmp22);
1920#line 162
1921  num = (int )tmp___0;
1922  }
1923#line 164
1924  if (id != 103) {
1925#line 165
1926    goto ldv_19345;
1927  } else
1928#line 164
1929  if (num != 1) {
1930#line 165
1931    goto ldv_19345;
1932  } else {
1933
1934  }
1935#line 167
1936  n_subd = n_subd + 1;
1937  ldv_19345: 
1938#line 160
1939  i = i + 1;
1940#line 160
1941  ba = ba + 1024;
1942  ldv_19347: ;
1943#line 160
1944  if (i <= 3) {
1945#line 161
1946    goto ldv_19346;
1947  } else {
1948#line 163
1949    goto ldv_19348;
1950  }
1951  ldv_19348: ;
1952#line 171
1953  if (n_subd <= 1) {
1954    {
1955#line 172
1956    printk("<3>your card must has at least 2 \'g01\' subdevices\n");
1957    }
1958#line 174
1959    return (-1);
1960  } else {
1961
1962  }
1963  {
1964#line 177
1965  __cil_tmp23 = (unsigned int )n_subd;
1966#line 177
1967  tmp___1 = alloc_subdevices(dev, __cil_tmp23);
1968  }
1969#line 177
1970  if (tmp___1 < 0) {
1971    {
1972#line 178
1973    printk("<3>out of memory\n");
1974    }
1975#line 179
1976    return (-12);
1977  } else {
1978
1979  }
1980#line 183
1981  i = 0;
1982#line 183
1983  goto ldv_19350;
1984  ldv_19349: 
1985  {
1986#line 184
1987  __cil_tmp24 = (unsigned long )i;
1988#line 184
1989  __cil_tmp25 = (unsigned long )dev;
1990#line 184
1991  __cil_tmp26 = __cil_tmp25 + 320;
1992#line 184
1993  __cil_tmp27 = *((struct comedi_subdevice **)__cil_tmp26);
1994#line 184
1995  __cil_tmp28 = __cil_tmp27 + __cil_tmp24;
1996#line 184
1997  __cil_tmp29 = (unsigned long )dev;
1998#line 184
1999  __cil_tmp30 = __cil_tmp29 + 32;
2000#line 184
2001  __cil_tmp31 = *((int *)__cil_tmp30);
2002#line 184
2003  tmp___2 = __unioxx5_subdev_init(__cil_tmp28, iobase, __cil_tmp31);
2004  }
2005#line 184
2006  if (tmp___2 < 0) {
2007#line 186
2008    return (-1);
2009  } else {
2010
2011  }
2012#line 183
2013  i = i + 1;
2014#line 183
2015  iobase = iobase + 1024;
2016  ldv_19350: ;
2017#line 183
2018  if (i < n_subd) {
2019#line 184
2020    goto ldv_19349;
2021  } else {
2022#line 186
2023    goto ldv_19351;
2024  }
2025  ldv_19351: 
2026  {
2027#line 189
2028  printk("<6>attached\n");
2029  }
2030#line 190
2031  return (0);
2032}
2033}
2034#line 193 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
2035static int unioxx5_subdev_read(struct comedi_device *dev , struct comedi_subdevice *subdev ,
2036                               struct comedi_insn *insn , unsigned int *data ) 
2037{ struct unioxx5_subd_priv *usp ;
2038  int channel ;
2039  int type ;
2040  int tmp ;
2041  int tmp___0 ;
2042  unsigned long __cil_tmp10 ;
2043  unsigned long __cil_tmp11 ;
2044  void *__cil_tmp12 ;
2045  unsigned long __cil_tmp13 ;
2046  unsigned long __cil_tmp14 ;
2047  unsigned int __cil_tmp15 ;
2048  int __cil_tmp16 ;
2049  int __cil_tmp17 ;
2050  unsigned long __cil_tmp18 ;
2051  unsigned long __cil_tmp19 ;
2052  unsigned long __cil_tmp20 ;
2053  unsigned long __cil_tmp21 ;
2054  unsigned char __cil_tmp22 ;
2055  unsigned long __cil_tmp23 ;
2056  unsigned long __cil_tmp24 ;
2057  int __cil_tmp25 ;
2058  unsigned long __cil_tmp26 ;
2059  unsigned long __cil_tmp27 ;
2060  int __cil_tmp28 ;
2061
2062  {
2063#line 197
2064  __cil_tmp10 = (unsigned long )subdev;
2065#line 197
2066  __cil_tmp11 = __cil_tmp10 + 24;
2067#line 197
2068  __cil_tmp12 = *((void **)__cil_tmp11);
2069#line 197
2070  usp = (struct unioxx5_subd_priv *)__cil_tmp12;
2071#line 200
2072  __cil_tmp13 = (unsigned long )insn;
2073#line 200
2074  __cil_tmp14 = __cil_tmp13 + 20;
2075#line 200
2076  __cil_tmp15 = *((unsigned int *)__cil_tmp14);
2077#line 200
2078  __cil_tmp16 = (int )__cil_tmp15;
2079#line 200
2080  channel = __cil_tmp16 & 65535;
2081#line 202
2082  __cil_tmp17 = channel / 2;
2083#line 202
2084  __cil_tmp18 = __cil_tmp17 * 1UL;
2085#line 202
2086  __cil_tmp19 = 4 + __cil_tmp18;
2087#line 202
2088  __cil_tmp20 = (unsigned long )usp;
2089#line 202
2090  __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
2091#line 202
2092  __cil_tmp22 = *((unsigned char *)__cil_tmp21);
2093#line 202
2094  type = (int )__cil_tmp22;
2095#line 204
2096  if (type == 0) {
2097    {
2098#line 205
2099    __cil_tmp23 = (unsigned long )dev;
2100#line 205
2101    __cil_tmp24 = __cil_tmp23 + 32;
2102#line 205
2103    __cil_tmp25 = *((int *)__cil_tmp24);
2104#line 205
2105    tmp___0 = __unioxx5_digital_read(usp, data, channel, __cil_tmp25);
2106    }
2107#line 205
2108    if (tmp___0 == 0) {
2109#line 206
2110      return (-1);
2111    } else {
2112      {
2113#line 208
2114      __cil_tmp26 = (unsigned long )dev;
2115#line 208
2116      __cil_tmp27 = __cil_tmp26 + 32;
2117#line 208
2118      __cil_tmp28 = *((int *)__cil_tmp27);
2119#line 208
2120      tmp = __unioxx5_analog_read(usp, data, channel, __cil_tmp28);
2121      }
2122#line 208
2123      if (tmp == 0) {
2124#line 209
2125        return (-1);
2126      } else {
2127
2128      }
2129    }
2130  } else {
2131
2132  }
2133#line 212
2134  return (1);
2135}
2136}
2137#line 215 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
2138static int unioxx5_subdev_write(struct comedi_device *dev , struct comedi_subdevice *subdev ,
2139                                struct comedi_insn *insn , unsigned int *data ) 
2140{ struct unioxx5_subd_priv *usp ;
2141  int channel ;
2142  int type ;
2143  int tmp ;
2144  int tmp___0 ;
2145  unsigned long __cil_tmp10 ;
2146  unsigned long __cil_tmp11 ;
2147  void *__cil_tmp12 ;
2148  unsigned long __cil_tmp13 ;
2149  unsigned long __cil_tmp14 ;
2150  unsigned int __cil_tmp15 ;
2151  int __cil_tmp16 ;
2152  int __cil_tmp17 ;
2153  unsigned long __cil_tmp18 ;
2154  unsigned long __cil_tmp19 ;
2155  unsigned long __cil_tmp20 ;
2156  unsigned long __cil_tmp21 ;
2157  unsigned char __cil_tmp22 ;
2158  unsigned long __cil_tmp23 ;
2159  unsigned long __cil_tmp24 ;
2160  int __cil_tmp25 ;
2161  unsigned long __cil_tmp26 ;
2162  unsigned long __cil_tmp27 ;
2163  int __cil_tmp28 ;
2164
2165  {
2166#line 219
2167  __cil_tmp10 = (unsigned long )subdev;
2168#line 219
2169  __cil_tmp11 = __cil_tmp10 + 24;
2170#line 219
2171  __cil_tmp12 = *((void **)__cil_tmp11);
2172#line 219
2173  usp = (struct unioxx5_subd_priv *)__cil_tmp12;
2174#line 222
2175  __cil_tmp13 = (unsigned long )insn;
2176#line 222
2177  __cil_tmp14 = __cil_tmp13 + 20;
2178#line 222
2179  __cil_tmp15 = *((unsigned int *)__cil_tmp14);
2180#line 222
2181  __cil_tmp16 = (int )__cil_tmp15;
2182#line 222
2183  channel = __cil_tmp16 & 65535;
2184#line 224
2185  __cil_tmp17 = channel / 2;
2186#line 224
2187  __cil_tmp18 = __cil_tmp17 * 1UL;
2188#line 224
2189  __cil_tmp19 = 4 + __cil_tmp18;
2190#line 224
2191  __cil_tmp20 = (unsigned long )usp;
2192#line 224
2193  __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
2194#line 224
2195  __cil_tmp22 = *((unsigned char *)__cil_tmp21);
2196#line 224
2197  type = (int )__cil_tmp22;
2198#line 226
2199  if (type == 0) {
2200    {
2201#line 227
2202    __cil_tmp23 = (unsigned long )dev;
2203#line 227
2204    __cil_tmp24 = __cil_tmp23 + 32;
2205#line 227
2206    __cil_tmp25 = *((int *)__cil_tmp24);
2207#line 227
2208    tmp___0 = __unioxx5_digital_write(usp, data, channel, __cil_tmp25);
2209    }
2210#line 227
2211    if (tmp___0 == 0) {
2212#line 228
2213      return (-1);
2214    } else {
2215      {
2216#line 230
2217      __cil_tmp26 = (unsigned long )dev;
2218#line 230
2219      __cil_tmp27 = __cil_tmp26 + 32;
2220#line 230
2221      __cil_tmp28 = *((int *)__cil_tmp27);
2222#line 230
2223      tmp = __unioxx5_analog_write(usp, data, channel, __cil_tmp28);
2224      }
2225#line 230
2226      if (tmp == 0) {
2227#line 231
2228        return (-1);
2229      } else {
2230
2231      }
2232    }
2233  } else {
2234
2235  }
2236#line 234
2237  return (1);
2238}
2239}
2240#line 238 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
2241static int unioxx5_insn_config(struct comedi_device *dev , struct comedi_subdevice *subdev ,
2242                               struct comedi_insn *insn , unsigned int *data ) 
2243{ int channel_offset ;
2244  int flags ;
2245  int channel ;
2246  int type ;
2247  struct unioxx5_subd_priv *usp ;
2248  int mask ;
2249  unsigned long __cil_tmp11 ;
2250  unsigned long __cil_tmp12 ;
2251  unsigned int __cil_tmp13 ;
2252  int __cil_tmp14 ;
2253  unsigned long __cil_tmp15 ;
2254  unsigned long __cil_tmp16 ;
2255  void *__cil_tmp17 ;
2256  int __cil_tmp18 ;
2257  int __cil_tmp19 ;
2258  unsigned long __cil_tmp20 ;
2259  unsigned long __cil_tmp21 ;
2260  unsigned long __cil_tmp22 ;
2261  unsigned long __cil_tmp23 ;
2262  unsigned char __cil_tmp24 ;
2263  unsigned long __cil_tmp25 ;
2264  unsigned long __cil_tmp26 ;
2265  int __cil_tmp27 ;
2266  unsigned long __cil_tmp28 ;
2267  unsigned long __cil_tmp29 ;
2268  int __cil_tmp30 ;
2269  int __cil_tmp31 ;
2270  unsigned long __cil_tmp32 ;
2271  unsigned long __cil_tmp33 ;
2272  unsigned long __cil_tmp34 ;
2273  unsigned long __cil_tmp35 ;
2274  unsigned char __cil_tmp36 ;
2275  unsigned int __cil_tmp37 ;
2276  int __cil_tmp38 ;
2277  unsigned long __cil_tmp39 ;
2278  unsigned long __cil_tmp40 ;
2279  int __cil_tmp41 ;
2280  int __cil_tmp42 ;
2281  unsigned char __cil_tmp43 ;
2282  int __cil_tmp44 ;
2283  unsigned char __cil_tmp45 ;
2284  int __cil_tmp46 ;
2285  int __cil_tmp47 ;
2286  int __cil_tmp48 ;
2287  int __cil_tmp49 ;
2288  unsigned long __cil_tmp50 ;
2289  unsigned long __cil_tmp51 ;
2290  unsigned long __cil_tmp52 ;
2291  unsigned long __cil_tmp53 ;
2292
2293  {
2294#line 242
2295  __cil_tmp11 = (unsigned long )insn;
2296#line 242
2297  __cil_tmp12 = __cil_tmp11 + 20;
2298#line 242
2299  __cil_tmp13 = *((unsigned int *)__cil_tmp12);
2300#line 242
2301  __cil_tmp14 = (int )__cil_tmp13;
2302#line 242
2303  channel = __cil_tmp14 & 65535;
2304#line 243
2305  __cil_tmp15 = (unsigned long )subdev;
2306#line 243
2307  __cil_tmp16 = __cil_tmp15 + 24;
2308#line 243
2309  __cil_tmp17 = *((void **)__cil_tmp16);
2310#line 243
2311  usp = (struct unioxx5_subd_priv *)__cil_tmp17;
2312#line 244
2313  __cil_tmp18 = channel & 7;
2314#line 244
2315  mask = 1 << __cil_tmp18;
2316#line 246
2317  __cil_tmp19 = channel / 2;
2318#line 246
2319  __cil_tmp20 = __cil_tmp19 * 1UL;
2320#line 246
2321  __cil_tmp21 = 4 + __cil_tmp20;
2322#line 246
2323  __cil_tmp22 = (unsigned long )usp;
2324#line 246
2325  __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
2326#line 246
2327  __cil_tmp24 = *((unsigned char *)__cil_tmp23);
2328#line 246
2329  type = (int )__cil_tmp24;
2330#line 248
2331  if (type != 0) {
2332    {
2333#line 249
2334    __cil_tmp25 = (unsigned long )dev;
2335#line 249
2336    __cil_tmp26 = __cil_tmp25 + 32;
2337#line 249
2338    __cil_tmp27 = *((int *)__cil_tmp26);
2339#line 249
2340    printk("<3>comedi%d: channel configuration accessible only for digital modules\n",
2341           __cil_tmp27);
2342    }
2343#line 252
2344    return (-1);
2345  } else {
2346
2347  }
2348  {
2349#line 255
2350  channel_offset = __unioxx5_define_chan_offset(channel);
2351  }
2352#line 256
2353  if (channel_offset < 0) {
2354    {
2355#line 257
2356    __cil_tmp28 = (unsigned long )dev;
2357#line 257
2358    __cil_tmp29 = __cil_tmp28 + 32;
2359#line 257
2360    __cil_tmp30 = *((int *)__cil_tmp29);
2361#line 257
2362    printk("<3>comedi%d: undefined channel %d. channel range is 0 .. 23\n", __cil_tmp30,
2363           channel);
2364    }
2365#line 260
2366    return (-1);
2367  } else {
2368
2369  }
2370#line 264
2371  __cil_tmp31 = channel_offset + -1;
2372#line 264
2373  __cil_tmp32 = __cil_tmp31 * 1UL;
2374#line 264
2375  __cil_tmp33 = 67 + __cil_tmp32;
2376#line 264
2377  __cil_tmp34 = (unsigned long )usp;
2378#line 264
2379  __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
2380#line 264
2381  __cil_tmp36 = *((unsigned char *)__cil_tmp35);
2382#line 264
2383  flags = (int )__cil_tmp36;
2384  {
2385#line 266
2386  __cil_tmp37 = *data;
2387#line 267
2388  if ((int )__cil_tmp37 == 0) {
2389#line 267
2390    goto case_0;
2391  } else
2392#line 270
2393  if ((int )__cil_tmp37 == 1) {
2394#line 270
2395    goto case_1;
2396  } else {
2397    {
2398#line 273
2399    goto switch_default;
2400#line 266
2401    if (0) {
2402      case_0: /* CIL Label */ 
2403#line 268
2404      __cil_tmp38 = ~ mask;
2405#line 268
2406      flags = __cil_tmp38 & flags;
2407#line 269
2408      goto ldv_19383;
2409      case_1: /* CIL Label */ 
2410#line 271
2411      flags = flags | mask;
2412#line 272
2413      goto ldv_19383;
2414      switch_default: /* CIL Label */ 
2415      {
2416#line 274
2417      __cil_tmp39 = (unsigned long )dev;
2418#line 274
2419      __cil_tmp40 = __cil_tmp39 + 32;
2420#line 274
2421      __cil_tmp41 = *((int *)__cil_tmp40);
2422#line 274
2423      printk("<3>comedi%d: unknown flag\n", __cil_tmp41);
2424      }
2425#line 275
2426      return (-1);
2427    } else {
2428      switch_break: /* CIL Label */ ;
2429    }
2430    }
2431  }
2432  }
2433  ldv_19383: 
2434  {
2435#line 282
2436  __cil_tmp42 = *((int *)usp);
2437#line 282
2438  outb((unsigned char)1, __cil_tmp42);
2439#line 284
2440  __cil_tmp43 = (unsigned char )flags;
2441#line 284
2442  __cil_tmp44 = (int )__cil_tmp43;
2443#line 284
2444  __cil_tmp45 = (unsigned char )__cil_tmp44;
2445#line 284
2446  __cil_tmp46 = *((int *)usp);
2447#line 284
2448  __cil_tmp47 = __cil_tmp46 + channel_offset;
2449#line 284
2450  outb(__cil_tmp45, __cil_tmp47);
2451#line 286
2452  __cil_tmp48 = *((int *)usp);
2453#line 286
2454  outb((unsigned char)0, __cil_tmp48);
2455#line 288
2456  __cil_tmp49 = channel_offset + -1;
2457#line 288
2458  __cil_tmp50 = __cil_tmp49 * 1UL;
2459#line 288
2460  __cil_tmp51 = 67 + __cil_tmp50;
2461#line 288
2462  __cil_tmp52 = (unsigned long )usp;
2463#line 288
2464  __cil_tmp53 = __cil_tmp52 + __cil_tmp51;
2465#line 288
2466  *((unsigned char *)__cil_tmp53) = (unsigned char )flags;
2467  }
2468#line 290
2469  return (0);
2470}
2471}
2472#line 293 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
2473static int unioxx5_detach(struct comedi_device *dev ) 
2474{ int i ;
2475  struct comedi_subdevice *subdev ;
2476  struct unioxx5_subd_priv *usp ;
2477  unsigned long __cil_tmp5 ;
2478  unsigned long __cil_tmp6 ;
2479  unsigned long __cil_tmp7 ;
2480  struct comedi_subdevice *__cil_tmp8 ;
2481  unsigned long __cil_tmp9 ;
2482  unsigned long __cil_tmp10 ;
2483  void *__cil_tmp11 ;
2484  int __cil_tmp12 ;
2485  resource_size_t __cil_tmp13 ;
2486  unsigned long __cil_tmp14 ;
2487  unsigned long __cil_tmp15 ;
2488  void *__cil_tmp16 ;
2489  void const   *__cil_tmp17 ;
2490  unsigned long __cil_tmp18 ;
2491  unsigned long __cil_tmp19 ;
2492  int __cil_tmp20 ;
2493
2494  {
2495#line 299
2496  i = 0;
2497#line 299
2498  goto ldv_19393;
2499  ldv_19392: 
2500  {
2501#line 300
2502  __cil_tmp5 = (unsigned long )i;
2503#line 300
2504  __cil_tmp6 = (unsigned long )dev;
2505#line 300
2506  __cil_tmp7 = __cil_tmp6 + 320;
2507#line 300
2508  __cil_tmp8 = *((struct comedi_subdevice **)__cil_tmp7);
2509#line 300
2510  subdev = __cil_tmp8 + __cil_tmp5;
2511#line 301
2512  __cil_tmp9 = (unsigned long )subdev;
2513#line 301
2514  __cil_tmp10 = __cil_tmp9 + 24;
2515#line 301
2516  __cil_tmp11 = *((void **)__cil_tmp10);
2517#line 301
2518  usp = (struct unioxx5_subd_priv *)__cil_tmp11;
2519#line 302
2520  __cil_tmp12 = *((int *)usp);
2521#line 302
2522  __cil_tmp13 = (resource_size_t )__cil_tmp12;
2523#line 302
2524  __release_region(& ioport_resource, __cil_tmp13, 16ULL);
2525#line 303
2526  __cil_tmp14 = (unsigned long )subdev;
2527#line 303
2528  __cil_tmp15 = __cil_tmp14 + 24;
2529#line 303
2530  __cil_tmp16 = *((void **)__cil_tmp15);
2531#line 303
2532  __cil_tmp17 = (void const   *)__cil_tmp16;
2533#line 303
2534  kfree(__cil_tmp17);
2535#line 299
2536  i = i + 1;
2537  }
2538  ldv_19393: ;
2539  {
2540#line 299
2541  __cil_tmp18 = (unsigned long )dev;
2542#line 299
2543  __cil_tmp19 = __cil_tmp18 + 316;
2544#line 299
2545  __cil_tmp20 = *((int *)__cil_tmp19);
2546#line 299
2547  if (__cil_tmp20 > i) {
2548#line 300
2549    goto ldv_19392;
2550  } else {
2551#line 302
2552    goto ldv_19394;
2553  }
2554  }
2555  ldv_19394: ;
2556#line 306
2557  return (0);
2558}
2559}
2560#line 310 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
2561static int __unioxx5_subdev_init(struct comedi_subdevice *subdev , int subdev_iobase ,
2562                                 int minor ) 
2563{ struct unioxx5_subd_priv *usp ;
2564  int i ;
2565  int to ;
2566  int ndef_flag ;
2567  struct resource *tmp ;
2568  void *tmp___0 ;
2569  unsigned char tmp___1 ;
2570  unsigned char tmp___2 ;
2571  resource_size_t __cil_tmp12 ;
2572  struct resource *__cil_tmp13 ;
2573  unsigned long __cil_tmp14 ;
2574  unsigned long __cil_tmp15 ;
2575  struct unioxx5_subd_priv *__cil_tmp16 ;
2576  unsigned long __cil_tmp17 ;
2577  unsigned long __cil_tmp18 ;
2578  int __cil_tmp19 ;
2579  unsigned char __cil_tmp20 ;
2580  unsigned int __cil_tmp21 ;
2581  unsigned int __cil_tmp22 ;
2582  int __cil_tmp23 ;
2583  unsigned char __cil_tmp24 ;
2584  int __cil_tmp25 ;
2585  int __cil_tmp26 ;
2586  int __cil_tmp27 ;
2587  int __cil_tmp28 ;
2588  int __cil_tmp29 ;
2589  int __cil_tmp30 ;
2590  int __cil_tmp31 ;
2591  unsigned long __cil_tmp32 ;
2592  unsigned long __cil_tmp33 ;
2593  unsigned long __cil_tmp34 ;
2594  unsigned long __cil_tmp35 ;
2595  unsigned long __cil_tmp36 ;
2596  unsigned long __cil_tmp37 ;
2597  unsigned long __cil_tmp38 ;
2598  unsigned long __cil_tmp39 ;
2599  int __cil_tmp40 ;
2600  unsigned long __cil_tmp41 ;
2601  unsigned long __cil_tmp42 ;
2602  unsigned long __cil_tmp43 ;
2603  unsigned long __cil_tmp44 ;
2604  unsigned char __cil_tmp45 ;
2605  int __cil_tmp46 ;
2606  unsigned long __cil_tmp47 ;
2607  unsigned long __cil_tmp48 ;
2608  unsigned long __cil_tmp49 ;
2609  unsigned long __cil_tmp50 ;
2610  unsigned long __cil_tmp51 ;
2611  unsigned long __cil_tmp52 ;
2612  unsigned long __cil_tmp53 ;
2613  unsigned long __cil_tmp54 ;
2614  unsigned long __cil_tmp55 ;
2615  unsigned long __cil_tmp56 ;
2616  unsigned long __cil_tmp57 ;
2617  unsigned long __cil_tmp58 ;
2618  unsigned long __cil_tmp59 ;
2619  unsigned long __cil_tmp60 ;
2620  unsigned long __cil_tmp61 ;
2621  unsigned long __cil_tmp62 ;
2622  unsigned long __cil_tmp63 ;
2623  unsigned long __cil_tmp64 ;
2624
2625  {
2626  {
2627#line 314
2628  ndef_flag = 0;
2629#line 316
2630  __cil_tmp12 = (resource_size_t )subdev_iobase;
2631#line 316
2632  tmp = __request_region(& ioport_resource, __cil_tmp12, 16ULL, "unioxx5", 0);
2633  }
2634  {
2635#line 316
2636  __cil_tmp13 = (struct resource *)0;
2637#line 316
2638  __cil_tmp14 = (unsigned long )__cil_tmp13;
2639#line 316
2640  __cil_tmp15 = (unsigned long )tmp;
2641#line 316
2642  if (__cil_tmp15 == __cil_tmp14) {
2643    {
2644#line 317
2645    printk("<3>comedi%d: I/O port conflict\n", minor);
2646    }
2647#line 318
2648    return (-5);
2649  } else {
2650
2651  }
2652  }
2653  {
2654#line 321
2655  tmp___0 = kzalloc(72UL, 208U);
2656#line 321
2657  usp = (struct unioxx5_subd_priv *)tmp___0;
2658  }
2659  {
2660#line 323
2661  __cil_tmp16 = (struct unioxx5_subd_priv *)0;
2662#line 323
2663  __cil_tmp17 = (unsigned long )__cil_tmp16;
2664#line 323
2665  __cil_tmp18 = (unsigned long )usp;
2666#line 323
2667  if (__cil_tmp18 == __cil_tmp17) {
2668    {
2669#line 324
2670    printk("<3>comedi%d: error! --> out of memory!\n", minor);
2671    }
2672#line 325
2673    return (-1);
2674  } else {
2675
2676  }
2677  }
2678  {
2679#line 328
2680  *((int *)usp) = subdev_iobase;
2681#line 329
2682  printk("<6>comedi%d: |", minor);
2683#line 332
2684  i = 0;
2685  }
2686#line 332
2687  goto ldv_19411;
2688  ldv_19410: 
2689  {
2690#line 333
2691  to = 10000;
2692#line 335
2693  __cil_tmp19 = i * 2;
2694#line 335
2695  __unioxx5_analog_config(usp, __cil_tmp19);
2696#line 337
2697  __cil_tmp20 = (unsigned char )i;
2698#line 337
2699  __cil_tmp21 = (unsigned int )__cil_tmp20;
2700#line 337
2701  __cil_tmp22 = __cil_tmp21 + 1U;
2702#line 337
2703  __cil_tmp23 = (int )__cil_tmp22;
2704#line 337
2705  __cil_tmp24 = (unsigned char )__cil_tmp23;
2706#line 337
2707  __cil_tmp25 = subdev_iobase + 5;
2708#line 337
2709  outb(__cil_tmp24, __cil_tmp25);
2710#line 338
2711  __cil_tmp26 = subdev_iobase + 6;
2712#line 338
2713  outb((unsigned char)72, __cil_tmp26);
2714  }
2715#line 339
2716  goto ldv_19405;
2717  ldv_19404: ;
2718  ldv_19405: 
2719  {
2720#line 339
2721  tmp___1 = inb(subdev_iobase);
2722  }
2723  {
2724#line 339
2725  __cil_tmp27 = (int )tmp___1;
2726#line 339
2727  __cil_tmp28 = __cil_tmp27 & 16;
2728#line 339
2729  if (__cil_tmp28 == 0) {
2730#line 340
2731    goto ldv_19404;
2732  } else {
2733#line 342
2734    goto ldv_19406;
2735  }
2736  }
2737  ldv_19406: 
2738  {
2739#line 341
2740  __cil_tmp29 = subdev_iobase + 6;
2741#line 341
2742  outb((unsigned char)0, __cil_tmp29);
2743  }
2744#line 344
2745  goto ldv_19409;
2746  ldv_19408: 
2747#line 345
2748  to = to - 1;
2749#line 345
2750  if (to <= 0) {
2751#line 346
2752    ndef_flag = 1;
2753#line 347
2754    goto ldv_19407;
2755  } else {
2756
2757  }
2758  ldv_19409: 
2759  {
2760#line 344
2761  tmp___2 = inb(subdev_iobase);
2762  }
2763  {
2764#line 344
2765  __cil_tmp30 = (int )tmp___2;
2766#line 344
2767  __cil_tmp31 = __cil_tmp30 & 64;
2768#line 344
2769  if (__cil_tmp31 == 0) {
2770#line 345
2771    goto ldv_19408;
2772  } else {
2773#line 347
2774    goto ldv_19407;
2775  }
2776  }
2777  ldv_19407: ;
2778#line 351
2779  if (ndef_flag != 0) {
2780#line 352
2781    __cil_tmp32 = i * 1UL;
2782#line 352
2783    __cil_tmp33 = 4 + __cil_tmp32;
2784#line 352
2785    __cil_tmp34 = (unsigned long )usp;
2786#line 352
2787    __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
2788#line 352
2789    *((unsigned char *)__cil_tmp35) = (unsigned char)0;
2790#line 353
2791    ndef_flag = 0;
2792  } else {
2793    {
2794#line 355
2795    __cil_tmp36 = i * 1UL;
2796#line 355
2797    __cil_tmp37 = 4 + __cil_tmp36;
2798#line 355
2799    __cil_tmp38 = (unsigned long )usp;
2800#line 355
2801    __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
2802#line 355
2803    __cil_tmp40 = subdev_iobase + 6;
2804#line 355
2805    *((unsigned char *)__cil_tmp39) = inb(__cil_tmp40);
2806    }
2807  }
2808  {
2809#line 357
2810  __cil_tmp41 = i * 1UL;
2811#line 357
2812  __cil_tmp42 = 4 + __cil_tmp41;
2813#line 357
2814  __cil_tmp43 = (unsigned long )usp;
2815#line 357
2816  __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
2817#line 357
2818  __cil_tmp45 = *((unsigned char *)__cil_tmp44);
2819#line 357
2820  __cil_tmp46 = (int )__cil_tmp45;
2821#line 357
2822  printk(" [%d] 0x%02x |", i, __cil_tmp46);
2823#line 358
2824  __const_udelay(4295UL);
2825#line 332
2826  i = i + 1;
2827  }
2828  ldv_19411: ;
2829#line 332
2830  if (i <= 11) {
2831#line 333
2832    goto ldv_19410;
2833  } else {
2834#line 335
2835    goto ldv_19412;
2836  }
2837  ldv_19412: 
2838  {
2839#line 361
2840  printk("\n");
2841#line 364
2842  __cil_tmp47 = (unsigned long )subdev;
2843#line 364
2844  __cil_tmp48 = __cil_tmp47 + 8;
2845#line 364
2846  *((int *)__cil_tmp48) = 5;
2847#line 365
2848  __cil_tmp49 = (unsigned long )subdev;
2849#line 365
2850  __cil_tmp50 = __cil_tmp49 + 24;
2851#line 365
2852  *((void **)__cil_tmp50) = (void *)usp;
2853#line 366
2854  __cil_tmp51 = (unsigned long )subdev;
2855#line 366
2856  __cil_tmp52 = __cil_tmp51 + 16;
2857#line 366
2858  *((int *)__cil_tmp52) = 196608;
2859#line 367
2860  __cil_tmp53 = (unsigned long )subdev;
2861#line 367
2862  __cil_tmp54 = __cil_tmp53 + 12;
2863#line 367
2864  *((int *)__cil_tmp54) = 24;
2865#line 368
2866  __cil_tmp55 = (unsigned long )subdev;
2867#line 368
2868  __cil_tmp56 = __cil_tmp55 + 140;
2869#line 368
2870  *((unsigned int *)__cil_tmp56) = 4095U;
2871#line 369
2872  __cil_tmp57 = (unsigned long )subdev;
2873#line 369
2874  __cil_tmp58 = __cil_tmp57 + 176;
2875#line 369
2876  *((struct comedi_lrange  const  **)__cil_tmp58) = & range_unipolar5;
2877#line 370
2878  __cil_tmp59 = (unsigned long )subdev;
2879#line 370
2880  __cil_tmp60 = __cil_tmp59 + 200;
2881#line 370
2882  *((int (**)(struct comedi_device * , struct comedi_subdevice * , struct comedi_insn * ,
2883              unsigned int * ))__cil_tmp60) = & unioxx5_subdev_read;
2884#line 371
2885  __cil_tmp61 = (unsigned long )subdev;
2886#line 371
2887  __cil_tmp62 = __cil_tmp61 + 208;
2888#line 371
2889  *((int (**)(struct comedi_device * , struct comedi_subdevice * , struct comedi_insn * ,
2890              unsigned int * ))__cil_tmp62) = & unioxx5_subdev_write;
2891#line 373
2892  __cil_tmp63 = (unsigned long )subdev;
2893#line 373
2894  __cil_tmp64 = __cil_tmp63 + 224;
2895#line 373
2896  *((int (**)(struct comedi_device * , struct comedi_subdevice * , struct comedi_insn * ,
2897              unsigned int * ))__cil_tmp64) = & unioxx5_insn_config;
2898#line 375
2899  printk("<6>subdevice configured\n");
2900  }
2901#line 377
2902  return (0);
2903}
2904}
2905#line 380 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
2906static int __unioxx5_digital_write(struct unioxx5_subd_priv *usp , unsigned int *data ,
2907                                   int channel , int minor ) 
2908{ int channel_offset ;
2909  int val ;
2910  int mask ;
2911  int __cil_tmp8 ;
2912  int __cil_tmp9 ;
2913  unsigned long __cil_tmp10 ;
2914  unsigned long __cil_tmp11 ;
2915  unsigned long __cil_tmp12 ;
2916  unsigned long __cil_tmp13 ;
2917  unsigned char __cil_tmp14 ;
2918  unsigned int __cil_tmp15 ;
2919  int __cil_tmp16 ;
2920  unsigned char __cil_tmp17 ;
2921  int __cil_tmp18 ;
2922  unsigned char __cil_tmp19 ;
2923  int __cil_tmp20 ;
2924  int __cil_tmp21 ;
2925  int __cil_tmp22 ;
2926  unsigned long __cil_tmp23 ;
2927  unsigned long __cil_tmp24 ;
2928  unsigned long __cil_tmp25 ;
2929  unsigned long __cil_tmp26 ;
2930
2931  {
2932  {
2933#line 384
2934  __cil_tmp8 = channel & 7;
2935#line 384
2936  mask = 1 << __cil_tmp8;
2937#line 386
2938  channel_offset = __unioxx5_define_chan_offset(channel);
2939  }
2940#line 387
2941  if (channel_offset < 0) {
2942    {
2943#line 388
2944    printk("<3>comedi%d: undefined channel %d. channel range is 0 .. 23\n", minor,
2945           channel);
2946    }
2947#line 391
2948    return (0);
2949  } else {
2950
2951  }
2952#line 395
2953  __cil_tmp9 = channel_offset + -1;
2954#line 395
2955  __cil_tmp10 = __cil_tmp9 * 1UL;
2956#line 395
2957  __cil_tmp11 = 64 + __cil_tmp10;
2958#line 395
2959  __cil_tmp12 = (unsigned long )usp;
2960#line 395
2961  __cil_tmp13 = __cil_tmp12 + __cil_tmp11;
2962#line 395
2963  __cil_tmp14 = *((unsigned char *)__cil_tmp13);
2964#line 395
2965  val = (int )__cil_tmp14;
2966  {
2967#line 397
2968  __cil_tmp15 = *data;
2969#line 397
2970  if (__cil_tmp15 != 0U) {
2971#line 398
2972    val = val | mask;
2973  } else {
2974#line 400
2975    __cil_tmp16 = ~ mask;
2976#line 400
2977    val = __cil_tmp16 & val;
2978  }
2979  }
2980  {
2981#line 402
2982  __cil_tmp17 = (unsigned char )val;
2983#line 402
2984  __cil_tmp18 = (int )__cil_tmp17;
2985#line 402
2986  __cil_tmp19 = (unsigned char )__cil_tmp18;
2987#line 402
2988  __cil_tmp20 = *((int *)usp);
2989#line 402
2990  __cil_tmp21 = __cil_tmp20 + channel_offset;
2991#line 402
2992  outb(__cil_tmp19, __cil_tmp21);
2993#line 404
2994  __cil_tmp22 = channel_offset + -1;
2995#line 404
2996  __cil_tmp23 = __cil_tmp22 * 1UL;
2997#line 404
2998  __cil_tmp24 = 64 + __cil_tmp23;
2999#line 404
3000  __cil_tmp25 = (unsigned long )usp;
3001#line 404
3002  __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
3003#line 404
3004  *((unsigned char *)__cil_tmp26) = (unsigned char )val;
3005  }
3006#line 406
3007  return (1);
3008}
3009}
3010#line 410 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3011static int __unioxx5_digital_read(struct unioxx5_subd_priv *usp , unsigned int *data ,
3012                                  int channel , int minor ) 
3013{ int channel_offset ;
3014  int mask ;
3015  unsigned char tmp ;
3016  int __cil_tmp8 ;
3017  int __cil_tmp9 ;
3018  int __cil_tmp10 ;
3019  unsigned int __cil_tmp11 ;
3020  unsigned int __cil_tmp12 ;
3021  int __cil_tmp13 ;
3022  unsigned int __cil_tmp14 ;
3023
3024  {
3025  {
3026#line 413
3027  __cil_tmp8 = channel & 7;
3028#line 413
3029  mask = 1 << __cil_tmp8;
3030#line 415
3031  channel_offset = __unioxx5_define_chan_offset(channel);
3032  }
3033#line 416
3034  if (channel_offset < 0) {
3035    {
3036#line 417
3037    printk("<3>comedi%d: undefined channel %d. channel range is 0 .. 23\n", minor,
3038           channel);
3039    }
3040#line 420
3041    return (0);
3042  } else {
3043
3044  }
3045  {
3046#line 423
3047  __cil_tmp9 = *((int *)usp);
3048#line 423
3049  __cil_tmp10 = __cil_tmp9 + channel_offset;
3050#line 423
3051  tmp = inb(__cil_tmp10);
3052#line 423
3053  *data = (unsigned int )tmp;
3054#line 424
3055  __cil_tmp11 = (unsigned int )mask;
3056#line 424
3057  __cil_tmp12 = *data;
3058#line 424
3059  *data = __cil_tmp12 & __cil_tmp11;
3060  }
3061#line 426
3062  if (channel_offset > 1) {
3063#line 427
3064    __cil_tmp13 = 2 << channel_offset;
3065#line 427
3066    channel = channel - __cil_tmp13;
3067  } else {
3068
3069  }
3070#line 428
3071  __cil_tmp14 = *data;
3072#line 428
3073  *data = __cil_tmp14 >> channel;
3074#line 429
3075  return (1);
3076}
3077}
3078#line 449 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3079static int __unioxx5_analog_write(struct unioxx5_subd_priv *usp , unsigned int *data ,
3080                                  int channel , int minor ) 
3081{ int module ;
3082  int i ;
3083  int tmp ;
3084  unsigned char tmp___0 ;
3085  int __cil_tmp9 ;
3086  unsigned long __cil_tmp10 ;
3087  unsigned long __cil_tmp11 ;
3088  unsigned long __cil_tmp12 ;
3089  unsigned long __cil_tmp13 ;
3090  unsigned char __cil_tmp14 ;
3091  signed char __cil_tmp15 ;
3092  int __cil_tmp16 ;
3093  unsigned long __cil_tmp17 ;
3094  unsigned long __cil_tmp18 ;
3095  unsigned long __cil_tmp19 ;
3096  unsigned long __cil_tmp20 ;
3097  unsigned char __cil_tmp21 ;
3098  int __cil_tmp22 ;
3099  unsigned long __cil_tmp23 ;
3100  unsigned long __cil_tmp24 ;
3101  unsigned long __cil_tmp25 ;
3102  unsigned long __cil_tmp26 ;
3103  unsigned long __cil_tmp27 ;
3104  unsigned long __cil_tmp28 ;
3105  unsigned int __cil_tmp29 ;
3106  unsigned long __cil_tmp30 ;
3107  unsigned long __cil_tmp31 ;
3108  unsigned long __cil_tmp32 ;
3109  unsigned long __cil_tmp33 ;
3110  unsigned long __cil_tmp34 ;
3111  unsigned long __cil_tmp35 ;
3112  unsigned int __cil_tmp36 ;
3113  unsigned int __cil_tmp37 ;
3114  unsigned int __cil_tmp38 ;
3115  unsigned char __cil_tmp39 ;
3116  unsigned int __cil_tmp40 ;
3117  unsigned int __cil_tmp41 ;
3118  int __cil_tmp42 ;
3119  unsigned char __cil_tmp43 ;
3120  int __cil_tmp44 ;
3121  int __cil_tmp45 ;
3122  int __cil_tmp46 ;
3123  int __cil_tmp47 ;
3124  int __cil_tmp48 ;
3125  int __cil_tmp49 ;
3126  int __cil_tmp50 ;
3127  unsigned long __cil_tmp51 ;
3128  unsigned long __cil_tmp52 ;
3129  unsigned long __cil_tmp53 ;
3130  unsigned long __cil_tmp54 ;
3131  unsigned long __cil_tmp55 ;
3132  unsigned long __cil_tmp56 ;
3133  unsigned char __cil_tmp57 ;
3134  int __cil_tmp58 ;
3135  unsigned char __cil_tmp59 ;
3136  int __cil_tmp60 ;
3137  int __cil_tmp61 ;
3138
3139  {
3140#line 454
3141  module = channel / 2;
3142#line 455
3143  __cil_tmp9 = channel % 2;
3144#line 455
3145  i = __cil_tmp9 << 1;
3146  {
3147#line 458
3148  __cil_tmp10 = module * 1UL;
3149#line 458
3150  __cil_tmp11 = 4 + __cil_tmp10;
3151#line 458
3152  __cil_tmp12 = (unsigned long )usp;
3153#line 458
3154  __cil_tmp13 = __cil_tmp12 + __cil_tmp11;
3155#line 458
3156  __cil_tmp14 = *((unsigned char *)__cil_tmp13);
3157#line 458
3158  __cil_tmp15 = (signed char )__cil_tmp14;
3159#line 458
3160  __cil_tmp16 = (int )__cil_tmp15;
3161#line 458
3162  if (__cil_tmp16 >= 0) {
3163    {
3164#line 459
3165    __cil_tmp17 = module * 1UL;
3166#line 459
3167    __cil_tmp18 = 4 + __cil_tmp17;
3168#line 459
3169    __cil_tmp19 = (unsigned long )usp;
3170#line 459
3171    __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
3172#line 459
3173    __cil_tmp21 = *((unsigned char *)__cil_tmp20);
3174#line 459
3175    __cil_tmp22 = (int )__cil_tmp21;
3176#line 459
3177    printk("<3>comedi%d: module in position %d with id 0x%0x is for input only!\n",
3178           minor, module, __cil_tmp22);
3179    }
3180#line 462
3181    return (0);
3182  } else {
3183
3184  }
3185  }
3186  {
3187#line 465
3188  __unioxx5_analog_config(usp, channel);
3189#line 467
3190  tmp = i;
3191#line 467
3192  i = i + 1;
3193#line 467
3194  __cil_tmp23 = tmp * 1UL;
3195#line 467
3196  __cil_tmp24 = module * 4UL;
3197#line 467
3198  __cil_tmp25 = __cil_tmp24 + __cil_tmp23;
3199#line 467
3200  __cil_tmp26 = 16 + __cil_tmp25;
3201#line 467
3202  __cil_tmp27 = (unsigned long )usp;
3203#line 467
3204  __cil_tmp28 = __cil_tmp27 + __cil_tmp26;
3205#line 467
3206  __cil_tmp29 = *data;
3207#line 467
3208  *((unsigned char *)__cil_tmp28) = (unsigned char )__cil_tmp29;
3209#line 469
3210  __cil_tmp30 = i * 1UL;
3211#line 469
3212  __cil_tmp31 = module * 4UL;
3213#line 469
3214  __cil_tmp32 = __cil_tmp31 + __cil_tmp30;
3215#line 469
3216  __cil_tmp33 = 16 + __cil_tmp32;
3217#line 469
3218  __cil_tmp34 = (unsigned long )usp;
3219#line 469
3220  __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
3221#line 469
3222  __cil_tmp36 = *data;
3223#line 469
3224  __cil_tmp37 = __cil_tmp36 & 65280U;
3225#line 469
3226  __cil_tmp38 = __cil_tmp37 >> 8;
3227#line 469
3228  *((unsigned char *)__cil_tmp35) = (unsigned char )__cil_tmp38;
3229#line 473
3230  __cil_tmp39 = (unsigned char )module;
3231#line 473
3232  __cil_tmp40 = (unsigned int )__cil_tmp39;
3233#line 473
3234  __cil_tmp41 = __cil_tmp40 + 1U;
3235#line 473
3236  __cil_tmp42 = (int )__cil_tmp41;
3237#line 473
3238  __cil_tmp43 = (unsigned char )__cil_tmp42;
3239#line 473
3240  __cil_tmp44 = *((int *)usp);
3241#line 473
3242  __cil_tmp45 = __cil_tmp44 + 5;
3243#line 473
3244  outb(__cil_tmp43, __cil_tmp45);
3245#line 474
3246  __cil_tmp46 = *((int *)usp);
3247#line 474
3248  __cil_tmp47 = __cil_tmp46 + 6;
3249#line 474
3250  outb((unsigned char)87, __cil_tmp47);
3251#line 477
3252  i = 0;
3253  }
3254#line 477
3255  goto ldv_19442;
3256  ldv_19441: ;
3257#line 478
3258  goto ldv_19439;
3259  ldv_19438: ;
3260  ldv_19439: 
3261  {
3262#line 478
3263  __cil_tmp48 = *((int *)usp);
3264#line 478
3265  tmp___0 = inb(__cil_tmp48);
3266  }
3267  {
3268#line 478
3269  __cil_tmp49 = (int )tmp___0;
3270#line 478
3271  __cil_tmp50 = __cil_tmp49 & 16;
3272#line 478
3273  if (__cil_tmp50 == 0) {
3274#line 479
3275    goto ldv_19438;
3276  } else {
3277#line 481
3278    goto ldv_19440;
3279  }
3280  }
3281  ldv_19440: 
3282  {
3283#line 480
3284  __cil_tmp51 = i * 1UL;
3285#line 480
3286  __cil_tmp52 = module * 4UL;
3287#line 480
3288  __cil_tmp53 = __cil_tmp52 + __cil_tmp51;
3289#line 480
3290  __cil_tmp54 = 16 + __cil_tmp53;
3291#line 480
3292  __cil_tmp55 = (unsigned long )usp;
3293#line 480
3294  __cil_tmp56 = __cil_tmp55 + __cil_tmp54;
3295#line 480
3296  __cil_tmp57 = *((unsigned char *)__cil_tmp56);
3297#line 480
3298  __cil_tmp58 = (int )__cil_tmp57;
3299#line 480
3300  __cil_tmp59 = (unsigned char )__cil_tmp58;
3301#line 480
3302  __cil_tmp60 = *((int *)usp);
3303#line 480
3304  __cil_tmp61 = __cil_tmp60 + 6;
3305#line 480
3306  outb(__cil_tmp59, __cil_tmp61);
3307#line 477
3308  i = i + 1;
3309  }
3310  ldv_19442: ;
3311#line 477
3312  if (i <= 3) {
3313#line 478
3314    goto ldv_19441;
3315  } else {
3316#line 480
3317    goto ldv_19443;
3318  }
3319  ldv_19443: ;
3320#line 483
3321  return (1);
3322}
3323}
3324#line 486 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3325static int __unioxx5_analog_read(struct unioxx5_subd_priv *usp , unsigned int *data ,
3326                                 int channel , int minor ) 
3327{ int module_no ;
3328  int read_ch ;
3329  char control ;
3330  unsigned char tmp ;
3331  unsigned char tmp___0 ;
3332  unsigned short tmp___1 ;
3333  unsigned short tmp___2 ;
3334  unsigned long __cil_tmp12 ;
3335  unsigned long __cil_tmp13 ;
3336  unsigned long __cil_tmp14 ;
3337  unsigned long __cil_tmp15 ;
3338  unsigned char __cil_tmp16 ;
3339  signed char __cil_tmp17 ;
3340  int __cil_tmp18 ;
3341  unsigned long __cil_tmp19 ;
3342  unsigned long __cil_tmp20 ;
3343  unsigned long __cil_tmp21 ;
3344  unsigned long __cil_tmp22 ;
3345  unsigned char __cil_tmp23 ;
3346  int __cil_tmp24 ;
3347  unsigned char __cil_tmp25 ;
3348  unsigned int __cil_tmp26 ;
3349  unsigned int __cil_tmp27 ;
3350  int __cil_tmp28 ;
3351  unsigned char __cil_tmp29 ;
3352  int __cil_tmp30 ;
3353  int __cil_tmp31 ;
3354  int __cil_tmp32 ;
3355  int __cil_tmp33 ;
3356  int __cil_tmp34 ;
3357  int __cil_tmp35 ;
3358  int __cil_tmp36 ;
3359  int __cil_tmp37 ;
3360  int __cil_tmp38 ;
3361  int __cil_tmp39 ;
3362  int __cil_tmp40 ;
3363  int __cil_tmp41 ;
3364  int __cil_tmp42 ;
3365
3366  {
3367#line 492
3368  module_no = channel / 2;
3369#line 493
3370  read_ch = channel % 2;
3371  {
3372#line 496
3373  __cil_tmp12 = module_no * 1UL;
3374#line 496
3375  __cil_tmp13 = 4 + __cil_tmp12;
3376#line 496
3377  __cil_tmp14 = (unsigned long )usp;
3378#line 496
3379  __cil_tmp15 = __cil_tmp14 + __cil_tmp13;
3380#line 496
3381  __cil_tmp16 = *((unsigned char *)__cil_tmp15);
3382#line 496
3383  __cil_tmp17 = (signed char )__cil_tmp16;
3384#line 496
3385  __cil_tmp18 = (int )__cil_tmp17;
3386#line 496
3387  if (__cil_tmp18 < 0) {
3388    {
3389#line 497
3390    __cil_tmp19 = module_no * 1UL;
3391#line 497
3392    __cil_tmp20 = 4 + __cil_tmp19;
3393#line 497
3394    __cil_tmp21 = (unsigned long )usp;
3395#line 497
3396    __cil_tmp22 = __cil_tmp21 + __cil_tmp20;
3397#line 497
3398    __cil_tmp23 = *((unsigned char *)__cil_tmp22);
3399#line 497
3400    __cil_tmp24 = (int )__cil_tmp23;
3401#line 497
3402    printk("<3>comedi%d: module in position %d with id 0x%02x is for output only",
3403           minor, module_no, __cil_tmp24);
3404    }
3405#line 500
3406    return (0);
3407  } else {
3408
3409  }
3410  }
3411  {
3412#line 503
3413  __unioxx5_analog_config(usp, channel);
3414#line 505
3415  __cil_tmp25 = (unsigned char )module_no;
3416#line 505
3417  __cil_tmp26 = (unsigned int )__cil_tmp25;
3418#line 505
3419  __cil_tmp27 = __cil_tmp26 + 1U;
3420#line 505
3421  __cil_tmp28 = (int )__cil_tmp27;
3422#line 505
3423  __cil_tmp29 = (unsigned char )__cil_tmp28;
3424#line 505
3425  __cil_tmp30 = *((int *)usp);
3426#line 505
3427  __cil_tmp31 = __cil_tmp30 + 5;
3428#line 505
3429  outb(__cil_tmp29, __cil_tmp31);
3430#line 506
3431  __cil_tmp32 = *((int *)usp);
3432#line 506
3433  __cil_tmp33 = __cil_tmp32 + 6;
3434#line 506
3435  outb((unsigned char)86, __cil_tmp33);
3436#line 507
3437  __cil_tmp34 = *((int *)usp);
3438#line 507
3439  tmp = inb(__cil_tmp34);
3440#line 507
3441  control = (char )tmp;
3442  }
3443#line 510
3444  goto ldv_19454;
3445  ldv_19453: ;
3446  ldv_19454: 
3447  {
3448#line 510
3449  __cil_tmp35 = *((int *)usp);
3450#line 510
3451  tmp___0 = inb(__cil_tmp35);
3452#line 510
3453  control = (char )tmp___0;
3454  }
3455  {
3456#line 510
3457  __cil_tmp36 = (int )control;
3458#line 510
3459  if (__cil_tmp36 >= 0) {
3460#line 511
3461    goto ldv_19453;
3462  } else {
3463#line 513
3464    goto ldv_19455;
3465  }
3466  }
3467  ldv_19455: ;
3468  {
3469#line 514
3470  __cil_tmp37 = (int )control;
3471#line 514
3472  __cil_tmp38 = __cil_tmp37 & 8;
3473#line 514
3474  if (__cil_tmp38 != 0) {
3475    {
3476#line 515
3477    printk("COMEDI: 4 bytes error\n");
3478    }
3479#line 516
3480    return (0);
3481  } else {
3482
3483  }
3484  }
3485#line 519
3486  if (read_ch != 0) {
3487    {
3488#line 520
3489    __cil_tmp39 = *((int *)usp);
3490#line 520
3491    __cil_tmp40 = __cil_tmp39 + 6;
3492#line 520
3493    tmp___1 = inw(__cil_tmp40);
3494#line 520
3495    *data = (unsigned int )tmp___1;
3496    }
3497  } else {
3498    {
3499#line 522
3500    __cil_tmp41 = *((int *)usp);
3501#line 522
3502    __cil_tmp42 = __cil_tmp41 + 4;
3503#line 522
3504    tmp___2 = inw(__cil_tmp42);
3505#line 522
3506    *data = (unsigned int )tmp___2;
3507    }
3508  }
3509#line 524
3510  return (1);
3511}
3512}
3513#line 528 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3514static void __unioxx5_analog_config(struct unioxx5_subd_priv *usp , int channel ) 
3515{ int chan_a ;
3516  int chan_b ;
3517  int conf ;
3518  int channel_offset ;
3519  int __cil_tmp7 ;
3520  unsigned long __cil_tmp8 ;
3521  unsigned long __cil_tmp9 ;
3522  unsigned long __cil_tmp10 ;
3523  unsigned long __cil_tmp11 ;
3524  unsigned char __cil_tmp12 ;
3525  unsigned int __cil_tmp13 ;
3526  unsigned int __cil_tmp14 ;
3527  int __cil_tmp15 ;
3528  int __cil_tmp16 ;
3529  int __cil_tmp17 ;
3530  int __cil_tmp18 ;
3531  int __cil_tmp19 ;
3532  int __cil_tmp20 ;
3533  int __cil_tmp21 ;
3534  int __cil_tmp22 ;
3535  unsigned char __cil_tmp23 ;
3536  int __cil_tmp24 ;
3537  unsigned char __cil_tmp25 ;
3538  int __cil_tmp26 ;
3539  int __cil_tmp27 ;
3540  int __cil_tmp28 ;
3541  int __cil_tmp29 ;
3542  unsigned long __cil_tmp30 ;
3543  unsigned long __cil_tmp31 ;
3544  unsigned long __cil_tmp32 ;
3545  unsigned long __cil_tmp33 ;
3546
3547  {
3548  {
3549#line 532
3550  channel_offset = __unioxx5_define_chan_offset(channel);
3551#line 533
3552  __cil_tmp7 = channel_offset + -1;
3553#line 533
3554  __cil_tmp8 = __cil_tmp7 * 1UL;
3555#line 533
3556  __cil_tmp9 = 67 + __cil_tmp8;
3557#line 533
3558  __cil_tmp10 = (unsigned long )usp;
3559#line 533
3560  __cil_tmp11 = __cil_tmp10 + __cil_tmp9;
3561#line 533
3562  __cil_tmp12 = *((unsigned char *)__cil_tmp11);
3563#line 533
3564  conf = (int )__cil_tmp12;
3565#line 534
3566  chan_b = 1;
3567#line 534
3568  chan_a = chan_b;
3569  }
3570  {
3571#line 537
3572  __cil_tmp13 = (unsigned int )channel;
3573#line 537
3574  __cil_tmp14 = __cil_tmp13 & 1U;
3575#line 537
3576  if (__cil_tmp14 == 0U) {
3577#line 538
3578    __cil_tmp15 = channel & 7;
3579#line 538
3580    chan_a = chan_a << __cil_tmp15;
3581#line 539
3582    __cil_tmp16 = channel + 1;
3583#line 539
3584    __cil_tmp17 = __cil_tmp16 & 7;
3585#line 539
3586    chan_b = chan_b << __cil_tmp17;
3587  } else {
3588#line 541
3589    __cil_tmp18 = channel + -1;
3590#line 541
3591    __cil_tmp19 = __cil_tmp18 & 7;
3592#line 541
3593    chan_a = chan_a << __cil_tmp19;
3594#line 542
3595    __cil_tmp20 = channel & 7;
3596#line 542
3597    chan_b = chan_b << __cil_tmp20;
3598  }
3599  }
3600  {
3601#line 545
3602  conf = conf | chan_a;
3603#line 546
3604  __cil_tmp21 = ~ chan_b;
3605#line 546
3606  conf = __cil_tmp21 & conf;
3607#line 548
3608  __cil_tmp22 = *((int *)usp);
3609#line 548
3610  outb((unsigned char)1, __cil_tmp22);
3611#line 549
3612  __cil_tmp23 = (unsigned char )conf;
3613#line 549
3614  __cil_tmp24 = (int )__cil_tmp23;
3615#line 549
3616  __cil_tmp25 = (unsigned char )__cil_tmp24;
3617#line 549
3618  __cil_tmp26 = *((int *)usp);
3619#line 549
3620  __cil_tmp27 = __cil_tmp26 + channel_offset;
3621#line 549
3622  outb(__cil_tmp25, __cil_tmp27);
3623#line 550
3624  __cil_tmp28 = *((int *)usp);
3625#line 550
3626  outb((unsigned char)0, __cil_tmp28);
3627#line 552
3628  __cil_tmp29 = channel_offset + -1;
3629#line 552
3630  __cil_tmp30 = __cil_tmp29 * 1UL;
3631#line 552
3632  __cil_tmp31 = 67 + __cil_tmp30;
3633#line 552
3634  __cil_tmp32 = (unsigned long )usp;
3635#line 552
3636  __cil_tmp33 = __cil_tmp32 + __cil_tmp31;
3637#line 552
3638  *((unsigned char *)__cil_tmp33) = (unsigned char )conf;
3639  }
3640#line 553
3641  return;
3642}
3643}
3644#line 562 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3645static int __unioxx5_define_chan_offset(int chan_num ) 
3646{ int __cil_tmp2 ;
3647
3648  {
3649#line 565
3650  if (chan_num < 0) {
3651#line 566
3652    return (-1);
3653  } else
3654#line 565
3655  if (chan_num > 23) {
3656#line 566
3657    return (-1);
3658  } else {
3659
3660  }
3661  {
3662#line 568
3663  __cil_tmp2 = chan_num >> 3;
3664#line 568
3665  return (__cil_tmp2 + 1);
3666  }
3667}
3668}
3669#line 591
3670extern void ldv_check_final_state(void) ;
3671#line 597
3672extern void ldv_initialize(void) ;
3673#line 600
3674extern int __VERIFIER_nondet_int(void) ;
3675#line 603 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3676int LDV_IN_INTERRUPT  ;
3677#line 606 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3678void main(void) 
3679{ struct comedi_device *var_group1 ;
3680  struct comedi_devconfig *var_group2 ;
3681  int tmp ;
3682  int tmp___0 ;
3683  int tmp___1 ;
3684
3685  {
3686  {
3687#line 668
3688  LDV_IN_INTERRUPT = 1;
3689#line 677
3690  ldv_initialize();
3691#line 699
3692  tmp = unioxx5_driver_init_module();
3693  }
3694#line 699
3695  if (tmp != 0) {
3696#line 700
3697    goto ldv_final;
3698  } else {
3699
3700  }
3701#line 708
3702  goto ldv_19490;
3703  ldv_19489: 
3704  {
3705#line 711
3706  tmp___0 = __VERIFIER_nondet_int();
3707  }
3708#line 713
3709  if (tmp___0 == 0) {
3710#line 713
3711    goto case_0;
3712  } else
3713#line 749
3714  if (tmp___0 == 1) {
3715#line 749
3716    goto case_1;
3717  } else {
3718    {
3719#line 785
3720    goto switch_default;
3721#line 711
3722    if (0) {
3723      case_0: /* CIL Label */ 
3724      {
3725#line 737
3726      unioxx5_attach(var_group1, var_group2);
3727      }
3728#line 748
3729      goto ldv_19486;
3730      case_1: /* CIL Label */ 
3731      {
3732#line 773
3733      unioxx5_detach(var_group1);
3734      }
3735#line 784
3736      goto ldv_19486;
3737      switch_default: /* CIL Label */ ;
3738#line 785
3739      goto ldv_19486;
3740    } else {
3741      switch_break: /* CIL Label */ ;
3742    }
3743    }
3744  }
3745  ldv_19486: ;
3746  ldv_19490: 
3747  {
3748#line 708
3749  tmp___1 = __VERIFIER_nondet_int();
3750  }
3751#line 708
3752  if (tmp___1 != 0) {
3753#line 709
3754    goto ldv_19489;
3755  } else {
3756#line 711
3757    goto ldv_19491;
3758  }
3759  ldv_19491: ;
3760  {
3761#line 813
3762  unioxx5_driver_cleanup_module();
3763  }
3764  ldv_final: 
3765  {
3766#line 820
3767  ldv_check_final_state();
3768  }
3769#line 823
3770  return;
3771}
3772}
3773#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
3774void ldv_blast_assert(void) 
3775{ 
3776
3777  {
3778  ERROR: ;
3779#line 6
3780  goto ERROR;
3781}
3782}
3783#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
3784extern int __VERIFIER_nondet_int(void) ;
3785#line 844 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3786int ldv_spin  =    0;
3787#line 848 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3788void ldv_check_alloc_flags(gfp_t flags ) 
3789{ 
3790
3791  {
3792#line 851
3793  if (ldv_spin != 0) {
3794#line 851
3795    if (flags != 32U) {
3796      {
3797#line 851
3798      ldv_blast_assert();
3799      }
3800    } else {
3801
3802    }
3803  } else {
3804
3805  }
3806#line 854
3807  return;
3808}
3809}
3810#line 854
3811extern struct page *ldv_some_page(void) ;
3812#line 857 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3813struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) 
3814{ struct page *tmp ;
3815
3816  {
3817#line 860
3818  if (ldv_spin != 0) {
3819#line 860
3820    if (flags != 32U) {
3821      {
3822#line 860
3823      ldv_blast_assert();
3824      }
3825    } else {
3826
3827    }
3828  } else {
3829
3830  }
3831  {
3832#line 862
3833  tmp = ldv_some_page();
3834  }
3835#line 862
3836  return (tmp);
3837}
3838}
3839#line 866 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3840void ldv_check_alloc_nonatomic(void) 
3841{ 
3842
3843  {
3844#line 869
3845  if (ldv_spin != 0) {
3846    {
3847#line 869
3848    ldv_blast_assert();
3849    }
3850  } else {
3851
3852  }
3853#line 872
3854  return;
3855}
3856}
3857#line 873 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3858void ldv_spin_lock(void) 
3859{ 
3860
3861  {
3862#line 876
3863  ldv_spin = 1;
3864#line 877
3865  return;
3866}
3867}
3868#line 880 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3869void ldv_spin_unlock(void) 
3870{ 
3871
3872  {
3873#line 883
3874  ldv_spin = 0;
3875#line 884
3876  return;
3877}
3878}
3879#line 887 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3880int ldv_spin_trylock(void) 
3881{ int is_lock ;
3882
3883  {
3884  {
3885#line 892
3886  is_lock = __VERIFIER_nondet_int();
3887  }
3888#line 894
3889  if (is_lock != 0) {
3890#line 897
3891    return (0);
3892  } else {
3893#line 902
3894    ldv_spin = 1;
3895#line 904
3896    return (1);
3897  }
3898}
3899}
3900#line 1049 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3901__inline static void *kcalloc(size_t n , size_t size , gfp_t flags ) 
3902{ 
3903
3904  {
3905  {
3906#line 1056
3907  ldv_check_alloc_flags(flags);
3908#line 1058
3909  ldv_kcalloc_14(n, size, flags);
3910  }
3911#line 1059
3912  return ((void *)0);
3913}
3914}
3915#line 1071 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3916void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) 
3917{ 
3918
3919  {
3920  {
3921#line 1077
3922  ldv_check_alloc_flags(ldv_func_arg2);
3923#line 1079
3924  kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
3925  }
3926#line 1080
3927  return ((void *)0);
3928}
3929}
3930#line 1082 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/5958/dscv_tempdir/dscv/ri/43_1a/drivers/staging/comedi/drivers/unioxx5.c.p"
3931__inline static void *kzalloc(size_t size , gfp_t flags ) 
3932{ void *tmp ;
3933
3934  {
3935  {
3936#line 1088
3937  ldv_check_alloc_flags(flags);
3938#line 1089
3939  tmp = __VERIFIER_nondet_pointer();
3940  }
3941#line 1089
3942  return (tmp);
3943}
3944}