// RUN: %sea --mem=-1 -m64 pf --step=large -g --horn-global-constraints=true --track=mem --horn-stats --enable-nondet-init --strip-extern --externalize-addr-taken-functions --horn-singleton-aliases=true --devirt-functions=types --horn-ignore-calloc=false --enable-indvar --enable-loop-idiom --horn-make-undef-warning-error=false --inline "%s" --horn-pred-abs
// CHECK: ^unsat$

extern void __VERIFIER_error() __attribute__ ((__noreturn__));
/* Generated by CIL v. 1.5.1 */
/* print_CIL_Input is false */

#line 20 "include/uapi/asm-generic/int-ll64.h"
typedef unsigned char __u8;
#line 23 "include/uapi/asm-generic/int-ll64.h"
typedef unsigned short __u16;
#line 25 "include/uapi/asm-generic/int-ll64.h"
typedef int __s32;
#line 26 "include/uapi/asm-generic/int-ll64.h"
typedef unsigned int __u32;
#line 30 "include/uapi/asm-generic/int-ll64.h"
typedef unsigned long long __u64;
#line 15 "include/asm-generic/int-ll64.h"
typedef signed char s8;
#line 16 "include/asm-generic/int-ll64.h"
typedef unsigned char u8;
#line 19 "include/asm-generic/int-ll64.h"
typedef unsigned short u16;
#line 21 "include/asm-generic/int-ll64.h"
typedef int s32;
#line 22 "include/asm-generic/int-ll64.h"
typedef unsigned int u32;
#line 24 "include/asm-generic/int-ll64.h"
typedef long long s64;
#line 25 "include/asm-generic/int-ll64.h"
typedef unsigned long long u64;
#line 14 "./include/uapi/asm-generic/posix_types.h"
typedef long __kernel_long_t;
#line 15 "./include/uapi/asm-generic/posix_types.h"
typedef unsigned long __kernel_ulong_t;
#line 27 "./include/uapi/asm-generic/posix_types.h"
typedef int __kernel_pid_t;
#line 48 "./include/uapi/asm-generic/posix_types.h"
typedef unsigned int __kernel_uid32_t;
#line 49 "./include/uapi/asm-generic/posix_types.h"
typedef unsigned int __kernel_gid32_t;
#line 71 "./include/uapi/asm-generic/posix_types.h"
typedef __kernel_ulong_t __kernel_size_t;
#line 72 "./include/uapi/asm-generic/posix_types.h"
typedef __kernel_long_t __kernel_ssize_t;
#line 87 "./include/uapi/asm-generic/posix_types.h"
typedef long long __kernel_loff_t;
#line 88 "./include/uapi/asm-generic/posix_types.h"
typedef __kernel_long_t __kernel_time_t;
#line 89 "./include/uapi/asm-generic/posix_types.h"
typedef __kernel_long_t __kernel_clock_t;
#line 90 "./include/uapi/asm-generic/posix_types.h"
typedef int __kernel_timer_t;
#line 91 "./include/uapi/asm-generic/posix_types.h"
typedef int __kernel_clockid_t;
#line 229 "include/linux/compiler.h"
struct kernel_symbol {
   unsigned long value ;
   char const   *name ;
};
#line 33 "include/linux/export.h"
struct module;
#line 12 "include/linux/types.h"
typedef __u32 __kernel_dev_t;
#line 15 "include/linux/types.h"
typedef __kernel_dev_t dev_t;
#line 18 "include/linux/types.h"
typedef unsigned short umode_t;
#line 21 "include/linux/types.h"
typedef __kernel_pid_t pid_t;
#line 26 "include/linux/types.h"
typedef __kernel_clockid_t clockid_t;
#line 29 "include/linux/types.h"
typedef _Bool bool;
#line 31 "include/linux/types.h"
typedef __kernel_uid32_t uid_t;
#line 32 "include/linux/types.h"
typedef __kernel_gid32_t gid_t;
#line 45 "include/linux/types.h"
typedef __kernel_loff_t loff_t;
#line 54 "include/linux/types.h"
typedef __kernel_size_t size_t;
#line 59 "include/linux/types.h"
typedef __kernel_ssize_t ssize_t;
#line 69 "include/linux/types.h"
typedef __kernel_time_t time_t;
#line 102 "include/linux/types.h"
typedef __s32 int32_t;
#line 108 "include/linux/types.h"
typedef __u32 uint32_t;
#line 152 "include/linux/types.h"
typedef u64 dma_addr_t;
#line 157 "include/linux/types.h"
typedef unsigned int gfp_t;
#line 159 "include/linux/types.h"
typedef unsigned int oom_flags_t;
#line 162 "include/linux/types.h"
typedef u64 phys_addr_t;
#line 167 "include/linux/types.h"
typedef phys_addr_t resource_size_t;
#line 177 "include/linux/types.h"
struct __anonstruct_atomic_t_6 {
   int counter ;
};
#line 177 "include/linux/types.h"
typedef struct __anonstruct_atomic_t_6 atomic_t;
#line 182 "include/linux/types.h"
struct __anonstruct_atomic64_t_7 {
   long counter ;
};
#line 182 "include/linux/types.h"
typedef struct __anonstruct_atomic64_t_7 atomic64_t;
#line 183 "include/linux/types.h"
struct list_head {
   struct list_head *next ;
   struct list_head *prev ;
};
#line 188
struct hlist_node;
#line 188 "include/linux/types.h"
struct hlist_head {
   struct hlist_node *first ;
};
#line 192 "include/linux/types.h"
struct hlist_node {
   struct hlist_node *next ;
   struct hlist_node **pprev ;
};
#line 203 "include/linux/types.h"
struct callback_head {
   struct callback_head *next ;
   void (*func)(struct callback_head * ) ;
};
#line 67 "./arch/x86/include/asm/page_types.h"
struct pt_regs {
   unsigned long r15 ;
   unsigned long r14 ;
   unsigned long r13 ;
   unsigned long r12 ;
   unsigned long bp ;
   unsigned long bx ;
   unsigned long r11 ;
   unsigned long r10 ;
   unsigned long r9 ;
   unsigned long r8 ;
   unsigned long ax ;
   unsigned long cx ;
   unsigned long dx ;
   unsigned long si ;
   unsigned long di ;
   unsigned long orig_ax ;
   unsigned long ip ;
   unsigned long cs ;
   unsigned long flags ;
   unsigned long sp ;
   unsigned long ss ;
};
#line 66 "./arch/x86/include/asm/ptrace.h"
struct __anonstruct____missing_field_name_9 {
   unsigned int a ;
   unsigned int b ;
};
#line 66 "./arch/x86/include/asm/ptrace.h"
struct __anonstruct____missing_field_name_10 {
   u16 limit0 ;
   u16 base0 ;
   unsigned char base1 ;
   unsigned char type : 4 ;
   unsigned char s : 1 ;
   unsigned char dpl : 2 ;
   unsigned char p : 1 ;
   unsigned char limit : 4 ;
   unsigned char avl : 1 ;
   unsigned char l : 1 ;
   unsigned char d : 1 ;
   unsigned char g : 1 ;
   unsigned char base2 ;
};
#line 66 "./arch/x86/include/asm/ptrace.h"
union __anonunion____missing_field_name_8 {
   struct __anonstruct____missing_field_name_9 __annonCompField4 ;
   struct __anonstruct____missing_field_name_10 __annonCompField5 ;
};
#line 66 "./arch/x86/include/asm/ptrace.h"
struct desc_struct {
   union __anonunion____missing_field_name_8 __annonCompField6 ;
};
#line 12 "./arch/x86/include/asm/pgtable_64_types.h"
typedef unsigned long pteval_t;
#line 15 "./arch/x86/include/asm/pgtable_64_types.h"
typedef unsigned long pgdval_t;
#line 16 "./arch/x86/include/asm/pgtable_64_types.h"
typedef unsigned long pgprotval_t;
#line 18 "./arch/x86/include/asm/pgtable_64_types.h"
struct __anonstruct_pte_t_11 {
   pteval_t pte ;
};
#line 18 "./arch/x86/include/asm/pgtable_64_types.h"
typedef struct __anonstruct_pte_t_11 pte_t;
#line 20 "./arch/x86/include/asm/pgtable_64_types.h"
struct pgprot {
   pgprotval_t pgprot ;
};
#line 218 "./arch/x86/include/asm/pgtable_types.h"
typedef struct pgprot pgprot_t;
#line 220 "./arch/x86/include/asm/pgtable_types.h"
struct __anonstruct_pgd_t_12 {
   pgdval_t pgd ;
};
#line 220 "./arch/x86/include/asm/pgtable_types.h"
typedef struct __anonstruct_pgd_t_12 pgd_t;
#line 361
struct page;
#line 361 "./arch/x86/include/asm/pgtable_types.h"
typedef struct page *pgtable_t;
#line 372
struct file;
#line 385
struct seq_file;
#line 423
struct thread_struct;
#line 425
struct mm_struct;
#line 426
struct task_struct;
#line 427
struct cpumask;
#line 20 "./arch/x86/include/asm/spinlock_types.h"
struct qspinlock {
   atomic_t val ;
};
#line 33 "include/asm-generic/qspinlock_types.h"
typedef struct qspinlock arch_spinlock_t;
#line 131 "include/linux/init.h"
typedef void (*ctor_fn_t)(void);
#line 234 "include/linux/printk.h"
struct _ddebug {
   char const   *modname ;
   char const   *function ;
   char const   *filename ;
   char const   *format ;
   unsigned int lineno : 18 ;
   unsigned char flags ;
};
#line 48 "include/linux/dynamic_debug.h"
struct device;
#line 432 "include/linux/printk.h"
struct completion;
#line 555 "./arch/x86/include/asm/percpu.h"
struct bug_entry {
   int bug_addr_disp ;
   int file_disp ;
   unsigned short line ;
   unsigned short flags ;
};
#line 102 "include/linux/bug.h"
struct timespec;
#line 103
struct compat_timespec;
#line 104 "include/linux/bug.h"
struct __anonstruct_futex_16 {
   u32 *uaddr ;
   u32 val ;
   u32 flags ;
   u32 bitset ;
   u64 time ;
   u32 *uaddr2 ;
};
#line 104 "include/linux/bug.h"
struct __anonstruct_nanosleep_17 {
   clockid_t clockid ;
   struct timespec *rmtp ;
   struct compat_timespec *compat_rmtp ;
   u64 expires ;
};
#line 104
struct pollfd;
#line 104 "include/linux/bug.h"
struct __anonstruct_poll_18 {
   struct pollfd *ufds ;
   int nfds ;
   int has_timeout ;
   unsigned long tv_sec ;
   unsigned long tv_nsec ;
};
#line 104 "include/linux/bug.h"
union __anonunion____missing_field_name_15 {
   struct __anonstruct_futex_16 futex ;
   struct __anonstruct_nanosleep_17 nanosleep ;
   struct __anonstruct_poll_18 poll ;
};
#line 104 "include/linux/bug.h"
struct restart_block {
   long (*fn)(struct restart_block * ) ;
   union __anonunion____missing_field_name_15 __annonCompField7 ;
};
#line 127 "./arch/x86/include/uapi/asm/vm86.h"
struct kernel_vm86_regs {
   struct pt_regs pt ;
   unsigned short es ;
   unsigned short __esh ;
   unsigned short ds ;
   unsigned short __dsh ;
   unsigned short fs ;
   unsigned short __fsh ;
   unsigned short gs ;
   unsigned short __gsh ;
};
#line 79 "./arch/x86/include/asm/vm86.h"
union __anonunion____missing_field_name_19 {
   struct pt_regs *regs ;
   struct kernel_vm86_regs *vm86 ;
};
#line 79 "./arch/x86/include/asm/vm86.h"
struct math_emu_info {
   long ___orig_eip ;
   union __anonunion____missing_field_name_19 __annonCompField8 ;
};
#line 328 "include/linux/bitmap.h"
struct cpumask {
   unsigned long bits[128U] ;
};
#line 15 "include/linux/cpumask.h"
typedef struct cpumask cpumask_t;
#line 652 "include/linux/cpumask.h"
typedef struct cpumask *cpumask_var_t;
#line 260 "./arch/x86/include/asm/special_insns.h"
struct fregs_state {
   u32 cwd ;
   u32 swd ;
   u32 twd ;
   u32 fip ;
   u32 fcs ;
   u32 foo ;
   u32 fos ;
   u32 st_space[20U] ;
   u32 status ;
};
#line 26 "./arch/x86/include/asm/fpu/types.h"
struct __anonstruct____missing_field_name_29 {
   u64 rip ;
   u64 rdp ;
};
#line 26 "./arch/x86/include/asm/fpu/types.h"
struct __anonstruct____missing_field_name_30 {
   u32 fip ;
   u32 fcs ;
   u32 foo ;
   u32 fos ;
};
#line 26 "./arch/x86/include/asm/fpu/types.h"
union __anonunion____missing_field_name_28 {
   struct __anonstruct____missing_field_name_29 __annonCompField12 ;
   struct __anonstruct____missing_field_name_30 __annonCompField13 ;
};
#line 26 "./arch/x86/include/asm/fpu/types.h"
union __anonunion____missing_field_name_31 {
   u32 padding1[12U] ;
   u32 sw_reserved[12U] ;
};
#line 26 "./arch/x86/include/asm/fpu/types.h"
struct fxregs_state {
   u16 cwd ;
   u16 swd ;
   u16 twd ;
   u16 fop ;
   union __anonunion____missing_field_name_28 __annonCompField14 ;
   u32 mxcsr ;
   u32 mxcsr_mask ;
   u32 st_space[32U] ;
   u32 xmm_space[64U] ;
   u32 padding[12U] ;
   union __anonunion____missing_field_name_31 __annonCompField15 ;
};
#line 66 "./arch/x86/include/asm/fpu/types.h"
struct swregs_state {
   u32 cwd ;
   u32 swd ;
   u32 twd ;
   u32 fip ;
   u32 fcs ;
   u32 foo ;
   u32 fos ;
   u32 st_space[20U] ;
   u8 ftop ;
   u8 changed ;
   u8 lookahead ;
   u8 no_update ;
   u8 rm ;
   u8 alimit ;
   struct math_emu_info *info ;
   u32 entry_eip ;
};
#line 155 "./arch/x86/include/asm/fpu/types.h"
struct xstate_header {
   u64 xfeatures ;
   u64 xcomp_bv ;
   u64 reserved[6U] ;
};
#line 161 "./arch/x86/include/asm/fpu/types.h"
struct xregs_state {
   struct fxregs_state i387 ;
   struct xstate_header header ;
   u8 __reserved[464U] ;
};
#line 179 "./arch/x86/include/asm/fpu/types.h"
union fpregs_state {
   struct fregs_state fsave ;
   struct fxregs_state fxsave ;
   struct swregs_state soft ;
   struct xregs_state xsave ;
};
#line 193 "./arch/x86/include/asm/fpu/types.h"
struct fpu {
   union fpregs_state state ;
   unsigned int last_cpu ;
   unsigned char fpstate_active ;
   unsigned char fpregs_active ;
   unsigned char counter ;
};
#line 170 "./arch/x86/include/asm/processor.h"
struct seq_operations;
#line 369
struct perf_event;
#line 370 "./arch/x86/include/asm/processor.h"
struct thread_struct {
   struct desc_struct tls_array[3U] ;
   unsigned long sp0 ;
   unsigned long sp ;
   unsigned short es ;
   unsigned short ds ;
   unsigned short fsindex ;
   unsigned short gsindex ;
   unsigned long fs ;
   unsigned long gs ;
   struct fpu fpu ;
   struct perf_event *ptrace_bps[4U] ;
   unsigned long debugreg6 ;
   unsigned long ptrace_dr7 ;
   unsigned long cr2 ;
   unsigned long trap_nr ;
   unsigned long error_code ;
   unsigned long *io_bitmap_ptr ;
   unsigned long iopl ;
   unsigned int io_bitmap_max ;
};
#line 23 "include/asm-generic/atomic-long.h"
typedef atomic64_t atomic_long_t;
#line 33 "include/linux/bottom_half.h"
struct lockdep_map;
#line 55 "include/linux/debug_locks.h"
struct stack_trace {
   unsigned int nr_entries ;
   unsigned int max_entries ;
   unsigned long *entries ;
   int skip ;
};
#line 28 "include/linux/stacktrace.h"
struct lockdep_subclass_key {
   char __one_byte ;
};
#line 53 "include/linux/lockdep.h"
struct lock_class_key {
   struct lockdep_subclass_key subkeys[8U] ;
};
#line 59 "include/linux/lockdep.h"
struct lock_class {
   struct list_head hash_entry ;
   struct list_head lock_entry ;
   struct lockdep_subclass_key *key ;
   unsigned int subclass ;
   unsigned int dep_gen_id ;
   unsigned long usage_mask ;
   struct stack_trace usage_traces[13U] ;
   struct list_head locks_after ;
   struct list_head locks_before ;
   unsigned int version ;
   unsigned long ops ;
   char const   *name ;
   int name_version ;
   unsigned long contention_point[4U] ;
   unsigned long contending_point[4U] ;
};
#line 144 "include/linux/lockdep.h"
struct lockdep_map {
   struct lock_class_key *key ;
   struct lock_class *class_cache[2U] ;
   char const   *name ;
   int cpu ;
   unsigned long ip ;
};
#line 205 "include/linux/lockdep.h"
struct held_lock {
   u64 prev_chain_key ;
   unsigned long acquire_ip ;
   struct lockdep_map *instance ;
   struct lockdep_map *nest_lock ;
   u64 waittime_stamp ;
   u64 holdtime_stamp ;
   unsigned short class_idx : 13 ;
   unsigned char irq_context : 2 ;
   unsigned char trylock : 1 ;
   unsigned char read : 2 ;
   unsigned char check : 1 ;
   unsigned char hardirqs_off : 1 ;
   unsigned short references : 12 ;
   unsigned int pin_count ;
};
#line 546 "include/linux/lockdep.h"
struct raw_spinlock {
   arch_spinlock_t raw_lock ;
   unsigned int magic ;
   unsigned int owner_cpu ;
   void *owner ;
   struct lockdep_map dep_map ;
};
#line 32 "include/linux/spinlock_types.h"
typedef struct raw_spinlock raw_spinlock_t;
#line 33 "include/linux/spinlock_types.h"
struct __anonstruct____missing_field_name_35 {
   u8 __padding[24U] ;
   struct lockdep_map dep_map ;
};
#line 33 "include/linux/spinlock_types.h"
union __anonunion____missing_field_name_34 {
   struct raw_spinlock rlock ;
   struct __anonstruct____missing_field_name_35 __annonCompField17 ;
};
#line 33 "include/linux/spinlock_types.h"
struct spinlock {
   union __anonunion____missing_field_name_34 __annonCompField18 ;
};
#line 76 "include/linux/spinlock_types.h"
typedef struct spinlock spinlock_t;
#line 426 "include/linux/spinlock.h"
struct seqcount {
   unsigned int sequence ;
   struct lockdep_map dep_map ;
};
#line 52 "include/linux/seqlock.h"
typedef struct seqcount seqcount_t;
#line 404 "include/linux/seqlock.h"
struct __anonstruct_seqlock_t_45 {
   struct seqcount seqcount ;
   spinlock_t lock ;
};
#line 404 "include/linux/seqlock.h"
typedef struct __anonstruct_seqlock_t_45 seqlock_t;
#line 598 "include/linux/seqlock.h"
struct timespec {
   __kernel_time_t tv_sec ;
   long tv_nsec ;
};
#line 83 "include/linux/highuid.h"
struct user_namespace;
#line 22 "include/linux/uidgid.h"
struct __anonstruct_kuid_t_46 {
   uid_t val ;
};
#line 22 "include/linux/uidgid.h"
typedef struct __anonstruct_kuid_t_46 kuid_t;
#line 27 "include/linux/uidgid.h"
struct __anonstruct_kgid_t_47 {
   gid_t val ;
};
#line 27 "include/linux/uidgid.h"
typedef struct __anonstruct_kgid_t_47 kgid_t;
#line 36 "include/linux/stat.h"
struct vm_area_struct;
#line 38 "include/linux/wait.h"
struct __wait_queue_head {
   spinlock_t lock ;
   struct list_head task_list ;
};
#line 43 "include/linux/wait.h"
typedef struct __wait_queue_head wait_queue_head_t;
#line 95 "include/linux/nodemask.h"
struct __anonstruct_nodemask_t_48 {
   unsigned long bits[16U] ;
};
#line 95 "include/linux/nodemask.h"
typedef struct __anonstruct_nodemask_t_48 nodemask_t;
#line 13 "include/linux/osq_lock.h"
struct optimistic_spin_queue {
   atomic_t tail ;
};
#line 39 "include/linux/osq_lock.h"
struct mutex {
   atomic_t count ;
   spinlock_t wait_lock ;
   struct list_head wait_list ;
   struct task_struct *owner ;
   void *magic ;
   struct lockdep_map dep_map ;
};
#line 67 "include/linux/mutex.h"
struct mutex_waiter {
   struct list_head list ;
   struct task_struct *task ;
   void *magic ;
};
#line 177
struct rw_semaphore;
#line 178 "include/linux/mutex.h"
struct rw_semaphore {
   long count ;
   struct list_head wait_list ;
   raw_spinlock_t wait_lock ;
   struct optimistic_spin_queue osq ;
   struct task_struct *owner ;
   struct lockdep_map dep_map ;
};
#line 172 "include/linux/rwsem.h"
struct completion {
   unsigned int done ;
   wait_queue_head_t wait ;
};
#line 437 "include/linux/jiffies.h"
union ktime {
   s64 tv64 ;
};
#line 41 "include/linux/ktime.h"
typedef union ktime ktime_t;
#line 1121 "include/linux/rcupdate.h"
struct timer_list {
   struct hlist_node entry ;
   unsigned long expires ;
   void (*function)(unsigned long  ) ;
   unsigned long data ;
   u32 flags ;
   int slack ;
   int start_pid ;
   void *start_site ;
   char start_comm[16U] ;
   struct lockdep_map lockdep_map ;
};
#line 238 "include/linux/timer.h"
struct hrtimer;
#line 239
enum hrtimer_restart;
#line 240 "include/linux/timer.h"
struct rb_node {
   unsigned long __rb_parent_color ;
   struct rb_node *rb_right ;
   struct rb_node *rb_left ;
};
#line 41 "include/linux/rbtree.h"
struct rb_root {
   struct rb_node *rb_node ;
};
#line 838 "include/uapi/linux/sysctl.h"
struct nsproxy;
#line 259 "include/linux/timer.h"
struct workqueue_struct;
#line 260
struct work_struct;
#line 54 "include/linux/workqueue.h"
struct work_struct {
   atomic_long_t data ;
   struct list_head entry ;
   void (*func)(struct work_struct * ) ;
   struct lockdep_map lockdep_map ;
};
#line 107 "include/linux/workqueue.h"
struct delayed_work {
   struct work_struct work ;
   struct timer_list timer ;
   struct workqueue_struct *wq ;
   int cpu ;
};
#line 64 "./arch/x86/include/asm/e820.h"
struct resource {
   resource_size_t start ;
   resource_size_t end ;
   char const   *name ;
   unsigned long flags ;
   struct resource *parent ;
   struct resource *sibling ;
   struct resource *child ;
};
#line 58 "include/linux/pm.h"
struct pm_message {
   int event ;
};
#line 64 "include/linux/pm.h"
typedef struct pm_message pm_message_t;
#line 65 "include/linux/pm.h"
struct dev_pm_ops {
   int (*prepare)(struct device * ) ;
   void (*complete)(struct device * ) ;
   int (*suspend)(struct device * ) ;
   int (*resume)(struct device * ) ;
   int (*freeze)(struct device * ) ;
   int (*thaw)(struct device * ) ;
   int (*poweroff)(struct device * ) ;
   int (*restore)(struct device * ) ;
   int (*suspend_late)(struct device * ) ;
   int (*resume_early)(struct device * ) ;
   int (*freeze_late)(struct device * ) ;
   int (*thaw_early)(struct device * ) ;
   int (*poweroff_late)(struct device * ) ;
   int (*restore_early)(struct device * ) ;
   int (*suspend_noirq)(struct device * ) ;
   int (*resume_noirq)(struct device * ) ;
   int (*freeze_noirq)(struct device * ) ;
   int (*thaw_noirq)(struct device * ) ;
   int (*poweroff_noirq)(struct device * ) ;
   int (*restore_noirq)(struct device * ) ;
   int (*runtime_suspend)(struct device * ) ;
   int (*runtime_resume)(struct device * ) ;
   int (*runtime_idle)(struct device * ) ;
};
#line 320
enum rpm_status {
    RPM_ACTIVE = 0,
    RPM_RESUMING = 1,
    RPM_SUSPENDED = 2,
    RPM_SUSPENDING = 3
} ;
#line 327
enum rpm_request {
    RPM_REQ_NONE = 0,
    RPM_REQ_IDLE = 1,
    RPM_REQ_SUSPEND = 2,
    RPM_REQ_AUTOSUSPEND = 3,
    RPM_REQ_RESUME = 4
} ;
#line 335
struct wakeup_source;
#line 336
struct wake_irq;
#line 338 "include/linux/pm.h"
struct pm_subsys_data {
   spinlock_t lock ;
   unsigned int refcount ;
   struct list_head clock_list ;
};
#line 553
struct dev_pm_qos;
#line 553 "include/linux/pm.h"
struct dev_pm_info {
   pm_message_t power_state ;
   unsigned char can_wakeup : 1 ;
   unsigned char async_suspend : 1 ;
   bool is_prepared ;
   bool is_suspended ;
   bool is_noirq_suspended ;
   bool is_late_suspended ;
   bool ignore_children ;
   bool early_init ;
   bool direct_complete ;
   spinlock_t lock ;
   struct list_head entry ;
   struct completion completion ;
   struct wakeup_source *wakeup ;
   bool wakeup_path ;
   bool syscore ;
   struct timer_list suspend_timer ;
   unsigned long timer_expires ;
   struct work_struct work ;
   wait_queue_head_t wait_queue ;
   struct wake_irq *wakeirq ;
   atomic_t usage_count ;
   atomic_t child_count ;
   unsigned char disable_depth : 3 ;
   unsigned char idle_notification : 1 ;
   unsigned char request_pending : 1 ;
   unsigned char deferred_resume : 1 ;
   unsigned char run_wake : 1 ;
   unsigned char runtime_auto : 1 ;
   unsigned char no_callbacks : 1 ;
   unsigned char irq_safe : 1 ;
   unsigned char use_autosuspend : 1 ;
   unsigned char timer_autosuspends : 1 ;
   unsigned char memalloc_noio : 1 ;
   enum rpm_request request ;
   enum rpm_status runtime_status ;
   int runtime_error ;
   int autosuspend_delay ;
   unsigned long last_busy ;
   unsigned long active_jiffies ;
   unsigned long suspended_jiffies ;
   unsigned long accounting_timestamp ;
   struct pm_subsys_data *subsys_data ;
   void (*set_latency_tolerance)(struct device * , s32  ) ;
   struct dev_pm_qos *qos ;
};
#line 615 "include/linux/pm.h"
struct dev_pm_domain {
   struct dev_pm_ops ops ;
   void (*detach)(struct device * , bool  ) ;
   int (*activate)(struct device * ) ;
   void (*sync)(struct device * ) ;
   void (*dismiss)(struct device * ) ;
};
#line 24 "./arch/x86/include/asm/mmu.h"
struct __anonstruct_mm_context_t_115 {
   void *ldt ;
   int size ;
   unsigned short ia32_compat ;
   struct mutex lock ;
   void *vdso ;
   atomic_t perf_rdpmc_allowed ;
};
#line 24 "./arch/x86/include/asm/mmu.h"
typedef struct __anonstruct_mm_context_t_115 mm_context_t;
#line 1281 "include/linux/mmzone.h"
struct llist_node;
#line 64 "include/linux/llist.h"
struct llist_node {
   struct llist_node *next ;
};
#line 37 "include/linux/kmod.h"
struct cred;
#line 58 "./arch/x86/include/asm/uprobes.h"
struct arch_uprobe_task {
   unsigned long saved_scratch_register ;
   unsigned int saved_trap_nr ;
   unsigned int saved_tf ;
};
#line 66
enum uprobe_task_state {
    UTASK_RUNNING = 0,
    UTASK_SSTEP = 1,
    UTASK_SSTEP_ACK = 2,
    UTASK_SSTEP_TRAPPED = 3
} ;
#line 73 "./arch/x86/include/asm/uprobes.h"
struct __anonstruct____missing_field_name_148 {
   struct arch_uprobe_task autask ;
   unsigned long vaddr ;
};
#line 73 "./arch/x86/include/asm/uprobes.h"
struct __anonstruct____missing_field_name_149 {
   struct callback_head dup_xol_work ;
   unsigned long dup_xol_addr ;
};
#line 73 "./arch/x86/include/asm/uprobes.h"
union __anonunion____missing_field_name_147 {
   struct __anonstruct____missing_field_name_148 __annonCompField33 ;
   struct __anonstruct____missing_field_name_149 __annonCompField34 ;
};
#line 73
struct uprobe;
#line 73
struct return_instance;
#line 73 "./arch/x86/include/asm/uprobes.h"
struct uprobe_task {
   enum uprobe_task_state state ;
   union __anonunion____missing_field_name_147 __annonCompField35 ;
   struct uprobe *active_uprobe ;
   unsigned long xol_vaddr ;
   struct return_instance *return_instances ;
   unsigned int depth ;
};
#line 94 "include/linux/uprobes.h"
struct xol_area;
#line 95 "include/linux/uprobes.h"
struct uprobes_state {
   struct xol_area *xol_area ;
};
#line 133
struct address_space;
#line 134
struct mem_cgroup;
#line 31 "include/linux/mm_types.h"
typedef void compound_page_dtor(struct page * );
#line 32 "include/linux/mm_types.h"
union __anonunion____missing_field_name_150 {
   struct address_space *mapping ;
   void *s_mem ;
};
#line 32 "include/linux/mm_types.h"
union __anonunion____missing_field_name_152 {
   unsigned long index ;
   void *freelist ;
   bool pfmemalloc ;
};
#line 32 "include/linux/mm_types.h"
struct __anonstruct____missing_field_name_156 {
   unsigned short inuse ;
   unsigned short objects : 15 ;
   unsigned char frozen : 1 ;
};
#line 32 "include/linux/mm_types.h"
union __anonunion____missing_field_name_155 {
   atomic_t _mapcount ;
   struct __anonstruct____missing_field_name_156 __annonCompField38 ;
   int units ;
};
#line 32 "include/linux/mm_types.h"
struct __anonstruct____missing_field_name_154 {
   union __anonunion____missing_field_name_155 __annonCompField39 ;
   atomic_t _count ;
};
#line 32 "include/linux/mm_types.h"
union __anonunion____missing_field_name_153 {
   unsigned long counters ;
   struct __anonstruct____missing_field_name_154 __annonCompField40 ;
   unsigned int active ;
};
#line 32 "include/linux/mm_types.h"
struct __anonstruct____missing_field_name_151 {
   union __anonunion____missing_field_name_152 __annonCompField37 ;
   union __anonunion____missing_field_name_153 __annonCompField41 ;
};
#line 32 "include/linux/mm_types.h"
struct __anonstruct____missing_field_name_158 {
   struct page *next ;
   int pages ;
   int pobjects ;
};
#line 32
struct slab;
#line 32 "include/linux/mm_types.h"
struct __anonstruct____missing_field_name_159 {
   compound_page_dtor *compound_dtor ;
   unsigned long compound_order ;
};
#line 32 "include/linux/mm_types.h"
union __anonunion____missing_field_name_157 {
   struct list_head lru ;
   struct __anonstruct____missing_field_name_158 __annonCompField43 ;
   struct slab *slab_page ;
   struct callback_head callback_head ;
   struct __anonstruct____missing_field_name_159 __annonCompField44 ;
   pgtable_t pmd_huge_pte ;
};
#line 32
struct kmem_cache;
#line 32 "include/linux/mm_types.h"
union __anonunion____missing_field_name_160 {
   unsigned long private ;
   spinlock_t *ptl ;
   struct kmem_cache *slab_cache ;
   struct page *first_page ;
};
#line 32 "include/linux/mm_types.h"
struct page {
   unsigned long flags ;
   union __anonunion____missing_field_name_150 __annonCompField36 ;
   struct __anonstruct____missing_field_name_151 __annonCompField42 ;
   union __anonunion____missing_field_name_157 __annonCompField45 ;
   union __anonunion____missing_field_name_160 __annonCompField46 ;
   struct mem_cgroup *mem_cgroup ;
};
#line 181 "include/linux/mm_types.h"
struct page_frag {
   struct page *page ;
   __u32 offset ;
   __u32 size ;
};
#line 266 "include/linux/mm_types.h"
struct __anonstruct_shared_161 {
   struct rb_node rb ;
   unsigned long rb_subtree_last ;
};
#line 266
struct anon_vma;
#line 266
struct vm_operations_struct;
#line 266
struct mempolicy;
#line 266 "include/linux/mm_types.h"
struct vm_area_struct {
   unsigned long vm_start ;
   unsigned long vm_end ;
   struct vm_area_struct *vm_next ;
   struct vm_area_struct *vm_prev ;
   struct rb_node vm_rb ;
   unsigned long rb_subtree_gap ;
   struct mm_struct *vm_mm ;
   pgprot_t vm_page_prot ;
   unsigned long vm_flags ;
   struct __anonstruct_shared_161 shared ;
   struct list_head anon_vma_chain ;
   struct anon_vma *anon_vma ;
   struct vm_operations_struct  const  *vm_ops ;
   unsigned long vm_pgoff ;
   struct file *vm_file ;
   void *vm_private_data ;
   struct mempolicy *vm_policy ;
};
#line 334 "include/linux/mm_types.h"
struct core_thread {
   struct task_struct *task ;
   struct core_thread *next ;
};
#line 340 "include/linux/mm_types.h"
struct core_state {
   atomic_t nr_threads ;
   struct core_thread dumper ;
   struct completion startup ;
};
#line 353 "include/linux/mm_types.h"
struct task_rss_stat {
   int events ;
   int count[3U] ;
};
#line 361 "include/linux/mm_types.h"
struct mm_rss_stat {
   atomic_long_t count[3U] ;
};
#line 366
struct kioctx_table;
#line 367
struct linux_binfmt;
#line 367
struct mmu_notifier_mm;
#line 367 "include/linux/mm_types.h"
struct mm_struct {
   struct vm_area_struct *mmap ;
   struct rb_root mm_rb ;
   u32 vmacache_seqnum ;
   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
                                      unsigned long  , unsigned long  ) ;
   unsigned long mmap_base ;
   unsigned long mmap_legacy_base ;
   unsigned long task_size ;
   unsigned long highest_vm_end ;
   pgd_t *pgd ;
   atomic_t mm_users ;
   atomic_t mm_count ;
   atomic_long_t nr_ptes ;
   atomic_long_t nr_pmds ;
   int map_count ;
   spinlock_t page_table_lock ;
   struct rw_semaphore mmap_sem ;
   struct list_head mmlist ;
   unsigned long hiwater_rss ;
   unsigned long hiwater_vm ;
   unsigned long total_vm ;
   unsigned long locked_vm ;
   unsigned long pinned_vm ;
   unsigned long shared_vm ;
   unsigned long exec_vm ;
   unsigned long stack_vm ;
   unsigned long def_flags ;
   unsigned long start_code ;
   unsigned long end_code ;
   unsigned long start_data ;
   unsigned long end_data ;
   unsigned long start_brk ;
   unsigned long brk ;
   unsigned long start_stack ;
   unsigned long arg_start ;
   unsigned long arg_end ;
   unsigned long env_start ;
   unsigned long env_end ;
   unsigned long saved_auxv[46U] ;
   struct mm_rss_stat rss_stat ;
   struct linux_binfmt *binfmt ;
   cpumask_var_t cpu_vm_mask_var ;
   mm_context_t context ;
   unsigned long flags ;
   struct core_state *core_state ;
   spinlock_t ioctx_lock ;
   struct kioctx_table *ioctx_table ;
   struct task_struct *owner ;
   struct file *exe_file ;
   struct mmu_notifier_mm *mmu_notifier_mm ;
   struct cpumask cpumask_allocation ;
   unsigned long numa_next_scan ;
   unsigned long numa_scan_offset ;
   int numa_scan_seq ;
   bool tlb_flush_pending ;
   struct uprobes_state uprobes_state ;
   void *bd_addr ;
};
#line 15 "include/uapi/linux/elf.h"
typedef __u64 Elf64_Addr;
#line 16 "include/uapi/linux/elf.h"
typedef __u16 Elf64_Half;
#line 20 "include/uapi/linux/elf.h"
typedef __u32 Elf64_Word;
#line 21 "include/uapi/linux/elf.h"
typedef __u64 Elf64_Xword;
#line 190 "include/uapi/linux/elf.h"
struct elf64_sym {
   Elf64_Word st_name ;
   unsigned char st_info ;
   unsigned char st_other ;
   Elf64_Half st_shndx ;
   Elf64_Addr st_value ;
   Elf64_Xword st_size ;
};
#line 198 "include/uapi/linux/elf.h"
typedef struct elf64_sym Elf64_Sym;
#line 53 "include/linux/elf.h"
union __anonunion____missing_field_name_166 {
   unsigned long bitmap[4U] ;
   struct callback_head callback_head ;
};
#line 53 "include/linux/elf.h"
struct idr_layer {
   int prefix ;
   int layer ;
   struct idr_layer *ary[256U] ;
   int count ;
   union __anonunion____missing_field_name_166 __annonCompField47 ;
};
#line 41 "include/linux/idr.h"
struct idr {
   struct idr_layer *hint ;
   struct idr_layer *top ;
   int layers ;
   int cur ;
   spinlock_t lock ;
   int id_free_cnt ;
   struct idr_layer *id_free ;
};
#line 124 "include/linux/idr.h"
struct ida_bitmap {
   long nr_busy ;
   unsigned long bitmap[15U] ;
};
#line 153 "include/linux/idr.h"
struct ida {
   struct idr idr ;
   struct ida_bitmap *free_bitmap ;
};
#line 189
struct kernfs_open_node;
#line 190
struct kernfs_iattrs;
#line 213
struct kernfs_root;
#line 213 "include/linux/idr.h"
struct kernfs_elem_dir {
   unsigned long subdirs ;
   struct rb_root children ;
   struct kernfs_root *root ;
};
#line 85 "include/linux/kernfs.h"
struct kernfs_node;
#line 85 "include/linux/kernfs.h"
struct kernfs_elem_symlink {
   struct kernfs_node *target_kn ;
};
#line 89
struct kernfs_ops;
#line 89 "include/linux/kernfs.h"
struct kernfs_elem_attr {
   struct kernfs_ops  const  *ops ;
   struct kernfs_open_node *open ;
   loff_t size ;
   struct kernfs_node *notify_next ;
};
#line 96 "include/linux/kernfs.h"
union __anonunion____missing_field_name_171 {
   struct kernfs_elem_dir dir ;
   struct kernfs_elem_symlink symlink ;
   struct kernfs_elem_attr attr ;
};
#line 96 "include/linux/kernfs.h"
struct kernfs_node {
   atomic_t count ;
   atomic_t active ;
   struct lockdep_map dep_map ;
   struct kernfs_node *parent ;
   char const   *name ;
   struct rb_node rb ;
   void const   *ns ;
   unsigned int hash ;
   union __anonunion____missing_field_name_171 __annonCompField48 ;
   void *priv ;
   unsigned short flags ;
   umode_t mode ;
   unsigned int ino ;
   struct kernfs_iattrs *iattr ;
};
#line 138 "include/linux/kernfs.h"
struct kernfs_syscall_ops {
   int (*remount_fs)(struct kernfs_root * , int * , char * ) ;
   int (*show_options)(struct seq_file * , struct kernfs_root * ) ;
   int (*mkdir)(struct kernfs_node * , char const   * , umode_t  ) ;
   int (*rmdir)(struct kernfs_node * ) ;
   int (*rename)(struct kernfs_node * , struct kernfs_node * , char const   * ) ;
};
#line 155 "include/linux/kernfs.h"
struct kernfs_root {
   struct kernfs_node *kn ;
   unsigned int flags ;
   struct ida ino_ida ;
   struct kernfs_syscall_ops *syscall_ops ;
   struct list_head supers ;
   wait_queue_head_t deactivate_waitq ;
};
#line 171 "include/linux/kernfs.h"
struct kernfs_open_file {
   struct kernfs_node *kn ;
   struct file *file ;
   void *priv ;
   struct mutex mutex ;
   int event ;
   struct list_head list ;
   char *prealloc_buf ;
   size_t atomic_write_len ;
   bool mmapped ;
   struct vm_operations_struct  const  *vm_ops ;
};
#line 188 "include/linux/kernfs.h"
struct kernfs_ops {
   int (*seq_show)(struct seq_file * , void * ) ;
   void *(*seq_start)(struct seq_file * , loff_t * ) ;
   void *(*seq_next)(struct seq_file * , void * , loff_t * ) ;
   void (*seq_stop)(struct seq_file * , void * ) ;
   ssize_t (*read)(struct kernfs_open_file * , char * , size_t  , loff_t  ) ;
   size_t atomic_write_len ;
   bool prealloc ;
   ssize_t (*write)(struct kernfs_open_file * , char * , size_t  , loff_t  ) ;
   int (*mmap)(struct kernfs_open_file * , struct vm_area_struct * ) ;
   struct lock_class_key lockdep_key ;
};
#line 477
struct sock;
#line 478
struct kobject;
#line 479
enum kobj_ns_type {
    KOBJ_NS_TYPE_NONE = 0,
    KOBJ_NS_TYPE_NET = 1,
    KOBJ_NS_TYPES = 2
} ;
#line 485 "include/linux/kernfs.h"
struct kobj_ns_type_operations {
   enum kobj_ns_type type ;
   bool (*current_may_mount)(void) ;
   void *(*grab_current_ns)(void) ;
   void const   *(*netlink_ns)(struct sock * ) ;
   void const   *(*initial_ns)(void) ;
   void (*drop_ns)(void * ) ;
};
#line 59 "include/linux/kobject_ns.h"
struct bin_attribute;
#line 60 "include/linux/kobject_ns.h"
struct attribute {
   char const   *name ;
   umode_t mode ;
   bool ignore_lockdep ;
   struct lock_class_key *key ;
   struct lock_class_key skey ;
};
#line 37 "include/linux/sysfs.h"
struct attribute_group {
   char const   *name ;
   umode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
   struct attribute **attrs ;
   struct bin_attribute **bin_attrs ;
};
#line 82 "include/linux/sysfs.h"
struct bin_attribute {
   struct attribute attr ;
   size_t size ;
   void *private ;
   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
                   loff_t  , size_t  ) ;
   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
                    loff_t  , size_t  ) ;
   int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
};
#line 155 "include/linux/sysfs.h"
struct sysfs_ops {
   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
};
#line 509 "include/linux/sysfs.h"
struct kref {
   atomic_t refcount ;
};
#line 52 "include/linux/kobject.h"
struct kset;
#line 52
struct kobj_type;
#line 52 "include/linux/kobject.h"
struct kobject {
   char const   *name ;
   struct list_head entry ;
   struct kobject *parent ;
   struct kset *kset ;
   struct kobj_type *ktype ;
   struct kernfs_node *sd ;
   struct kref kref ;
   struct delayed_work release ;
   unsigned char state_initialized : 1 ;
   unsigned char state_in_sysfs : 1 ;
   unsigned char state_add_uevent_sent : 1 ;
   unsigned char state_remove_uevent_sent : 1 ;
   unsigned char uevent_suppress : 1 ;
};
#line 114 "include/linux/kobject.h"
struct kobj_type {
   void (*release)(struct kobject * ) ;
   struct sysfs_ops  const  *sysfs_ops ;
   struct attribute **default_attrs ;
   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject * ) ;
   void const   *(*namespace)(struct kobject * ) ;
};
#line 122 "include/linux/kobject.h"
struct kobj_uevent_env {
   char *argv[3U] ;
   char *envp[32U] ;
   int envp_idx ;
   char buf[2048U] ;
   int buflen ;
};
#line 130 "include/linux/kobject.h"
struct kset_uevent_ops {
   int (* const  filter)(struct kset * , struct kobject * ) ;
   char const   *(* const  name)(struct kset * , struct kobject * ) ;
   int (* const  uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
};
#line 147 "include/linux/kobject.h"
struct kset {
   struct list_head list ;
   spinlock_t list_lock ;
   struct kobject kobj ;
   struct kset_uevent_ops  const  *uevent_ops ;
};
#line 222
struct kernel_param;
#line 227 "include/linux/kobject.h"
struct kernel_param_ops {
   unsigned int flags ;
   int (*set)(char const   * , struct kernel_param  const  * ) ;
   int (*get)(char * , struct kernel_param  const  * ) ;
   void (*free)(void * ) ;
};
#line 62 "include/linux/moduleparam.h"
struct kparam_string;
#line 62
struct kparam_array;
#line 62 "include/linux/moduleparam.h"
union __anonunion____missing_field_name_172 {
   void *arg ;
   struct kparam_string  const  *str ;
   struct kparam_array  const  *arr ;
};
#line 62 "include/linux/moduleparam.h"
struct kernel_param {
   char const   *name ;
   struct module *mod ;
   struct kernel_param_ops  const  *ops ;
   u16 const   perm ;
   s8 level ;
   u8 flags ;
   union __anonunion____missing_field_name_172 __annonCompField49 ;
};
#line 83 "include/linux/moduleparam.h"
struct kparam_string {
   unsigned int maxlen ;
   char *string ;
};
#line 89 "include/linux/moduleparam.h"
struct kparam_array {
   unsigned int max ;
   unsigned int elemsize ;
   unsigned int *num ;
   struct kernel_param_ops  const  *ops ;
   void *elem ;
};
#line 469 "include/linux/moduleparam.h"
struct latch_tree_node {
   struct rb_node node[2U] ;
};
#line 211 "include/linux/rbtree_latch.h"
struct mod_arch_specific {

};
#line 37 "include/linux/module.h"
struct module_param_attrs;
#line 37 "include/linux/module.h"
struct module_kobject {
   struct kobject kobj ;
   struct module *mod ;
   struct kobject *drivers_dir ;
   struct module_param_attrs *mp ;
   struct completion *kobj_completion ;
};
#line 47 "include/linux/module.h"
struct module_attribute {
   struct attribute attr ;
   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const   * ,
                    size_t  ) ;
   void (*setup)(struct module * , char const   * ) ;
   int (*test)(struct module * ) ;
   void (*free)(struct module * ) ;
};
#line 73
struct exception_table_entry;
#line 206
enum module_state {
    MODULE_STATE_LIVE = 0,
    MODULE_STATE_COMING = 1,
    MODULE_STATE_GOING = 2,
    MODULE_STATE_UNFORMED = 3
} ;
#line 213 "include/linux/module.h"
struct mod_tree_node {
   struct module *mod ;
   struct latch_tree_node node ;
};
#line 220
struct module_sect_attrs;
#line 220
struct module_notes_attrs;
#line 220
struct tracepoint;
#line 220
struct trace_event_call;
#line 220
struct trace_enum_map;
#line 220 "include/linux/module.h"
struct module {
   enum module_state state ;
   struct list_head list ;
   char name[56U] ;
   struct module_kobject mkobj ;
   struct module_attribute *modinfo_attrs ;
   char const   *version ;
   char const   *srcversion ;
   struct kobject *holders_dir ;
   struct kernel_symbol  const  *syms ;
   unsigned long const   *crcs ;
   unsigned int num_syms ;
   struct mutex param_lock ;
   struct kernel_param *kp ;
   unsigned int num_kp ;
   unsigned int num_gpl_syms ;
   struct kernel_symbol  const  *gpl_syms ;
   unsigned long const   *gpl_crcs ;
   struct kernel_symbol  const  *unused_syms ;
   unsigned long const   *unused_crcs ;
   unsigned int num_unused_syms ;
   unsigned int num_unused_gpl_syms ;
   struct kernel_symbol  const  *unused_gpl_syms ;
   unsigned long const   *unused_gpl_crcs ;
   bool sig_ok ;
   bool async_probe_requested ;
   struct kernel_symbol  const  *gpl_future_syms ;
   unsigned long const   *gpl_future_crcs ;
   unsigned int num_gpl_future_syms ;
   unsigned int num_exentries ;
   struct exception_table_entry *extable ;
   int (*init)(void) ;
   void *module_init ;
   void *module_core ;
   unsigned int init_size ;
   unsigned int core_size ;
   unsigned int init_text_size ;
   unsigned int core_text_size ;
   struct mod_tree_node mtn_core ;
   struct mod_tree_node mtn_init ;
   unsigned int init_ro_size ;
   unsigned int core_ro_size ;
   struct mod_arch_specific arch ;
   unsigned int taints ;
   unsigned int num_bugs ;
   struct list_head bug_list ;
   struct bug_entry *bug_table ;
   Elf64_Sym *symtab ;
   Elf64_Sym *core_symtab ;
   unsigned int num_symtab ;
   unsigned int core_num_syms ;
   char *strtab ;
   char *core_strtab ;
   struct module_sect_attrs *sect_attrs ;
   struct module_notes_attrs *notes_attrs ;
   char *args ;
   void *percpu ;
   unsigned int percpu_size ;
   unsigned int num_tracepoints ;
   struct tracepoint * const  *tracepoints_ptrs ;
   unsigned int num_trace_bprintk_fmt ;
   char const   **trace_bprintk_fmt_start ;
   struct trace_event_call **trace_events ;
   unsigned int num_trace_events ;
   struct trace_enum_map **trace_enums ;
   unsigned int num_trace_enums ;
   unsigned int num_ftrace_callsites ;
   unsigned long *ftrace_callsites ;
   bool klp_alive ;
   struct list_head source_list ;
   struct list_head target_list ;
   void (*exit)(void) ;
   atomic_t refcnt ;
   ctor_fn_t (**ctors)(void) ;
   unsigned int num_ctors ;
};
#line 22 "include/linux/capability.h"
struct kernel_cap_struct {
   __u32 cap[2U] ;
};
#line 25 "include/linux/capability.h"
typedef struct kernel_cap_struct kernel_cap_t;
#line 84 "include/linux/plist.h"
struct plist_node {
   int prio ;
   struct list_head prio_list ;
   struct list_head node_list ;
};
#line 4 "include/asm-generic/cputime_jiffies.h"
typedef unsigned long cputime_t;
#line 25 "include/linux/sem.h"
struct sem_undo_list;
#line 25 "include/linux/sem.h"
struct sysv_sem {
   struct sem_undo_list *undo_list ;
};
#line 78 "include/uapi/linux/shm.h"
struct user_struct;
#line 26 "include/linux/shm.h"
struct sysv_shm {
   struct list_head shm_clist ;
};
#line 24 "./arch/x86/include/asm/signal.h"
struct __anonstruct_sigset_t_180 {
   unsigned long sig[1U] ;
};
#line 24 "./arch/x86/include/asm/signal.h"
typedef struct __anonstruct_sigset_t_180 sigset_t;
#line 25
struct siginfo;
#line 17 "./include/uapi/asm-generic/signal-defs.h"
typedef void __signalfn_t(int  );
#line 18 "./include/uapi/asm-generic/signal-defs.h"
typedef __signalfn_t *__sighandler_t;
#line 20 "./include/uapi/asm-generic/signal-defs.h"
typedef void __restorefn_t(void);
#line 21 "./include/uapi/asm-generic/signal-defs.h"
typedef __restorefn_t *__sigrestore_t;
#line 34 "./arch/x86/include/asm/signal.h"
union sigval {
   int sival_int ;
   void *sival_ptr ;
};
#line 10 "include/uapi/asm-generic/siginfo.h"
typedef union sigval sigval_t;
#line 11 "include/uapi/asm-generic/siginfo.h"
struct __anonstruct__kill_182 {
   __kernel_pid_t _pid ;
   __kernel_uid32_t _uid ;
};
#line 11 "include/uapi/asm-generic/siginfo.h"
struct __anonstruct__timer_183 {
   __kernel_timer_t _tid ;
   int _overrun ;
   char _pad[0U] ;
   sigval_t _sigval ;
   int _sys_private ;
};
#line 11 "include/uapi/asm-generic/siginfo.h"
struct __anonstruct__rt_184 {
   __kernel_pid_t _pid ;
   __kernel_uid32_t _uid ;
   sigval_t _sigval ;
};
#line 11 "include/uapi/asm-generic/siginfo.h"
struct __anonstruct__sigchld_185 {
   __kernel_pid_t _pid ;
   __kernel_uid32_t _uid ;
   int _status ;
   __kernel_clock_t _utime ;
   __kernel_clock_t _stime ;
};
#line 11 "include/uapi/asm-generic/siginfo.h"
struct __anonstruct__addr_bnd_187 {
   void *_lower ;
   void *_upper ;
};
#line 11 "include/uapi/asm-generic/siginfo.h"
struct __anonstruct__sigfault_186 {
   void *_addr ;
   short _addr_lsb ;
   struct __anonstruct__addr_bnd_187 _addr_bnd ;
};
#line 11 "include/uapi/asm-generic/siginfo.h"
struct __anonstruct__sigpoll_188 {
   long _band ;
   int _fd ;
};
#line 11 "include/uapi/asm-generic/siginfo.h"
struct __anonstruct__sigsys_189 {
   void *_call_addr ;
   int _syscall ;
   unsigned int _arch ;
};
#line 11 "include/uapi/asm-generic/siginfo.h"
union __anonunion__sifields_181 {
   int _pad[28U] ;
   struct __anonstruct__kill_182 _kill ;
   struct __anonstruct__timer_183 _timer ;
   struct __anonstruct__rt_184 _rt ;
   struct __anonstruct__sigchld_185 _sigchld ;
   struct __anonstruct__sigfault_186 _sigfault ;
   struct __anonstruct__sigpoll_188 _sigpoll ;
   struct __anonstruct__sigsys_189 _sigsys ;
};
#line 11 "include/uapi/asm-generic/siginfo.h"
struct siginfo {
   int si_signo ;
   int si_errno ;
   int si_code ;
   union __anonunion__sifields_181 _sifields ;
};
#line 113 "include/uapi/asm-generic/siginfo.h"
typedef struct siginfo siginfo_t;
#line 22 "include/linux/signal.h"
struct sigpending {
   struct list_head list ;
   sigset_t signal ;
};
#line 243 "include/linux/signal.h"
struct sigaction {
   __sighandler_t sa_handler ;
   unsigned long sa_flags ;
   __sigrestore_t sa_restorer ;
   sigset_t sa_mask ;
};
#line 257 "include/linux/signal.h"
struct k_sigaction {
   struct sigaction sa ;
};
#line 450
struct pid_namespace;
#line 450 "include/linux/signal.h"
struct upid {
   int nr ;
   struct pid_namespace *ns ;
   struct hlist_node pid_chain ;
};
#line 56 "include/linux/pid.h"
struct pid {
   atomic_t count ;
   unsigned int level ;
   struct hlist_head tasks[3U] ;
   struct callback_head rcu ;
   struct upid numbers[1U] ;
};
#line 68 "include/linux/pid.h"
struct pid_link {
   struct hlist_node node ;
   struct pid *pid ;
};
#line 53 "include/uapi/linux/seccomp.h"
struct seccomp_filter;
#line 54 "include/uapi/linux/seccomp.h"
struct seccomp {
   int mode ;
   struct seccomp_filter *filter ;
};
#line 40 "include/linux/rtmutex.h"
struct rt_mutex_waiter;
#line 41 "include/uapi/linux/resource.h"
struct rlimit {
   __kernel_ulong_t rlim_cur ;
   __kernel_ulong_t rlim_max ;
};
#line 11 "include/linux/resource.h"
struct timerqueue_node {
   struct rb_node node ;
   ktime_t expires ;
};
#line 12 "include/linux/timerqueue.h"
struct timerqueue_head {
   struct rb_root head ;
   struct timerqueue_node *next ;
};
#line 50
struct hrtimer_clock_base;
#line 51
struct hrtimer_cpu_base;
#line 60
enum hrtimer_restart {
    HRTIMER_NORESTART = 0,
    HRTIMER_RESTART = 1
} ;
#line 65 "include/linux/timerqueue.h"
struct hrtimer {
   struct timerqueue_node node ;
   ktime_t _softexpires ;
   enum hrtimer_restart (*function)(struct hrtimer * ) ;
   struct hrtimer_clock_base *base ;
   unsigned long state ;
   int start_pid ;
   void *start_site ;
   char start_comm[16U] ;
};
#line 123 "include/linux/hrtimer.h"
struct hrtimer_clock_base {
   struct hrtimer_cpu_base *cpu_base ;
   int index ;
   clockid_t clockid ;
   struct timerqueue_head active ;
   ktime_t (*get_time)(void) ;
   ktime_t offset ;
};
#line 156 "include/linux/hrtimer.h"
struct hrtimer_cpu_base {
   raw_spinlock_t lock ;
   seqcount_t seq ;
   struct hrtimer *running ;
   unsigned int cpu ;
   unsigned int active_bases ;
   unsigned int clock_was_set_seq ;
   bool migration_enabled ;
   bool nohz_active ;
   unsigned char in_hrtirq : 1 ;
   unsigned char hres_active : 1 ;
   unsigned char hang_detected : 1 ;
   ktime_t expires_next ;
   struct hrtimer *next_timer ;
   unsigned int nr_events ;
   unsigned int nr_retries ;
   unsigned int nr_hangs ;
   unsigned int max_hang_time ;
   struct hrtimer_clock_base clock_base[4U] ;
};
#line 466 "include/linux/hrtimer.h"
struct task_io_accounting {
   u64 rchar ;
   u64 wchar ;
   u64 syscr ;
   u64 syscw ;
   u64 read_bytes ;
   u64 write_bytes ;
   u64 cancelled_write_bytes ;
};
#line 45 "include/linux/task_io_accounting.h"
struct latency_record {
   unsigned long backtrace[12U] ;
   unsigned int count ;
   unsigned long time ;
   unsigned long max ;
};
#line 39 "include/linux/latencytop.h"
struct assoc_array_ptr;
#line 39 "include/linux/latencytop.h"
struct assoc_array {
   struct assoc_array_ptr *root ;
   unsigned long nr_leaves_on_tree ;
};
#line 31 "include/linux/key.h"
typedef int32_t key_serial_t;
#line 34 "include/linux/key.h"
typedef uint32_t key_perm_t;
#line 35
struct key;
#line 36
struct signal_struct;
#line 37
struct key_type;
#line 41 "include/linux/key.h"
struct keyring_index_key {
   struct key_type *type ;
   char const   *description ;
   size_t desc_len ;
};
#line 123 "include/linux/key.h"
union __anonunion____missing_field_name_196 {
   struct list_head graveyard_link ;
   struct rb_node serial_node ;
};
#line 123
struct key_user;
#line 123 "include/linux/key.h"
union __anonunion____missing_field_name_197 {
   time_t expiry ;
   time_t revoked_at ;
};
#line 123 "include/linux/key.h"
struct __anonstruct____missing_field_name_199 {
   struct key_type *type ;
   char *description ;
};
#line 123 "include/linux/key.h"
union __anonunion____missing_field_name_198 {
   struct keyring_index_key index_key ;
   struct __anonstruct____missing_field_name_199 __annonCompField52 ;
};
#line 123 "include/linux/key.h"
union __anonunion_type_data_200 {
   struct list_head link ;
   unsigned long x[2U] ;
   void *p[2U] ;
   int reject_error ;
};
#line 123 "include/linux/key.h"
union __anonunion_payload_202 {
   unsigned long value ;
   void *rcudata ;
   void *data ;
   void *data2[2U] ;
};
#line 123 "include/linux/key.h"
union __anonunion____missing_field_name_201 {
   union __anonunion_payload_202 payload ;
   struct assoc_array keys ;
};
#line 123 "include/linux/key.h"
struct key {
   atomic_t usage ;
   key_serial_t serial ;
   union __anonunion____missing_field_name_196 __annonCompField50 ;
   struct rw_semaphore sem ;
   struct key_user *user ;
   void *security ;
   union __anonunion____missing_field_name_197 __annonCompField51 ;
   time_t last_used_at ;
   kuid_t uid ;
   kgid_t gid ;
   key_perm_t perm ;
   unsigned short quotalen ;
   unsigned short datalen ;
   unsigned long flags ;
   union __anonunion____missing_field_name_198 __annonCompField53 ;
   union __anonunion_type_data_200 type_data ;
   union __anonunion____missing_field_name_201 __annonCompField54 ;
};
#line 358
struct audit_context;
#line 27 "include/linux/selinux.h"
struct group_info {
   atomic_t usage ;
   int ngroups ;
   int nblocks ;
   kgid_t small_block[32U] ;
   kgid_t *blocks[0U] ;
};
#line 90 "include/linux/cred.h"
struct cred {
   atomic_t usage ;
   atomic_t subscribers ;
   void *put_addr ;
   unsigned int magic ;
   kuid_t uid ;
   kgid_t gid ;
   kuid_t suid ;
   kgid_t sgid ;
   kuid_t euid ;
   kgid_t egid ;
   kuid_t fsuid ;
   kgid_t fsgid ;
   unsigned int securebits ;
   kernel_cap_t cap_inheritable ;
   kernel_cap_t cap_permitted ;
   kernel_cap_t cap_effective ;
   kernel_cap_t cap_bset ;
   unsigned char jit_keyring ;
   struct key *session_keyring ;
   struct key *process_keyring ;
   struct key *thread_keyring ;
   struct key *request_key_auth ;
   void *security ;
   struct user_struct *user ;
   struct user_namespace *user_ns ;
   struct group_info *group_info ;
   struct callback_head rcu ;
};
#line 369
struct percpu_ref;
#line 55 "include/linux/percpu-refcount.h"
typedef void percpu_ref_func_t(struct percpu_ref * );
#line 68 "include/linux/percpu-refcount.h"
struct percpu_ref {
   atomic_long_t count ;
   unsigned long percpu_count_ptr ;
   percpu_ref_func_t *release ;
   percpu_ref_func_t *confirm_switch ;
   bool force_atomic ;
   struct callback_head rcu ;
};
#line 27 "include/linux/percpu-rwsem.h"
struct cgroup;
#line 28
struct cgroup_root;
#line 29
struct cgroup_subsys;
#line 30
struct cgroup_taskset;
#line 72 "include/linux/percpu-rwsem.h"
struct cgroup_subsys_state {
   struct cgroup *cgroup ;
   struct cgroup_subsys *ss ;
   struct percpu_ref refcnt ;
   struct cgroup_subsys_state *parent ;
   struct list_head sibling ;
   struct list_head children ;
   int id ;
   unsigned int flags ;
   u64 serial_nr ;
   struct callback_head callback_head ;
   struct work_struct destroy_work ;
};
#line 124 "include/linux/cgroup-defs.h"
struct css_set {
   atomic_t refcount ;
   struct hlist_node hlist ;
   struct list_head tasks ;
   struct list_head mg_tasks ;
   struct list_head cgrp_links ;
   struct cgroup *dfl_cgrp ;
   struct cgroup_subsys_state *subsys[12U] ;
   struct list_head mg_preload_node ;
   struct list_head mg_node ;
   struct cgroup *mg_src_cgrp ;
   struct css_set *mg_dst_cset ;
   struct list_head e_cset_node[12U] ;
   struct callback_head callback_head ;
};
#line 197 "include/linux/cgroup-defs.h"
struct cgroup {
   struct cgroup_subsys_state self ;
   unsigned long flags ;
   int id ;
   int populated_cnt ;
   struct kernfs_node *kn ;
   struct kernfs_node *procs_kn ;
   struct kernfs_node *populated_kn ;
   unsigned int subtree_control ;
   unsigned int child_subsys_mask ;
   struct cgroup_subsys_state *subsys[12U] ;
   struct cgroup_root *root ;
   struct list_head cset_links ;
   struct list_head e_csets[12U] ;
   struct list_head pidlists ;
   struct mutex pidlist_mutex ;
   wait_queue_head_t offline_waitq ;
   struct work_struct release_agent_work ;
};
#line 270 "include/linux/cgroup-defs.h"
struct cgroup_root {
   struct kernfs_root *kf_root ;
   unsigned int subsys_mask ;
   int hierarchy_id ;
   struct cgroup cgrp ;
   atomic_t nr_cgrps ;
   struct list_head root_list ;
   unsigned int flags ;
   struct idr cgroup_idr ;
   char release_agent_path[4096U] ;
   char name[64U] ;
};
#line 306 "include/linux/cgroup-defs.h"
struct cftype {
   char name[64U] ;
   int private ;
   umode_t mode ;
   size_t max_write_len ;
   unsigned int flags ;
   struct cgroup_subsys *ss ;
   struct list_head node ;
   struct kernfs_ops *kf_ops ;
   u64 (*read_u64)(struct cgroup_subsys_state * , struct cftype * ) ;
   s64 (*read_s64)(struct cgroup_subsys_state * , struct cftype * ) ;
   int (*seq_show)(struct seq_file * , void * ) ;
   void *(*seq_start)(struct seq_file * , loff_t * ) ;
   void *(*seq_next)(struct seq_file * , void * , loff_t * ) ;
   void (*seq_stop)(struct seq_file * , void * ) ;
   int (*write_u64)(struct cgroup_subsys_state * , struct cftype * , u64  ) ;
   int (*write_s64)(struct cgroup_subsys_state * , struct cftype * , s64  ) ;
   ssize_t (*write)(struct kernfs_open_file * , char * , size_t  , loff_t  ) ;
   struct lock_class_key lockdep_key ;
};
#line 388 "include/linux/cgroup-defs.h"
struct cgroup_subsys {
   struct cgroup_subsys_state *(*css_alloc)(struct cgroup_subsys_state * ) ;
   int (*css_online)(struct cgroup_subsys_state * ) ;
   void (*css_offline)(struct cgroup_subsys_state * ) ;
   void (*css_released)(struct cgroup_subsys_state * ) ;
   void (*css_free)(struct cgroup_subsys_state * ) ;
   void (*css_reset)(struct cgroup_subsys_state * ) ;
   void (*css_e_css_changed)(struct cgroup_subsys_state * ) ;
   int (*can_attach)(struct cgroup_subsys_state * , struct cgroup_taskset * ) ;
   void (*cancel_attach)(struct cgroup_subsys_state * , struct cgroup_taskset * ) ;
   void (*attach)(struct cgroup_subsys_state * , struct cgroup_taskset * ) ;
   void (*fork)(struct task_struct * ) ;
   void (*exit)(struct cgroup_subsys_state * , struct cgroup_subsys_state * , struct task_struct * ) ;
   void (*bind)(struct cgroup_subsys_state * ) ;
   int disabled ;
   int early_init ;
   bool broken_hierarchy ;
   bool warned_broken_hierarchy ;
   int id ;
   char const   *name ;
   struct cgroup_root *root ;
   struct idr css_idr ;
   struct list_head cfts ;
   struct cftype *dfl_cftypes ;
   struct cftype *legacy_cftypes ;
   unsigned int depends_on ;
};
#line 128 "include/linux/sched.h"
struct futex_pi_state;
#line 129
struct robust_list_head;
#line 130
struct bio_list;
#line 131
struct fs_struct;
#line 132
struct perf_event_context;
#line 133
struct blk_plug;
#line 135
struct nameidata;
#line 188
struct cfs_rq;
#line 189
struct task_group;
#line 477 "include/linux/sched.h"
struct sighand_struct {
   atomic_t count ;
   struct k_sigaction action[64U] ;
   spinlock_t siglock ;
   wait_queue_head_t signalfd_wqh ;
};
#line 516 "include/linux/sched.h"
struct pacct_struct {
   int ac_flag ;
   long ac_exitcode ;
   unsigned long ac_mem ;
   cputime_t ac_utime ;
   cputime_t ac_stime ;
   unsigned long ac_minflt ;
   unsigned long ac_majflt ;
};
#line 524 "include/linux/sched.h"
struct cpu_itimer {
   cputime_t expires ;
   cputime_t incr ;
   u32 error ;
   u32 incr_error ;
};
#line 531 "include/linux/sched.h"
struct cputime {
   cputime_t utime ;
   cputime_t stime ;
};
#line 543 "include/linux/sched.h"
struct task_cputime {
   cputime_t utime ;
   cputime_t stime ;
   unsigned long long sum_exec_runtime ;
};
#line 563 "include/linux/sched.h"
struct task_cputime_atomic {
   atomic64_t utime ;
   atomic64_t stime ;
   atomic64_t sum_exec_runtime ;
};
#line 584 "include/linux/sched.h"
struct thread_group_cputimer {
   struct task_cputime_atomic cputime_atomic ;
   int running ;
};
#line 620
struct autogroup;
#line 621
struct tty_struct;
#line 621
struct taskstats;
#line 621
struct tty_audit_buf;
#line 621 "include/linux/sched.h"
struct signal_struct {
   atomic_t sigcnt ;
   atomic_t live ;
   int nr_threads ;
   struct list_head thread_head ;
   wait_queue_head_t wait_chldexit ;
   struct task_struct *curr_target ;
   struct sigpending shared_pending ;
   int group_exit_code ;
   int notify_count ;
   struct task_struct *group_exit_task ;
   int group_stop_count ;
   unsigned int flags ;
   unsigned char is_child_subreaper : 1 ;
   unsigned char has_child_subreaper : 1 ;
   int posix_timer_id ;
   struct list_head posix_timers ;
   struct hrtimer real_timer ;
   struct pid *leader_pid ;
   ktime_t it_real_incr ;
   struct cpu_itimer it[2U] ;
   struct thread_group_cputimer cputimer ;
   struct task_cputime cputime_expires ;
   struct list_head cpu_timers[3U] ;
   struct pid *tty_old_pgrp ;
   int leader ;
   struct tty_struct *tty ;
   struct autogroup *autogroup ;
   seqlock_t stats_lock ;
   cputime_t utime ;
   cputime_t stime ;
   cputime_t cutime ;
   cputime_t cstime ;
   cputime_t gtime ;
   cputime_t cgtime ;
   struct cputime prev_cputime ;
   unsigned long nvcsw ;
   unsigned long nivcsw ;
   unsigned long cnvcsw ;
   unsigned long cnivcsw ;
   unsigned long min_flt ;
   unsigned long maj_flt ;
   unsigned long cmin_flt ;
   unsigned long cmaj_flt ;
   unsigned long inblock ;
   unsigned long oublock ;
   unsigned long cinblock ;
   unsigned long coublock ;
   unsigned long maxrss ;
   unsigned long cmaxrss ;
   struct task_io_accounting ioac ;
   unsigned long long sum_sched_runtime ;
   struct rlimit rlim[16U] ;
   struct pacct_struct pacct ;
   struct taskstats *stats ;
   unsigned int audit_tty ;
   unsigned int audit_tty_log_passwd ;
   struct tty_audit_buf *tty_audit_buf ;
   oom_flags_t oom_flags ;
   short oom_score_adj ;
   short oom_score_adj_min ;
   struct mutex cred_guard_mutex ;
};
#line 790 "include/linux/sched.h"
struct user_struct {
   atomic_t __count ;
   atomic_t processes ;
   atomic_t sigpending ;
   atomic_t inotify_watches ;
   atomic_t inotify_devs ;
   atomic_t fanotify_listeners ;
   atomic_long_t epoll_watches ;
   unsigned long mq_bytes ;
   unsigned long locked_shm ;
   struct key *uid_keyring ;
   struct key *session_keyring ;
   struct hlist_node uidhash_node ;
   kuid_t uid ;
   atomic_long_t locked_vm ;
};
#line 833
struct backing_dev_info;
#line 834
struct reclaim_state;
#line 835 "include/linux/sched.h"
struct sched_info {
   unsigned long pcount ;
   unsigned long long run_delay ;
   unsigned long long last_arrival ;
   unsigned long long last_queued ;
};
#line 849 "include/linux/sched.h"
struct task_delay_info {
   spinlock_t lock ;
   unsigned int flags ;
   u64 blkio_start ;
   u64 blkio_delay ;
   u64 swapin_delay ;
   u32 blkio_count ;
   u32 swapin_count ;
   u64 freepages_start ;
   u64 freepages_delay ;
   u32 freepages_count ;
};
#line 897 "include/linux/sched.h"
struct wake_q_node {
   struct wake_q_node *next ;
};
#line 1126
struct io_context;
#line 1160
struct pipe_inode_info;
#line 1162 "include/linux/sched.h"
struct load_weight {
   unsigned long weight ;
   u32 inv_weight ;
};
#line 1169 "include/linux/sched.h"
struct sched_avg {
   u64 last_runnable_update ;
   s64 decay_count ;
   unsigned long load_avg_contrib ;
   unsigned long utilization_avg_contrib ;
   u32 runnable_avg_sum ;
   u32 avg_period ;
   u32 running_avg_sum ;
};
#line 1194 "include/linux/sched.h"
struct sched_statistics {
   u64 wait_start ;
   u64 wait_max ;
   u64 wait_count ;
   u64 wait_sum ;
   u64 iowait_count ;
   u64 iowait_sum ;
   u64 sleep_start ;
   u64 sleep_max ;
   s64 sum_sleep_runtime ;
   u64 block_start ;
   u64 block_max ;
   u64 exec_max ;
   u64 slice_max ;
   u64 nr_migrations_cold ;
   u64 nr_failed_migrations_affine ;
   u64 nr_failed_migrations_running ;
   u64 nr_failed_migrations_hot ;
   u64 nr_forced_migrations ;
   u64 nr_wakeups ;
   u64 nr_wakeups_sync ;
   u64 nr_wakeups_migrate ;
   u64 nr_wakeups_local ;
   u64 nr_wakeups_remote ;
   u64 nr_wakeups_affine ;
   u64 nr_wakeups_affine_attempts ;
   u64 nr_wakeups_passive ;
   u64 nr_wakeups_idle ;
};
#line 1229 "include/linux/sched.h"
struct sched_entity {
   struct load_weight load ;
   struct rb_node run_node ;
   struct list_head group_node ;
   unsigned int on_rq ;
   u64 exec_start ;
   u64 sum_exec_runtime ;
   u64 vruntime ;
   u64 prev_sum_exec_runtime ;
   u64 nr_migrations ;
   struct sched_statistics statistics ;
   int depth ;
   struct sched_entity *parent ;
   struct cfs_rq *cfs_rq ;
   struct cfs_rq *my_q ;
   struct sched_avg avg ;
};
#line 1261
struct rt_rq;
#line 1261 "include/linux/sched.h"
struct sched_rt_entity {
   struct list_head run_list ;
   unsigned long timeout ;
   unsigned long watchdog_stamp ;
   unsigned int time_slice ;
   struct sched_rt_entity *back ;
   struct sched_rt_entity *parent ;
   struct rt_rq *rt_rq ;
   struct rt_rq *my_q ;
};
#line 1277 "include/linux/sched.h"
struct sched_dl_entity {
   struct rb_node rb_node ;
   u64 dl_runtime ;
   u64 dl_deadline ;
   u64 dl_period ;
   u64 dl_bw ;
   s64 runtime ;
   u64 deadline ;
   unsigned int flags ;
   int dl_throttled ;
   int dl_new ;
   int dl_boosted ;
   int dl_yielded ;
   struct hrtimer dl_timer ;
};
#line 1343 "include/linux/sched.h"
struct memcg_oom_info {
   struct mem_cgroup *memcg ;
   gfp_t gfp_mask ;
   int order ;
   unsigned char may_oom : 1 ;
};
#line 1769
struct sched_class;
#line 1769
struct files_struct;
#line 1769
struct compat_robust_list_head;
#line 1769
struct numa_group;
#line 1769
struct ftrace_ret_stack;
#line 1769 "include/linux/sched.h"
struct task_struct {
   long volatile   state ;
   void *stack ;
   atomic_t usage ;
   unsigned int flags ;
   unsigned int ptrace ;
   struct llist_node wake_entry ;
   int on_cpu ;
   struct task_struct *last_wakee ;
   unsigned long wakee_flips ;
   unsigned long wakee_flip_decay_ts ;
   int wake_cpu ;
   int on_rq ;
   int prio ;
   int static_prio ;
   int normal_prio ;
   unsigned int rt_priority ;
   struct sched_class  const  *sched_class ;
   struct sched_entity se ;
   struct sched_rt_entity rt ;
   struct task_group *sched_task_group ;
   struct sched_dl_entity dl ;
   struct hlist_head preempt_notifiers ;
   unsigned int btrace_seq ;
   unsigned int policy ;
   int nr_cpus_allowed ;
   cpumask_t cpus_allowed ;
   unsigned long rcu_tasks_nvcsw ;
   bool rcu_tasks_holdout ;
   struct list_head rcu_tasks_holdout_list ;
   int rcu_tasks_idle_cpu ;
   struct sched_info sched_info ;
   struct list_head tasks ;
   struct plist_node pushable_tasks ;
   struct rb_node pushable_dl_tasks ;
   struct mm_struct *mm ;
   struct mm_struct *active_mm ;
   u32 vmacache_seqnum ;
   struct vm_area_struct *vmacache[4U] ;
   struct task_rss_stat rss_stat ;
   int exit_state ;
   int exit_code ;
   int exit_signal ;
   int pdeath_signal ;
   unsigned long jobctl ;
   unsigned int personality ;
   unsigned char in_execve : 1 ;
   unsigned char in_iowait : 1 ;
   unsigned char sched_reset_on_fork : 1 ;
   unsigned char sched_contributes_to_load : 1 ;
   unsigned char sched_migrated : 1 ;
   unsigned char memcg_kmem_skip_account : 1 ;
   unsigned char brk_randomized : 1 ;
   unsigned long atomic_flags ;
   struct restart_block restart_block ;
   pid_t pid ;
   pid_t tgid ;
   struct task_struct *real_parent ;
   struct task_struct *parent ;
   struct list_head children ;
   struct list_head sibling ;
   struct task_struct *group_leader ;
   struct list_head ptraced ;
   struct list_head ptrace_entry ;
   struct pid_link pids[3U] ;
   struct list_head thread_group ;
   struct list_head thread_node ;
   struct completion *vfork_done ;
   int *set_child_tid ;
   int *clear_child_tid ;
   cputime_t utime ;
   cputime_t stime ;
   cputime_t utimescaled ;
   cputime_t stimescaled ;
   cputime_t gtime ;
   struct cputime prev_cputime ;
   unsigned long nvcsw ;
   unsigned long nivcsw ;
   u64 start_time ;
   u64 real_start_time ;
   unsigned long min_flt ;
   unsigned long maj_flt ;
   struct task_cputime cputime_expires ;
   struct list_head cpu_timers[3U] ;
   struct cred  const  *real_cred ;
   struct cred  const  *cred ;
   char comm[16U] ;
   struct nameidata *nameidata ;
   struct sysv_sem sysvsem ;
   struct sysv_shm sysvshm ;
   unsigned long last_switch_count ;
   struct thread_struct thread ;
   struct fs_struct *fs ;
   struct files_struct *files ;
   struct nsproxy *nsproxy ;
   struct signal_struct *signal ;
   struct sighand_struct *sighand ;
   sigset_t blocked ;
   sigset_t real_blocked ;
   sigset_t saved_sigmask ;
   struct sigpending pending ;
   unsigned long sas_ss_sp ;
   size_t sas_ss_size ;
   int (*notifier)(void * ) ;
   void *notifier_data ;
   sigset_t *notifier_mask ;
   struct callback_head *task_works ;
   struct audit_context *audit_context ;
   kuid_t loginuid ;
   unsigned int sessionid ;
   struct seccomp seccomp ;
   u32 parent_exec_id ;
   u32 self_exec_id ;
   spinlock_t alloc_lock ;
   raw_spinlock_t pi_lock ;
   struct wake_q_node wake_q ;
   struct rb_root pi_waiters ;
   struct rb_node *pi_waiters_leftmost ;
   struct rt_mutex_waiter *pi_blocked_on ;
   struct mutex_waiter *blocked_on ;
   unsigned int irq_events ;
   unsigned long hardirq_enable_ip ;
   unsigned long hardirq_disable_ip ;
   unsigned int hardirq_enable_event ;
   unsigned int hardirq_disable_event ;
   int hardirqs_enabled ;
   int hardirq_context ;
   unsigned long softirq_disable_ip ;
   unsigned long softirq_enable_ip ;
   unsigned int softirq_disable_event ;
   unsigned int softirq_enable_event ;
   int softirqs_enabled ;
   int softirq_context ;
   u64 curr_chain_key ;
   int lockdep_depth ;
   unsigned int lockdep_recursion ;
   struct held_lock held_locks[48U] ;
   gfp_t lockdep_reclaim_gfp ;
   void *journal_info ;
   struct bio_list *bio_list ;
   struct blk_plug *plug ;
   struct reclaim_state *reclaim_state ;
   struct backing_dev_info *backing_dev_info ;
   struct io_context *io_context ;
   unsigned long ptrace_message ;
   siginfo_t *last_siginfo ;
   struct task_io_accounting ioac ;
   u64 acct_rss_mem1 ;
   u64 acct_vm_mem1 ;
   cputime_t acct_timexpd ;
   nodemask_t mems_allowed ;
   seqcount_t mems_allowed_seq ;
   int cpuset_mem_spread_rotor ;
   int cpuset_slab_spread_rotor ;
   struct css_set *cgroups ;
   struct list_head cg_list ;
   struct robust_list_head *robust_list ;
   struct compat_robust_list_head *compat_robust_list ;
   struct list_head pi_state_list ;
   struct futex_pi_state *pi_state_cache ;
   struct perf_event_context *perf_event_ctxp[2U] ;
   struct mutex perf_event_mutex ;
   struct list_head perf_event_list ;
   struct mempolicy *mempolicy ;
   short il_next ;
   short pref_node_fork ;
   int numa_scan_seq ;
   unsigned int numa_scan_period ;
   unsigned int numa_scan_period_max ;
   int numa_preferred_nid ;
   unsigned long numa_migrate_retry ;
   u64 node_stamp ;
   u64 last_task_numa_placement ;
   u64 last_sum_exec_runtime ;
   struct callback_head numa_work ;
   struct list_head numa_entry ;
   struct numa_group *numa_group ;
   unsigned long *numa_faults ;
   unsigned long total_numa_faults ;
   unsigned long numa_faults_locality[3U] ;
   unsigned long numa_pages_migrated ;
   struct callback_head rcu ;
   struct pipe_inode_info *splice_pipe ;
   struct page_frag task_frag ;
   struct task_delay_info *delays ;
   int make_it_fail ;
   int nr_dirtied ;
   int nr_dirtied_pause ;
   unsigned long dirty_paused_when ;
   int latency_record_count ;
   struct latency_record latency_record[32U] ;
   unsigned long timer_slack_ns ;
   unsigned long default_timer_slack_ns ;
   unsigned int kasan_depth ;
   int curr_ret_stack ;
   struct ftrace_ret_stack *ret_stack ;
   unsigned long long ftrace_timestamp ;
   atomic_t trace_overrun ;
   atomic_t tracing_graph_pause ;
   unsigned long trace ;
   unsigned long trace_recursion ;
   struct memcg_oom_info memcg_oom ;
   struct uprobe_task *utask ;
   unsigned int sequential_io ;
   unsigned int sequential_io_avg ;
   unsigned long task_state_change ;
   int pagefault_disabled ;
};
#line 54 "include/linux/delay.h"
struct klist_node;
#line 37 "include/linux/klist.h"
struct klist_node {
   void *n_klist ;
   struct list_head n_node ;
   struct kref n_ref ;
};
#line 68 "include/linux/klist.h"
struct seq_file {
   char *buf ;
   size_t size ;
   size_t from ;
   size_t count ;
   size_t pad_until ;
   loff_t index ;
   loff_t read_pos ;
   u64 version ;
   struct mutex lock ;
   struct seq_operations  const  *op ;
   int poll_event ;
   struct user_namespace *user_ns ;
   void *private ;
};
#line 35 "include/linux/seq_file.h"
struct seq_operations {
   void *(*start)(struct seq_file * , loff_t * ) ;
   void (*stop)(struct seq_file * , void * ) ;
   void *(*next)(struct seq_file * , void * , loff_t * ) ;
   int (*show)(struct seq_file * , void * ) ;
};
#line 187
struct pinctrl;
#line 188
struct pinctrl_state;
#line 194 "include/linux/pinctrl/consumer.h"
struct dev_pin_info {
   struct pinctrl *p ;
   struct pinctrl_state *default_state ;
   struct pinctrl_state *sleep_state ;
   struct pinctrl_state *idle_state ;
};
#line 48 "include/linux/ratelimit.h"
struct dma_map_ops;
#line 48 "include/linux/ratelimit.h"
struct dev_archdata {
   struct dma_map_ops *dma_ops ;
   void *iommu ;
};
#line 14 "./arch/x86/include/asm/device.h"
struct device_private;
#line 15
struct device_driver;
#line 16
struct driver_private;
#line 17
struct class;
#line 18
struct subsys_private;
#line 19
struct bus_type;
#line 20
struct device_node;
#line 21
struct fwnode_handle;
#line 22
struct iommu_ops;
#line 23
struct iommu_group;
#line 61 "include/linux/device.h"
struct device_attribute;
#line 61 "include/linux/device.h"
struct bus_type {
   char const   *name ;
   char const   *dev_name ;
   struct device *dev_root ;
   struct device_attribute *dev_attrs ;
   struct attribute_group  const  **bus_groups ;
   struct attribute_group  const  **dev_groups ;
   struct attribute_group  const  **drv_groups ;
   int (*match)(struct device * , struct device_driver * ) ;
   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
   int (*probe)(struct device * ) ;
   int (*remove)(struct device * ) ;
   void (*shutdown)(struct device * ) ;
   int (*online)(struct device * ) ;
   int (*offline)(struct device * ) ;
   int (*suspend)(struct device * , pm_message_t  ) ;
   int (*resume)(struct device * ) ;
   struct dev_pm_ops  const  *pm ;
   struct iommu_ops  const  *iommu_ops ;
   struct subsys_private *p ;
   struct lock_class_key lock_key ;
};
#line 139
struct device_type;
#line 197
enum probe_type {
    PROBE_DEFAULT_STRATEGY = 0,
    PROBE_PREFER_ASYNCHRONOUS = 1,
    PROBE_FORCE_SYNCHRONOUS = 2
} ;
#line 203
struct of_device_id;
#line 203
struct acpi_device_id;
#line 203 "include/linux/device.h"
struct device_driver {
   char const   *name ;
   struct bus_type *bus ;
   struct module *owner ;
   char const   *mod_name ;
   bool suppress_bind_attrs ;
   enum probe_type probe_type ;
   struct of_device_id  const  *of_match_table ;
   struct acpi_device_id  const  *acpi_match_table ;
   int (*probe)(struct device * ) ;
   int (*remove)(struct device * ) ;
   void (*shutdown)(struct device * ) ;
   int (*suspend)(struct device * , pm_message_t  ) ;
   int (*resume)(struct device * ) ;
   struct attribute_group  const  **groups ;
   struct dev_pm_ops  const  *pm ;
   struct driver_private *p ;
};
#line 353
struct class_attribute;
#line 353 "include/linux/device.h"
struct class {
   char const   *name ;
   struct module *owner ;
   struct class_attribute *class_attrs ;
   struct attribute_group  const  **dev_groups ;
   struct kobject *dev_kobj ;
   int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
   char *(*devnode)(struct device * , umode_t * ) ;
   void (*class_release)(struct class * ) ;
   void (*dev_release)(struct device * ) ;
   int (*suspend)(struct device * , pm_message_t  ) ;
   int (*resume)(struct device * ) ;
   struct kobj_ns_type_operations  const  *ns_type ;
   void const   *(*namespace)(struct device * ) ;
   struct dev_pm_ops  const  *pm ;
   struct subsys_private *p ;
};
#line 446 "include/linux/device.h"
struct class_attribute {
   struct attribute attr ;
   ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
   ssize_t (*store)(struct class * , struct class_attribute * , char const   * , size_t  ) ;
};
#line 514 "include/linux/device.h"
struct device_type {
   char const   *name ;
   struct attribute_group  const  **groups ;
   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
   char *(*devnode)(struct device * , umode_t * , kuid_t * , kgid_t * ) ;
   void (*release)(struct device * ) ;
   struct dev_pm_ops  const  *pm ;
};
#line 542 "include/linux/device.h"
struct device_attribute {
   struct attribute attr ;
   ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
   ssize_t (*store)(struct device * , struct device_attribute * , char const   * ,
                    size_t  ) ;
};
#line 674 "include/linux/device.h"
struct device_dma_parameters {
   unsigned int max_segment_size ;
   unsigned long segment_boundary_mask ;
};
#line 683
struct dma_coherent_mem;
#line 683
struct cma;
#line 683 "include/linux/device.h"
struct device {
   struct device *parent ;
   struct device_private *p ;
   struct kobject kobj ;
   char const   *init_name ;
   struct device_type  const  *type ;
   struct mutex mutex ;
   struct bus_type *bus ;
   struct device_driver *driver ;
   void *platform_data ;
   void *driver_data ;
   struct dev_pm_info power ;
   struct dev_pm_domain *pm_domain ;
   struct dev_pin_info *pins ;
   int numa_node ;
   u64 *dma_mask ;
   u64 coherent_dma_mask ;
   unsigned long dma_pfn_offset ;
   struct device_dma_parameters *dma_parms ;
   struct list_head dma_pools ;
   struct dma_coherent_mem *dma_mem ;
   struct cma *cma_area ;
   struct dev_archdata archdata ;
   struct device_node *of_node ;
   struct fwnode_handle *fwnode ;
   dev_t devt ;
   u32 id ;
   spinlock_t devres_lock ;
   struct list_head devres_head ;
   struct klist_node knode_class ;
   struct class *class ;
   struct attribute_group  const  **groups ;
   void (*release)(struct device * ) ;
   struct iommu_group *iommu_group ;
   bool offline_disabled ;
   bool offline ;
};
#line 829 "include/linux/device.h"
struct wakeup_source {
   char const   *name ;
   struct list_head entry ;
   spinlock_t lock ;
   struct wake_irq *wakeirq ;
   struct timer_list timer ;
   unsigned long timer_expires ;
   ktime_t total_time ;
   ktime_t max_time ;
   ktime_t last_time ;
   ktime_t start_prevent_time ;
   ktime_t prevent_sleep_time ;
   unsigned long event_count ;
   unsigned long active_count ;
   unsigned long relax_count ;
   unsigned long expire_count ;
   unsigned long wakeup_count ;
   bool active ;
   bool autosleep_enabled ;
};
#line 13 "include/linux/mod_devicetable.h"
typedef unsigned long kernel_ulong_t;
#line 186 "include/linux/mod_devicetable.h"
struct acpi_device_id {
   __u8 id[9U] ;
   kernel_ulong_t driver_data ;
};
#line 219 "include/linux/mod_devicetable.h"
struct of_device_id {
   char name[32U] ;
   char type[32U] ;
   char compatible[128U] ;
   void const   *data ;
};
#line 620 "include/linux/mod_devicetable.h"
struct rio_device_id {
   __u16 did ;
   __u16 vid ;
   __u16 asm_did ;
   __u16 asm_vid ;
};
#line 207 "include/linux/mm.h"
struct vm_fault {
   unsigned int flags ;
   unsigned long pgoff ;
   void *virtual_address ;
   struct page *cow_page ;
   struct page *page ;
   unsigned long max_pgoff ;
   pte_t *pte ;
};
#line 239 "include/linux/mm.h"
struct vm_operations_struct {
   void (*open)(struct vm_area_struct * ) ;
   void (*close)(struct vm_area_struct * ) ;
   int (*fault)(struct vm_area_struct * , struct vm_fault * ) ;
   void (*map_pages)(struct vm_area_struct * , struct vm_fault * ) ;
   int (*page_mkwrite)(struct vm_area_struct * , struct vm_fault * ) ;
   int (*pfn_mkwrite)(struct vm_area_struct * , struct vm_fault * ) ;
   int (*access)(struct vm_area_struct * , unsigned long  , void * , int  , int  ) ;
   char const   *(*name)(struct vm_area_struct * ) ;
   int (*set_policy)(struct vm_area_struct * , struct mempolicy * ) ;
   struct mempolicy *(*get_policy)(struct vm_area_struct * , unsigned long  ) ;
   struct page *(*find_special_page)(struct vm_area_struct * , unsigned long  ) ;
};
#line 2242 "include/linux/mm.h"
struct scatterlist {
   unsigned long sg_magic ;
   unsigned long page_link ;
   unsigned int offset ;
   unsigned int length ;
   dma_addr_t dma_address ;
   unsigned int dma_length ;
};
#line 34 "include/linux/dmaengine.h"
typedef s32 dma_cookie_t;
#line 41
enum dma_status {
    DMA_COMPLETE = 0,
    DMA_IN_PROGRESS = 1,
    DMA_PAUSED = 2,
    DMA_ERROR = 3
} ;
#line 48
enum dma_transaction_type {
    DMA_MEMCPY = 0,
    DMA_XOR = 1,
    DMA_PQ = 2,
    DMA_XOR_VAL = 3,
    DMA_PQ_VAL = 4,
    DMA_MEMSET = 5,
    DMA_INTERRUPT = 6,
    DMA_SG = 7,
    DMA_PRIVATE = 8,
    DMA_ASYNC_TX = 9,
    DMA_SLAVE = 10,
    DMA_CYCLIC = 11,
    DMA_INTERLEAVE = 12,
    DMA_TX_TYPE_END = 13
} ;
#line 65
enum dma_transfer_direction {
    DMA_MEM_TO_MEM = 0,
    DMA_MEM_TO_DEV = 1,
    DMA_DEV_TO_MEM = 2,
    DMA_DEV_TO_DEV = 3,
    DMA_TRANS_NONE = 4
} ;
#line 73 "include/linux/dmaengine.h"
struct data_chunk {
   size_t size ;
   size_t icg ;
   size_t dst_icg ;
   size_t src_icg ;
};
#line 139 "include/linux/dmaengine.h"
struct dma_interleaved_template {
   dma_addr_t src_start ;
   dma_addr_t dst_start ;
   enum dma_transfer_direction dir ;
   bool src_inc ;
   bool dst_inc ;
   bool src_sgl ;
   bool dst_sgl ;
   size_t numf ;
   size_t frame_size ;
   struct data_chunk sgl[0U] ;
};
#line 170
enum dma_ctrl_flags {
    DMA_PREP_INTERRUPT = 1,
    DMA_CTRL_ACK = 2,
    DMA_PREP_PQ_DISABLE_P = 4,
    DMA_PREP_PQ_DISABLE_Q = 8,
    DMA_PREP_CONTINUE = 16,
    DMA_PREP_FENCE = 32
} ;
#line 184
enum sum_check_flags {
    SUM_CHECK_P_RESULT = 1,
    SUM_CHECK_Q_RESULT = 2
} ;
#line 219 "include/linux/dmaengine.h"
struct __anonstruct_dma_cap_mask_t_221 {
   unsigned long bits[1U] ;
};
#line 219 "include/linux/dmaengine.h"
typedef struct __anonstruct_dma_cap_mask_t_221 dma_cap_mask_t;
#line 221 "include/linux/dmaengine.h"
struct dma_chan_percpu {
   unsigned long memcpy_count ;
   unsigned long bytes_transferred ;
};
#line 232 "include/linux/dmaengine.h"
struct dma_router {
   struct device *dev ;
   void (*route_free)(struct device * , void * ) ;
};
#line 242
struct dma_device;
#line 242
struct dma_chan_dev;
#line 242 "include/linux/dmaengine.h"
struct dma_chan {
   struct dma_device *device ;
   dma_cookie_t cookie ;
   dma_cookie_t completed_cookie ;
   int chan_id ;
   struct dma_chan_dev *dev ;
   struct list_head device_node ;
   struct dma_chan_percpu *local ;
   int client_count ;
   int table_count ;
   struct dma_router *router ;
   void *route_data ;
   void *private ;
};
#line 278 "include/linux/dmaengine.h"
struct dma_chan_dev {
   struct dma_chan *chan ;
   struct device device ;
   int dev_id ;
   atomic_t *idr_ref ;
};
#line 292
enum dma_slave_buswidth {
    DMA_SLAVE_BUSWIDTH_UNDEFINED = 0,
    DMA_SLAVE_BUSWIDTH_1_BYTE = 1,
    DMA_SLAVE_BUSWIDTH_2_BYTES = 2,
    DMA_SLAVE_BUSWIDTH_3_BYTES = 3,
    DMA_SLAVE_BUSWIDTH_4_BYTES = 4,
    DMA_SLAVE_BUSWIDTH_8_BYTES = 8,
    DMA_SLAVE_BUSWIDTH_16_BYTES = 16,
    DMA_SLAVE_BUSWIDTH_32_BYTES = 32,
    DMA_SLAVE_BUSWIDTH_64_BYTES = 64
} ;
#line 304 "include/linux/dmaengine.h"
struct dma_slave_config {
   enum dma_transfer_direction direction ;
   dma_addr_t src_addr ;
   dma_addr_t dst_addr ;
   enum dma_slave_buswidth src_addr_width ;
   enum dma_slave_buswidth dst_addr_width ;
   u32 src_maxburst ;
   u32 dst_maxburst ;
   bool device_fc ;
   unsigned int slave_id ;
};
#line 365
enum dma_residue_granularity {
    DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0,
    DMA_RESIDUE_GRANULARITY_SEGMENT = 1,
    DMA_RESIDUE_GRANULARITY_BURST = 2
} ;
#line 434 "include/linux/dmaengine.h"
struct dmaengine_unmap_data {
   u8 map_cnt ;
   u8 to_cnt ;
   u8 from_cnt ;
   u8 bidi_cnt ;
   struct device *dev ;
   struct kref kref ;
   size_t len ;
   dma_addr_t addr[0U] ;
};
#line 445 "include/linux/dmaengine.h"
struct dma_async_tx_descriptor {
   dma_cookie_t cookie ;
   enum dma_ctrl_flags flags ;
   dma_addr_t phys ;
   struct dma_chan *chan ;
   dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor * ) ;
   void (*callback)(void * ) ;
   void *callback_param ;
   struct dmaengine_unmap_data *unmap ;
   struct dma_async_tx_descriptor *next ;
   struct dma_async_tx_descriptor *parent ;
   spinlock_t lock ;
};
#line 570 "include/linux/dmaengine.h"
struct dma_tx_state {
   dma_cookie_t last ;
   dma_cookie_t used ;
   u32 residue ;
};
#line 586 "include/linux/dmaengine.h"
struct dma_device {
   unsigned int chancnt ;
   unsigned int privatecnt ;
   struct list_head channels ;
   struct list_head global_node ;
   dma_cap_mask_t cap_mask ;
   unsigned short max_xor ;
   unsigned short max_pq ;
   u8 copy_align ;
   u8 xor_align ;
   u8 pq_align ;
   u8 fill_align ;
   int dev_id ;
   struct device *dev ;
   u32 src_addr_widths ;
   u32 dst_addr_widths ;
   u32 directions ;
   enum dma_residue_granularity residue_granularity ;
   int (*device_alloc_chan_resources)(struct dma_chan * ) ;
   void (*device_free_chan_resources)(struct dma_chan * ) ;
   struct dma_async_tx_descriptor *(*device_prep_dma_memcpy)(struct dma_chan * , dma_addr_t  ,
                                                             dma_addr_t  , size_t  ,
                                                             unsigned long  ) ;
   struct dma_async_tx_descriptor *(*device_prep_dma_xor)(struct dma_chan * , dma_addr_t  ,
                                                          dma_addr_t * , unsigned int  ,
                                                          size_t  , unsigned long  ) ;
   struct dma_async_tx_descriptor *(*device_prep_dma_xor_val)(struct dma_chan * ,
                                                              dma_addr_t * , unsigned int  ,
                                                              size_t  , enum sum_check_flags * ,
                                                              unsigned long  ) ;
   struct dma_async_tx_descriptor *(*device_prep_dma_pq)(struct dma_chan * , dma_addr_t * ,
                                                         dma_addr_t * , unsigned int  ,
                                                         unsigned char const   * ,
                                                         size_t  , unsigned long  ) ;
   struct dma_async_tx_descriptor *(*device_prep_dma_pq_val)(struct dma_chan * , dma_addr_t * ,
                                                             dma_addr_t * , unsigned int  ,
                                                             unsigned char const   * ,
                                                             size_t  , enum sum_check_flags * ,
                                                             unsigned long  ) ;
   struct dma_async_tx_descriptor *(*device_prep_dma_memset)(struct dma_chan * , dma_addr_t  ,
                                                             int  , size_t  , unsigned long  ) ;
   struct dma_async_tx_descriptor *(*device_prep_dma_interrupt)(struct dma_chan * ,
                                                                unsigned long  ) ;
   struct dma_async_tx_descriptor *(*device_prep_dma_sg)(struct dma_chan * , struct scatterlist * ,
                                                         unsigned int  , struct scatterlist * ,
                                                         unsigned int  , unsigned long  ) ;
   struct dma_async_tx_descriptor *(*device_prep_slave_sg)(struct dma_chan * , struct scatterlist * ,
                                                           unsigned int  , enum dma_transfer_direction  ,
                                                           unsigned long  , void * ) ;
   struct dma_async_tx_descriptor *(*device_prep_dma_cyclic)(struct dma_chan * , dma_addr_t  ,
                                                             size_t  , size_t  , enum dma_transfer_direction  ,
                                                             unsigned long  ) ;
   struct dma_async_tx_descriptor *(*device_prep_interleaved_dma)(struct dma_chan * ,
                                                                  struct dma_interleaved_template * ,
                                                                  unsigned long  ) ;
   int (*device_config)(struct dma_chan * , struct dma_slave_config * ) ;
   int (*device_pause)(struct dma_chan * ) ;
   int (*device_resume)(struct dma_chan * ) ;
   int (*device_terminate_all)(struct dma_chan * ) ;
   enum dma_status (*device_tx_status)(struct dma_chan * , dma_cookie_t  , struct dma_tx_state * ) ;
   void (*device_issue_pending)(struct dma_chan * ) ;
};
#line 750
struct rio_dma_ext;
#line 87 "include/linux/rio.h"
struct rio_mport;
#line 88
struct rio_dev;
#line 89
union rio_pw_msg;
#line 90
struct rio_switch_ops;
#line 90 "include/linux/rio.h"
struct rio_switch {
   struct list_head node ;
   u8 *route_table ;
   u32 port_ok ;
   struct rio_switch_ops *ops ;
   spinlock_t lock ;
   struct rio_dev *nextdev[0U] ;
};
#line 109 "include/linux/rio.h"
struct rio_switch_ops {
   struct module *owner ;
   int (*add_entry)(struct rio_mport * , u16  , u8  , u16  , u16  , u8  ) ;
   int (*get_entry)(struct rio_mport * , u16  , u8  , u16  , u16  , u8 * ) ;
   int (*clr_table)(struct rio_mport * , u16  , u8  , u16  ) ;
   int (*set_domain)(struct rio_mport * , u16  , u8  , u8  ) ;
   int (*get_domain)(struct rio_mport * , u16  , u8  , u8 * ) ;
   int (*em_init)(struct rio_dev * ) ;
   int (*em_handle)(struct rio_dev * , u8  ) ;
};
#line 139
struct rio_net;
#line 139
struct rio_driver;
#line 139 "include/linux/rio.h"
struct rio_dev {
   struct list_head global_list ;
   struct list_head net_list ;
   struct rio_net *net ;
   bool do_enum ;
   u16 did ;
   u16 vid ;
   u32 device_rev ;
   u16 asm_did ;
   u16 asm_vid ;
   u16 asm_rev ;
   u16 efptr ;
   u32 pef ;
   u32 swpinfo ;
   u32 src_ops ;
   u32 dst_ops ;
   u32 comp_tag ;
   u32 phys_efptr ;
   u32 em_efptr ;
   u64 dma_mask ;
   struct rio_driver *driver ;
   struct device dev ;
   struct resource riores[16U] ;
   int (*pwcback)(struct rio_dev * , union rio_pw_msg * , int  ) ;
   u16 destid ;
   u8 hopcount ;
   struct rio_dev *prev ;
   struct rio_switch rswitch[0U] ;
};
#line 199 "include/linux/rio.h"
struct rio_msg {
   struct resource *res ;
   void (*mcback)(struct rio_mport * , void * , int  , int  ) ;
};
#line 215 "include/linux/rio.h"
struct rio_dbell {
   struct list_head node ;
   struct resource *res ;
   void (*dinb)(struct rio_mport * , void * , u16  , u16  , u16  ) ;
   void *dev_id ;
};
#line 229
enum rio_phy_type {
    RIO_PHY_PARALLEL = 0,
    RIO_PHY_SERIAL = 1
} ;
#line 234
struct rio_ops;
#line 234
struct rio_scan;
#line 234 "include/linux/rio.h"
struct rio_mport {
   struct list_head dbells ;
   struct list_head node ;
   struct list_head nnode ;
   struct resource iores ;
   struct resource riores[16U] ;
   struct rio_msg inb_msg[4U] ;
   struct rio_msg outb_msg[4U] ;
   int host_deviceid ;
   struct rio_ops *ops ;
   unsigned char id ;
   unsigned char index ;
   unsigned int sys_size ;
   enum rio_phy_type phy_type ;
   u32 phys_efptr ;
   unsigned char name[40U] ;
   struct device dev ;
   void *priv ;
   struct dma_device dma ;
   struct rio_scan *nscan ;
};
#line 284 "include/linux/rio.h"
struct rio_id_table {
   u16 start ;
   u32 max ;
   spinlock_t lock ;
   unsigned long *table ;
};
#line 296 "include/linux/rio.h"
struct rio_net {
   struct list_head node ;
   struct list_head devices ;
   struct list_head switches ;
   struct list_head mports ;
   struct rio_mport *hport ;
   unsigned char id ;
   struct rio_id_table destid_table ;
};
#line 316 "include/linux/rio.h"
struct rio_ops {
   int (*lcread)(struct rio_mport * , int  , u32  , int  , u32 * ) ;
   int (*lcwrite)(struct rio_mport * , int  , u32  , int  , u32  ) ;
   int (*cread)(struct rio_mport * , int  , u16  , u8  , u32  , int  , u32 * ) ;
   int (*cwrite)(struct rio_mport * , int  , u16  , u8  , u32  , int  , u32  ) ;
   int (*dsend)(struct rio_mport * , int  , u16  , u16  ) ;
   int (*pwenable)(struct rio_mport * , int  ) ;
   int (*open_outb_mbox)(struct rio_mport * , void * , int  , int  ) ;
   void (*close_outb_mbox)(struct rio_mport * , int  ) ;
   int (*open_inb_mbox)(struct rio_mport * , void * , int  , int  ) ;
   void (*close_inb_mbox)(struct rio_mport * , int  ) ;
   int (*add_outb_message)(struct rio_mport * , struct rio_dev * , int  , void * ,
                           size_t  ) ;
   int (*add_inb_buffer)(struct rio_mport * , int  , void * ) ;
   void *(*get_inb_message)(struct rio_mport * , int  ) ;
   int (*map_inb)(struct rio_mport * , dma_addr_t  , u64  , u32  , u32  ) ;
   void (*unmap_inb)(struct rio_mport * , dma_addr_t  ) ;
};
#line 362 "include/linux/rio.h"
struct rio_driver {
   struct list_head node ;
   char *name ;
   struct rio_device_id  const  *id_table ;
   int (*probe)(struct rio_dev * , struct rio_device_id  const  * ) ;
   void (*remove)(struct rio_dev * ) ;
   int (*suspend)(struct rio_dev * , u32  ) ;
   int (*resume)(struct rio_dev * ) ;
   int (*enable_wake)(struct rio_dev * , u32  , int  ) ;
   struct device_driver driver ;
};
#line 398 "include/linux/rio.h"
struct __anonstruct_em_222 {
   u32 comptag ;
   u32 errdetect ;
   u32 is_port ;
   u32 ltlerrdet ;
   u32 padding[12U] ;
};
#line 398 "include/linux/rio.h"
union rio_pw_msg {
   struct __anonstruct_em_222 em ;
   u32 raw[16U] ;
};
#line 411
enum rio_write_type {
    RDW_DEFAULT = 0,
    RDW_ALL_NWRITE = 1,
    RDW_ALL_NWRITE_R = 2,
    RDW_LAST_NWRITE_R = 3
} ;
#line 418 "include/linux/rio.h"
struct rio_dma_ext {
   u16 destid ;
   u64 rio_addr ;
   u8 rio_addr_u ;
   enum rio_write_type wr_type ;
};
#line 436 "include/linux/rio.h"
struct rio_dma_data {
   struct scatterlist *sg ;
   unsigned int sg_len ;
   u64 rio_addr ;
   u8 rio_addr_u ;
   enum rio_write_type wr_type ;
};
#line 452 "include/linux/rio.h"
struct rio_scan {
   struct module *owner ;
   int (*enumerate)(struct rio_mport * , u32  ) ;
   int (*discover)(struct rio_mport * , u32  ) ;
};
#line 464 "include/linux/rio.h"
struct rio_scan_node {
   int mport_id ;
   struct list_head node ;
   struct rio_scan *ops ;
};
#line 62 "./arch/x86/include/asm/uaccess.h"
struct exception_table_entry {
   int insn ;
   int fixup ;
};
#line 1813 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct rio_disc_work {
   struct work_struct work ;
   struct rio_mport *mport ;
};
#line 230 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
typedef bool ldv_func_ret_type;
#line 241 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
typedef bool ldv_func_ret_type___0;
#line 252 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
typedef bool ldv_func_ret_type___1;
#line 271 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
typedef bool ldv_func_ret_type___2;
#line 239 "include/linux/timer.h"
enum hrtimer_restart;
#line 239
enum hrtimer_restart;
#line 239
enum hrtimer_restart;
#line 24 "./arch/x86/include/asm/device.h"
struct bus_attribute {
   struct attribute attr ;
   ssize_t (*show)(struct bus_type * , char * ) ;
   ssize_t (*store)(struct bus_type * , char const   * , size_t  ) ;
};
#line 1 "<compiler builtins>"
__inline static long ldv__builtin_expect(long exp , long c ) ;
#line 72 "./arch/x86/include/asm/bitops.h"
__inline static void set_bit(long nr , unsigned long volatile   *addr ) 
{ 


  {
#line 80
  __asm__  volatile   (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; bts %1,%0": "+m" (*((long volatile   *)addr)): "Ir" (nr): "memory");
#line 82
  return;
}
}
#line 142 "include/linux/printk.h"
extern int printk(char const   *  , ...) ;
#line 45 "include/linux/dynamic_debug.h"
extern void __dynamic_pr_debug(struct _ddebug * , char const   *  , ...) ;
#line 53
extern void __dynamic_dev_dbg(struct _ddebug * , struct device  const  * , char const   * 
                              , ...) ;
#line 25 "include/linux/list.h"
__inline static void INIT_LIST_HEAD(struct list_head *list ) 
{ 


  {
#line 27
  list->next = list;
#line 28
  list->prev = list;
#line 29
  return;
}
}
#line 48
extern void __list_add(struct list_head * , struct list_head * , struct list_head * ) ;
#line 75 "include/linux/list.h"
__inline static void list_add_tail(struct list_head *new , struct list_head *head ) 
{ 


  {
#line 77
  __list_add(new, head->prev, head);
#line 78
  return;
}
}
#line 113
extern void list_del(struct list_head * ) ;
#line 87 "./arch/x86/include/asm/percpu.h"
extern void __bad_percpu_size(void) ;
#line 71 "include/asm-generic/bug.h"
extern void warn_slowpath_null(char const   * , int const    ) ;
#line 57 "./arch/x86/include/asm/string_64.h"
extern void *memset(void * , int  , size_t  ) ;
#line 181 "include/linux/bitmap.h"
__inline static void bitmap_zero(unsigned long *dst , unsigned int nbits ) 
{ 
  unsigned int len ;

  {
#line 186
  len = (unsigned int )(((unsigned long )nbits + 63UL) / 64UL) * 8U;
#line 187
  memset((void *)dst, 0, (size_t )len);
#line 189
  return;
}
}
#line 8 "./arch/x86/include/asm/preempt.h"
extern int __preempt_count ;
#line 20 "./arch/x86/include/asm/preempt.h"
__inline static int preempt_count(void) 
{ 
  int pfo_ret__ ;

  {
#line 22
  switch (4UL) {
  case 1UL: 
#line 22
  __asm__  ("movb %%gs:%1,%0": "=q" (pfo_ret__): "m" (__preempt_count));
#line 22
  goto ldv_6002;
  case 2UL: 
#line 22
  __asm__  ("movw %%gs:%1,%0": "=r" (pfo_ret__): "m" (__preempt_count));
#line 22
  goto ldv_6002;
  case 4UL: 
#line 22
  __asm__  ("movl %%gs:%1,%0": "=r" (pfo_ret__): "m" (__preempt_count));
#line 22
  goto ldv_6002;
  case 8UL: 
#line 22
  __asm__  ("movq %%gs:%1,%0": "=r" (pfo_ret__): "m" (__preempt_count));
#line 22
  goto ldv_6002;
  default: 
#line 22
  __bad_percpu_size();
  }
  ldv_6002: ;
#line 22
  return (pfo_ret__ & 2147483647);
}
}
#line 280 "include/linux/lockdep.h"
extern void lockdep_init_map(struct lockdep_map * , char const   * , struct lock_class_key * ,
                             int  ) ;
#line 22 "include/linux/spinlock_api_smp.h"
extern void _raw_spin_lock(raw_spinlock_t * ) ;
#line 34
extern unsigned long _raw_spin_lock_irqsave(raw_spinlock_t * ) ;
#line 41
extern void _raw_spin_unlock(raw_spinlock_t * ) ;
#line 45
extern void _raw_spin_unlock_irqrestore(raw_spinlock_t * , unsigned long  ) ;
#line 299 "include/linux/spinlock.h"
__inline static raw_spinlock_t *spinlock_check(spinlock_t *lock ) 
{ 


  {
#line 301
  return (& lock->__annonCompField18.rlock);
}
}
#line 310 "include/linux/spinlock.h"
__inline static void spin_lock(spinlock_t *lock ) 
{ 


  {
#line 312
  _raw_spin_lock(& lock->__annonCompField18.rlock);
#line 313
  return;
}
}
#line 355 "include/linux/spinlock.h"
__inline static void spin_unlock(spinlock_t *lock ) 
{ 


  {
#line 357
  _raw_spin_unlock(& lock->__annonCompField18.rlock);
#line 358
  return;
}
}
#line 370 "include/linux/spinlock.h"
__inline static void spin_unlock_irqrestore(spinlock_t *lock , unsigned long flags ) 
{ 


  {
#line 372
  _raw_spin_unlock_irqrestore(& lock->__annonCompField18.rlock, flags);
#line 373
  return;
}
}
#line 138 "include/linux/mutex.h"
extern void mutex_lock_nested(struct mutex * , unsigned int  ) ;
#line 174
extern void mutex_unlock(struct mutex * ) ;
#line 181 "include/linux/workqueue.h"
extern void __init_work(struct work_struct * , int  ) ;
#line 361
extern struct workqueue_struct *__alloc_workqueue_key(char const   * , unsigned int  ,
                                                      int  , struct lock_class_key * ,
                                                      char const   *  , ...) ;
#line 421
extern void destroy_workqueue(struct workqueue_struct * ) ;
#line 424
void ldv_destroy_workqueue_22(struct workqueue_struct *ldv_func_arg1 ) ;
#line 428
void ldv_destroy_workqueue_24(struct workqueue_struct *ldv_func_arg1 ) ;
#line 437
extern bool queue_work_on(int  , struct workqueue_struct * , struct work_struct * ) ;
#line 441
bool ldv_queue_work_on_5(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                         struct work_struct *ldv_func_arg3 ) ;
#line 445
bool ldv_queue_work_on_7(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                         struct work_struct *ldv_func_arg3 ) ;
#line 447
extern bool queue_delayed_work_on(int  , struct workqueue_struct * , struct delayed_work * ,
                                  unsigned long  ) ;
#line 451
bool ldv_queue_delayed_work_on_6(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                 struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ;
#line 455
bool ldv_queue_delayed_work_on_9(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                 struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ;
#line 460
extern void flush_workqueue(struct workqueue_struct * ) ;
#line 463
void ldv_flush_workqueue_8(struct workqueue_struct *ldv_func_arg1 ) ;
#line 467
void ldv_flush_workqueue_23(struct workqueue_struct *ldv_func_arg1 ) ;
#line 469 "include/linux/workqueue.h"
__inline static bool queue_work(struct workqueue_struct *wq , struct work_struct *work ) 
{ 
  bool tmp ;

  {
#line 472
  tmp = ldv_queue_work_on_5(8192, wq, work);
#line 472
  return (tmp);
}
}
#line 142 "include/linux/ioport.h"
extern int request_resource(struct resource * , struct resource * ) ;
#line 143
extern int release_resource(struct resource * ) ;
#line 86 "include/linux/kobject.h"
__inline static char const   *kobject_name(struct kobject  const  *kobj ) 
{ 


  {
#line 88
  return ((char const   *)kobj->name);
}
}
#line 505 "include/linux/module.h"
bool ldv_try_module_get_10(struct module *ldv_func_arg1 ) ;
#line 509
bool ldv_try_module_get_12(struct module *ldv_func_arg1 ) ;
#line 513
bool ldv_try_module_get_14(struct module *ldv_func_arg1 ) ;
#line 517
bool ldv_try_module_get_16(struct module *ldv_func_arg1 ) ;
#line 521
bool ldv_try_module_get_18(struct module *ldv_func_arg1 ) ;
#line 525
bool ldv_try_module_get_20(struct module *ldv_func_arg1 ) ;
#line 531
void ldv_module_put_11(struct module *ldv_func_arg1 ) ;
#line 535
void ldv_module_put_13(struct module *ldv_func_arg1 ) ;
#line 539
void ldv_module_put_15(struct module *ldv_func_arg1 ) ;
#line 543
void ldv_module_put_17(struct module *ldv_func_arg1 ) ;
#line 547
void ldv_module_put_19(struct module *ldv_func_arg1 ) ;
#line 551
void ldv_module_put_21(struct module *ldv_func_arg1 ) ;
#line 9 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
int ldv_try_module_get(struct module *module ) ;
#line 11
void ldv_module_put(struct module *module ) ;
#line 143 "include/linux/slab.h"
extern void kfree(void const   * ) ;
#line 289
extern void *__kmalloc(size_t  , gfp_t  ) ;
#line 418 "include/linux/slab.h"
__inline static void *kmalloc(size_t size , gfp_t flags ) 
{ 
  void *tmp___2 ;

  {
#line 435
  tmp___2 = __kmalloc(size, flags);
#line 435
  return (tmp___2);
}
}
#line 525 "include/linux/slab.h"
__inline static void *kmalloc_array(size_t n , size_t size , gfp_t flags ) 
{ 
  void *tmp ;

  {
#line 527
  if (size != 0UL && 0xffffffffffffffffUL / size < n) {
#line 528
    return ((void *)0);
  } else {

  }
#line 529
  tmp = __kmalloc(n * size, flags);
#line 529
  return (tmp);
}
}
#line 538 "include/linux/slab.h"
__inline static void *kcalloc(size_t n , size_t size , gfp_t flags ) 
{ 
  void *tmp ;

  {
#line 540
  tmp = kmalloc_array(n, size, flags | 32768U);
#line 540
  return (tmp);
}
}
#line 581 "include/linux/slab.h"
__inline static void *kzalloc(size_t size , gfp_t flags ) 
{ 
  void *tmp ;

  {
#line 583
  tmp = kmalloc(size, flags | 32768U);
#line 583
  return (tmp);
}
}
#line 6 "/home/ldvuser/ldv/inst/kernel-rules/verifier/sv-comp.h"
extern void *malloc(size_t  ) ;
#line 7
extern void *calloc(size_t  , size_t  ) ;
#line 13
extern int __VERIFIER_nondet_int(void) ;
#line 28
extern unsigned long __VERIFIER_nondet_ulong(void) ;
#line 29
extern void *__VERIFIER_nondet_pointer(void) ;
#line 30
extern void __VERIFIER_assume(int  ) ;
#line 32 "/home/ldvuser/ldv/inst/kernel-rules/verifier/sv-comp.h"
void *ldv_malloc(size_t size ) 
{ 
  void *p ;
  void *tmp ;
  int tmp___0 ;

  {
#line 33
  tmp___0 = __VERIFIER_nondet_int();
#line 33
  if (tmp___0 != 0) {
#line 34
    return ((void *)0);
  } else {
#line 36
    tmp = malloc(size);
#line 36
    p = tmp;
#line 37
    __VERIFIER_assume((unsigned long )p != (unsigned long )((void *)0));
#line 38
    return (p);
  }
}
}
#line 42 "/home/ldvuser/ldv/inst/kernel-rules/verifier/sv-comp.h"
void *ldv_zalloc(size_t size ) 
{ 
  void *p ;
  void *tmp ;
  int tmp___0 ;

  {
#line 43
  tmp___0 = __VERIFIER_nondet_int();
#line 43
  if (tmp___0 != 0) {
#line 44
    return ((void *)0);
  } else {
#line 46
    tmp = calloc(1UL, size);
#line 46
    p = tmp;
#line 47
    __VERIFIER_assume((unsigned long )p != (unsigned long )((void *)0));
#line 48
    return (p);
  }
}
}
#line 52 "/home/ldvuser/ldv/inst/kernel-rules/verifier/sv-comp.h"
void *ldv_init_zalloc(size_t size ) 
{ 
  void *p ;
  void *tmp ;

  {
#line 53
  tmp = calloc(1UL, size);
#line 53
  p = tmp;
#line 54
  __VERIFIER_assume((unsigned long )p != (unsigned long )((void *)0));
#line 55
  return (p);
}
}
#line 58 "/home/ldvuser/ldv/inst/kernel-rules/verifier/sv-comp.h"
void *ldv_memset(void *s , int c , size_t n ) 
{ 
  void *tmp ;

  {
#line 59
  tmp = memset(s, c, n);
#line 59
  return (tmp);
}
}
#line 62 "/home/ldvuser/ldv/inst/kernel-rules/verifier/sv-comp.h"
int ldv_undef_int(void) 
{ 
  int tmp ;

  {
#line 63
  tmp = __VERIFIER_nondet_int();
#line 63
  return (tmp);
}
}
#line 66 "/home/ldvuser/ldv/inst/kernel-rules/verifier/sv-comp.h"
void *ldv_undef_ptr(void) 
{ 
  void *tmp ;

  {
#line 67
  tmp = __VERIFIER_nondet_pointer();
#line 67
  return (tmp);
}
}
#line 70 "/home/ldvuser/ldv/inst/kernel-rules/verifier/sv-comp.h"
unsigned long ldv_undef_ulong(void) 
{ 
  unsigned long tmp ;

  {
#line 71
  tmp = __VERIFIER_nondet_ulong();
#line 71
  return (tmp);
}
}
#line 22 "/home/ldvuser/ldv/inst/kernel-rules/verifier/rcv.h"
__inline static void ldv_stop(void) 
{ 


  {
  LDV_STOP: ;
#line 23
  goto LDV_STOP;
}
}
#line 52 "/home/ldvuser/ldv/inst/kernel-rules/verifier/rcv.h"
__inline static long ldv__builtin_expect(long exp , long c ) 
{ 


  {
#line 54
  return (exp);
}
}
#line 20 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
struct work_struct *ldv_work_struct_1_0 ;
#line 23
struct work_struct *ldv_work_struct_1_1 ;
#line 25
struct work_struct *ldv_work_struct_1_3 ;
#line 26
int ldv_work_1_3 ;
#line 33
int ldv_work_1_1 ;
#line 39
int ldv_work_1_2 ;
#line 40 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
int LDV_IN_INTERRUPT  =    1;
#line 44
struct work_struct *ldv_work_struct_1_2 ;
#line 49
int ldv_work_1_0 ;
#line 54
void call_and_disable_work_1(struct work_struct *work ) ;
#line 55
void disable_work_1(struct work_struct *work ) ;
#line 56
void work_init_1(void) ;
#line 57
void call_and_disable_all_1(int state ) ;
#line 58
void invoke_work_1(void) ;
#line 62
void activate_work_1(struct work_struct *work , int state ) ;
#line 10 "include/asm-generic/delay.h"
extern void __const_udelay(unsigned long  ) ;
#line 832 "include/linux/device.h"
__inline static char const   *dev_name(struct device  const  *dev ) 
{ 
  char const   *tmp ;

  {
#line 835
  if ((unsigned long )dev->init_name != (unsigned long )((char const   */* const  */)0)) {
#line 836
    return ((char const   *)dev->init_name);
  } else {

  }
#line 838
  tmp = kobject_name(& dev->kobj);
#line 838
  return (tmp);
}
}
#line 842
extern int dev_set_name(struct device * , char const   *  , ...) ;
#line 954
extern int device_register(struct device * ) ;
#line 957
extern int device_add(struct device * ) ;
#line 1084
extern void dev_err(struct device  const  * , char const   *  , ...) ;
#line 754 "include/linux/dmaengine.h"
__inline static struct dma_async_tx_descriptor *dmaengine_prep_rio_sg(struct dma_chan *chan ,
                                                                      struct scatterlist *sgl ,
                                                                      unsigned int sg_len ,
                                                                      enum dma_transfer_direction dir ,
                                                                      unsigned long flags ,
                                                                      struct rio_dma_ext *rio_ext ) 
{ 
  struct dma_async_tx_descriptor *tmp ;

  {
#line 759
  tmp = (*((chan->device)->device_prep_slave_sg))(chan, sgl, sg_len, dir, flags, (void *)rio_ext);
#line 759
  return (tmp);
}
}
#line 1008 "include/linux/dmaengine.h"
__inline static void __dma_cap_set(enum dma_transaction_type tx_type , dma_cap_mask_t *dstp ) 
{ 


  {
#line 1010
  set_bit((long )tx_type, (unsigned long volatile   *)(& dstp->bits));
#line 1011
  return;
}
}
#line 1021 "include/linux/dmaengine.h"
__inline static void __dma_cap_zero(dma_cap_mask_t *dstp ) 
{ 


  {
#line 1023
  bitmap_zero((unsigned long *)(& dstp->bits), 13U);
#line 1024
  return;
}
}
#line 1110
extern struct dma_chan *__dma_request_channel(dma_cap_mask_t const   * , bool (*)(struct dma_chan * ,
                                                                                  void * ) ,
                                              void * ) ;
#line 1115
extern void dma_release_channel(struct dma_chan * ) ;
#line 86 "include/linux/rio.h"
struct class rio_mport_class ;
#line 479
int rio_register_mport(struct rio_mport *port ) ;
#line 23 "include/linux/rio_drv.h"
int __rio_local_read_config_32(struct rio_mport *mport , u32 offset , u32 *value ) ;
#line 25
int __rio_local_write_config_32(struct rio_mport *mport , u32 offset , u32 value ) ;
#line 36
int rio_mport_read_config_32(struct rio_mport *mport , u16 destid , u8 hopcount ,
                             u32 offset , u32 *value ) ;
#line 38
int rio_mport_write_config_32(struct rio_mport *mport , u16 destid , u8 hopcount ,
                              u32 offset , u32 value ) ;
#line 58 "include/linux/rio_drv.h"
__inline static int rio_local_read_config_32(struct rio_mport *port , u32 offset ,
                                             u32 *data ) 
{ 
  int tmp ;

  {
#line 61
  tmp = __rio_local_read_config_32(port, offset, data);
#line 61
  return (tmp);
}
}
#line 73 "include/linux/rio_drv.h"
__inline static int rio_local_write_config_32(struct rio_mport *port , u32 offset ,
                                              u32 data ) 
{ 
  int tmp ;

  {
#line 76
  tmp = __rio_local_write_config_32(port, offset, data);
#line 76
  return (tmp);
}
}
#line 149 "include/linux/rio_drv.h"
__inline static int rio_read_config_32(struct rio_dev *rdev , u32 offset , u32 *data ) 
{ 
  int tmp ;

  {
#line 152
  tmp = rio_mport_read_config_32((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                                 offset, data);
#line 152
  return (tmp);
}
}
#line 165 "include/linux/rio_drv.h"
__inline static int rio_write_config_32(struct rio_dev *rdev , u32 offset , u32 data ) 
{ 
  int tmp ;

  {
#line 168
  tmp = rio_mport_write_config_32((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                                  offset, data);
#line 168
  return (tmp);
}
}
#line 260 "include/linux/rio_drv.h"
__inline static void rio_init_mbox_res(struct resource *res , int start , int end ) 
{ 


  {
#line 262
  memset((void *)res, 0, 56UL);
#line 263
  res->start = (resource_size_t )start;
#line 264
  res->end = (resource_size_t )end;
#line 265
  res->flags = 1024UL;
#line 266
  return;
}
}
#line 278 "include/linux/rio_drv.h"
__inline static void rio_init_dbell_res(struct resource *res , u16 start , u16 end ) 
{ 


  {
#line 280
  memset((void *)res, 0, 56UL);
#line 281
  res->start = (resource_size_t )start;
#line 282
  res->end = (resource_size_t )end;
#line 283
  res->flags = 512UL;
#line 284
  return;
}
}
#line 300
int rio_request_outb_mbox(struct rio_mport *mport , void *dev_id , int mbox , int entries ,
                          void (*moutb)(struct rio_mport * , void * , int  , int  ) ) ;
#line 302
int rio_release_outb_mbox(struct rio_mport *mport , int mbox ) ;
#line 323
int rio_request_inb_mbox(struct rio_mport *mport , void *dev_id , int mbox , int entries ,
                         void (*minb)(struct rio_mport * , void * , int  , int  ) ) ;
#line 325
int rio_release_inb_mbox(struct rio_mport *mport , int mbox ) ;
#line 355
int rio_request_inb_dbell(struct rio_mport *mport , void *dev_id , u16 start , u16 end ,
                          void (*dinb)(struct rio_mport * , void * , u16  , u16  ,
                                       u16  ) ) ;
#line 357
int rio_release_inb_dbell(struct rio_mport *mport , u16 start , u16 end ) ;
#line 358
struct resource *rio_request_outb_dbell(struct rio_dev *rdev , u16 start , u16 end ) ;
#line 359
int rio_release_outb_dbell(struct rio_dev *rdev , struct resource *res ) ;
#line 369
int rio_map_inb_region(struct rio_mport *mport , dma_addr_t local , u64 rbase , u32 size ,
                       u32 rflags ) ;
#line 371
void rio_unmap_inb_region(struct rio_mport *mport , dma_addr_t lstart ) ;
#line 374
int rio_request_inb_pwrite(struct rio_dev *rdev , int (*pwcback)(struct rio_dev * ,
                                                                 union rio_pw_msg * ,
                                                                 int  ) ) ;
#line 376
int rio_release_inb_pwrite(struct rio_dev *rdev ) ;
#line 377
int rio_inb_pwrite_handler(union rio_pw_msg *pw_msg ) ;
#line 382
struct rio_dev *rio_dev_get(struct rio_dev *rdev ) ;
#line 383
void rio_dev_put(struct rio_dev *rdev ) ;
#line 386
struct dma_chan *rio_request_dma(struct rio_dev *rdev ) ;
#line 387
struct dma_chan *rio_request_mport_dma(struct rio_mport *mport ) ;
#line 388
void rio_release_dma(struct dma_chan *dchan ) ;
#line 389
struct dma_async_tx_descriptor *rio_dma_prep_slave_sg(struct rio_dev *rdev , struct dma_chan *dchan ,
                                                      struct rio_dma_data *data ,
                                                      enum dma_transfer_direction direction ,
                                                      unsigned long flags ) ;
#line 393
struct dma_async_tx_descriptor *rio_dma_prep_xfer(struct dma_chan *dchan , u16 destid ,
                                                  struct rio_dma_data *data , enum dma_transfer_direction direction ,
                                                  unsigned long flags ) ;
#line 406 "include/linux/rio_drv.h"
__inline static char const   *rio_name(struct rio_dev *rdev ) 
{ 
  char const   *tmp ;

  {
#line 408
  tmp = dev_name((struct device  const  *)(& rdev->dev));
#line 408
  return (tmp);
}
}
#line 437
u16 rio_local_get_device_id(struct rio_mport *port ) ;
#line 438
struct rio_dev *rio_get_device(u16 vid , u16 did , struct rio_dev *from ) ;
#line 439
struct rio_dev *rio_get_asm(u16 vid , u16 did , u16 asm_vid , u16 asm_did , struct rio_dev *from ) ;
#line 441
int rio_init_mports(void) ;
#line 22 "/work/ldvuser/mutilin/launch/inst/current/envs/linux-4.2-rc1.tar.xz/linux-4.2-rc1/drivers/rapidio/rio.h"
u32 rio_mport_get_feature(struct rio_mport *port , int local , u16 destid , u8 hopcount ,
                          int ftr ) ;
#line 24
u32 rio_mport_get_physefb(struct rio_mport *port , int local , u16 destid , u8 hopcount ) ;
#line 26
u32 rio_mport_get_efb(struct rio_mport *port , int local , u16 destid , u8 hopcount ,
                      u32 from ) ;
#line 28
int rio_mport_chk_dev_access(struct rio_mport *mport , u16 destid , u8 hopcount ) ;
#line 30
int rio_create_sysfs_dev_files(struct rio_dev *rdev ) ;
#line 31
int rio_lock_device(struct rio_mport *port , u16 destid , u8 hopcount , int wait_ms ) ;
#line 33
int rio_unlock_device(struct rio_mport *port , u16 destid , u8 hopcount ) ;
#line 34
int rio_route_add_entry(struct rio_dev *rdev , u16 table , u16 route_destid , u8 route_port ,
                        int lock ) ;
#line 36
int rio_route_get_entry(struct rio_dev *rdev , u16 table , u16 route_destid , u8 *route_port ,
                        int lock ) ;
#line 38
int rio_route_clr_table(struct rio_dev *rdev , u16 table , int lock ) ;
#line 39
int rio_set_port_lockout(struct rio_dev *rdev , u32 pnum , int lock ) ;
#line 40
struct rio_dev *rio_get_comptag(u32 comp_tag , struct rio_dev *from ) ;
#line 41
int rio_add_device(struct rio_dev *rdev ) ;
#line 42
int rio_enable_rx_tx_port(struct rio_mport *port , int local , u16 destid , u8 hopcount ,
                          u8 port_num ) ;
#line 44
int rio_register_scan(int mport_id , struct rio_scan *scan_ops ) ;
#line 45
int rio_unregister_scan(int mport_id , struct rio_scan *scan_ops ) ;
#line 47
struct rio_mport *rio_find_mport(int mport_id ) ;
#line 48
int rio_mport_scan(int mport_id ) ;
#line 38 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static int hdid[8U]  ;
#line 39 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static int ids_num  ;
#line 44 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static struct list_head rio_devices  =    {& rio_devices, & rio_devices};
#line 45 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static spinlock_t rio_global_list_lock  =    {{{{{0}}, 3735899821U, 4294967295U, (void *)-1, {0, {0, 0}, "rio_global_list_lock",
                                                    0, 0UL}}}};
#line 47 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static struct list_head rio_mports  =    {& rio_mports, & rio_mports};
#line 48 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static struct list_head rio_scans  =    {& rio_scans, & rio_scans};
#line 49 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static struct mutex rio_mport_list_lock  =    {{1}, {{{{{0}}, 3735899821U, 4294967295U, (void *)-1, {0, {0, 0}, "rio_mport_list_lock.wait_lock",
                                                          0, 0UL}}}}, {& rio_mport_list_lock.wait_list,
                                                                       & rio_mport_list_lock.wait_list},
    0, (void *)(& rio_mport_list_lock), {0, {0, 0}, "rio_mport_list_lock", 0, 0UL}};
#line 50 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static unsigned char next_portid  ;
#line 51 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static spinlock_t rio_mmap_lock  =    {{{{{0}}, 3735899821U, 4294967295U, (void *)-1, {0, {0, 0}, "rio_mmap_lock", 0,
                                                    0UL}}}};
#line 61 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
u16 rio_local_get_device_id(struct rio_mport *port ) 
{ 
  u32 result ;

  {
#line 65
  rio_local_read_config_32(port, 96U, & result);
#line 67
  return (port->sys_size != 0U ? (u16 )result : (u16 )((result & 16711680U) >> 16));
}
}
#line 78 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_add_device(struct rio_dev *rdev ) 
{ 
  int err ;

  {
#line 82
  err = device_add(& rdev->dev);
#line 83
  if (err != 0) {
#line 84
    return (err);
  } else {

  }
#line 86
  spin_lock(& rio_global_list_lock);
#line 87
  list_add_tail(& rdev->global_list, & rio_devices);
#line 88
  spin_unlock(& rio_global_list_lock);
#line 90
  rio_create_sysfs_dev_files(rdev);
#line 92
  return (0);
}
}
#line 94 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_add_device[15U]  = 
#line 94
  {      'r',      'i',      'o',      '_', 
        'a',      'd',      'd',      '_', 
        'd',      'e',      'v',      'i', 
        'c',      'e',      '\000'};
#line 94
struct kernel_symbol  const  __ksymtab_rio_add_device ;
#line 94 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_add_device  =    {(unsigned long )(& rio_add_device), (char const   *)(& __kstrtab_rio_add_device)};
#line 107 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_request_inb_mbox(struct rio_mport *mport , void *dev_id , int mbox , int entries ,
                         void (*minb)(struct rio_mport * , void * , int  , int  ) ) 
{ 
  int rc ;
  struct resource *res ;
  void *tmp ;

  {
#line 114
  rc = -38;
#line 117
  if ((unsigned long )(mport->ops)->open_inb_mbox == (unsigned long )((int (*)(struct rio_mport * ,
                                                                               void * ,
                                                                               int  ,
                                                                               int  ))0)) {
#line 118
    goto out;
  } else {

  }
#line 120
  tmp = kmalloc(56UL, 208U);
#line 120
  res = (struct resource *)tmp;
#line 122
  if ((unsigned long )res != (unsigned long )((struct resource *)0)) {
#line 123
    rio_init_mbox_res(res, mbox, mbox);
#line 126
    rc = request_resource((struct resource *)(& mport->riores) + 1UL, res);
#line 126
    if (rc < 0) {
#line 129
      kfree((void const   *)res);
#line 130
      goto out;
    } else {

    }
#line 133
    mport->inb_msg[mbox].res = res;
#line 136
    mport->inb_msg[mbox].mcback = minb;
#line 138
    rc = (*((mport->ops)->open_inb_mbox))(mport, dev_id, mbox, entries);
  } else {
#line 140
    rc = -12;
  }
  out: ;
#line 143
  return (rc);
}
}
#line 154 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_release_inb_mbox(struct rio_mport *mport , int mbox ) 
{ 
  int tmp ;

  {
#line 156
  if ((unsigned long )(mport->ops)->close_inb_mbox != (unsigned long )((void (*)(struct rio_mport * ,
                                                                                 int  ))0)) {
#line 157
    (*((mport->ops)->close_inb_mbox))(mport, mbox);
#line 160
    tmp = release_resource(mport->inb_msg[mbox].res);
#line 160
    return (tmp);
  } else {
#line 162
    return (-38);
  }
}
}
#line 176 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_request_outb_mbox(struct rio_mport *mport , void *dev_id , int mbox , int entries ,
                          void (*moutb)(struct rio_mport * , void * , int  , int  ) ) 
{ 
  int rc ;
  struct resource *res ;
  void *tmp ;

  {
#line 182
  rc = -38;
#line 185
  if ((unsigned long )(mport->ops)->open_outb_mbox == (unsigned long )((int (*)(struct rio_mport * ,
                                                                                void * ,
                                                                                int  ,
                                                                                int  ))0)) {
#line 186
    goto out;
  } else {

  }
#line 188
  tmp = kmalloc(56UL, 208U);
#line 188
  res = (struct resource *)tmp;
#line 190
  if ((unsigned long )res != (unsigned long )((struct resource *)0)) {
#line 191
    rio_init_mbox_res(res, mbox, mbox);
#line 194
    rc = request_resource((struct resource *)(& mport->riores) + 2UL, res);
#line 194
    if (rc < 0) {
#line 197
      kfree((void const   *)res);
#line 198
      goto out;
    } else {

    }
#line 201
    mport->outb_msg[mbox].res = res;
#line 204
    mport->outb_msg[mbox].mcback = moutb;
#line 206
    rc = (*((mport->ops)->open_outb_mbox))(mport, dev_id, mbox, entries);
  } else {
#line 208
    rc = -12;
  }
  out: ;
#line 211
  return (rc);
}
}
#line 222 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_release_outb_mbox(struct rio_mport *mport , int mbox ) 
{ 
  int tmp ;

  {
#line 224
  if ((unsigned long )(mport->ops)->close_outb_mbox != (unsigned long )((void (*)(struct rio_mport * ,
                                                                                  int  ))0)) {
#line 225
    (*((mport->ops)->close_outb_mbox))(mport, mbox);
#line 228
    tmp = release_resource(mport->outb_msg[mbox].res);
#line 228
    return (tmp);
  } else {
#line 230
    return (-38);
  }
}
}
#line 245 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static int rio_setup_inb_dbell(struct rio_mport *mport , void *dev_id , struct resource *res ,
                               void (*dinb)(struct rio_mport * , void * , u16  , u16  ,
                                            u16  ) ) 
{ 
  int rc ;
  struct rio_dbell *dbell ;
  void *tmp ;

  {
#line 249
  rc = 0;
#line 252
  tmp = kmalloc(40UL, 208U);
#line 252
  dbell = (struct rio_dbell *)tmp;
#line 252
  if ((unsigned long )dbell == (unsigned long )((struct rio_dbell *)0)) {
#line 253
    rc = -12;
#line 254
    goto out;
  } else {

  }
#line 257
  dbell->res = res;
#line 258
  dbell->dinb = dinb;
#line 259
  dbell->dev_id = dev_id;
#line 261
  list_add_tail(& dbell->node, & mport->dbells);
  out: ;
#line 264
  return (rc);
}
}
#line 279 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_request_inb_dbell(struct rio_mport *mport , void *dev_id , u16 start , u16 end ,
                          void (*dinb)(struct rio_mport * , void * , u16  , u16  ,
                                       u16  ) ) 
{ 
  int rc ;
  struct resource *res ;
  void *tmp ;

  {
#line 286
  rc = 0;
#line 288
  tmp = kmalloc(56UL, 208U);
#line 288
  res = (struct resource *)tmp;
#line 290
  if ((unsigned long )res != (unsigned long )((struct resource *)0)) {
#line 291
    rio_init_dbell_res(res, (int )start, (int )end);
#line 294
    rc = request_resource((struct resource *)(& mport->riores), res);
#line 294
    if (rc < 0) {
#line 297
      kfree((void const   *)res);
#line 298
      goto out;
    } else {

    }
#line 302
    rc = rio_setup_inb_dbell(mport, dev_id, res, dinb);
  } else {
#line 304
    rc = -12;
  }
  out: ;
#line 307
  return (rc);
}
}
#line 320 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_release_inb_dbell(struct rio_mport *mport , u16 start , u16 end ) 
{ 
  int rc ;
  int found ;
  struct rio_dbell *dbell ;
  struct list_head  const  *__mptr ;
  struct list_head  const  *__mptr___0 ;

  {
#line 322
  rc = 0;
#line 322
  found = 0;
#line 325
  __mptr = (struct list_head  const  *)mport->dbells.next;
#line 325
  dbell = (struct rio_dbell *)__mptr;
#line 325
  goto ldv_27775;
  ldv_27774: ;
#line 326
  if ((dbell->res)->start == (resource_size_t )start && (dbell->res)->end == (resource_size_t )end) {
#line 327
    found = 1;
#line 328
    goto ldv_27773;
  } else {

  }
#line 325
  __mptr___0 = (struct list_head  const  *)dbell->node.next;
#line 325
  dbell = (struct rio_dbell *)__mptr___0;
  ldv_27775: ;
#line 325
  if ((unsigned long )dbell != (unsigned long )mport) {
#line 327
    goto ldv_27774;
  } else {

  }
  ldv_27773: ;
#line 333
  if (found == 0) {
#line 334
    rc = -22;
#line 335
    goto out;
  } else {

  }
#line 339
  list_del(& dbell->node);
#line 342
  rc = release_resource(dbell->res);
#line 345
  kfree((void const   *)dbell);
  out: ;
#line 348
  return (rc);
}
}
#line 360 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct resource *rio_request_outb_dbell(struct rio_dev *rdev , u16 start , u16 end ) 
{ 
  struct resource *res ;
  void *tmp ;
  int tmp___0 ;

  {
#line 363
  tmp = kmalloc(56UL, 208U);
#line 363
  res = (struct resource *)tmp;
#line 365
  if ((unsigned long )res != (unsigned long )((struct resource *)0)) {
#line 366
    rio_init_dbell_res(res, (int )start, (int )end);
#line 369
    tmp___0 = request_resource((struct resource *)(& rdev->riores), res);
#line 369
    if (tmp___0 < 0) {
#line 371
      kfree((void const   *)res);
#line 372
      res = (struct resource *)0;
    } else {

    }
  } else {

  }
#line 376
  return (res);
}
}
#line 387 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_release_outb_dbell(struct rio_dev *rdev , struct resource *res ) 
{ 
  int rc ;
  int tmp ;

  {
#line 389
  tmp = release_resource(res);
#line 389
  rc = tmp;
#line 391
  kfree((void const   *)res);
#line 393
  return (rc);
}
}
#line 404 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_request_inb_pwrite(struct rio_dev *rdev , int (*pwcback)(struct rio_dev * ,
                                                                 union rio_pw_msg * ,
                                                                 int  ) ) 
{ 
  int rc ;

  {
#line 407
  rc = 0;
#line 409
  spin_lock(& rio_global_list_lock);
#line 410
  if ((unsigned long )rdev->pwcback != (unsigned long )((int (*)(struct rio_dev * ,
                                                                 union rio_pw_msg * ,
                                                                 int  ))0)) {
#line 411
    rc = -12;
  } else {
#line 413
    rdev->pwcback = pwcback;
  }
#line 415
  spin_unlock(& rio_global_list_lock);
#line 416
  return (rc);
}
}
#line 418 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_request_inb_pwrite[23U]  = 
#line 418
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'q',      'u', 
        'e',      's',      't',      '_', 
        'i',      'n',      'b',      '_', 
        'p',      'w',      'r',      'i', 
        't',      'e',      '\000'};
#line 418
struct kernel_symbol  const  __ksymtab_rio_request_inb_pwrite ;
#line 418 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_request_inb_pwrite  =    {(unsigned long )(& rio_request_inb_pwrite), (char const   *)(& __kstrtab_rio_request_inb_pwrite)};
#line 427 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_release_inb_pwrite(struct rio_dev *rdev ) 
{ 
  int rc ;

  {
#line 429
  rc = -12;
#line 431
  spin_lock(& rio_global_list_lock);
#line 432
  if ((unsigned long )rdev->pwcback != (unsigned long )((int (*)(struct rio_dev * ,
                                                                 union rio_pw_msg * ,
                                                                 int  ))0)) {
#line 433
    rdev->pwcback = (int (*)(struct rio_dev * , union rio_pw_msg * , int  ))0;
#line 434
    rc = 0;
  } else {

  }
#line 437
  spin_unlock(& rio_global_list_lock);
#line 438
  return (rc);
}
}
#line 440 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_release_inb_pwrite[23U]  = 
#line 440
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'l',      'e', 
        'a',      's',      'e',      '_', 
        'i',      'n',      'b',      '_', 
        'p',      'w',      'r',      'i', 
        't',      'e',      '\000'};
#line 440
struct kernel_symbol  const  __ksymtab_rio_release_inb_pwrite ;
#line 440 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_release_inb_pwrite  =    {(unsigned long )(& rio_release_inb_pwrite), (char const   *)(& __kstrtab_rio_release_inb_pwrite)};
#line 454 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_map_inb_region(struct rio_mport *mport , dma_addr_t local , u64 rbase , u32 size ,
                       u32 rflags ) 
{ 
  int rc ;
  unsigned long flags ;
  raw_spinlock_t *tmp ;

  {
#line 457
  rc = 0;
#line 460
  if ((unsigned long )(mport->ops)->map_inb == (unsigned long )((int (*)(struct rio_mport * ,
                                                                         dma_addr_t  ,
                                                                         u64  , u32  ,
                                                                         u32  ))0)) {
#line 461
    return (-1);
  } else {

  }
#line 462
  tmp = spinlock_check(& rio_mmap_lock);
#line 462
  flags = _raw_spin_lock_irqsave(tmp);
#line 463
  rc = (*((mport->ops)->map_inb))(mport, local, rbase, size, rflags);
#line 464
  spin_unlock_irqrestore(& rio_mmap_lock, flags);
#line 465
  return (rc);
}
}
#line 467 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_map_inb_region[19U]  = 
#line 467
  {      'r',      'i',      'o',      '_', 
        'm',      'a',      'p',      '_', 
        'i',      'n',      'b',      '_', 
        'r',      'e',      'g',      'i', 
        'o',      'n',      '\000'};
#line 467
struct kernel_symbol  const  __ksymtab_rio_map_inb_region ;
#line 467 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_map_inb_region  =    {(unsigned long )(& rio_map_inb_region), (char const   *)(& __kstrtab_rio_map_inb_region)};
#line 474 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
void rio_unmap_inb_region(struct rio_mport *mport , dma_addr_t lstart ) 
{ 
  unsigned long flags ;
  raw_spinlock_t *tmp ;

  {
#line 477
  if ((unsigned long )(mport->ops)->unmap_inb == (unsigned long )((void (*)(struct rio_mport * ,
                                                                            dma_addr_t  ))0)) {
#line 478
    return;
  } else {

  }
#line 479
  tmp = spinlock_check(& rio_mmap_lock);
#line 479
  flags = _raw_spin_lock_irqsave(tmp);
#line 480
  (*((mport->ops)->unmap_inb))(mport, lstart);
#line 481
  spin_unlock_irqrestore(& rio_mmap_lock, flags);
#line 482
  return;
}
}
#line 483 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_unmap_inb_region[21U]  = 
#line 483
  {      'r',      'i',      'o',      '_', 
        'u',      'n',      'm',      'a', 
        'p',      '_',      'i',      'n', 
        'b',      '_',      'r',      'e', 
        'g',      'i',      'o',      'n', 
        '\000'};
#line 483
struct kernel_symbol  const  __ksymtab_rio_unmap_inb_region ;
#line 483 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_unmap_inb_region  =    {(unsigned long )(& rio_unmap_inb_region), (char const   *)(& __kstrtab_rio_unmap_inb_region)};
#line 494 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
u32 rio_mport_get_physefb(struct rio_mport *port , int local , u16 destid , u8 hopcount ) 
{ 
  u32 ext_ftr_ptr ;
  u32 ftr_header ;

  {
#line 500
  ext_ftr_ptr = rio_mport_get_efb(port, local, (int )destid, (int )hopcount, 0U);
#line 502
  goto ldv_27872;
  ldv_27871: ;
#line 503
  if (local != 0) {
#line 504
    rio_local_read_config_32(port, ext_ftr_ptr, & ftr_header);
  } else {
#line 507
    rio_mport_read_config_32(port, (int )destid, (int )hopcount, ext_ftr_ptr, & ftr_header);
  }
#line 510
  ftr_header = ftr_header & 65535U;
#line 511
  switch (ftr_header) {
  case 1U: ;
  case 2U: ;
  case 3U: ;
  case 4U: ;
  case 5U: ;
  case 6U: ;
  case 9U: ;
#line 521
  return (ext_ftr_ptr);
  default: ;
#line 524
  goto ldv_27870;
  }
  ldv_27870: 
#line 527
  ext_ftr_ptr = rio_mport_get_efb(port, local, (int )destid, (int )hopcount, ext_ftr_ptr);
  ldv_27872: ;
#line 502
  if (ext_ftr_ptr != 0U) {
#line 504
    goto ldv_27871;
  } else {

  }

#line 531
  return (ext_ftr_ptr);
}
}
#line 533 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_mport_get_physefb[22U]  = 
#line 533
  {      'r',      'i',      'o',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      'g',      'e', 
        't',      '_',      'p',      'h', 
        'y',      's',      'e',      'f', 
        'b',      '\000'};
#line 533
struct kernel_symbol  const  __ksymtab_rio_mport_get_physefb ;
#line 533 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_mport_get_physefb  =    {(unsigned long )(& rio_mport_get_physefb), (char const   *)(& __kstrtab_rio_mport_get_physefb)};
#line 547 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct rio_dev *rio_get_comptag(u32 comp_tag , struct rio_dev *from ) 
{ 
  struct list_head *n ;
  struct rio_dev *rdev ;
  struct list_head  const  *__mptr ;

  {
#line 552
  spin_lock(& rio_global_list_lock);
#line 553
  n = (unsigned long )from != (unsigned long )((struct rio_dev *)0) ? from->global_list.next : rio_devices.next;
#line 555
  goto ldv_27894;
  ldv_27893: 
#line 556
  __mptr = (struct list_head  const  *)n;
#line 556
  rdev = (struct rio_dev *)__mptr;
#line 557
  if (rdev->comp_tag == comp_tag) {
#line 558
    goto exit;
  } else {

  }
#line 559
  n = n->next;
  ldv_27894: ;
#line 555
  if ((unsigned long )n != (unsigned long )((struct list_head *)0) && (unsigned long )n != (unsigned long )(& rio_devices)) {
#line 557
    goto ldv_27893;
  } else {

  }
#line 561
  rdev = (struct rio_dev *)0;
  exit: 
#line 563
  spin_unlock(& rio_global_list_lock);
#line 564
  return (rdev);
}
}
#line 566 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_get_comptag[16U]  = 
#line 566
  {      'r',      'i',      'o',      '_', 
        'g',      'e',      't',      '_', 
        'c',      'o',      'm',      'p', 
        't',      'a',      'g',      '\000'};
#line 566
struct kernel_symbol  const  __ksymtab_rio_get_comptag ;
#line 566 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_get_comptag  =    {(unsigned long )(& rio_get_comptag), (char const   *)(& __kstrtab_rio_get_comptag)};
#line 574 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_set_port_lockout(struct rio_dev *rdev , u32 pnum , int lock ) 
{ 
  u32 regval ;

  {
#line 578
  rio_read_config_32(rdev, (rdev->phys_efptr + pnum * 32U) + 92U, & regval);
#line 581
  if (lock != 0) {
#line 582
    regval = regval | 2U;
  } else {
#line 584
    regval = regval & 4294967293U;
  }
#line 586
  rio_write_config_32(rdev, (rdev->phys_efptr + pnum * 32U) + 92U, regval);
#line 589
  return (0);
}
}
#line 591 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_set_port_lockout[21U]  = 
#line 591
  {      'r',      'i',      'o',      '_', 
        's',      'e',      't',      '_', 
        'p',      'o',      'r',      't', 
        '_',      'l',      'o',      'c', 
        'k',      'o',      'u',      't', 
        '\000'};
#line 591
struct kernel_symbol  const  __ksymtab_rio_set_port_lockout ;
#line 591 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_set_port_lockout  =    {(unsigned long )(& rio_set_port_lockout), (char const   *)(& __kstrtab_rio_set_port_lockout)};
#line 605 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_enable_rx_tx_port(struct rio_mport *port , int local , u16 destid , u8 hopcount ,
                          u8 port_num ) 
{ 
  u32 regval ;
  u32 ext_ftr_ptr ;
  struct _ddebug descriptor ;
  long tmp ;
  int tmp___0 ;
  int tmp___1 ;

  {
#line 616
  descriptor.modname = "rapidio";
#line 616
  descriptor.function = "rio_enable_rx_tx_port";
#line 616
  descriptor.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 616
  descriptor.format = "rio_enable_rx_tx_port(local = %d, destid = %d, hopcount = %d, port_num = %d)\n";
#line 616
  descriptor.lineno = 617U;
#line 616
  descriptor.flags = 1U;
#line 616
  tmp = ldv__builtin_expect((long )descriptor.flags & 1L, 0L);
#line 616
  if (tmp != 0L) {
#line 616
    __dynamic_pr_debug(& descriptor, "rio_enable_rx_tx_port(local = %d, destid = %d, hopcount = %d, port_num = %d)\n",
                       local, (int )destid, (int )hopcount, (int )port_num);
  } else {

  }
#line 619
  ext_ftr_ptr = rio_mport_get_physefb(port, local, (int )destid, (int )hopcount);
#line 621
  if (local != 0) {
#line 622
    rio_local_read_config_32(port, ext_ftr_ptr + 92U, & regval);
  } else {
#line 626
    tmp___0 = rio_mport_read_config_32(port, (int )destid, (int )hopcount, ((u32 )((int )port_num * 32) + ext_ftr_ptr) + 92U,
                                       & regval);
#line 626
    if (tmp___0 < 0) {
#line 628
      return (-5);
    } else {

    }
  }
#line 631
  if ((int )regval & 1) {
#line 633
    regval = regval | 6291456U;
  } else {
#line 637
    regval = regval | 1207959552U;
  }
#line 641
  if (local != 0) {
#line 642
    rio_local_write_config_32(port, ext_ftr_ptr + 92U, regval);
  } else {
#line 645
    tmp___1 = rio_mport_write_config_32(port, (int )destid, (int )hopcount, ((u32 )((int )port_num * 32) + ext_ftr_ptr) + 92U,
                                        regval);
#line 645
    if (tmp___1 < 0) {
#line 647
      return (-5);
    } else {

    }
  }
#line 650
  return (0);
}
}
#line 652 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_enable_rx_tx_port[22U]  = 
#line 652
  {      'r',      'i',      'o',      '_', 
        'e',      'n',      'a',      'b', 
        'l',      'e',      '_',      'r', 
        'x',      '_',      't',      'x', 
        '_',      'p',      'o',      'r', 
        't',      '\000'};
#line 652
struct kernel_symbol  const  __ksymtab_rio_enable_rx_tx_port ;
#line 652 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_enable_rx_tx_port  =    {(unsigned long )(& rio_enable_rx_tx_port), (char const   *)(& __kstrtab_rio_enable_rx_tx_port)};
#line 665 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static int rio_chk_dev_route(struct rio_dev *rdev , struct rio_dev **nrdev , int *npnum ) 
{ 
  u32 result ;
  int p_port ;
  int rc ;
  struct rio_dev *prev ;
  int tmp ;
  struct _ddebug descriptor ;
  char const   *tmp___0 ;
  long tmp___1 ;
  struct _ddebug descriptor___0 ;
  char const   *tmp___2 ;
  long tmp___3 ;

  {
#line 668
  rc = -5;
#line 669
  prev = (struct rio_dev *)0;
#line 672
  goto ldv_27952;
  ldv_27951: 
#line 673
  tmp = rio_read_config_32(rdev->prev, 0U, & result);
#line 673
  if (tmp == 0) {
#line 674
    prev = rdev->prev;
#line 675
    goto ldv_27950;
  } else {

  }
#line 677
  rdev = rdev->prev;
  ldv_27952: ;
#line 672
  if ((unsigned long )rdev->prev != (unsigned long )((struct rio_dev *)0) && ((rdev->prev)->pef & 268435456U) != 0U) {
#line 674
    goto ldv_27951;
  } else {

  }
  ldv_27950: ;
#line 680
  if ((unsigned long )prev == (unsigned long )((struct rio_dev *)0)) {
#line 681
    goto err_out;
  } else {

  }
#line 683
  p_port = (int )*(((struct rio_switch *)(& prev->rswitch))->route_table + (unsigned long )rdev->destid);
#line 685
  if (p_port != 255) {
#line 686
    descriptor.modname = "rapidio";
#line 686
    descriptor.function = "rio_chk_dev_route";
#line 686
    descriptor.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 686
    descriptor.format = "RIO: link failed on [%s]-P%d\n";
#line 686
    descriptor.lineno = 687U;
#line 686
    descriptor.flags = 1U;
#line 686
    tmp___1 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L);
#line 686
    if (tmp___1 != 0L) {
#line 686
      tmp___0 = rio_name(prev);
#line 686
      __dynamic_pr_debug(& descriptor, "RIO: link failed on [%s]-P%d\n", tmp___0,
                         p_port);
    } else {

    }
#line 688
    *nrdev = prev;
#line 689
    *npnum = p_port;
#line 690
    rc = 0;
  } else {
#line 692
    descriptor___0.modname = "rapidio";
#line 692
    descriptor___0.function = "rio_chk_dev_route";
#line 692
    descriptor___0.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 692
    descriptor___0.format = "RIO: failed to trace route to %s\n";
#line 692
    descriptor___0.lineno = 692U;
#line 692
    descriptor___0.flags = 1U;
#line 692
    tmp___3 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L);
#line 692
    if (tmp___3 != 0L) {
#line 692
      tmp___2 = rio_name(rdev);
#line 692
      __dynamic_pr_debug(& descriptor___0, "RIO: failed to trace route to %s\n", tmp___2);
    } else {

    }
  }
  err_out: ;
#line 694
  return (rc);
}
}
#line 704 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_mport_chk_dev_access(struct rio_mport *mport , u16 destid , u8 hopcount ) 
{ 
  int i ;
  u32 tmp ;
  unsigned long __ms ;
  unsigned long tmp___0 ;
  int tmp___1 ;

  {
#line 706
  i = 0;
#line 709
  goto ldv_27969;
  ldv_27968: 
#line 711
  i = i + 1;
#line 712
  if (i == 3) {
#line 713
    return (-5);
  } else {

  }
#line 714
  if (1) {
#line 714
    __const_udelay(4295000UL);
  } else {
#line 714
    __ms = 1UL;
#line 714
    goto ldv_27966;
    ldv_27965: 
#line 714
    __const_udelay(4295000UL);
    ldv_27966: 
#line 714
    tmp___0 = __ms;
#line 714
    __ms = __ms - 1UL;
#line 714
    if (tmp___0 != 0UL) {
#line 716
      goto ldv_27965;
    } else {

    }

  }
  ldv_27969: 
#line 709
  tmp___1 = rio_mport_read_config_32(mport, (int )destid, (int )hopcount, 0U, & tmp);
#line 709
  if (tmp___1 != 0) {
#line 711
    goto ldv_27968;
  } else {

  }

#line 717
  return (0);
}
}
#line 719 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_mport_chk_dev_access[25U]  = 
#line 719
  {      'r',      'i',      'o',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      'c',      'h', 
        'k',      '_',      'd',      'e', 
        'v',      '_',      'a',      'c', 
        'c',      'e',      's',      's', 
        '\000'};
#line 719
struct kernel_symbol  const  __ksymtab_rio_mport_chk_dev_access ;
#line 719 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_mport_chk_dev_access  =    {(unsigned long )(& rio_mport_chk_dev_access), (char const   *)(& __kstrtab_rio_mport_chk_dev_access)};
#line 725 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static int rio_chk_dev_access(struct rio_dev *rdev ) 
{ 
  int tmp ;

  {
#line 727
  tmp = rio_mport_chk_dev_access((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount);
#line 727
  return (tmp);
}
}
#line 739 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static int rio_get_input_status(struct rio_dev *rdev , int pnum , u32 *lnkresp ) 
{ 
  u32 regval ;
  int checkcount ;
  int tmp ;

  {
#line 744
  if ((unsigned long )lnkresp != (unsigned long )((u32 *)0U)) {
#line 747
    rio_read_config_32(rdev, (rdev->phys_efptr + (u32 )(pnum * 32)) + 68U, & regval);
#line 750
    __const_udelay(214750UL);
  } else {

  }
#line 754
  rio_write_config_32(rdev, rdev->phys_efptr + (u32 )((pnum + 2) * 32), 4U);
#line 759
  if ((unsigned long )lnkresp == (unsigned long )((u32 *)0U)) {
#line 760
    return (0);
  } else {

  }
#line 762
  checkcount = 3;
#line 763
  goto ldv_27991;
  ldv_27990: 
#line 764
  __const_udelay(214750UL);
#line 765
  rio_read_config_32(rdev, (rdev->phys_efptr + (u32 )(pnum * 32)) + 68U, & regval);
#line 768
  if ((int )regval < 0) {
#line 769
    *lnkresp = regval;
#line 770
    return (0);
  } else {

  }
  ldv_27991: 
#line 763
  tmp = checkcount;
#line 763
  checkcount = checkcount - 1;
#line 763
  if (tmp != 0) {
#line 765
    goto ldv_27990;
  } else {

  }

#line 774
  return (-5);
}
}
#line 783 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static int rio_clr_err_stopped(struct rio_dev *rdev , u32 pnum , u32 err_status ) 
{ 
  struct rio_dev *nextdev ;
  u32 regval ;
  u32 far_ackid ;
  u32 far_linkstat ;
  u32 near_ackid ;
  struct _ddebug descriptor ;
  long tmp ;
  struct _ddebug descriptor___0 ;
  long tmp___0 ;
  int tmp___1 ;
  struct _ddebug descriptor___1 ;
  long tmp___2 ;
  struct _ddebug descriptor___2 ;
  long tmp___3 ;
  struct _ddebug descriptor___3 ;
  long tmp___4 ;
  struct _ddebug descriptor___4 ;
  long tmp___5 ;
  struct _ddebug descriptor___5 ;
  long tmp___6 ;
  struct _ddebug descriptor___6 ;
  long tmp___7 ;
  struct _ddebug descriptor___7 ;
  long tmp___8 ;

  {
#line 785
  nextdev = ((struct rio_switch *)(& rdev->rswitch))->nextdev[pnum];
#line 789
  if (err_status == 0U) {
#line 790
    rio_read_config_32(rdev, (rdev->phys_efptr + pnum * 32U) + 88U, & err_status);
  } else {

  }
#line 794
  if ((err_status & 65536U) != 0U) {
#line 795
    descriptor.modname = "rapidio";
#line 795
    descriptor.function = "rio_clr_err_stopped";
#line 795
    descriptor.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 795
    descriptor.format = "RIO_EM: servicing Output Error-Stopped state\n";
#line 795
    descriptor.lineno = 795U;
#line 795
    descriptor.flags = 1U;
#line 795
    tmp = ldv__builtin_expect((long )descriptor.flags & 1L, 0L);
#line 795
    if (tmp != 0L) {
#line 795
      __dynamic_pr_debug(& descriptor, "RIO_EM: servicing Output Error-Stopped state\n");
    } else {

    }
#line 799
    tmp___1 = rio_get_input_status(rdev, (int )pnum, & regval);
#line 799
    if (tmp___1 != 0) {
#line 800
      descriptor___0.modname = "rapidio";
#line 800
      descriptor___0.function = "rio_clr_err_stopped";
#line 800
      descriptor___0.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 800
      descriptor___0.format = "RIO_EM: Input-status response timeout\n";
#line 800
      descriptor___0.lineno = 800U;
#line 800
      descriptor___0.flags = 1U;
#line 800
      tmp___0 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L);
#line 800
      if (tmp___0 != 0L) {
#line 800
        __dynamic_pr_debug(& descriptor___0, "RIO_EM: Input-status response timeout\n");
      } else {

      }
#line 801
      goto rd_err;
    } else {

    }
#line 804
    descriptor___1.modname = "rapidio";
#line 804
    descriptor___1.function = "rio_clr_err_stopped";
#line 804
    descriptor___1.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 804
    descriptor___1.format = "RIO_EM: SP%d Input-status response=0x%08x\n";
#line 804
    descriptor___1.lineno = 805U;
#line 804
    descriptor___1.flags = 1U;
#line 804
    tmp___2 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L);
#line 804
    if (tmp___2 != 0L) {
#line 804
      __dynamic_pr_debug(& descriptor___1, "RIO_EM: SP%d Input-status response=0x%08x\n",
                         pnum, regval);
    } else {

    }
#line 806
    far_ackid = (regval & 2016U) >> 5;
#line 807
    far_linkstat = regval & 31U;
#line 808
    rio_read_config_32(rdev, (rdev->phys_efptr + pnum * 32U) + 72U, & regval);
#line 811
    descriptor___2.modname = "rapidio";
#line 811
    descriptor___2.function = "rio_clr_err_stopped";
#line 811
    descriptor___2.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 811
    descriptor___2.format = "RIO_EM: SP%d_ACK_STS_CSR=0x%08x\n";
#line 811
    descriptor___2.lineno = 811U;
#line 811
    descriptor___2.flags = 1U;
#line 811
    tmp___3 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L);
#line 811
    if (tmp___3 != 0L) {
#line 811
      __dynamic_pr_debug(& descriptor___2, "RIO_EM: SP%d_ACK_STS_CSR=0x%08x\n", pnum,
                         regval);
    } else {

    }
#line 812
    near_ackid = (regval & 1056964608U) >> 24;
#line 813
    descriptor___3.modname = "rapidio";
#line 813
    descriptor___3.function = "rio_clr_err_stopped";
#line 813
    descriptor___3.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 813
    descriptor___3.format = "RIO_EM: SP%d far_ackID=0x%02x far_linkstat=0x%02x near_ackID=0x%02x\n";
#line 813
    descriptor___3.lineno = 815U;
#line 813
    descriptor___3.flags = 1U;
#line 813
    tmp___4 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L);
#line 813
    if (tmp___4 != 0L) {
#line 813
      __dynamic_pr_debug(& descriptor___3, "RIO_EM: SP%d far_ackID=0x%02x far_linkstat=0x%02x near_ackID=0x%02x\n",
                         pnum, far_ackid, far_linkstat, near_ackid);
    } else {

    }
#line 821
    if ((regval & 16128U) >> 8 != far_ackid || (regval & 63U) != far_ackid) {
#line 826
      rio_write_config_32(rdev, (rdev->phys_efptr + pnum * 32U) + 72U, ((near_ackid << 24) | (far_ackid << 8)) | far_ackid);
#line 833
      far_ackid = far_ackid + 1U;
#line 834
      if ((unsigned long )nextdev != (unsigned long )((struct rio_dev *)0)) {
#line 835
        rio_write_config_32(nextdev, (nextdev->phys_efptr + (nextdev->swpinfo & 255U) * 32U) + 72U,
                            ((far_ackid << 24) | (near_ackid << 8)) | near_ackid);
      } else {
#line 841
        descriptor___4.modname = "rapidio";
#line 841
        descriptor___4.function = "rio_clr_err_stopped";
#line 841
        descriptor___4.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 841
        descriptor___4.format = "RIO_EM: Invalid nextdev pointer (NULL)\n";
#line 841
        descriptor___4.lineno = 841U;
#line 841
        descriptor___4.flags = 1U;
#line 841
        tmp___5 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L);
#line 841
        if (tmp___5 != 0L) {
#line 841
          __dynamic_pr_debug(& descriptor___4, "RIO_EM: Invalid nextdev pointer (NULL)\n");
        } else {

        }
      }
    } else {

    }
    rd_err: 
#line 844
    rio_read_config_32(rdev, (rdev->phys_efptr + pnum * 32U) + 88U, & err_status);
#line 847
    descriptor___5.modname = "rapidio";
#line 847
    descriptor___5.function = "rio_clr_err_stopped";
#line 847
    descriptor___5.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 847
    descriptor___5.format = "RIO_EM: SP%d_ERR_STS_CSR=0x%08x\n";
#line 847
    descriptor___5.lineno = 847U;
#line 847
    descriptor___5.flags = 1U;
#line 847
    tmp___6 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L);
#line 847
    if (tmp___6 != 0L) {
#line 847
      __dynamic_pr_debug(& descriptor___5, "RIO_EM: SP%d_ERR_STS_CSR=0x%08x\n", pnum,
                         err_status);
    } else {

    }
  } else {

  }
#line 850
  if ((err_status & 256U) != 0U && (unsigned long )nextdev != (unsigned long )((struct rio_dev *)0)) {
#line 851
    descriptor___6.modname = "rapidio";
#line 851
    descriptor___6.function = "rio_clr_err_stopped";
#line 851
    descriptor___6.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 851
    descriptor___6.format = "RIO_EM: servicing Input Error-Stopped state\n";
#line 851
    descriptor___6.lineno = 851U;
#line 851
    descriptor___6.flags = 1U;
#line 851
    tmp___7 = ldv__builtin_expect((long )descriptor___6.flags & 1L, 0L);
#line 851
    if (tmp___7 != 0L) {
#line 851
      __dynamic_pr_debug(& descriptor___6, "RIO_EM: servicing Input Error-Stopped state\n");
    } else {

    }
#line 852
    rio_get_input_status(nextdev, (int )nextdev->swpinfo & 255, (u32 *)0U);
#line 854
    __const_udelay(214750UL);
#line 856
    rio_read_config_32(rdev, (rdev->phys_efptr + pnum * 32U) + 88U, & err_status);
#line 859
    descriptor___7.modname = "rapidio";
#line 859
    descriptor___7.function = "rio_clr_err_stopped";
#line 859
    descriptor___7.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 859
    descriptor___7.format = "RIO_EM: SP%d_ERR_STS_CSR=0x%08x\n";
#line 859
    descriptor___7.lineno = 859U;
#line 859
    descriptor___7.flags = 1U;
#line 859
    tmp___8 = ldv__builtin_expect((long )descriptor___7.flags & 1L, 0L);
#line 859
    if (tmp___8 != 0L) {
#line 859
      __dynamic_pr_debug(& descriptor___7, "RIO_EM: SP%d_ERR_STS_CSR=0x%08x\n", pnum,
                         err_status);
    } else {

    }
  } else {

  }
#line 862
  return ((err_status & 65792U) != 0U);
}
}
#line 873 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_inb_pwrite_handler(union rio_pw_msg *pw_msg ) 
{ 
  struct rio_dev *rdev ;
  u32 err_status ;
  u32 em_perrdet ;
  u32 em_ltlerrdet ;
  int rc ;
  int portnum ;
  struct _ddebug descriptor ;
  long tmp ;
  struct _ddebug descriptor___0 ;
  char const   *tmp___0 ;
  long tmp___1 ;
  struct _ddebug descriptor___1 ;
  long tmp___2 ;
  char const   *tmp___3 ;
  int tmp___4 ;
  int tmp___5 ;
  char const   *tmp___6 ;
  struct _ddebug descriptor___2 ;
  long tmp___7 ;
  struct _ddebug descriptor___3 ;
  char const   *tmp___8 ;
  long tmp___9 ;
  int tmp___10 ;
  struct _ddebug descriptor___4 ;
  char const   *tmp___11 ;
  long tmp___12 ;
  struct _ddebug descriptor___5 ;
  long tmp___13 ;
  struct _ddebug descriptor___6 ;
  long tmp___14 ;

  {
#line 879
  rdev = rio_get_comptag(pw_msg->em.comptag & 131071U, (struct rio_dev *)0);
#line 880
  if ((unsigned long )rdev == (unsigned long )((struct rio_dev *)0)) {
#line 882
    descriptor.modname = "rapidio";
#line 882
    descriptor.function = "rio_inb_pwrite_handler";
#line 882
    descriptor.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 882
    descriptor.format = "RIO: %s No matching device for CTag 0x%08x\n";
#line 882
    descriptor.lineno = 883U;
#line 882
    descriptor.flags = 1U;
#line 882
    tmp = ldv__builtin_expect((long )descriptor.flags & 1L, 0L);
#line 882
    if (tmp != 0L) {
#line 882
      __dynamic_pr_debug(& descriptor, "RIO: %s No matching device for CTag 0x%08x\n",
                         "rio_inb_pwrite_handler", pw_msg->em.comptag);
    } else {

    }
#line 884
    return (-5);
  } else {

  }
#line 887
  descriptor___0.modname = "rapidio";
#line 887
  descriptor___0.function = "rio_inb_pwrite_handler";
#line 887
  descriptor___0.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 887
  descriptor___0.format = "RIO: Port-Write message from %s\n";
#line 887
  descriptor___0.lineno = 887U;
#line 887
  descriptor___0.flags = 1U;
#line 887
  tmp___1 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L);
#line 887
  if (tmp___1 != 0L) {
#line 887
    tmp___0 = rio_name(rdev);
#line 887
    __dynamic_pr_debug(& descriptor___0, "RIO: Port-Write message from %s\n", tmp___0);
  } else {

  }
#line 907
  if ((unsigned long )rdev->pwcback != (unsigned long )((int (*)(struct rio_dev * ,
                                                                 union rio_pw_msg * ,
                                                                 int  ))0)) {
#line 908
    rc = (*(rdev->pwcback))(rdev, pw_msg, 0);
#line 909
    if (rc == 0) {
#line 910
      return (0);
    } else {

    }
  } else {

  }
#line 913
  portnum = (int )pw_msg->em.is_port & 255;
#line 919
  tmp___5 = rio_chk_dev_access(rdev);
#line 919
  if (tmp___5 != 0) {
#line 920
    descriptor___1.modname = "rapidio";
#line 920
    descriptor___1.function = "rio_inb_pwrite_handler";
#line 920
    descriptor___1.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 920
    descriptor___1.format = "RIO: device access failed - get link partner\n";
#line 920
    descriptor___1.lineno = 920U;
#line 920
    descriptor___1.flags = 1U;
#line 920
    tmp___2 = ldv__builtin_expect((long )descriptor___1.flags & 1L, 0L);
#line 920
    if (tmp___2 != 0L) {
#line 920
      __dynamic_pr_debug(& descriptor___1, "RIO: device access failed - get link partner\n");
    } else {

    }
#line 925
    tmp___4 = rio_chk_dev_route(rdev, & rdev, & portnum);
#line 925
    if (tmp___4 != 0) {
#line 926
      tmp___3 = rio_name(rdev);
#line 926
      printk("\vRIO: Route trace for %s failed\n", tmp___3);
#line 928
      return (-5);
    } else {

    }
#line 930
    pw_msg = (union rio_pw_msg *)0;
  } else {

  }
#line 934
  if ((rdev->pef & 268435456U) == 0U) {
#line 935
    return (0);
  } else {

  }
#line 937
  if (rdev->phys_efptr == 0U) {
#line 938
    tmp___6 = rio_name(rdev);
#line 938
    printk("\vRIO_PW: Bad switch initialization for %s\n", tmp___6);
#line 940
    return (0);
  } else {

  }
#line 946
  if ((unsigned long )((struct rio_switch *)(& rdev->rswitch))->ops != (unsigned long )((struct rio_switch_ops *)0) && (unsigned long )(((struct rio_switch *)(& rdev->rswitch))->ops)->em_handle != (unsigned long )((int (*)(struct rio_dev * ,
                                                                                                                                                                                                                               u8  ))0)) {
#line 947
    (*((((struct rio_switch *)(& rdev->rswitch))->ops)->em_handle))(rdev, (int )((u8 )portnum));
  } else {

  }
#line 949
  rio_read_config_32(rdev, (rdev->phys_efptr + (u32 )(portnum * 32)) + 88U, & err_status);
#line 952
  descriptor___2.modname = "rapidio";
#line 952
  descriptor___2.function = "rio_inb_pwrite_handler";
#line 952
  descriptor___2.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 952
  descriptor___2.format = "RIO_PW: SP%d_ERR_STS_CSR=0x%08x\n";
#line 952
  descriptor___2.lineno = 952U;
#line 952
  descriptor___2.flags = 1U;
#line 952
  tmp___7 = ldv__builtin_expect((long )descriptor___2.flags & 1L, 0L);
#line 952
  if (tmp___7 != 0L) {
#line 952
    __dynamic_pr_debug(& descriptor___2, "RIO_PW: SP%d_ERR_STS_CSR=0x%08x\n", portnum,
                       err_status);
  } else {

  }
#line 954
  if ((err_status & 2U) != 0U) {
#line 956
    if ((((struct rio_switch *)(& rdev->rswitch))->port_ok & (u32 )(1 << portnum)) == 0U) {
#line 957
      ((struct rio_switch *)(& rdev->rswitch))->port_ok = ((struct rio_switch *)(& rdev->rswitch))->port_ok | (u32 )(1 << portnum);
#line 958
      rio_set_port_lockout(rdev, (u32 )portnum, 0);
#line 960
      descriptor___3.modname = "rapidio";
#line 960
      descriptor___3.function = "rio_inb_pwrite_handler";
#line 960
      descriptor___3.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 960
      descriptor___3.format = "RIO_PW: Device Insertion on [%s]-P%d\n";
#line 960
      descriptor___3.lineno = 961U;
#line 960
      descriptor___3.flags = 1U;
#line 960
      tmp___9 = ldv__builtin_expect((long )descriptor___3.flags & 1L, 0L);
#line 960
      if (tmp___9 != 0L) {
#line 960
        tmp___8 = rio_name(rdev);
#line 960
        __dynamic_pr_debug(& descriptor___3, "RIO_PW: Device Insertion on [%s]-P%d\n",
                           tmp___8, portnum);
      } else {

      }
    } else {

    }
#line 968
    if ((err_status & 65792U) != 0U) {
#line 970
      tmp___10 = rio_clr_err_stopped(rdev, (u32 )portnum, err_status);
#line 970
      if (tmp___10 != 0) {
#line 971
        rio_clr_err_stopped(rdev, (u32 )portnum, 0U);
      } else {

      }
    } else {

    }
  } else
#line 975
  if ((((struct rio_switch *)(& rdev->rswitch))->port_ok & (u32 )(1 << portnum)) != 0U) {
#line 976
    ((struct rio_switch *)(& rdev->rswitch))->port_ok = ((struct rio_switch *)(& rdev->rswitch))->port_ok & (u32 )(~ (1 << portnum));
#line 977
    rio_set_port_lockout(rdev, (u32 )portnum, 1);
#line 979
    rio_write_config_32(rdev, (rdev->phys_efptr + (u32 )(portnum * 32)) + 72U, 2147483648U);
#line 985
    descriptor___4.modname = "rapidio";
#line 985
    descriptor___4.function = "rio_inb_pwrite_handler";
#line 985
    descriptor___4.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 985
    descriptor___4.format = "RIO_PW: Device Extraction on [%s]-P%d\n";
#line 985
    descriptor___4.lineno = 986U;
#line 985
    descriptor___4.flags = 1U;
#line 985
    tmp___12 = ldv__builtin_expect((long )descriptor___4.flags & 1L, 0L);
#line 985
    if (tmp___12 != 0L) {
#line 985
      tmp___11 = rio_name(rdev);
#line 985
      __dynamic_pr_debug(& descriptor___4, "RIO_PW: Device Extraction on [%s]-P%d\n",
                         tmp___11, portnum);
    } else {

    }
  } else {

  }
#line 990
  rio_read_config_32(rdev, rdev->em_efptr + (u32 )((portnum + 1) * 64), & em_perrdet);
#line 992
  if (em_perrdet != 0U) {
#line 993
    descriptor___5.modname = "rapidio";
#line 993
    descriptor___5.function = "rio_inb_pwrite_handler";
#line 993
    descriptor___5.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 993
    descriptor___5.format = "RIO_PW: RIO_EM_P%d_ERR_DETECT=0x%08x\n";
#line 993
    descriptor___5.lineno = 994U;
#line 993
    descriptor___5.flags = 1U;
#line 993
    tmp___13 = ldv__builtin_expect((long )descriptor___5.flags & 1L, 0L);
#line 993
    if (tmp___13 != 0L) {
#line 993
      __dynamic_pr_debug(& descriptor___5, "RIO_PW: RIO_EM_P%d_ERR_DETECT=0x%08x\n",
                         portnum, em_perrdet);
    } else {

    }
#line 996
    rio_write_config_32(rdev, rdev->em_efptr + (u32 )((portnum + 1) * 64), 0U);
  } else {

  }
#line 1000
  rio_read_config_32(rdev, rdev->em_efptr + 8U, & em_ltlerrdet);
#line 1002
  if (em_ltlerrdet != 0U) {
#line 1003
    descriptor___6.modname = "rapidio";
#line 1003
    descriptor___6.function = "rio_inb_pwrite_handler";
#line 1003
    descriptor___6.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 1003
    descriptor___6.format = "RIO_PW: RIO_EM_LTL_ERR_DETECT=0x%08x\n";
#line 1003
    descriptor___6.lineno = 1004U;
#line 1003
    descriptor___6.flags = 1U;
#line 1003
    tmp___14 = ldv__builtin_expect((long )descriptor___6.flags & 1L, 0L);
#line 1003
    if (tmp___14 != 0L) {
#line 1003
      __dynamic_pr_debug(& descriptor___6, "RIO_PW: RIO_EM_LTL_ERR_DETECT=0x%08x\n",
                         em_ltlerrdet);
    } else {

    }
#line 1006
    rio_write_config_32(rdev, rdev->em_efptr + 8U, 0U);
  } else {

  }
#line 1011
  rio_write_config_32(rdev, (rdev->phys_efptr + (u32 )(portnum * 32)) + 88U, err_status);
#line 1015
  return (0);
}
}
#line 1017 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_inb_pwrite_handler[23U]  = 
#line 1017
  {      'r',      'i',      'o',      '_', 
        'i',      'n',      'b',      '_', 
        'p',      'w',      'r',      'i', 
        't',      'e',      '_',      'h', 
        'a',      'n',      'd',      'l', 
        'e',      'r',      '\000'};
#line 1017
struct kernel_symbol  const  __ksymtab_rio_inb_pwrite_handler ;
#line 1017 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_inb_pwrite_handler  =    {(unsigned long )(& rio_inb_pwrite_handler), (char const   *)(& __kstrtab_rio_inb_pwrite_handler)};
#line 1029 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
u32 rio_mport_get_efb(struct rio_mport *port , int local , u16 destid , u8 hopcount ,
                      u32 from ) 
{ 
  u32 reg_val ;

  {
#line 1034
  if (from == 0U) {
#line 1035
    if (local != 0) {
#line 1036
      rio_local_read_config_32(port, 12U, & reg_val);
    } else {
#line 1039
      rio_mport_read_config_32(port, (int )destid, (int )hopcount, 12U, & reg_val);
    }
#line 1041
    return (reg_val & 65535U);
  } else {
#line 1043
    if (local != 0) {
#line 1044
      rio_local_read_config_32(port, from, & reg_val);
    } else {
#line 1046
      rio_mport_read_config_32(port, (int )destid, (int )hopcount, from, & reg_val);
    }
#line 1048
    return (reg_val & 65535U);
  }
}
}
#line 1051 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_mport_get_efb[18U]  = 
#line 1051
  {      'r',      'i',      'o',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      'g',      'e', 
        't',      '_',      'e',      'f', 
        'b',      '\000'};
#line 1051
struct kernel_symbol  const  __ksymtab_rio_mport_get_efb ;
#line 1051 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_mport_get_efb  =    {(unsigned long )(& rio_mport_get_efb), (char const   *)(& __kstrtab_rio_mport_get_efb)};
#line 1080 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
u32 rio_mport_get_feature(struct rio_mport *port , int local , u16 destid , u8 hopcount ,
                          int ftr ) 
{ 
  u32 asm_info ;
  u32 ext_ftr_ptr ;
  u32 ftr_header ;

  {
#line 1085
  if (local != 0) {
#line 1086
    rio_local_read_config_32(port, 12U, & asm_info);
  } else {
#line 1088
    rio_mport_read_config_32(port, (int )destid, (int )hopcount, 12U, & asm_info);
  }
#line 1091
  ext_ftr_ptr = asm_info & 65535U;
#line 1093
  goto ldv_28070;
  ldv_28069: ;
#line 1094
  if (local != 0) {
#line 1095
    rio_local_read_config_32(port, ext_ftr_ptr, & ftr_header);
  } else {
#line 1098
    rio_mport_read_config_32(port, (int )destid, (int )hopcount, ext_ftr_ptr, & ftr_header);
  }
#line 1100
  if ((ftr_header & 65535U) == (u32 )ftr) {
#line 1101
    return (ext_ftr_ptr);
  } else {

  }
#line 1102
  ext_ftr_ptr = ftr_header >> 16;
#line 1102
  if (ext_ftr_ptr == 0U) {
#line 1103
    goto ldv_28068;
  } else {

  }
  ldv_28070: ;
#line 1093
  if (ext_ftr_ptr != 0U) {
#line 1095
    goto ldv_28069;
  } else {

  }
  ldv_28068: ;
#line 1106
  return (0U);
}
}
#line 1108 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_mport_get_feature[22U]  = 
#line 1108
  {      'r',      'i',      'o',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      'g',      'e', 
        't',      '_',      'f',      'e', 
        'a',      't',      'u',      'r', 
        'e',      '\000'};
#line 1108
struct kernel_symbol  const  __ksymtab_rio_mport_get_feature ;
#line 1108 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_mport_get_feature  =    {(unsigned long )(& rio_mport_get_feature), (char const   *)(& __kstrtab_rio_mport_get_feature)};
#line 1127 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct rio_dev *rio_get_asm(u16 vid , u16 did , u16 asm_vid , u16 asm_did , struct rio_dev *from ) 
{ 
  struct list_head *n ;
  struct rio_dev *rdev ;
  int __ret_warn_on ;
  int tmp ;
  long tmp___0 ;
  struct list_head  const  *__mptr ;

  {
#line 1133
  tmp = preempt_count();
#line 1133
  __ret_warn_on = ((unsigned long )tmp & 2096896UL) != 0UL;
#line 1133
  tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L);
#line 1133
  if (tmp___0 != 0L) {
#line 1133
    warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c",
                       1133);
  } else {

  }
#line 1133
  ldv__builtin_expect(__ret_warn_on != 0, 0L);
#line 1134
  spin_lock(& rio_global_list_lock);
#line 1135
  n = (unsigned long )from != (unsigned long )((struct rio_dev *)0) ? from->global_list.next : rio_devices.next;
#line 1137
  goto ldv_28097;
  ldv_28096: 
#line 1138
  __mptr = (struct list_head  const  *)n;
#line 1138
  rdev = (struct rio_dev *)__mptr;
#line 1139
  if (((((unsigned int )vid == 65535U || (int )rdev->vid == (int )vid) && ((unsigned int )did == 65535U || (int )rdev->did == (int )did)) && ((unsigned int )asm_vid == 65535U || (int )rdev->asm_vid == (int )asm_vid)) && ((unsigned int )asm_did == 65535U || (int )rdev->asm_did == (int )asm_did)) {
#line 1143
    goto exit;
  } else {

  }
#line 1144
  n = n->next;
  ldv_28097: ;
#line 1137
  if ((unsigned long )n != (unsigned long )((struct list_head *)0) && (unsigned long )n != (unsigned long )(& rio_devices)) {
#line 1139
    goto ldv_28096;
  } else {

  }
#line 1146
  rdev = (struct rio_dev *)0;
  exit: 
#line 1148
  rio_dev_put(from);
#line 1149
  rdev = rio_dev_get(rdev);
#line 1150
  spin_unlock(& rio_global_list_lock);
#line 1151
  return (rdev);
}
}
#line 1168 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct rio_dev *rio_get_device(u16 vid , u16 did , struct rio_dev *from ) 
{ 
  struct rio_dev *tmp ;

  {
#line 1170
  tmp = rio_get_asm((int )vid, (int )did, 65535, 65535, from);
#line 1170
  return (tmp);
}
}
#line 1184 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static int rio_std_route_add_entry(struct rio_mport *mport , u16 destid , u8 hopcount ,
                                   u16 table , u16 route_destid , u8 route_port ) 
{ 


  {
#line 1187
  if ((unsigned int )table == 255U) {
#line 1188
    rio_mport_write_config_32(mport, (int )destid, (int )hopcount, 112U, (unsigned int )route_destid);
#line 1191
    rio_mport_write_config_32(mport, (int )destid, (int )hopcount, 116U, (unsigned int )route_port);
  } else {

  }
#line 1196
  __const_udelay(42950UL);
#line 1197
  return (0);
}
}
#line 1212 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static int rio_std_route_get_entry(struct rio_mport *mport , u16 destid , u8 hopcount ,
                                   u16 table , u16 route_destid , u8 *route_port ) 
{ 
  u32 result ;

  {
#line 1217
  if ((unsigned int )table == 255U) {
#line 1218
    rio_mport_write_config_32(mport, (int )destid, (int )hopcount, 112U, (u32 )route_destid);
#line 1220
    rio_mport_read_config_32(mport, (int )destid, (int )hopcount, 116U, & result);
#line 1223
    *route_port = (unsigned char )result;
  } else {

  }
#line 1226
  return (0);
}
}
#line 1238 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static int rio_std_route_clr_table(struct rio_mport *mport , u16 destid , u8 hopcount ,
                                   u16 table ) 
{ 
  u32 max_destid ;
  u32 i ;
  u32 pef ;
  u32 id_inc ;
  u32 ext_cfg ;
  u32 port_sel ;

  {
#line 1241
  max_destid = 255U;
#line 1242
  id_inc = 1U;
#line 1242
  ext_cfg = 0U;
#line 1243
  port_sel = 255U;
#line 1245
  if ((unsigned int )table == 255U) {
#line 1246
    rio_mport_read_config_32(mport, (int )destid, (int )hopcount, 16U, & pef);
#line 1249
    if (mport->sys_size != 0U) {
#line 1250
      rio_mport_read_config_32(mport, (int )destid, (int )hopcount, 52U, & max_destid);
#line 1253
      max_destid = max_destid & 65535U;
    } else {

    }
#line 1256
    if ((pef & 512U) != 0U) {
#line 1257
      ext_cfg = 2147483648U;
#line 1258
      id_inc = 4U;
#line 1259
      port_sel = 4294967295U;
    } else {

    }
#line 1265
    i = 0U;
#line 1265
    goto ldv_28134;
    ldv_28133: 
#line 1266
    rio_mport_write_config_32(mport, (int )destid, (int )hopcount, 112U, ext_cfg | i);
#line 1269
    rio_mport_write_config_32(mport, (int )destid, (int )hopcount, 116U, port_sel);
#line 1272
    i = i + id_inc;
    ldv_28134: ;
#line 1265
    if (i <= max_destid) {
#line 1267
      goto ldv_28133;
    } else {

    }

  } else {

  }
#line 1276
  __const_udelay(42950UL);
#line 1277
  return (0);
}
}
#line 1290 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_lock_device(struct rio_mport *port , u16 destid , u8 hopcount , int wait_ms ) 
{ 
  u32 result ;
  int tcnt ;
  struct _ddebug descriptor ;
  long tmp ;
  unsigned long __ms ;
  unsigned long tmp___0 ;

  {
#line 1294
  tcnt = 0;
#line 1297
  rio_mport_write_config_32(port, (int )destid, (int )hopcount, 104U, (u32 )port->host_deviceid);
#line 1299
  rio_mport_read_config_32(port, (int )destid, (int )hopcount, 104U, & result);
#line 1302
  goto ldv_28151;
  ldv_28150: ;
#line 1303
  if (wait_ms != 0 && tcnt == wait_ms) {
#line 1304
    descriptor.modname = "rapidio";
#line 1304
    descriptor.function = "rio_lock_device";
#line 1304
    descriptor.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 1304
    descriptor.format = "RIO: timeout when locking device %x:%x\n";
#line 1304
    descriptor.lineno = 1305U;
#line 1304
    descriptor.flags = 1U;
#line 1304
    tmp = ldv__builtin_expect((long )descriptor.flags & 1L, 0L);
#line 1304
    if (tmp != 0L) {
#line 1304
      __dynamic_pr_debug(& descriptor, "RIO: timeout when locking device %x:%x\n",
                         (int )destid, (int )hopcount);
    } else {

    }
#line 1306
    return (-22);
  } else {

  }
#line 1310
  if (1) {
#line 1310
    __const_udelay(4295000UL);
  } else {
#line 1310
    __ms = 1UL;
#line 1310
    goto ldv_28148;
    ldv_28147: 
#line 1310
    __const_udelay(4295000UL);
    ldv_28148: 
#line 1310
    tmp___0 = __ms;
#line 1310
    __ms = __ms - 1UL;
#line 1310
    if (tmp___0 != 0UL) {
#line 1312
      goto ldv_28147;
    } else {

    }

  }
#line 1311
  tcnt = tcnt + 1;
#line 1313
  rio_mport_write_config_32(port, (int )destid, (int )hopcount, 104U, (u32 )port->host_deviceid);
#line 1317
  rio_mport_read_config_32(port, (int )destid, (int )hopcount, 104U, & result);
  ldv_28151: ;
#line 1302
  if ((u32 )port->host_deviceid != result) {
#line 1304
    goto ldv_28150;
  } else {

  }

#line 1322
  return (0);
}
}
#line 1324 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_lock_device[16U]  = 
#line 1324
  {      'r',      'i',      'o',      '_', 
        'l',      'o',      'c',      'k', 
        '_',      'd',      'e',      'v', 
        'i',      'c',      'e',      '\000'};
#line 1324
struct kernel_symbol  const  __ksymtab_rio_lock_device ;
#line 1324 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_lock_device  =    {(unsigned long )(& rio_lock_device), (char const   *)(& __kstrtab_rio_lock_device)};
#line 1334 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_unlock_device(struct rio_mport *port , u16 destid , u8 hopcount ) 
{ 
  u32 result ;
  struct _ddebug descriptor ;
  long tmp ;

  {
#line 1339
  rio_mport_write_config_32(port, (int )destid, (int )hopcount, 104U, (u32 )port->host_deviceid);
#line 1343
  rio_mport_read_config_32(port, (int )destid, (int )hopcount, 104U, & result);
#line 1345
  if ((result & 65535U) != 65535U) {
#line 1346
    descriptor.modname = "rapidio";
#line 1346
    descriptor.function = "rio_unlock_device";
#line 1346
    descriptor.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 1346
    descriptor.format = "RIO: badness when releasing device lock %x:%x\n";
#line 1346
    descriptor.lineno = 1347U;
#line 1346
    descriptor.flags = 1U;
#line 1346
    tmp = ldv__builtin_expect((long )descriptor.flags & 1L, 0L);
#line 1346
    if (tmp != 0L) {
#line 1346
      __dynamic_pr_debug(& descriptor, "RIO: badness when releasing device lock %x:%x\n",
                         (int )destid, (int )hopcount);
    } else {

    }
#line 1348
    return (-22);
  } else {

  }
#line 1351
  return (0);
}
}
#line 1353 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_unlock_device[18U]  = 
#line 1353
  {      'r',      'i',      'o',      '_', 
        'u',      'n',      'l',      'o', 
        'c',      'k',      '_',      'd', 
        'e',      'v',      'i',      'c', 
        'e',      '\000'};
#line 1353
struct kernel_symbol  const  __ksymtab_rio_unlock_device ;
#line 1353 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_unlock_device  =    {(unsigned long )(& rio_unlock_device), (char const   *)(& __kstrtab_rio_unlock_device)};
#line 1372 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_route_add_entry(struct rio_dev *rdev , u16 table , u16 route_destid , u8 route_port ,
                        int lock ) 
{ 
  int rc ;
  struct rio_switch_ops *ops ;
  bool tmp ;

  {
#line 1375
  rc = -22;
#line 1376
  ops = ((struct rio_switch *)(& rdev->rswitch))->ops;
#line 1378
  if (lock != 0) {
#line 1379
    rc = rio_lock_device((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                         1000);
#line 1381
    if (rc != 0) {
#line 1382
      return (rc);
    } else {

    }
  } else {

  }
#line 1385
  spin_lock(& ((struct rio_switch *)(& rdev->rswitch))->lock);
#line 1387
  if ((unsigned long )ops == (unsigned long )((struct rio_switch_ops *)0) || (unsigned long )ops->add_entry == (unsigned long )((int (*)(struct rio_mport * ,
                                                                                                                                         u16  ,
                                                                                                                                         u8  ,
                                                                                                                                         u16  ,
                                                                                                                                         u16  ,
                                                                                                                                         u8  ))0)) {
#line 1388
    rc = rio_std_route_add_entry((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                                 (int )table, (int )route_destid, (int )route_port);
  } else {
#line 1391
    tmp = ldv_try_module_get_10(ops->owner);
#line 1391
    if ((int )tmp) {
#line 1392
      rc = (*(ops->add_entry))((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                               (int )table, (int )route_destid, (int )route_port);
#line 1395
      ldv_module_put_11(ops->owner);
    } else {

    }
  }
#line 1398
  spin_unlock(& ((struct rio_switch *)(& rdev->rswitch))->lock);
#line 1400
  if (lock != 0) {
#line 1401
    rio_unlock_device((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount);
  } else {

  }
#line 1404
  return (rc);
}
}
#line 1406 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_route_add_entry[20U]  = 
#line 1406
  {      'r',      'i',      'o',      '_', 
        'r',      'o',      'u',      't', 
        'e',      '_',      'a',      'd', 
        'd',      '_',      'e',      'n', 
        't',      'r',      'y',      '\000'};
#line 1406
struct kernel_symbol  const  __ksymtab_rio_route_add_entry ;
#line 1406 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_route_add_entry  =    {(unsigned long )(& rio_route_add_entry), (char const   *)(& __kstrtab_rio_route_add_entry)};
#line 1425 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_route_get_entry(struct rio_dev *rdev , u16 table , u16 route_destid , u8 *route_port ,
                        int lock ) 
{ 
  int rc ;
  struct rio_switch_ops *ops ;
  bool tmp ;

  {
#line 1428
  rc = -22;
#line 1429
  ops = ((struct rio_switch *)(& rdev->rswitch))->ops;
#line 1431
  if (lock != 0) {
#line 1432
    rc = rio_lock_device((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                         1000);
#line 1434
    if (rc != 0) {
#line 1435
      return (rc);
    } else {

    }
  } else {

  }
#line 1438
  spin_lock(& ((struct rio_switch *)(& rdev->rswitch))->lock);
#line 1440
  if ((unsigned long )ops == (unsigned long )((struct rio_switch_ops *)0) || (unsigned long )ops->get_entry == (unsigned long )((int (*)(struct rio_mport * ,
                                                                                                                                         u16  ,
                                                                                                                                         u8  ,
                                                                                                                                         u16  ,
                                                                                                                                         u16  ,
                                                                                                                                         u8 * ))0)) {
#line 1441
    rc = rio_std_route_get_entry((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                                 (int )table, (int )route_destid, route_port);
  } else {
#line 1444
    tmp = ldv_try_module_get_12(ops->owner);
#line 1444
    if ((int )tmp) {
#line 1445
      rc = (*(ops->get_entry))((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                               (int )table, (int )route_destid, route_port);
#line 1448
      ldv_module_put_13(ops->owner);
    } else {

    }
  }
#line 1451
  spin_unlock(& ((struct rio_switch *)(& rdev->rswitch))->lock);
#line 1453
  if (lock != 0) {
#line 1454
    rio_unlock_device((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount);
  } else {

  }
#line 1456
  return (rc);
}
}
#line 1458 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_route_get_entry[20U]  = 
#line 1458
  {      'r',      'i',      'o',      '_', 
        'r',      'o',      'u',      't', 
        'e',      '_',      'g',      'e', 
        't',      '_',      'e',      'n', 
        't',      'r',      'y',      '\000'};
#line 1458
struct kernel_symbol  const  __ksymtab_rio_route_get_entry ;
#line 1458 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_route_get_entry  =    {(unsigned long )(& rio_route_get_entry), (char const   *)(& __kstrtab_rio_route_get_entry)};
#line 1474 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_route_clr_table(struct rio_dev *rdev , u16 table , int lock ) 
{ 
  int rc ;
  struct rio_switch_ops *ops ;
  bool tmp ;

  {
#line 1476
  rc = -22;
#line 1477
  ops = ((struct rio_switch *)(& rdev->rswitch))->ops;
#line 1479
  if (lock != 0) {
#line 1480
    rc = rio_lock_device((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                         1000);
#line 1482
    if (rc != 0) {
#line 1483
      return (rc);
    } else {

    }
  } else {

  }
#line 1486
  spin_lock(& ((struct rio_switch *)(& rdev->rswitch))->lock);
#line 1488
  if ((unsigned long )ops == (unsigned long )((struct rio_switch_ops *)0) || (unsigned long )ops->clr_table == (unsigned long )((int (*)(struct rio_mport * ,
                                                                                                                                         u16  ,
                                                                                                                                         u8  ,
                                                                                                                                         u16  ))0)) {
#line 1489
    rc = rio_std_route_clr_table((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                                 (int )table);
  } else {
#line 1491
    tmp = ldv_try_module_get_14(ops->owner);
#line 1491
    if ((int )tmp) {
#line 1492
      rc = (*(ops->clr_table))((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                               (int )table);
#line 1495
      ldv_module_put_15(ops->owner);
    } else {

    }
  }
#line 1498
  spin_unlock(& ((struct rio_switch *)(& rdev->rswitch))->lock);
#line 1500
  if (lock != 0) {
#line 1501
    rio_unlock_device((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount);
  } else {

  }
#line 1504
  return (rc);
}
}
#line 1506 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_route_clr_table[20U]  = 
#line 1506
  {      'r',      'i',      'o',      '_', 
        'r',      'o',      'u',      't', 
        'e',      '_',      'c',      'l', 
        'r',      '_',      't',      'a', 
        'b',      'l',      'e',      '\000'};
#line 1506
struct kernel_symbol  const  __ksymtab_rio_route_clr_table ;
#line 1506 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_route_clr_table  =    {(unsigned long )(& rio_route_clr_table), (char const   *)(& __kstrtab_rio_route_clr_table)};
#line 1510 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static bool rio_chan_filter(struct dma_chan *chan , void *arg ) 
{ 
  struct rio_mport *mport ;
  struct dma_device  const  *__mptr ;

  {
#line 1512
  mport = (struct rio_mport *)arg;
#line 1515
  __mptr = (struct dma_device  const  *)chan->device;
#line 1515
  return ((unsigned long )((struct rio_mport *)__mptr + 0xfffffffffffff5c0UL) == (unsigned long )mport);
}
}
#line 1525 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct dma_chan *rio_request_mport_dma(struct rio_mport *mport ) 
{ 
  dma_cap_mask_t mask ;
  struct dma_chan *tmp ;

  {
#line 1529
  __dma_cap_zero(& mask);
#line 1530
  __dma_cap_set(10, & mask);
#line 1531
  tmp = __dma_request_channel((dma_cap_mask_t const   *)(& mask), & rio_chan_filter,
                              (void *)mport);
#line 1531
  return (tmp);
}
}
#line 1533 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_request_mport_dma[22U]  = 
#line 1533
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'q',      'u', 
        'e',      's',      't',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      'd',      'm', 
        'a',      '\000'};
#line 1533
struct kernel_symbol  const  __ksymtab_rio_request_mport_dma ;
#line 1533 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_request_mport_dma  =    {(unsigned long )(& rio_request_mport_dma), (char const   *)(& __kstrtab_rio_request_mport_dma)};
#line 1542 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct dma_chan *rio_request_dma(struct rio_dev *rdev ) 
{ 
  struct dma_chan *tmp ;

  {
#line 1544
  tmp = rio_request_mport_dma((rdev->net)->hport);
#line 1544
  return (tmp);
}
}
#line 1546 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_request_dma[16U]  = 
#line 1546
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'q',      'u', 
        'e',      's',      't',      '_', 
        'd',      'm',      'a',      '\000'};
#line 1546
struct kernel_symbol  const  __ksymtab_rio_request_dma ;
#line 1546 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_request_dma  =    {(unsigned long )(& rio_request_dma), (char const   *)(& __kstrtab_rio_request_dma)};
#line 1552 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
void rio_release_dma(struct dma_chan *dchan ) 
{ 


  {
#line 1554
  dma_release_channel(dchan);
#line 1555
  return;
}
}
#line 1556 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_release_dma[16U]  = 
#line 1556
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'l',      'e', 
        'a',      's',      'e',      '_', 
        'd',      'm',      'a',      '\000'};
#line 1556
struct kernel_symbol  const  __ksymtab_rio_release_dma ;
#line 1556 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_release_dma  =    {(unsigned long )(& rio_release_dma), (char const   *)(& __kstrtab_rio_release_dma)};
#line 1572 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct dma_async_tx_descriptor *rio_dma_prep_xfer(struct dma_chan *dchan , u16 destid ,
                                                  struct rio_dma_data *data , enum dma_transfer_direction direction ,
                                                  unsigned long flags ) 
{ 
  struct rio_dma_ext rio_ext ;
  struct dma_async_tx_descriptor *tmp ;

  {
#line 1578
  if ((unsigned long )(dchan->device)->device_prep_slave_sg == (unsigned long )((struct dma_async_tx_descriptor *(*)(struct dma_chan * ,
                                                                                                                     struct scatterlist * ,
                                                                                                                     unsigned int  ,
                                                                                                                     enum dma_transfer_direction  ,
                                                                                                                     unsigned long  ,
                                                                                                                     void * ))0)) {
#line 1579
    printk("\v%s: prep_rio_sg == NULL\n", "rio_dma_prep_xfer");
#line 1580
    return ((struct dma_async_tx_descriptor *)0);
  } else {

  }
#line 1583
  rio_ext.destid = destid;
#line 1584
  rio_ext.rio_addr_u = data->rio_addr_u;
#line 1585
  rio_ext.rio_addr = data->rio_addr;
#line 1586
  rio_ext.wr_type = data->wr_type;
#line 1588
  tmp = dmaengine_prep_rio_sg(dchan, data->sg, data->sg_len, direction, flags, & rio_ext);
#line 1588
  return (tmp);
}
}
#line 1591 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_dma_prep_xfer[18U]  = 
#line 1591
  {      'r',      'i',      'o',      '_', 
        'd',      'm',      'a',      '_', 
        'p',      'r',      'e',      'p', 
        '_',      'x',      'f',      'e', 
        'r',      '\000'};
#line 1591
struct kernel_symbol  const  __ksymtab_rio_dma_prep_xfer ;
#line 1591 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_dma_prep_xfer  =    {(unsigned long )(& rio_dma_prep_xfer), (char const   *)(& __kstrtab_rio_dma_prep_xfer)};
#line 1607 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct dma_async_tx_descriptor *rio_dma_prep_slave_sg(struct rio_dev *rdev , struct dma_chan *dchan ,
                                                      struct rio_dma_data *data ,
                                                      enum dma_transfer_direction direction ,
                                                      unsigned long flags ) 
{ 
  struct dma_async_tx_descriptor *tmp ;

  {
#line 1611
  tmp = rio_dma_prep_xfer(dchan, (int )rdev->destid, data, direction, flags);
#line 1611
  return (tmp);
}
}
#line 1613 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_dma_prep_slave_sg[22U]  = 
#line 1613
  {      'r',      'i',      'o',      '_', 
        'd',      'm',      'a',      '_', 
        'p',      'r',      'e',      'p', 
        '_',      's',      'l',      'a', 
        'v',      'e',      '_',      's', 
        'g',      '\000'};
#line 1613
struct kernel_symbol  const  __ksymtab_rio_dma_prep_slave_sg ;
#line 1613 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_dma_prep_slave_sg  =    {(unsigned long )(& rio_dma_prep_slave_sg), (char const   *)(& __kstrtab_rio_dma_prep_slave_sg)};
#line 1625 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct rio_mport *rio_find_mport(int mport_id ) 
{ 
  struct rio_mport *port ;
  struct list_head  const  *__mptr ;
  struct list_head  const  *__mptr___0 ;

  {
#line 1629
  mutex_lock_nested(& rio_mport_list_lock, 0U);
#line 1630
  __mptr = (struct list_head  const  *)rio_mports.next;
#line 1630
  port = (struct rio_mport *)__mptr + 0xfffffffffffffff0UL;
#line 1630
  goto ldv_28322;
  ldv_28321: ;
#line 1631
  if ((int )port->id == mport_id) {
#line 1632
    goto found;
  } else {

  }
#line 1630
  __mptr___0 = (struct list_head  const  *)port->node.next;
#line 1630
  port = (struct rio_mport *)__mptr___0 + 0xfffffffffffffff0UL;
  ldv_28322: ;
#line 1630
  if ((unsigned long )(& port->node) != (unsigned long )(& rio_mports)) {
#line 1632
    goto ldv_28321;
  } else {

  }
#line 1634
  port = (struct rio_mport *)0;
  found: 
#line 1636
  mutex_unlock(& rio_mport_list_lock);
#line 1638
  return (port);
}
}
#line 1654 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_register_scan(int mport_id , struct rio_scan *scan_ops ) 
{ 
  struct rio_mport *port ;
  struct rio_scan_node *scan ;
  int rc ;
  struct _ddebug descriptor ;
  long tmp ;
  struct list_head  const  *__mptr ;
  struct list_head  const  *__mptr___0 ;
  void *tmp___0 ;
  struct list_head  const  *__mptr___1 ;
  struct list_head  const  *__mptr___2 ;

  {
#line 1658
  rc = 0;
#line 1660
  descriptor.modname = "rapidio";
#line 1660
  descriptor.function = "rio_register_scan";
#line 1660
  descriptor.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 1660
  descriptor.format = "RIO: %s for mport_id=%d\n";
#line 1660
  descriptor.lineno = 1660U;
#line 1660
  descriptor.flags = 1U;
#line 1660
  tmp = ldv__builtin_expect((long )descriptor.flags & 1L, 0L);
#line 1660
  if (tmp != 0L) {
#line 1660
    __dynamic_pr_debug(& descriptor, "RIO: %s for mport_id=%d\n", "rio_register_scan",
                       mport_id);
  } else {

  }
#line 1662
  if ((mport_id != -1 && mport_id > 7) || (unsigned long )scan_ops == (unsigned long )((struct rio_scan *)0)) {
#line 1664
    return (-22);
  } else {

  }
#line 1666
  mutex_lock_nested(& rio_mport_list_lock, 0U);
#line 1673
  __mptr = (struct list_head  const  *)rio_scans.next;
#line 1673
  scan = (struct rio_scan_node *)__mptr + 0xfffffffffffffff8UL;
#line 1673
  goto ldv_28339;
  ldv_28338: ;
#line 1674
  if (scan->mport_id == mport_id) {
#line 1675
    rc = -16;
#line 1676
    goto err_out;
  } else {

  }
#line 1673
  __mptr___0 = (struct list_head  const  *)scan->node.next;
#line 1673
  scan = (struct rio_scan_node *)__mptr___0 + 0xfffffffffffffff8UL;
  ldv_28339: ;
#line 1673
  if ((unsigned long )(& scan->node) != (unsigned long )(& rio_scans)) {
#line 1675
    goto ldv_28338;
  } else {

  }
#line 1683
  tmp___0 = kzalloc(32UL, 208U);
#line 1683
  scan = (struct rio_scan_node *)tmp___0;
#line 1684
  if ((unsigned long )scan == (unsigned long )((struct rio_scan_node *)0)) {
#line 1685
    rc = -12;
#line 1686
    goto err_out;
  } else {

  }
#line 1689
  scan->mport_id = mport_id;
#line 1690
  scan->ops = scan_ops;
#line 1701
  __mptr___1 = (struct list_head  const  *)rio_mports.next;
#line 1701
  port = (struct rio_mport *)__mptr___1 + 0xfffffffffffffff0UL;
#line 1701
  goto ldv_28347;
  ldv_28346: ;
#line 1702
  if ((int )port->id == mport_id) {
#line 1703
    port->nscan = scan_ops;
#line 1704
    goto ldv_28345;
  } else
#line 1705
  if (mport_id == -1 && (unsigned long )port->nscan == (unsigned long )((struct rio_scan *)0)) {
#line 1706
    port->nscan = scan_ops;
  } else {

  }
#line 1701
  __mptr___2 = (struct list_head  const  *)port->node.next;
#line 1701
  port = (struct rio_mport *)__mptr___2 + 0xfffffffffffffff0UL;
  ldv_28347: ;
#line 1701
  if ((unsigned long )(& port->node) != (unsigned long )(& rio_mports)) {
#line 1703
    goto ldv_28346;
  } else {

  }
  ldv_28345: 
#line 1709
  list_add_tail(& scan->node, & rio_scans);
  err_out: 
#line 1712
  mutex_unlock(& rio_mport_list_lock);
#line 1714
  return (rc);
}
}
#line 1716 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_register_scan[18U]  = 
#line 1716
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'g',      'i', 
        's',      't',      'e',      'r', 
        '_',      's',      'c',      'a', 
        'n',      '\000'};
#line 1716
struct kernel_symbol  const  __ksymtab_rio_register_scan ;
#line 1716 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_register_scan  =    {(unsigned long )(& rio_register_scan), (char const   *)(& __kstrtab_rio_register_scan)};
#line 1729 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_unregister_scan(int mport_id , struct rio_scan *scan_ops ) 
{ 
  struct rio_mport *port ;
  struct rio_scan_node *scan ;
  struct _ddebug descriptor ;
  long tmp ;
  struct list_head  const  *__mptr ;
  struct list_head  const  *__mptr___0 ;
  struct list_head  const  *__mptr___1 ;
  struct list_head  const  *__mptr___2 ;

  {
#line 1734
  descriptor.modname = "rapidio";
#line 1734
  descriptor.function = "rio_unregister_scan";
#line 1734
  descriptor.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 1734
  descriptor.format = "RIO: %s for mport_id=%d\n";
#line 1734
  descriptor.lineno = 1734U;
#line 1734
  descriptor.flags = 1U;
#line 1734
  tmp = ldv__builtin_expect((long )descriptor.flags & 1L, 0L);
#line 1734
  if (tmp != 0L) {
#line 1734
    __dynamic_pr_debug(& descriptor, "RIO: %s for mport_id=%d\n", "rio_unregister_scan",
                       mport_id);
  } else {

  }
#line 1736
  if (mport_id != -1 && mport_id > 7) {
#line 1737
    return (-22);
  } else {

  }
#line 1739
  mutex_lock_nested(& rio_mport_list_lock, 0U);
#line 1741
  __mptr = (struct list_head  const  *)rio_mports.next;
#line 1741
  port = (struct rio_mport *)__mptr + 0xfffffffffffffff0UL;
#line 1741
  goto ldv_28369;
  ldv_28368: ;
#line 1742
  if ((int )port->id == mport_id || (mport_id == -1 && (unsigned long )port->nscan == (unsigned long )scan_ops)) {
#line 1744
    port->nscan = (struct rio_scan *)0;
  } else {

  }
#line 1741
  __mptr___0 = (struct list_head  const  *)port->node.next;
#line 1741
  port = (struct rio_mport *)__mptr___0 + 0xfffffffffffffff0UL;
  ldv_28369: ;
#line 1741
  if ((unsigned long )(& port->node) != (unsigned long )(& rio_mports)) {
#line 1743
    goto ldv_28368;
  } else {

  }
#line 1746
  __mptr___1 = (struct list_head  const  *)rio_scans.next;
#line 1746
  scan = (struct rio_scan_node *)__mptr___1 + 0xfffffffffffffff8UL;
#line 1746
  goto ldv_28377;
  ldv_28376: ;
#line 1747
  if (scan->mport_id == mport_id) {
#line 1748
    list_del(& scan->node);
#line 1749
    kfree((void const   *)scan);
#line 1750
    goto ldv_28375;
  } else {

  }
#line 1746
  __mptr___2 = (struct list_head  const  *)scan->node.next;
#line 1746
  scan = (struct rio_scan_node *)__mptr___2 + 0xfffffffffffffff8UL;
  ldv_28377: ;
#line 1746
  if ((unsigned long )(& scan->node) != (unsigned long )(& rio_scans)) {
#line 1748
    goto ldv_28376;
  } else {

  }
  ldv_28375: 
#line 1754
  mutex_unlock(& rio_mport_list_lock);
#line 1756
  return (0);
}
}
#line 1758 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_unregister_scan[20U]  = 
#line 1758
  {      'r',      'i',      'o',      '_', 
        'u',      'n',      'r',      'e', 
        'g',      'i',      's',      't', 
        'e',      'r',      '_',      's', 
        'c',      'a',      'n',      '\000'};
#line 1758
struct kernel_symbol  const  __ksymtab_rio_unregister_scan ;
#line 1758 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_unregister_scan  =    {(unsigned long )(& rio_unregister_scan), (char const   *)(& __kstrtab_rio_unregister_scan)};
#line 1764 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_mport_scan(int mport_id ) 
{ 
  struct rio_mport *port ;
  int rc ;
  struct list_head  const  *__mptr ;
  struct list_head  const  *__mptr___0 ;
  bool tmp ;
  int tmp___0 ;

  {
#line 1766
  port = (struct rio_mport *)0;
#line 1769
  mutex_lock_nested(& rio_mport_list_lock, 0U);
#line 1770
  __mptr = (struct list_head  const  *)rio_mports.next;
#line 1770
  port = (struct rio_mport *)__mptr + 0xfffffffffffffff0UL;
#line 1770
  goto ldv_28397;
  ldv_28396: ;
#line 1771
  if ((int )port->id == mport_id) {
#line 1772
    goto found;
  } else {

  }
#line 1770
  __mptr___0 = (struct list_head  const  *)port->node.next;
#line 1770
  port = (struct rio_mport *)__mptr___0 + 0xfffffffffffffff0UL;
  ldv_28397: ;
#line 1770
  if ((unsigned long )(& port->node) != (unsigned long )(& rio_mports)) {
#line 1772
    goto ldv_28396;
  } else {

  }
#line 1774
  mutex_unlock(& rio_mport_list_lock);
#line 1775
  return (-19);
  found: ;
#line 1777
  if ((unsigned long )port->nscan == (unsigned long )((struct rio_scan *)0)) {
#line 1778
    mutex_unlock(& rio_mport_list_lock);
#line 1779
    return (-22);
  } else {

  }
#line 1782
  tmp = ldv_try_module_get_16((port->nscan)->owner);
#line 1782
  if (tmp) {
#line 1782
    tmp___0 = 0;
  } else {
#line 1782
    tmp___0 = 1;
  }
#line 1782
  if (tmp___0) {
#line 1783
    mutex_unlock(& rio_mport_list_lock);
#line 1784
    return (-19);
  } else {

  }
#line 1787
  mutex_unlock(& rio_mport_list_lock);
#line 1789
  if (port->host_deviceid >= 0) {
#line 1790
    rc = (*((port->nscan)->enumerate))(port, 0U);
  } else {
#line 1792
    rc = (*((port->nscan)->discover))(port, 1U);
  }
#line 1794
  ldv_module_put_17((port->nscan)->owner);
#line 1795
  return (rc);
}
}
#line 1798 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static void rio_fixup_device(struct rio_dev *dev ) 
{ 


  {
#line 1800
  return;
}
}
#line 1802 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static int rio_init(void) 
{ 
  struct rio_dev *dev ;

  {
#line 1804
  dev = (struct rio_dev *)0;
#line 1806
  goto ldv_28407;
  ldv_28406: 
#line 1807
  rio_fixup_device(dev);
  ldv_28407: 
#line 1806
  dev = rio_get_device(65535, 65535, dev);
#line 1806
  if ((unsigned long )dev != (unsigned long )((struct rio_dev *)0)) {
#line 1808
    goto ldv_28406;
  } else {

  }

#line 1809
  return (0);
}
}
#line 1812 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static struct workqueue_struct *rio_wq  ;
#line 1819 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static void disc_work_handler(struct work_struct *_work ) 
{ 
  struct rio_disc_work *work ;
  struct work_struct  const  *__mptr ;
  struct _ddebug descriptor ;
  long tmp ;
  bool tmp___0 ;

  {
#line 1823
  __mptr = (struct work_struct  const  *)_work;
#line 1823
  work = (struct rio_disc_work *)__mptr;
#line 1824
  descriptor.modname = "rapidio";
#line 1824
  descriptor.function = "disc_work_handler";
#line 1824
  descriptor.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 1824
  descriptor.format = "RIO: discovery work for mport %d %s\n";
#line 1824
  descriptor.lineno = 1825U;
#line 1824
  descriptor.flags = 1U;
#line 1824
  tmp = ldv__builtin_expect((long )descriptor.flags & 1L, 0L);
#line 1824
  if (tmp != 0L) {
#line 1824
    __dynamic_pr_debug(& descriptor, "RIO: discovery work for mport %d %s\n", (int )(work->mport)->id,
                       (unsigned char *)(& (work->mport)->name));
  } else {

  }
#line 1826
  tmp___0 = ldv_try_module_get_18(((work->mport)->nscan)->owner);
#line 1826
  if ((int )tmp___0) {
#line 1827
    (*(((work->mport)->nscan)->discover))(work->mport, 0U);
#line 1828
    ldv_module_put_19(((work->mport)->nscan)->owner);
  } else {

  }
#line 1830
  return;
}
}
#line 1832 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_init_mports(void) 
{ 
  struct rio_mport *port ;
  struct rio_disc_work *work ;
  int n ;
  struct list_head  const  *__mptr ;
  bool tmp ;
  struct list_head  const  *__mptr___0 ;
  struct lock_class_key __key ;
  char const   *__lock_name ;
  struct workqueue_struct *tmp___0 ;
  void *tmp___1 ;
  struct list_head  const  *__mptr___1 ;
  struct lock_class_key __key___0 ;
  atomic_long_t __constr_expr_0 ;
  struct list_head  const  *__mptr___2 ;
  struct _ddebug descriptor ;
  long tmp___2 ;

  {
#line 1836
  n = 0;
#line 1838
  if ((unsigned int )next_portid == 0U) {
#line 1839
    return (-19);
  } else {

  }
#line 1845
  mutex_lock_nested(& rio_mport_list_lock, 0U);
#line 1846
  __mptr = (struct list_head  const  *)rio_mports.next;
#line 1846
  port = (struct rio_mport *)__mptr + 0xfffffffffffffff0UL;
#line 1846
  goto ldv_28432;
  ldv_28431: ;
#line 1847
  if (port->host_deviceid >= 0) {
#line 1848
    if ((unsigned long )port->nscan != (unsigned long )((struct rio_scan *)0)) {
#line 1848
      tmp = ldv_try_module_get_20((port->nscan)->owner);
#line 1848
      if ((int )tmp) {
#line 1849
        (*((port->nscan)->enumerate))(port, 0U);
#line 1850
        ldv_module_put_21((port->nscan)->owner);
      } else {

      }
    } else {

    }
  } else {
#line 1853
    n = n + 1;
  }
#line 1846
  __mptr___0 = (struct list_head  const  *)port->node.next;
#line 1846
  port = (struct rio_mport *)__mptr___0 + 0xfffffffffffffff0UL;
  ldv_28432: ;
#line 1846
  if ((unsigned long )(& port->node) != (unsigned long )(& rio_mports)) {
#line 1848
    goto ldv_28431;
  } else {

  }
#line 1855
  mutex_unlock(& rio_mport_list_lock);
#line 1857
  if (n == 0) {
#line 1858
    goto no_disc;
  } else {

  }
#line 1868
  __lock_name = "\"riodisc\"";
#line 1868
  tmp___0 = __alloc_workqueue_key("riodisc", 0U, 0, & __key, __lock_name);
#line 1868
  rio_wq = tmp___0;
#line 1869
  if ((unsigned long )rio_wq == (unsigned long )((struct workqueue_struct *)0)) {
#line 1870
    printk("\vRIO: unable allocate rio_wq\n");
#line 1871
    goto no_disc;
  } else {

  }
#line 1874
  tmp___1 = kcalloc((size_t )n, 88UL, 208U);
#line 1874
  work = (struct rio_disc_work *)tmp___1;
#line 1875
  if ((unsigned long )work == (unsigned long )((struct rio_disc_work *)0)) {
#line 1876
    printk("\vRIO: no memory for work struct\n");
#line 1877
    ldv_destroy_workqueue_22(rio_wq);
#line 1878
    goto no_disc;
  } else {

  }
#line 1881
  n = 0;
#line 1882
  mutex_lock_nested(& rio_mport_list_lock, 0U);
#line 1883
  __mptr___1 = (struct list_head  const  *)rio_mports.next;
#line 1883
  port = (struct rio_mport *)__mptr___1 + 0xfffffffffffffff0UL;
#line 1883
  goto ldv_28445;
  ldv_28444: ;
#line 1884
  if (port->host_deviceid < 0 && (unsigned long )port->nscan != (unsigned long )((struct rio_scan *)0)) {
#line 1885
    (work + (unsigned long )n)->mport = port;
#line 1886
    __init_work(& (work + (unsigned long )n)->work, 0);
#line 1886
    __constr_expr_0.counter = 137438953408L;
#line 1886
    (work + (unsigned long )n)->work.data = __constr_expr_0;
#line 1886
    lockdep_init_map(& (work + (unsigned long )n)->work.lockdep_map, "(&work[n].work)",
                     & __key___0, 0);
#line 1886
    INIT_LIST_HEAD(& (work + (unsigned long )n)->work.entry);
#line 1886
    (work + (unsigned long )n)->work.func = & disc_work_handler;
#line 1887
    queue_work(rio_wq, & (work + (unsigned long )n)->work);
#line 1888
    n = n + 1;
  } else {

  }
#line 1883
  __mptr___2 = (struct list_head  const  *)port->node.next;
#line 1883
  port = (struct rio_mport *)__mptr___2 + 0xfffffffffffffff0UL;
  ldv_28445: ;
#line 1883
  if ((unsigned long )(& port->node) != (unsigned long )(& rio_mports)) {
#line 1885
    goto ldv_28444;
  } else {

  }
#line 1892
  ldv_flush_workqueue_23(rio_wq);
#line 1893
  mutex_unlock(& rio_mport_list_lock);
#line 1894
  descriptor.modname = "rapidio";
#line 1894
  descriptor.function = "rio_init_mports";
#line 1894
  descriptor.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 1894
  descriptor.format = "RIO: destroy discovery workqueue\n";
#line 1894
  descriptor.lineno = 1894U;
#line 1894
  descriptor.flags = 1U;
#line 1894
  tmp___2 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L);
#line 1894
  if (tmp___2 != 0L) {
#line 1894
    __dynamic_pr_debug(& descriptor, "RIO: destroy discovery workqueue\n");
  } else {

  }
#line 1895
  ldv_destroy_workqueue_24(rio_wq);
#line 1896
  kfree((void const   *)work);
  no_disc: 
#line 1899
  rio_init();
#line 1901
  return (0);
}
}
#line 1904 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static int rio_get_hdid(int index ) 
{ 


  {
#line 1906
  if ((ids_num == 0 || ids_num <= index) || index > 7) {
#line 1907
    return (-1);
  } else {

  }
#line 1909
  return (hdid[index]);
}
}
#line 1912 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
int rio_register_mport(struct rio_mport *port ) 
{ 
  struct rio_scan_node *scan ;
  int res ;
  unsigned char tmp ;
  struct _ddebug descriptor ;
  long tmp___0 ;
  struct list_head  const  *__mptr ;
  struct list_head  const  *__mptr___0 ;
  struct _ddebug descriptor___0 ;
  long tmp___1 ;

  {
#line 1914
  scan = (struct rio_scan_node *)0;
#line 1915
  res = 0;
#line 1917
  if ((unsigned int )next_portid > 7U) {
#line 1918
    printk("\vRIO: reached specified max number of mports\n");
#line 1919
    return (1);
  } else {

  }
#line 1922
  tmp = next_portid;
#line 1922
  next_portid = (unsigned char )((int )next_portid + 1);
#line 1922
  port->id = tmp;
#line 1923
  port->host_deviceid = rio_get_hdid((int )port->id);
#line 1924
  port->nscan = (struct rio_scan *)0;
#line 1926
  dev_set_name(& port->dev, "rapidio%d", (int )port->id);
#line 1927
  port->dev.class = & rio_mport_class;
#line 1929
  res = device_register(& port->dev);
#line 1930
  if (res != 0) {
#line 1931
    dev_err((struct device  const  *)(& port->dev), "RIO: mport%d registration failed ERR=%d\n",
            (int )port->id, res);
  } else {
#line 1934
    descriptor.modname = "rapidio";
#line 1934
    descriptor.function = "rio_register_mport";
#line 1934
    descriptor.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 1934
    descriptor.format = "RIO: mport%d registered\n";
#line 1934
    descriptor.lineno = 1934U;
#line 1934
    descriptor.flags = 1U;
#line 1934
    tmp___0 = ldv__builtin_expect((long )descriptor.flags & 1L, 0L);
#line 1934
    if (tmp___0 != 0L) {
#line 1934
      __dynamic_dev_dbg(& descriptor, (struct device  const  *)(& port->dev), "RIO: mport%d registered\n",
                        (int )port->id);
    } else {

    }
  }
#line 1936
  mutex_lock_nested(& rio_mport_list_lock, 0U);
#line 1937
  list_add_tail(& port->node, & rio_mports);
#line 1943
  __mptr = (struct list_head  const  *)rio_scans.next;
#line 1943
  scan = (struct rio_scan_node *)__mptr + 0xfffffffffffffff8UL;
#line 1943
  goto ldv_28465;
  ldv_28464: ;
#line 1944
  if ((int )port->id == scan->mport_id || scan->mport_id == -1) {
#line 1946
    port->nscan = scan->ops;
#line 1947
    if ((int )port->id == scan->mport_id) {
#line 1948
      goto ldv_28463;
    } else {

    }
  } else {

  }
#line 1943
  __mptr___0 = (struct list_head  const  *)scan->node.next;
#line 1943
  scan = (struct rio_scan_node *)__mptr___0 + 0xfffffffffffffff8UL;
  ldv_28465: ;
#line 1943
  if ((unsigned long )(& scan->node) != (unsigned long )(& rio_scans)) {
#line 1945
    goto ldv_28464;
  } else {

  }
  ldv_28463: 
#line 1951
  mutex_unlock(& rio_mport_list_lock);
#line 1953
  descriptor___0.modname = "rapidio";
#line 1953
  descriptor___0.function = "rio_register_mport";
#line 1953
  descriptor___0.filename = "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c";
#line 1953
  descriptor___0.format = "RIO: %s %s id=%d\n";
#line 1953
  descriptor___0.lineno = 1953U;
#line 1953
  descriptor___0.flags = 1U;
#line 1953
  tmp___1 = ldv__builtin_expect((long )descriptor___0.flags & 1L, 0L);
#line 1953
  if (tmp___1 != 0L) {
#line 1953
    __dynamic_pr_debug(& descriptor___0, "RIO: %s %s id=%d\n", "rio_register_mport",
                       (unsigned char *)(& port->name), (int )port->id);
  } else {

  }
#line 1954
  return (0);
}
}
#line 1956 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_register_mport[19U]  = 
#line 1956
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'g',      'i', 
        's',      't',      'e',      'r', 
        '_',      'm',      'p',      'o', 
        'r',      't',      '\000'};
#line 1956
struct kernel_symbol  const  __ksymtab_rio_register_mport ;
#line 1956 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_register_mport  =    {(unsigned long )(& rio_register_mport), (char const   *)(& __kstrtab_rio_register_mport)};
#line 1958 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_local_get_device_id[24U]  = 
#line 1958
  {      'r',      'i',      'o',      '_', 
        'l',      'o',      'c',      'a', 
        'l',      '_',      'g',      'e', 
        't',      '_',      'd',      'e', 
        'v',      'i',      'c',      'e', 
        '_',      'i',      'd',      '\000'};
#line 1958
struct kernel_symbol  const  __ksymtab_rio_local_get_device_id ;
#line 1958 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_local_get_device_id  =    {(unsigned long )(& rio_local_get_device_id), (char const   *)(& __kstrtab_rio_local_get_device_id)};
#line 1959 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_get_device[15U]  = 
#line 1959
  {      'r',      'i',      'o',      '_', 
        'g',      'e',      't',      '_', 
        'd',      'e',      'v',      'i', 
        'c',      'e',      '\000'};
#line 1959
struct kernel_symbol  const  __ksymtab_rio_get_device ;
#line 1959 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_get_device  =    {(unsigned long )(& rio_get_device), (char const   *)(& __kstrtab_rio_get_device)};
#line 1960 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_get_asm[12U]  = 
#line 1960
  {      'r',      'i',      'o',      '_', 
        'g',      'e',      't',      '_', 
        'a',      's',      'm',      '\000'};
#line 1960
struct kernel_symbol  const  __ksymtab_rio_get_asm ;
#line 1960 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_get_asm  =    {(unsigned long )(& rio_get_asm), (char const   *)(& __kstrtab_rio_get_asm)};
#line 1961 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_request_inb_dbell[22U]  = 
#line 1961
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'q',      'u', 
        'e',      's',      't',      '_', 
        'i',      'n',      'b',      '_', 
        'd',      'b',      'e',      'l', 
        'l',      '\000'};
#line 1961
struct kernel_symbol  const  __ksymtab_rio_request_inb_dbell ;
#line 1961 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_request_inb_dbell  =    {(unsigned long )(& rio_request_inb_dbell), (char const   *)(& __kstrtab_rio_request_inb_dbell)};
#line 1962 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_release_inb_dbell[22U]  = 
#line 1962
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'l',      'e', 
        'a',      's',      'e',      '_', 
        'i',      'n',      'b',      '_', 
        'd',      'b',      'e',      'l', 
        'l',      '\000'};
#line 1962
struct kernel_symbol  const  __ksymtab_rio_release_inb_dbell ;
#line 1962 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_release_inb_dbell  =    {(unsigned long )(& rio_release_inb_dbell), (char const   *)(& __kstrtab_rio_release_inb_dbell)};
#line 1963 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_request_outb_dbell[23U]  = 
#line 1963
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'q',      'u', 
        'e',      's',      't',      '_', 
        'o',      'u',      't',      'b', 
        '_',      'd',      'b',      'e', 
        'l',      'l',      '\000'};
#line 1963
struct kernel_symbol  const  __ksymtab_rio_request_outb_dbell ;
#line 1963 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_request_outb_dbell  =    {(unsigned long )(& rio_request_outb_dbell), (char const   *)(& __kstrtab_rio_request_outb_dbell)};
#line 1964 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_release_outb_dbell[23U]  = 
#line 1964
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'l',      'e', 
        'a',      's',      'e',      '_', 
        'o',      'u',      't',      'b', 
        '_',      'd',      'b',      'e', 
        'l',      'l',      '\000'};
#line 1964
struct kernel_symbol  const  __ksymtab_rio_release_outb_dbell ;
#line 1964 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_release_outb_dbell  =    {(unsigned long )(& rio_release_outb_dbell), (char const   *)(& __kstrtab_rio_release_outb_dbell)};
#line 1965 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_request_inb_mbox[21U]  = 
#line 1965
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'q',      'u', 
        'e',      's',      't',      '_', 
        'i',      'n',      'b',      '_', 
        'm',      'b',      'o',      'x', 
        '\000'};
#line 1965
struct kernel_symbol  const  __ksymtab_rio_request_inb_mbox ;
#line 1965 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_request_inb_mbox  =    {(unsigned long )(& rio_request_inb_mbox), (char const   *)(& __kstrtab_rio_request_inb_mbox)};
#line 1966 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_release_inb_mbox[21U]  = 
#line 1966
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'l',      'e', 
        'a',      's',      'e',      '_', 
        'i',      'n',      'b',      '_', 
        'm',      'b',      'o',      'x', 
        '\000'};
#line 1966
struct kernel_symbol  const  __ksymtab_rio_release_inb_mbox ;
#line 1966 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_release_inb_mbox  =    {(unsigned long )(& rio_release_inb_mbox), (char const   *)(& __kstrtab_rio_release_inb_mbox)};
#line 1967 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_request_outb_mbox[22U]  = 
#line 1967
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'q',      'u', 
        'e',      's',      't',      '_', 
        'o',      'u',      't',      'b', 
        '_',      'm',      'b',      'o', 
        'x',      '\000'};
#line 1967
struct kernel_symbol  const  __ksymtab_rio_request_outb_mbox ;
#line 1967 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_request_outb_mbox  =    {(unsigned long )(& rio_request_outb_mbox), (char const   *)(& __kstrtab_rio_request_outb_mbox)};
#line 1968 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_release_outb_mbox[22U]  = 
#line 1968
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'l',      'e', 
        'a',      's',      'e',      '_', 
        'o',      'u',      't',      'b', 
        '_',      'm',      'b',      'o', 
        'x',      '\000'};
#line 1968
struct kernel_symbol  const  __ksymtab_rio_release_outb_mbox ;
#line 1968 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_release_outb_mbox  =    {(unsigned long )(& rio_release_outb_mbox), (char const   *)(& __kstrtab_rio_release_outb_mbox)};
#line 1969 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
static char const   __kstrtab_rio_init_mports[16U]  = 
#line 1969
  {      'r',      'i',      'o',      '_', 
        'i',      'n',      'i',      't', 
        '_',      'm',      'p',      'o', 
        'r',      't',      's',      '\000'};
#line 1969
struct kernel_symbol  const  __ksymtab_rio_init_mports ;
#line 1969 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.c"
struct kernel_symbol  const  __ksymtab_rio_init_mports  =    {(unsigned long )(& rio_init_mports), (char const   *)(& __kstrtab_rio_init_mports)};
#line 65 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void call_and_disable_work_1(struct work_struct *work ) 
{ 


  {
#line 68
  if ((ldv_work_1_0 == 2 || ldv_work_1_0 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_1_0) {
#line 70
    disc_work_handler(work);
#line 71
    ldv_work_1_0 = 1;
#line 72
    return;
  } else {

  }
#line 74
  if ((ldv_work_1_1 == 2 || ldv_work_1_1 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_1_1) {
#line 76
    disc_work_handler(work);
#line 77
    ldv_work_1_1 = 1;
#line 78
    return;
  } else {

  }
#line 80
  if ((ldv_work_1_2 == 2 || ldv_work_1_2 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_1_2) {
#line 82
    disc_work_handler(work);
#line 83
    ldv_work_1_2 = 1;
#line 84
    return;
  } else {

  }
#line 86
  if ((ldv_work_1_3 == 2 || ldv_work_1_3 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_1_3) {
#line 88
    disc_work_handler(work);
#line 89
    ldv_work_1_3 = 1;
#line 90
    return;
  } else {

  }
#line 92
  return;
}
}
#line 95 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void disable_work_1(struct work_struct *work ) 
{ 


  {
#line 97
  if ((ldv_work_1_0 == 3 || ldv_work_1_0 == 2) && (unsigned long )ldv_work_struct_1_0 == (unsigned long )work) {
#line 99
    ldv_work_1_0 = 1;
  } else {

  }
#line 101
  if ((ldv_work_1_1 == 3 || ldv_work_1_1 == 2) && (unsigned long )ldv_work_struct_1_1 == (unsigned long )work) {
#line 103
    ldv_work_1_1 = 1;
  } else {

  }
#line 105
  if ((ldv_work_1_2 == 3 || ldv_work_1_2 == 2) && (unsigned long )ldv_work_struct_1_2 == (unsigned long )work) {
#line 107
    ldv_work_1_2 = 1;
  } else {

  }
#line 109
  if ((ldv_work_1_3 == 3 || ldv_work_1_3 == 2) && (unsigned long )ldv_work_struct_1_3 == (unsigned long )work) {
#line 111
    ldv_work_1_3 = 1;
  } else {

  }
#line 112
  return;
}
}
#line 116 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void work_init_1(void) 
{ 


  {
#line 117
  ldv_work_1_0 = 0;
#line 118
  ldv_work_1_1 = 0;
#line 119
  ldv_work_1_2 = 0;
#line 120
  ldv_work_1_3 = 0;
#line 121
  return;
}
}
#line 124 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void call_and_disable_all_1(int state ) 
{ 


  {
#line 126
  if (ldv_work_1_0 == state) {
#line 127
    call_and_disable_work_1(ldv_work_struct_1_0);
  } else {

  }
#line 128
  if (ldv_work_1_1 == state) {
#line 129
    call_and_disable_work_1(ldv_work_struct_1_1);
  } else {

  }
#line 130
  if (ldv_work_1_2 == state) {
#line 131
    call_and_disable_work_1(ldv_work_struct_1_2);
  } else {

  }
#line 132
  if (ldv_work_1_3 == state) {
#line 133
    call_and_disable_work_1(ldv_work_struct_1_3);
  } else {

  }
#line 134
  return;
}
}
#line 137 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void invoke_work_1(void) 
{ 
  int tmp ;

  {
#line 139
  tmp = __VERIFIER_nondet_int();
#line 139
  switch (tmp) {
  case 0: ;
#line 141
  if (ldv_work_1_0 == 2 || ldv_work_1_0 == 3) {
#line 142
    ldv_work_1_0 = 4;
#line 143
    disc_work_handler(ldv_work_struct_1_0);
#line 144
    ldv_work_1_0 = 1;
  } else {

  }
#line 147
  goto ldv_28602;
  case 1: ;
#line 149
  if (ldv_work_1_1 == 2 || ldv_work_1_1 == 3) {
#line 150
    ldv_work_1_1 = 4;
#line 151
    disc_work_handler(ldv_work_struct_1_0);
#line 152
    ldv_work_1_1 = 1;
  } else {

  }
#line 155
  goto ldv_28602;
  case 2: ;
#line 157
  if (ldv_work_1_2 == 2 || ldv_work_1_2 == 3) {
#line 158
    ldv_work_1_2 = 4;
#line 159
    disc_work_handler(ldv_work_struct_1_0);
#line 160
    ldv_work_1_2 = 1;
  } else {

  }
#line 163
  goto ldv_28602;
  case 3: ;
#line 165
  if (ldv_work_1_3 == 2 || ldv_work_1_3 == 3) {
#line 166
    ldv_work_1_3 = 4;
#line 167
    disc_work_handler(ldv_work_struct_1_0);
#line 168
    ldv_work_1_3 = 1;
  } else {

  }
#line 171
  goto ldv_28602;
  default: 
#line 172
  ldv_stop();
  }
  ldv_28602: ;
#line 174
  return;
}
}
#line 178 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void activate_work_1(struct work_struct *work , int state ) 
{ 


  {
#line 179
  if (ldv_work_1_0 == 0) {
#line 180
    ldv_work_struct_1_0 = work;
#line 181
    ldv_work_1_0 = state;
#line 182
    return;
  } else {

  }
#line 185
  if (ldv_work_1_1 == 0) {
#line 186
    ldv_work_struct_1_1 = work;
#line 187
    ldv_work_1_1 = state;
#line 188
    return;
  } else {

  }
#line 191
  if (ldv_work_1_2 == 0) {
#line 192
    ldv_work_struct_1_2 = work;
#line 193
    ldv_work_1_2 = state;
#line 194
    return;
  } else {

  }
#line 197
  if (ldv_work_1_3 == 0) {
#line 198
    ldv_work_struct_1_3 = work;
#line 199
    ldv_work_1_3 = state;
#line 200
    return;
  } else {

  }
#line 202
  return;
}
}
#line 228 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
bool ldv_queue_work_on_5(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                         struct work_struct *ldv_func_arg3 ) 
{ 
  ldv_func_ret_type ldv_func_res ;
  bool tmp ;

  {
#line 232
  tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3);
#line 232
  ldv_func_res = tmp;
#line 234
  activate_work_1(ldv_func_arg3, 2);
#line 236
  return (ldv_func_res);
}
}
#line 239 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
bool ldv_queue_delayed_work_on_6(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                 struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) 
{ 
  ldv_func_ret_type___0 ldv_func_res ;
  bool tmp ;

  {
#line 243
  tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4);
#line 243
  ldv_func_res = tmp;
#line 245
  activate_work_1(& ldv_func_arg3->work, 2);
#line 247
  return (ldv_func_res);
}
}
#line 250 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
bool ldv_queue_work_on_7(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                         struct work_struct *ldv_func_arg3 ) 
{ 
  ldv_func_ret_type___1 ldv_func_res ;
  bool tmp ;

  {
#line 254
  tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3);
#line 254
  ldv_func_res = tmp;
#line 256
  activate_work_1(ldv_func_arg3, 2);
#line 258
  return (ldv_func_res);
}
}
#line 261 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void ldv_flush_workqueue_8(struct workqueue_struct *ldv_func_arg1 ) 
{ 


  {
#line 264
  flush_workqueue(ldv_func_arg1);
#line 266
  call_and_disable_all_1(2);
#line 267
  return;
}
}
#line 269 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
bool ldv_queue_delayed_work_on_9(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                 struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) 
{ 
  ldv_func_ret_type___2 ldv_func_res ;
  bool tmp ;

  {
#line 273
  tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4);
#line 273
  ldv_func_res = tmp;
#line 275
  activate_work_1(& ldv_func_arg3->work, 2);
#line 277
  return (ldv_func_res);
}
}
#line 280 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
bool ldv_try_module_get_10(struct module *ldv_func_arg1 ) 
{ 
  int tmp ;

  {
#line 283
  tmp = ldv_try_module_get(ldv_func_arg1);
#line 283
  return (tmp != 0);
}
}
#line 286 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void ldv_module_put_11(struct module *ldv_func_arg1 ) 
{ 


  {
#line 289
  ldv_module_put(ldv_func_arg1);
#line 290
  return;
}
}
#line 292 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
bool ldv_try_module_get_12(struct module *ldv_func_arg1 ) 
{ 
  int tmp ;

  {
#line 295
  tmp = ldv_try_module_get(ldv_func_arg1);
#line 295
  return (tmp != 0);
}
}
#line 298 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void ldv_module_put_13(struct module *ldv_func_arg1 ) 
{ 


  {
#line 301
  ldv_module_put(ldv_func_arg1);
#line 302
  return;
}
}
#line 304 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
bool ldv_try_module_get_14(struct module *ldv_func_arg1 ) 
{ 
  int tmp ;

  {
#line 307
  tmp = ldv_try_module_get(ldv_func_arg1);
#line 307
  return (tmp != 0);
}
}
#line 310 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void ldv_module_put_15(struct module *ldv_func_arg1 ) 
{ 


  {
#line 313
  ldv_module_put(ldv_func_arg1);
#line 314
  return;
}
}
#line 316 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
bool ldv_try_module_get_16(struct module *ldv_func_arg1 ) 
{ 
  int tmp ;

  {
#line 319
  tmp = ldv_try_module_get(ldv_func_arg1);
#line 319
  return (tmp != 0);
}
}
#line 322 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void ldv_module_put_17(struct module *ldv_func_arg1 ) 
{ 


  {
#line 325
  ldv_module_put(ldv_func_arg1);
#line 326
  return;
}
}
#line 328 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
bool ldv_try_module_get_18(struct module *ldv_func_arg1 ) 
{ 
  int tmp ;

  {
#line 331
  tmp = ldv_try_module_get(ldv_func_arg1);
#line 331
  return (tmp != 0);
}
}
#line 334 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void ldv_module_put_19(struct module *ldv_func_arg1 ) 
{ 


  {
#line 337
  ldv_module_put(ldv_func_arg1);
#line 338
  return;
}
}
#line 340 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
bool ldv_try_module_get_20(struct module *ldv_func_arg1 ) 
{ 
  int tmp ;

  {
#line 343
  tmp = ldv_try_module_get(ldv_func_arg1);
#line 343
  return (tmp != 0);
}
}
#line 346 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void ldv_module_put_21(struct module *ldv_func_arg1 ) 
{ 


  {
#line 349
  ldv_module_put(ldv_func_arg1);
#line 350
  return;
}
}
#line 352 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void ldv_destroy_workqueue_22(struct workqueue_struct *ldv_func_arg1 ) 
{ 


  {
#line 355
  destroy_workqueue(ldv_func_arg1);
#line 357
  call_and_disable_all_1(2);
#line 358
  return;
}
}
#line 360 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void ldv_flush_workqueue_23(struct workqueue_struct *ldv_func_arg1 ) 
{ 


  {
#line 363
  flush_workqueue(ldv_func_arg1);
#line 365
  call_and_disable_all_1(2);
#line 366
  return;
}
}
#line 368 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio.o.c.prepared"
void ldv_destroy_workqueue_24(struct workqueue_struct *ldv_func_arg1 ) 
{ 


  {
#line 371
  destroy_workqueue(ldv_func_arg1);
#line 373
  call_and_disable_all_1(2);
#line 374
  return;
}
}
#line 433 "include/linux/workqueue.h"
bool ldv_queue_work_on_37(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                          struct work_struct *ldv_func_arg3 ) ;
#line 437
bool ldv_queue_work_on_39(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                          struct work_struct *ldv_func_arg3 ) ;
#line 443
bool ldv_queue_delayed_work_on_38(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                  struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ;
#line 447
bool ldv_queue_delayed_work_on_41(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                  struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ;
#line 455
void ldv_flush_workqueue_40(struct workqueue_struct *ldv_func_arg1 ) ;
#line 20 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static spinlock_t rio_config_lock  =    {{{{{0}}, 3735899821U, 4294967295U, (void *)-1, {0, {0, 0}, "rio_config_lock",
                                                    0, 0UL}}}};
#line 21 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static spinlock_t rio_doorbell_lock  =    {{{{{0}}, 3735899821U, 4294967295U, (void *)-1, {0, {0, 0}, "rio_doorbell_lock",
                                                    0, 0UL}}}};
#line 79 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int __rio_local_read_config_8(struct rio_mport *mport , u32 offset , u8 *value ) 
{ 
  int res ;
  unsigned long flags ;
  u32 data ;
  raw_spinlock_t *tmp ;

  {
#line 79
  data = 0U;
#line 79
  tmp = spinlock_check(& rio_config_lock);
#line 79
  flags = _raw_spin_lock_irqsave(tmp);
#line 79
  res = (*((mport->ops)->lcread))(mport, (int )mport->id, offset, 1, & data);
#line 79
  *value = (unsigned char )data;
#line 79
  spin_unlock_irqrestore(& rio_config_lock, flags);
#line 79
  return (res);
}
}
#line 80 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int __rio_local_read_config_16(struct rio_mport *mport , u32 offset , u16 *value ) 
{ 
  int res ;
  unsigned long flags ;
  u32 data ;
  raw_spinlock_t *tmp ;

  {
#line 80
  data = 0U;
#line 80
  if ((int )offset & 1) {
#line 80
    return (129);
  } else {

  }
#line 80
  tmp = spinlock_check(& rio_config_lock);
#line 80
  flags = _raw_spin_lock_irqsave(tmp);
#line 80
  res = (*((mport->ops)->lcread))(mport, (int )mport->id, offset, 2, & data);
#line 80
  *value = (unsigned short )data;
#line 80
  spin_unlock_irqrestore(& rio_config_lock, flags);
#line 80
  return (res);
}
}
#line 81 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int __rio_local_read_config_32(struct rio_mport *mport , u32 offset , u32 *value ) 
{ 
  int res ;
  unsigned long flags ;
  u32 data ;
  raw_spinlock_t *tmp ;

  {
#line 81
  data = 0U;
#line 81
  if ((offset & 3U) != 0U) {
#line 81
    return (129);
  } else {

  }
#line 81
  tmp = spinlock_check(& rio_config_lock);
#line 81
  flags = _raw_spin_lock_irqsave(tmp);
#line 81
  res = (*((mport->ops)->lcread))(mport, (int )mport->id, offset, 4, & data);
#line 81
  *value = data;
#line 81
  spin_unlock_irqrestore(& rio_config_lock, flags);
#line 81
  return (res);
}
}
#line 82 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int __rio_local_write_config_8(struct rio_mport *mport , u32 offset , u8 value ) 
{ 
  int res ;
  unsigned long flags ;
  raw_spinlock_t *tmp ;

  {
#line 82
  tmp = spinlock_check(& rio_config_lock);
#line 82
  flags = _raw_spin_lock_irqsave(tmp);
#line 82
  res = (*((mport->ops)->lcwrite))(mport, (int )mport->id, offset, 1, (u32 )value);
#line 82
  spin_unlock_irqrestore(& rio_config_lock, flags);
#line 82
  return (res);
}
}
#line 83 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int __rio_local_write_config_16(struct rio_mport *mport , u32 offset , u16 value ) 
{ 
  int res ;
  unsigned long flags ;
  raw_spinlock_t *tmp ;

  {
#line 83
  if ((int )offset & 1) {
#line 83
    return (129);
  } else {

  }
#line 83
  tmp = spinlock_check(& rio_config_lock);
#line 83
  flags = _raw_spin_lock_irqsave(tmp);
#line 83
  res = (*((mport->ops)->lcwrite))(mport, (int )mport->id, offset, 2, (u32 )value);
#line 83
  spin_unlock_irqrestore(& rio_config_lock, flags);
#line 83
  return (res);
}
}
#line 84 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int __rio_local_write_config_32(struct rio_mport *mport , u32 offset , u32 value ) 
{ 
  int res ;
  unsigned long flags ;
  raw_spinlock_t *tmp ;

  {
#line 84
  if ((offset & 3U) != 0U) {
#line 84
    return (129);
  } else {

  }
#line 84
  tmp = spinlock_check(& rio_config_lock);
#line 84
  flags = _raw_spin_lock_irqsave(tmp);
#line 84
  res = (*((mport->ops)->lcwrite))(mport, (int )mport->id, offset, 4, value);
#line 84
  spin_unlock_irqrestore(& rio_config_lock, flags);
#line 84
  return (res);
}
}
#line 86 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab___rio_local_read_config_8[26U]  = 
#line 86
  {      '_',      '_',      'r',      'i', 
        'o',      '_',      'l',      'o', 
        'c',      'a',      'l',      '_', 
        'r',      'e',      'a',      'd', 
        '_',      'c',      'o',      'n', 
        'f',      'i',      'g',      '_', 
        '8',      '\000'};
#line 86
struct kernel_symbol  const  __ksymtab___rio_local_read_config_8 ;
#line 86 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab___rio_local_read_config_8  =    {(unsigned long )(& __rio_local_read_config_8), (char const   *)(& __kstrtab___rio_local_read_config_8)};
#line 87 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab___rio_local_read_config_16[27U]  = 
#line 87
  {      '_',      '_',      'r',      'i', 
        'o',      '_',      'l',      'o', 
        'c',      'a',      'l',      '_', 
        'r',      'e',      'a',      'd', 
        '_',      'c',      'o',      'n', 
        'f',      'i',      'g',      '_', 
        '1',      '6',      '\000'};
#line 87
struct kernel_symbol  const  __ksymtab___rio_local_read_config_16 ;
#line 87 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab___rio_local_read_config_16  =    {(unsigned long )(& __rio_local_read_config_16), (char const   *)(& __kstrtab___rio_local_read_config_16)};
#line 88 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab___rio_local_read_config_32[27U]  = 
#line 88
  {      '_',      '_',      'r',      'i', 
        'o',      '_',      'l',      'o', 
        'c',      'a',      'l',      '_', 
        'r',      'e',      'a',      'd', 
        '_',      'c',      'o',      'n', 
        'f',      'i',      'g',      '_', 
        '3',      '2',      '\000'};
#line 88
struct kernel_symbol  const  __ksymtab___rio_local_read_config_32 ;
#line 88 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab___rio_local_read_config_32  =    {(unsigned long )(& __rio_local_read_config_32), (char const   *)(& __kstrtab___rio_local_read_config_32)};
#line 89 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab___rio_local_write_config_8[27U]  = 
#line 89
  {      '_',      '_',      'r',      'i', 
        'o',      '_',      'l',      'o', 
        'c',      'a',      'l',      '_', 
        'w',      'r',      'i',      't', 
        'e',      '_',      'c',      'o', 
        'n',      'f',      'i',      'g', 
        '_',      '8',      '\000'};
#line 89
struct kernel_symbol  const  __ksymtab___rio_local_write_config_8 ;
#line 89 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab___rio_local_write_config_8  =    {(unsigned long )(& __rio_local_write_config_8), (char const   *)(& __kstrtab___rio_local_write_config_8)};
#line 90 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab___rio_local_write_config_16[28U]  = 
#line 90
  {      '_',      '_',      'r',      'i', 
        'o',      '_',      'l',      'o', 
        'c',      'a',      'l',      '_', 
        'w',      'r',      'i',      't', 
        'e',      '_',      'c',      'o', 
        'n',      'f',      'i',      'g', 
        '_',      '1',      '6',      '\000'};
#line 90
struct kernel_symbol  const  __ksymtab___rio_local_write_config_16 ;
#line 90 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab___rio_local_write_config_16  =    {(unsigned long )(& __rio_local_write_config_16), (char const   *)(& __kstrtab___rio_local_write_config_16)};
#line 91 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab___rio_local_write_config_32[28U]  = 
#line 91
  {      '_',      '_',      'r',      'i', 
        'o',      '_',      'l',      'o', 
        'c',      'a',      'l',      '_', 
        'w',      'r',      'i',      't', 
        'e',      '_',      'c',      'o', 
        'n',      'f',      'i',      'g', 
        '_',      '3',      '2',      '\000'};
#line 91
struct kernel_symbol  const  __ksymtab___rio_local_write_config_32 ;
#line 91 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab___rio_local_write_config_32  =    {(unsigned long )(& __rio_local_write_config_32), (char const   *)(& __kstrtab___rio_local_write_config_32)};
#line 139 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int rio_mport_read_config_8(struct rio_mport *mport , u16 destid , u8 hopcount , u32 offset ,
                            u8 *value ) 
{ 
  int res ;
  unsigned long flags ;
  u32 data ;
  raw_spinlock_t *tmp ;

  {
#line 139
  data = 0U;
#line 139
  tmp = spinlock_check(& rio_config_lock);
#line 139
  flags = _raw_spin_lock_irqsave(tmp);
#line 139
  res = (*((mport->ops)->cread))(mport, (int )mport->id, (int )destid, (int )hopcount,
                                 offset, 1, & data);
#line 139
  *value = (unsigned char )data;
#line 139
  spin_unlock_irqrestore(& rio_config_lock, flags);
#line 139
  return (res);
}
}
#line 140 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int rio_mport_read_config_16(struct rio_mport *mport , u16 destid , u8 hopcount ,
                             u32 offset , u16 *value ) 
{ 
  int res ;
  unsigned long flags ;
  u32 data ;
  raw_spinlock_t *tmp ;

  {
#line 140
  data = 0U;
#line 140
  if ((int )offset & 1) {
#line 140
    return (129);
  } else {

  }
#line 140
  tmp = spinlock_check(& rio_config_lock);
#line 140
  flags = _raw_spin_lock_irqsave(tmp);
#line 140
  res = (*((mport->ops)->cread))(mport, (int )mport->id, (int )destid, (int )hopcount,
                                 offset, 2, & data);
#line 140
  *value = (unsigned short )data;
#line 140
  spin_unlock_irqrestore(& rio_config_lock, flags);
#line 140
  return (res);
}
}
#line 141 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int rio_mport_read_config_32(struct rio_mport *mport , u16 destid , u8 hopcount ,
                             u32 offset , u32 *value ) 
{ 
  int res ;
  unsigned long flags ;
  u32 data ;
  raw_spinlock_t *tmp ;

  {
#line 141
  data = 0U;
#line 141
  if ((offset & 3U) != 0U) {
#line 141
    return (129);
  } else {

  }
#line 141
  tmp = spinlock_check(& rio_config_lock);
#line 141
  flags = _raw_spin_lock_irqsave(tmp);
#line 141
  res = (*((mport->ops)->cread))(mport, (int )mport->id, (int )destid, (int )hopcount,
                                 offset, 4, & data);
#line 141
  *value = data;
#line 141
  spin_unlock_irqrestore(& rio_config_lock, flags);
#line 141
  return (res);
}
}
#line 142 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int rio_mport_write_config_8(struct rio_mport *mport , u16 destid , u8 hopcount ,
                             u32 offset , u8 value ) 
{ 
  int res ;
  unsigned long flags ;
  raw_spinlock_t *tmp ;

  {
#line 142
  tmp = spinlock_check(& rio_config_lock);
#line 142
  flags = _raw_spin_lock_irqsave(tmp);
#line 142
  res = (*((mport->ops)->cwrite))(mport, (int )mport->id, (int )destid, (int )hopcount,
                                  offset, 1, (u32 )value);
#line 142
  spin_unlock_irqrestore(& rio_config_lock, flags);
#line 142
  return (res);
}
}
#line 143 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int rio_mport_write_config_16(struct rio_mport *mport , u16 destid , u8 hopcount ,
                              u32 offset , u16 value ) 
{ 
  int res ;
  unsigned long flags ;
  raw_spinlock_t *tmp ;

  {
#line 143
  if ((int )offset & 1) {
#line 143
    return (129);
  } else {

  }
#line 143
  tmp = spinlock_check(& rio_config_lock);
#line 143
  flags = _raw_spin_lock_irqsave(tmp);
#line 143
  res = (*((mport->ops)->cwrite))(mport, (int )mport->id, (int )destid, (int )hopcount,
                                  offset, 2, (u32 )value);
#line 143
  spin_unlock_irqrestore(& rio_config_lock, flags);
#line 143
  return (res);
}
}
#line 144 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int rio_mport_write_config_32(struct rio_mport *mport , u16 destid , u8 hopcount ,
                              u32 offset , u32 value ) 
{ 
  int res ;
  unsigned long flags ;
  raw_spinlock_t *tmp ;

  {
#line 144
  if ((offset & 3U) != 0U) {
#line 144
    return (129);
  } else {

  }
#line 144
  tmp = spinlock_check(& rio_config_lock);
#line 144
  flags = _raw_spin_lock_irqsave(tmp);
#line 144
  res = (*((mport->ops)->cwrite))(mport, (int )mport->id, (int )destid, (int )hopcount,
                                  offset, 4, value);
#line 144
  spin_unlock_irqrestore(& rio_config_lock, flags);
#line 144
  return (res);
}
}
#line 146 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab_rio_mport_read_config_8[24U]  = 
#line 146
  {      'r',      'i',      'o',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      'r',      'e', 
        'a',      'd',      '_',      'c', 
        'o',      'n',      'f',      'i', 
        'g',      '_',      '8',      '\000'};
#line 146
struct kernel_symbol  const  __ksymtab_rio_mport_read_config_8 ;
#line 146 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab_rio_mport_read_config_8  =    {(unsigned long )(& rio_mport_read_config_8), (char const   *)(& __kstrtab_rio_mport_read_config_8)};
#line 147 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab_rio_mport_read_config_16[25U]  = 
#line 147
  {      'r',      'i',      'o',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      'r',      'e', 
        'a',      'd',      '_',      'c', 
        'o',      'n',      'f',      'i', 
        'g',      '_',      '1',      '6', 
        '\000'};
#line 147
struct kernel_symbol  const  __ksymtab_rio_mport_read_config_16 ;
#line 147 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab_rio_mport_read_config_16  =    {(unsigned long )(& rio_mport_read_config_16), (char const   *)(& __kstrtab_rio_mport_read_config_16)};
#line 148 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab_rio_mport_read_config_32[25U]  = 
#line 148
  {      'r',      'i',      'o',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      'r',      'e', 
        'a',      'd',      '_',      'c', 
        'o',      'n',      'f',      'i', 
        'g',      '_',      '3',      '2', 
        '\000'};
#line 148
struct kernel_symbol  const  __ksymtab_rio_mport_read_config_32 ;
#line 148 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab_rio_mport_read_config_32  =    {(unsigned long )(& rio_mport_read_config_32), (char const   *)(& __kstrtab_rio_mport_read_config_32)};
#line 149 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab_rio_mport_write_config_8[25U]  = 
#line 149
  {      'r',      'i',      'o',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      'w',      'r', 
        'i',      't',      'e',      '_', 
        'c',      'o',      'n',      'f', 
        'i',      'g',      '_',      '8', 
        '\000'};
#line 149
struct kernel_symbol  const  __ksymtab_rio_mport_write_config_8 ;
#line 149 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab_rio_mport_write_config_8  =    {(unsigned long )(& rio_mport_write_config_8), (char const   *)(& __kstrtab_rio_mport_write_config_8)};
#line 150 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab_rio_mport_write_config_16[26U]  = 
#line 150
  {      'r',      'i',      'o',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      'w',      'r', 
        'i',      't',      'e',      '_', 
        'c',      'o',      'n',      'f', 
        'i',      'g',      '_',      '1', 
        '6',      '\000'};
#line 150
struct kernel_symbol  const  __ksymtab_rio_mport_write_config_16 ;
#line 150 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab_rio_mport_write_config_16  =    {(unsigned long )(& rio_mport_write_config_16), (char const   *)(& __kstrtab_rio_mport_write_config_16)};
#line 151 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab_rio_mport_write_config_32[26U]  = 
#line 151
  {      'r',      'i',      'o',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      'w',      'r', 
        'i',      't',      'e',      '_', 
        'c',      'o',      'n',      'f', 
        'i',      'g',      '_',      '3', 
        '2',      '\000'};
#line 151
struct kernel_symbol  const  __ksymtab_rio_mport_write_config_32 ;
#line 151 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab_rio_mport_write_config_32  =    {(unsigned long )(& rio_mport_write_config_32), (char const   *)(& __kstrtab_rio_mport_write_config_32)};
#line 163 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
int rio_mport_send_doorbell(struct rio_mport *mport , u16 destid , u16 data ) 
{ 
  int res ;
  unsigned long flags ;
  raw_spinlock_t *tmp ;

  {
#line 168
  tmp = spinlock_check(& rio_doorbell_lock);
#line 168
  flags = _raw_spin_lock_irqsave(tmp);
#line 169
  res = (*((mport->ops)->dsend))(mport, (int )mport->id, (int )destid, (int )data);
#line 170
  spin_unlock_irqrestore(& rio_doorbell_lock, flags);
#line 172
  return (res);
}
}
#line 175 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
static char const   __kstrtab_rio_mport_send_doorbell[24U]  = 
#line 175
  {      'r',      'i',      'o',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      's',      'e', 
        'n',      'd',      '_',      'd', 
        'o',      'o',      'r',      'b', 
        'e',      'l',      'l',      '\000'};
#line 175
struct kernel_symbol  const  __ksymtab_rio_mport_send_doorbell ;
#line 175 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.c"
struct kernel_symbol  const  __ksymtab_rio_mport_send_doorbell  =    {(unsigned long )(& rio_mport_send_doorbell), (char const   *)(& __kstrtab_rio_mport_send_doorbell)};
#line 88 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.o.c.prepared"
bool ldv_queue_work_on_37(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                          struct work_struct *ldv_func_arg3 ) 
{ 
  ldv_func_ret_type ldv_func_res ;
  bool tmp ;

  {
#line 92
  tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3);
#line 92
  ldv_func_res = tmp;
#line 94
  activate_work_1(ldv_func_arg3, 2);
#line 96
  return (ldv_func_res);
}
}
#line 99 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.o.c.prepared"
bool ldv_queue_delayed_work_on_38(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                  struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) 
{ 
  ldv_func_ret_type___0 ldv_func_res ;
  bool tmp ;

  {
#line 103
  tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4);
#line 103
  ldv_func_res = tmp;
#line 105
  activate_work_1(& ldv_func_arg3->work, 2);
#line 107
  return (ldv_func_res);
}
}
#line 110 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.o.c.prepared"
bool ldv_queue_work_on_39(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                          struct work_struct *ldv_func_arg3 ) 
{ 
  ldv_func_ret_type___1 ldv_func_res ;
  bool tmp ;

  {
#line 114
  tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3);
#line 114
  ldv_func_res = tmp;
#line 116
  activate_work_1(ldv_func_arg3, 2);
#line 118
  return (ldv_func_res);
}
}
#line 121 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.o.c.prepared"
void ldv_flush_workqueue_40(struct workqueue_struct *ldv_func_arg1 ) 
{ 


  {
#line 124
  flush_workqueue(ldv_func_arg1);
#line 126
  call_and_disable_all_1(2);
#line 127
  return;
}
}
#line 129 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-access.o.c.prepared"
bool ldv_queue_delayed_work_on_41(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                  struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) 
{ 
  ldv_func_ret_type___2 ldv_func_res ;
  bool tmp ;

  {
#line 133
  tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4);
#line 133
  ldv_func_res = tmp;
#line 135
  activate_work_1(& ldv_func_arg3->work, 2);
#line 137
  return (ldv_func_res);
}
}
#line 33 "include/linux/export.h"
extern struct module __this_module ;
#line 433 "include/linux/workqueue.h"
bool ldv_queue_work_on_51(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                          struct work_struct *ldv_func_arg3 ) ;
#line 437
bool ldv_queue_work_on_53(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                          struct work_struct *ldv_func_arg3 ) ;
#line 443
bool ldv_queue_delayed_work_on_52(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                  struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ;
#line 447
bool ldv_queue_delayed_work_on_55(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                  struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ;
#line 455
void ldv_flush_workqueue_54(struct workqueue_struct *ldv_func_arg1 ) ;
#line 219 "include/linux/kobject.h"
extern int add_uevent_var(struct kobj_uevent_env * , char const   *  , ...) ;
#line 19 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_8  ;
#line 20 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
struct work_struct *ldv_work_struct_1_0  ;
#line 21 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
struct device *rio_bus_type_group0  ;
#line 22 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_15  ;
#line 23 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
struct work_struct *ldv_work_struct_1_1  ;
#line 24 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_10  ;
#line 25 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
struct work_struct *ldv_work_struct_1_3  ;
#line 26 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_work_1_3  ;
#line 27 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_6  ;
#line 28 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_0  ;
#line 29 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_5  ;
#line 30 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_16  ;
#line 31 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_13  ;
#line 32 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
struct kobject *rio_config_attr_group0  ;
#line 33 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_work_1_1  ;
#line 34 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_2  ;
#line 35 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_12  ;
#line 36 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
struct bin_attribute *rio_config_attr_group2  ;
#line 37 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_14  ;
#line 38 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_11  ;
#line 39 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_work_1_2  ;
#line 41 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_17  ;
#line 43 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_18  ;
#line 44 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
struct file *rio_config_attr_group1  ;
#line 45 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
struct work_struct *ldv_work_struct_1_2  ;
#line 46 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_19  ;
#line 47 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_9  ;
#line 48 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_3  ;
#line 49 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ref_cnt  ;
#line 50 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_work_1_0  ;
#line 51 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_1  ;
#line 52 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_7  ;
#line 53 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_state_variable_4  ;
#line 54
void ldv_initialize_bin_attribute_5(void) ;
#line 61
void ldv_initialize_bus_type_19(void) ;
#line 62
void ldv_initialize_bus_type_18(void) ;
#line 134 "include/linux/device.h"
extern int bus_register(struct bus_type * ) ;
#line 285
extern int driver_register(struct device_driver * ) ;
#line 286
extern void driver_unregister(struct device_driver * ) ;
#line 415
extern int __class_register(struct class * , struct lock_class_key * ) ;
#line 417
extern void class_unregister(struct class * ) ;
#line 1046
extern struct device *get_device(struct device * ) ;
#line 1047
extern void put_device(struct device * ) ;
#line 85 "include/linux/rio.h"
struct bus_type rio_bus_type ;
#line 46 "/work/ldvuser/mutilin/launch/inst/current/envs/linux-4.2-rc1.tar.xz/linux-4.2-rc1/drivers/rapidio/rio.h"
void rio_attach_device(struct rio_dev *rdev ) ;
#line 51
struct attribute_group  const  *rio_dev_groups[2U] ;
#line 52
struct attribute_group  const  *rio_bus_groups[2U] ;
#line 53
struct attribute_group  const  *rio_mport_groups[2U] ;
#line 29 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static struct rio_device_id  const  *rio_match_device(struct rio_device_id  const  *id ,
                                                      struct rio_dev  const  *rdev ) 
{ 


  {
#line 33
  goto ldv_25571;
  ldv_25570: ;
#line 34
  if (((((unsigned int )((unsigned short )id->vid) == 65535U || (int )((unsigned short )id->vid) == (int )((unsigned short )rdev->vid)) && ((unsigned int )((unsigned short )id->did) == 65535U || (int )((unsigned short )id->did) == (int )((unsigned short )rdev->did))) && ((unsigned int )((unsigned short )id->asm_vid) == 65535U || (int )((unsigned short )id->asm_vid) == (int )((unsigned short )rdev->asm_vid))) && ((unsigned int )((unsigned short )id->asm_did) == 65535U || (int )((unsigned short )id->asm_did) == (int )((unsigned short )rdev->asm_did))) {
#line 40
    return (id);
  } else {

  }
#line 41
  id = id + 1;
  ldv_25571: ;
#line 33
  if ((unsigned int )((unsigned short )id->vid) != 0U || (unsigned int )((unsigned short )id->asm_vid) != 0U) {
#line 35
    goto ldv_25570;
  } else {

  }

#line 43
  return ((struct rio_device_id  const  *)0);
}
}
#line 57 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
struct rio_dev *rio_dev_get(struct rio_dev *rdev ) 
{ 


  {
#line 59
  if ((unsigned long )rdev != (unsigned long )((struct rio_dev *)0)) {
#line 60
    get_device(& rdev->dev);
  } else {

  }
#line 62
  return (rdev);
}
}
#line 74 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
void rio_dev_put(struct rio_dev *rdev ) 
{ 


  {
#line 76
  if ((unsigned long )rdev != (unsigned long )((struct rio_dev *)0)) {
#line 77
    put_device(& rdev->dev);
  } else {

  }
#line 78
  return;
}
}
#line 86 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static int rio_device_probe(struct device *dev ) 
{ 
  struct rio_driver *rdrv ;
  struct device_driver  const  *__mptr ;
  struct rio_dev *rdev ;
  struct device  const  *__mptr___0 ;
  int error ;
  struct rio_device_id  const  *id ;

  {
#line 88
  __mptr = (struct device_driver  const  *)dev->driver;
#line 88
  rdrv = (struct rio_driver *)__mptr + 0xffffffffffffffb8UL;
#line 89
  __mptr___0 = (struct device  const  *)dev;
#line 89
  rdev = (struct rio_dev *)__mptr___0 + 0xffffffffffffff98UL;
#line 90
  error = -19;
#line 93
  if ((unsigned long )rdev->driver == (unsigned long )((struct rio_driver *)0) && (unsigned long )rdrv->probe != (unsigned long )((int (*)(struct rio_dev * ,
                                                                                                                                           struct rio_device_id  const  * ))0)) {
#line 94
    if ((unsigned long )rdrv->id_table == (unsigned long )((struct rio_device_id  const  *)0)) {
#line 95
      return (error);
    } else {

    }
#line 96
    id = rio_match_device(rdrv->id_table, (struct rio_dev  const  *)rdev);
#line 97
    rio_dev_get(rdev);
#line 98
    if ((unsigned long )id != (unsigned long )((struct rio_device_id  const  *)0)) {
#line 99
      error = (*(rdrv->probe))(rdev, id);
    } else {

    }
#line 100
    if (error >= 0) {
#line 101
      rdev->driver = rdrv;
#line 102
      error = 0;
    } else {
#line 104
      rio_dev_put(rdev);
    }
  } else {

  }
#line 106
  return (error);
}
}
#line 118 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static int rio_device_remove(struct device *dev ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  struct rio_driver *rdrv ;

  {
#line 120
  __mptr = (struct device  const  *)dev;
#line 120
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 121
  rdrv = rdev->driver;
#line 123
  if ((unsigned long )rdrv != (unsigned long )((struct rio_driver *)0)) {
#line 124
    if ((unsigned long )rdrv->remove != (unsigned long )((void (*)(struct rio_dev * ))0)) {
#line 125
      (*(rdrv->remove))(rdev);
    } else {

    }
#line 126
    rdev->driver = (struct rio_driver *)0;
  } else {

  }
#line 129
  rio_dev_put(rdev);
#line 131
  return (0);
}
}
#line 143 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
int rio_register_driver(struct rio_driver *rdrv ) 
{ 
  int tmp ;

  {
#line 146
  rdrv->driver.name = (char const   *)rdrv->name;
#line 147
  rdrv->driver.bus = & rio_bus_type;
#line 150
  tmp = driver_register(& rdrv->driver);
#line 150
  return (tmp);
}
}
#line 162 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
void rio_unregister_driver(struct rio_driver *rdrv ) 
{ 


  {
#line 164
  driver_unregister(& rdrv->driver);
#line 165
  return;
}
}
#line 167 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
void rio_attach_device(struct rio_dev *rdev ) 
{ 


  {
#line 169
  rdev->dev.bus = & rio_bus_type;
#line 170
  return;
}
}
#line 171 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static char const   __kstrtab_rio_attach_device[18U]  = 
#line 171
  {      'r',      'i',      'o',      '_', 
        'a',      't',      't',      'a', 
        'c',      'h',      '_',      'd', 
        'e',      'v',      'i',      'c', 
        'e',      '\000'};
#line 171
struct kernel_symbol  const  __ksymtab_rio_attach_device ;
#line 171 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
struct kernel_symbol  const  __ksymtab_rio_attach_device  =    {(unsigned long )(& rio_attach_device), (char const   *)(& __kstrtab_rio_attach_device)};
#line 183 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static int rio_match_bus(struct device *dev , struct device_driver *drv ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  struct rio_driver *rdrv ;
  struct device_driver  const  *__mptr___0 ;
  struct rio_device_id  const  *id ;
  struct rio_device_id  const  *found_id ;

  {
#line 185
  __mptr = (struct device  const  *)dev;
#line 185
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 186
  __mptr___0 = (struct device_driver  const  *)drv;
#line 186
  rdrv = (struct rio_driver *)__mptr___0 + 0xffffffffffffffb8UL;
#line 187
  id = rdrv->id_table;
#line 190
  if ((unsigned long )id == (unsigned long )((struct rio_device_id  const  *)0)) {
#line 191
    goto out;
  } else {

  }
#line 193
  found_id = rio_match_device(id, (struct rio_dev  const  *)rdev);
#line 195
  if ((unsigned long )found_id != (unsigned long )((struct rio_device_id  const  *)0)) {
#line 196
    return (1);
  } else {

  }
  out: ;
#line 198
  return (0);
}
}
#line 201 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static int rio_uevent(struct device *dev , struct kobj_uevent_env *env ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  int tmp ;

  {
#line 205
  if ((unsigned long )dev == (unsigned long )((struct device *)0)) {
#line 206
    return (-19);
  } else {

  }
#line 208
  __mptr = (struct device  const  *)dev;
#line 208
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 209
  if ((unsigned long )rdev == (unsigned long )((struct rio_dev *)0)) {
#line 210
    return (-19);
  } else {

  }
#line 212
  tmp = add_uevent_var(env, "MODALIAS=rapidio:v%04Xd%04Xav%04Xad%04X", (int )rdev->vid,
                       (int )rdev->did, (int )rdev->asm_vid, (int )rdev->asm_did);
#line 212
  if (tmp != 0) {
#line 214
    return (-12);
  } else {

  }
#line 215
  return (0);
}
}
#line 218 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
struct class rio_mport_class  = 
#line 218
     {"rapidio_port", & __this_module, 0, (struct attribute_group  const  **)(& rio_mport_groups),
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
#line 223 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static char const   __kstrtab_rio_mport_class[16U]  = 
#line 223
  {      'r',      'i',      'o',      '_', 
        'm',      'p',      'o',      'r', 
        't',      '_',      'c',      'l', 
        'a',      's',      's',      '\000'};
#line 223
struct kernel_symbol  const  __ksymtab_rio_mport_class ;
#line 223 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
struct kernel_symbol  const  __ksymtab_rio_mport_class  =    {(unsigned long )(& rio_mport_class), (char const   *)(& __kstrtab_rio_mport_class)};
#line 225 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
struct bus_type rio_bus_type  = 
#line 225
     {"rapidio", 0, 0, 0, (struct attribute_group  const  **)(& rio_bus_groups), (struct attribute_group  const  **)(& rio_dev_groups),
    0, & rio_match_bus, & rio_uevent, & rio_device_probe, & rio_device_remove, 0,
    0, 0, 0, 0, 0, 0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
                           {(char)0}, {(char)0}, {(char)0}}}};
#line 241 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static int rio_bus_init(void) 
{ 
  int ret ;
  struct lock_class_key __key ;
  int tmp ;

  {
#line 245
  tmp = __class_register(& rio_mport_class, & __key);
#line 245
  ret = tmp;
#line 246
  if (ret == 0) {
#line 247
    ret = bus_register(& rio_bus_type);
#line 248
    if (ret != 0) {
#line 249
      class_unregister(& rio_mport_class);
    } else {

    }
  } else {

  }
#line 251
  return (ret);
}
}
#line 256 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static char const   __kstrtab_rio_register_driver[20U]  = 
#line 256
  {      'r',      'i',      'o',      '_', 
        'r',      'e',      'g',      'i', 
        's',      't',      'e',      'r', 
        '_',      'd',      'r',      'i', 
        'v',      'e',      'r',      '\000'};
#line 256
struct kernel_symbol  const  __ksymtab_rio_register_driver ;
#line 256 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
struct kernel_symbol  const  __ksymtab_rio_register_driver  =    {(unsigned long )(& rio_register_driver), (char const   *)(& __kstrtab_rio_register_driver)};
#line 257 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static char const   __kstrtab_rio_unregister_driver[22U]  = 
#line 257
  {      'r',      'i',      'o',      '_', 
        'u',      'n',      'r',      'e', 
        'g',      'i',      's',      't', 
        'e',      'r',      '_',      'd', 
        'r',      'i',      'v',      'e', 
        'r',      '\000'};
#line 257
struct kernel_symbol  const  __ksymtab_rio_unregister_driver ;
#line 257 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
struct kernel_symbol  const  __ksymtab_rio_unregister_driver  =    {(unsigned long )(& rio_unregister_driver), (char const   *)(& __kstrtab_rio_unregister_driver)};
#line 258 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static char const   __kstrtab_rio_bus_type[13U]  = 
#line 258
  {      'r',      'i',      'o',      '_', 
        'b',      'u',      's',      '_', 
        't',      'y',      'p',      'e', 
        '\000'};
#line 258
struct kernel_symbol  const  __ksymtab_rio_bus_type ;
#line 258 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
struct kernel_symbol  const  __ksymtab_rio_bus_type  =    {(unsigned long )(& rio_bus_type), (char const   *)(& __kstrtab_rio_bus_type)};
#line 259 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static char const   __kstrtab_rio_dev_get[12U]  = 
#line 259
  {      'r',      'i',      'o',      '_', 
        'd',      'e',      'v',      '_', 
        'g',      'e',      't',      '\000'};
#line 259
struct kernel_symbol  const  __ksymtab_rio_dev_get ;
#line 259 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
struct kernel_symbol  const  __ksymtab_rio_dev_get  =    {(unsigned long )(& rio_dev_get), (char const   *)(& __kstrtab_rio_dev_get)};
#line 260 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
static char const   __kstrtab_rio_dev_put[12U]  = 
#line 260
  {      'r',      'i',      'o',      '_', 
        'd',      'e',      'v',      '_', 
        'p',      'u',      't',      '\000'};
#line 260
struct kernel_symbol  const  __ksymtab_rio_dev_put ;
#line 260 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.c"
struct kernel_symbol  const  __ksymtab_rio_dev_put  =    {(unsigned long )(& rio_dev_put), (char const   *)(& __kstrtab_rio_dev_put)};
#line 65 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_retval_0  ;
#line 66 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_retval_1  ;
#line 67
extern void ldv_initialize(void) ;
#line 68
void ldv_check_final_state(void) ;
#line 69
extern void ldv_module_exit(void) ;
#line 70 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int ldv_retval_2  ;
#line 74 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
void ldv_initialize_bus_type_19(void) 
{ 
  void *tmp ;

  {
#line 75
  tmp = ldv_init_zalloc(1416UL);
#line 75
  rio_bus_type_group0 = (struct device *)tmp;
#line 76
  return;
}
}
#line 78 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
void ldv_initialize_bus_type_18(void) 
{ 
  void *tmp ;

  {
#line 79
  tmp = ldv_init_zalloc(1416UL);
#line 79
  rio_bus_type_group0 = (struct device *)tmp;
#line 80
  return;
}
}
#line 83
void ldv_main_exported_11(void) ;
#line 84
void ldv_main_exported_7(void) ;
#line 85
void ldv_main_exported_17(void) ;
#line 86
void ldv_main_exported_2(void) ;
#line 87
void ldv_main_exported_16(void) ;
#line 88
void ldv_main_exported_13(void) ;
#line 89
void ldv_main_exported_6(void) ;
#line 90
void ldv_main_exported_3(void) ;
#line 91
void ldv_main_exported_9(void) ;
#line 92
void ldv_main_exported_12(void) ;
#line 93
void ldv_main_exported_14(void) ;
#line 94
void ldv_main_exported_15(void) ;
#line 95
void ldv_main_exported_8(void) ;
#line 96
void ldv_main_exported_4(void) ;
#line 97
void ldv_main_exported_10(void) ;
#line 98
void ldv_main_exported_5(void) ;
#line 105 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
int main(void) 
{ 
  struct kobj_uevent_env *ldvarg13 ;
  void *tmp ;
  struct device_driver *ldvarg12 ;
  void *tmp___0 ;
  struct kobj_uevent_env *ldvarg45 ;
  void *tmp___1 ;
  struct device_driver *ldvarg44 ;
  void *tmp___2 ;
  int tmp___3 ;
  int tmp___4 ;
  int tmp___5 ;
  int tmp___6 ;

  {
#line 108
  tmp = ldv_init_zalloc(2336UL);
#line 108
  ldvarg13 = (struct kobj_uevent_env *)tmp;
#line 109
  tmp___0 = ldv_init_zalloc(120UL);
#line 109
  ldvarg12 = (struct device_driver *)tmp___0;
#line 110
  tmp___1 = ldv_init_zalloc(2336UL);
#line 110
  ldvarg45 = (struct kobj_uevent_env *)tmp___1;
#line 111
  tmp___2 = ldv_init_zalloc(120UL);
#line 111
  ldvarg44 = (struct device_driver *)tmp___2;
#line 106
  ldv_initialize();
#line 113
  ldv_state_variable_11 = 0;
#line 114
  ldv_state_variable_7 = 0;
#line 115
  ldv_state_variable_17 = 0;
#line 116
  ldv_state_variable_2 = 0;
#line 118
  work_init_1();
#line 120
  ldv_state_variable_1 = 1;
#line 121
  ldv_state_variable_18 = 0;
#line 122
  ref_cnt = 0;
#line 123
  ldv_state_variable_0 = 1;
#line 124
  ldv_state_variable_16 = 0;
#line 125
  ldv_state_variable_13 = 0;
#line 126
  ldv_state_variable_6 = 0;
#line 127
  ldv_state_variable_3 = 0;
#line 128
  ldv_state_variable_9 = 0;
#line 129
  ldv_state_variable_12 = 0;
#line 130
  ldv_state_variable_14 = 0;
#line 131
  ldv_state_variable_15 = 0;
#line 132
  ldv_state_variable_8 = 0;
#line 133
  ldv_state_variable_4 = 0;
#line 134
  ldv_state_variable_19 = 0;
#line 135
  ldv_state_variable_10 = 0;
#line 136
  ldv_state_variable_5 = 0;
  ldv_25787: 
#line 138
  tmp___3 = __VERIFIER_nondet_int();
#line 138
  switch (tmp___3) {
  case 0: ;
#line 142
  if (ldv_state_variable_11 != 0) {
#line 143
    ldv_main_exported_11();
  } else {

  }
#line 146
  goto ldv_25749;
  case 1: ;
#line 150
  if (ldv_state_variable_7 != 0) {
#line 151
    ldv_main_exported_7();
  } else {

  }
#line 154
  goto ldv_25749;
  case 2: ;
#line 158
  if (ldv_state_variable_17 != 0) {
#line 159
    ldv_main_exported_17();
  } else {

  }
#line 162
  goto ldv_25749;
  case 3: ;
#line 166
  if (ldv_state_variable_2 != 0) {
#line 167
    ldv_main_exported_2();
  } else {

  }
#line 170
  goto ldv_25749;
  case 4: ;
#line 177
  goto ldv_25749;
  case 5: ;
#line 181
  if (ldv_state_variable_18 != 0) {
#line 182
    tmp___4 = __VERIFIER_nondet_int();
#line 182
    switch (tmp___4) {
    case 0: ;
#line 185
    if (ldv_state_variable_18 == 1) {
#line 187
      ldv_retval_0 = rio_device_probe(rio_bus_type_group0);
#line 189
      if (ldv_retval_0 == 0) {
#line 190
        ldv_state_variable_18 = 2;
#line 191
        ref_cnt = ref_cnt + 1;
      } else {

      }
    } else {

    }
#line 195
    goto ldv_25756;
    case 1: ;
#line 198
    if (ldv_state_variable_18 == 1) {
#line 200
      rio_uevent(rio_bus_type_group0, ldvarg13);
#line 202
      ldv_state_variable_18 = 1;
    } else {

    }
#line 205
    if (ldv_state_variable_18 == 2) {
#line 207
      rio_uevent(rio_bus_type_group0, ldvarg13);
#line 209
      ldv_state_variable_18 = 2;
    } else {

    }
#line 212
    goto ldv_25756;
    case 2: ;
#line 215
    if (ldv_state_variable_18 == 1) {
#line 217
      rio_match_bus(rio_bus_type_group0, ldvarg12);
#line 219
      ldv_state_variable_18 = 1;
    } else {

    }
#line 222
    if (ldv_state_variable_18 == 2) {
#line 224
      rio_match_bus(rio_bus_type_group0, ldvarg12);
#line 226
      ldv_state_variable_18 = 2;
    } else {

    }
#line 229
    goto ldv_25756;
    case 3: ;
#line 232
    if (ldv_state_variable_18 == 2) {
#line 234
      rio_device_remove(rio_bus_type_group0);
#line 236
      ldv_state_variable_18 = 1;
#line 237
      ref_cnt = ref_cnt - 1;
    } else {

    }
#line 240
    goto ldv_25756;
    default: 
#line 241
    ldv_stop();
    }
    ldv_25756: ;
  } else {

  }
#line 245
  goto ldv_25749;
  case 6: ;
#line 249
  if (ldv_state_variable_0 != 0) {
#line 250
    tmp___5 = __VERIFIER_nondet_int();
#line 250
    switch (tmp___5) {
    case 0: ;
#line 253
    if (ldv_state_variable_0 == 3 && ref_cnt == 0) {
#line 255
      ldv_module_exit();
#line 256
      ldv_state_variable_0 = 2;
#line 257
      goto ldv_final;
    } else {

    }
#line 260
    goto ldv_25764;
    case 1: ;
#line 263
    if (ldv_state_variable_0 == 1) {
#line 265
      ldv_retval_1 = rio_bus_init();
#line 267
      if (ldv_retval_1 == 0) {
#line 268
        ldv_state_variable_0 = 3;
#line 269
        ldv_state_variable_5 = 1;
#line 270
        ldv_initialize_bin_attribute_5();
#line 271
        ldv_state_variable_10 = 1;
#line 272
        ldv_state_variable_19 = 1;
#line 273
        ldv_initialize_bus_type_19();
#line 274
        ldv_state_variable_4 = 1;
#line 275
        ldv_state_variable_8 = 1;
#line 276
        ldv_state_variable_15 = 1;
#line 277
        ldv_state_variable_14 = 1;
#line 278
        ldv_state_variable_12 = 1;
#line 279
        ldv_state_variable_9 = 1;
#line 280
        ldv_state_variable_3 = 1;
#line 281
        ldv_state_variable_6 = 1;
#line 282
        ldv_state_variable_13 = 1;
#line 283
        ldv_state_variable_16 = 1;
#line 284
        ldv_state_variable_18 = 1;
#line 285
        ldv_initialize_bus_type_18();
#line 286
        ldv_state_variable_2 = 1;
#line 287
        ldv_state_variable_17 = 1;
#line 288
        ldv_state_variable_7 = 1;
#line 289
        ldv_state_variable_11 = 1;
      } else {

      }
#line 291
      if (ldv_retval_1 != 0) {
#line 292
        ldv_state_variable_0 = 2;
#line 293
        goto ldv_final;
      } else {

      }
    } else {

    }
#line 297
    goto ldv_25764;
    default: 
#line 298
    ldv_stop();
    }
    ldv_25764: ;
  } else {

  }
#line 302
  goto ldv_25749;
  case 7: ;
#line 306
  if (ldv_state_variable_16 != 0) {
#line 307
    ldv_main_exported_16();
  } else {

  }
#line 310
  goto ldv_25749;
  case 8: ;
#line 314
  if (ldv_state_variable_13 != 0) {
#line 315
    ldv_main_exported_13();
  } else {

  }
#line 318
  goto ldv_25749;
  case 9: ;
#line 322
  if (ldv_state_variable_6 != 0) {
#line 323
    ldv_main_exported_6();
  } else {

  }
#line 326
  goto ldv_25749;
  case 10: ;
#line 330
  if (ldv_state_variable_3 != 0) {
#line 331
    ldv_main_exported_3();
  } else {

  }
#line 334
  goto ldv_25749;
  case 11: ;
#line 338
  if (ldv_state_variable_9 != 0) {
#line 339
    ldv_main_exported_9();
  } else {

  }
#line 342
  goto ldv_25749;
  case 12: ;
#line 346
  if (ldv_state_variable_12 != 0) {
#line 347
    ldv_main_exported_12();
  } else {

  }
#line 350
  goto ldv_25749;
  case 13: ;
#line 354
  if (ldv_state_variable_14 != 0) {
#line 355
    ldv_main_exported_14();
  } else {

  }
#line 358
  goto ldv_25749;
  case 14: ;
#line 362
  if (ldv_state_variable_15 != 0) {
#line 363
    ldv_main_exported_15();
  } else {

  }
#line 366
  goto ldv_25749;
  case 15: ;
#line 370
  if (ldv_state_variable_8 != 0) {
#line 371
    ldv_main_exported_8();
  } else {

  }
#line 374
  goto ldv_25749;
  case 16: ;
#line 378
  if (ldv_state_variable_4 != 0) {
#line 379
    ldv_main_exported_4();
  } else {

  }
#line 382
  goto ldv_25749;
  case 17: ;
#line 386
  if (ldv_state_variable_19 != 0) {
#line 387
    tmp___6 = __VERIFIER_nondet_int();
#line 387
    switch (tmp___6) {
    case 0: ;
#line 390
    if (ldv_state_variable_19 == 1) {
#line 392
      ldv_retval_2 = rio_device_probe(rio_bus_type_group0);
#line 394
      if (ldv_retval_2 == 0) {
#line 395
        ldv_state_variable_19 = 2;
#line 396
        ref_cnt = ref_cnt + 1;
      } else {

      }
    } else {

    }
#line 400
    goto ldv_25779;
    case 1: ;
#line 403
    if (ldv_state_variable_19 == 1) {
#line 405
      rio_uevent(rio_bus_type_group0, ldvarg45);
#line 407
      ldv_state_variable_19 = 1;
    } else {

    }
#line 410
    if (ldv_state_variable_19 == 2) {
#line 412
      rio_uevent(rio_bus_type_group0, ldvarg45);
#line 414
      ldv_state_variable_19 = 2;
    } else {

    }
#line 417
    goto ldv_25779;
    case 2: ;
#line 420
    if (ldv_state_variable_19 == 1) {
#line 422
      rio_match_bus(rio_bus_type_group0, ldvarg44);
#line 424
      ldv_state_variable_19 = 1;
    } else {

    }
#line 427
    if (ldv_state_variable_19 == 2) {
#line 429
      rio_match_bus(rio_bus_type_group0, ldvarg44);
#line 431
      ldv_state_variable_19 = 2;
    } else {

    }
#line 434
    goto ldv_25779;
    case 3: ;
#line 437
    if (ldv_state_variable_19 == 2) {
#line 439
      rio_device_remove(rio_bus_type_group0);
#line 441
      ldv_state_variable_19 = 1;
#line 442
      ref_cnt = ref_cnt - 1;
    } else {

    }
#line 445
    goto ldv_25779;
    default: 
#line 446
    ldv_stop();
    }
    ldv_25779: ;
  } else {

  }
#line 450
  goto ldv_25749;
  case 18: ;
#line 454
  if (ldv_state_variable_10 != 0) {
#line 455
    ldv_main_exported_10();
  } else {

  }
#line 458
  goto ldv_25749;
  case 19: ;
#line 462
  if (ldv_state_variable_5 != 0) {
#line 463
    ldv_main_exported_5();
  } else {

  }
#line 466
  goto ldv_25749;
  default: 
#line 467
  ldv_stop();
  }
  ldv_25749: ;
#line 469
  goto ldv_25787;
  ldv_final: 
#line 471
  ldv_check_final_state();
#line 472
  return 0;
}
}
#line 499 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
bool ldv_queue_work_on_51(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                          struct work_struct *ldv_func_arg3 ) 
{ 
  ldv_func_ret_type ldv_func_res ;
  bool tmp ;

  {
#line 503
  tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3);
#line 503
  ldv_func_res = tmp;
#line 505
  activate_work_1(ldv_func_arg3, 2);
#line 507
  return (ldv_func_res);
}
}
#line 510 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
bool ldv_queue_delayed_work_on_52(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                  struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) 
{ 
  ldv_func_ret_type___0 ldv_func_res ;
  bool tmp ;

  {
#line 514
  tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4);
#line 514
  ldv_func_res = tmp;
#line 516
  activate_work_1(& ldv_func_arg3->work, 2);
#line 518
  return (ldv_func_res);
}
}
#line 521 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
bool ldv_queue_work_on_53(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                          struct work_struct *ldv_func_arg3 ) 
{ 
  ldv_func_ret_type___1 ldv_func_res ;
  bool tmp ;

  {
#line 525
  tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3);
#line 525
  ldv_func_res = tmp;
#line 527
  activate_work_1(ldv_func_arg3, 2);
#line 529
  return (ldv_func_res);
}
}
#line 532 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
void ldv_flush_workqueue_54(struct workqueue_struct *ldv_func_arg1 ) 
{ 


  {
#line 535
  flush_workqueue(ldv_func_arg1);
#line 537
  call_and_disable_all_1(2);
#line 538
  return;
}
}
#line 540 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-driver.o.c.prepared"
bool ldv_queue_delayed_work_on_55(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                  struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) 
{ 
  ldv_func_ret_type___2 ldv_func_res ;
  bool tmp ;

  {
#line 544
  tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4);
#line 544
  ldv_func_res = tmp;
#line 546
  activate_work_1(& ldv_func_arg3->work, 2);
#line 548
  return (ldv_func_res);
}
}
#line 272 "include/linux/kernel.h"
extern int kstrtoll(char const   * , unsigned int  , long long * ) ;
#line 319 "include/linux/kernel.h"
__inline static int kstrtol(char const   *s , unsigned int base , long *res ) 
{ 
  int tmp ;

  {
#line 327
  tmp = kstrtoll(s, base, (long long *)res);
#line 327
  return (tmp);
}
}
#line 402
extern int sprintf(char * , char const   *  , ...) ;
#line 433 "include/linux/workqueue.h"
bool ldv_queue_work_on_65(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                          struct work_struct *ldv_func_arg3 ) ;
#line 437
bool ldv_queue_work_on_67(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                          struct work_struct *ldv_func_arg3 ) ;
#line 443
bool ldv_queue_delayed_work_on_66(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                  struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ;
#line 447
bool ldv_queue_delayed_work_on_69(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                  struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ;
#line 455
void ldv_flush_workqueue_68(struct workqueue_struct *ldv_func_arg1 ) ;
#line 215 "include/linux/capability.h"
extern bool capable(int  ) ;
#line 591 "include/linux/device.h"
extern int device_create_file(struct device * , struct device_attribute  const  * ) ;
#line 593
extern void device_remove_file(struct device * , struct device_attribute  const  * ) ;
#line 597
extern int device_create_bin_file(struct device * , struct bin_attribute  const  * ) ;
#line 599
extern void device_remove_bin_file(struct device * , struct bin_attribute  const  * ) ;
#line 181 "include/linux/rio_drv.h"
__inline static int rio_read_config_16(struct rio_dev *rdev , u32 offset , u16 *data ) 
{ 
  int tmp ;

  {
#line 184
  tmp = rio_mport_read_config_16((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                                 offset, data);
#line 184
  return (tmp);
}
}
#line 197 "include/linux/rio_drv.h"
__inline static int rio_write_config_16(struct rio_dev *rdev , u32 offset , u16 data ) 
{ 
  int tmp ;

  {
#line 200
  tmp = rio_mport_write_config_16((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                                  offset, (int )data);
#line 200
  return (tmp);
}
}
#line 213 "include/linux/rio_drv.h"
__inline static int rio_read_config_8(struct rio_dev *rdev , u32 offset , u8 *data ) 
{ 
  int tmp ;

  {
#line 215
  tmp = rio_mport_read_config_8((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                                offset, data);
#line 215
  return (tmp);
}
}
#line 228 "include/linux/rio_drv.h"
__inline static int rio_write_config_8(struct rio_dev *rdev , u32 offset , u8 data ) 
{ 
  int tmp ;

  {
#line 230
  tmp = rio_mport_write_config_8((rdev->net)->hport, (int )rdev->destid, (int )rdev->hopcount,
                                 offset, (int )data);
#line 230
  return (tmp);
}
}
#line 32 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t did_show(struct device *dev , struct device_attribute *attr , char *buf ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  int tmp ;

  {
#line 32
  __mptr = (struct device  const  *)dev;
#line 32
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 32
  tmp = sprintf(buf, "0x%04x\n", (int )rdev->did);
#line 32
  return ((ssize_t )tmp);
}
}
#line 32 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_did  =    {{"did", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
                                 {(char)0}, {(char)0}, {(char)0}}}}, & did_show, 0};
#line 33 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t vid_show(struct device *dev , struct device_attribute *attr , char *buf ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  int tmp ;

  {
#line 33
  __mptr = (struct device  const  *)dev;
#line 33
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 33
  tmp = sprintf(buf, "0x%04x\n", (int )rdev->vid);
#line 33
  return ((ssize_t )tmp);
}
}
#line 33 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_vid  =    {{"vid", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
                                 {(char)0}, {(char)0}, {(char)0}}}}, & vid_show, 0};
#line 34 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t device_rev_show(struct device *dev , struct device_attribute *attr ,
                               char *buf ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  int tmp ;

  {
#line 34
  __mptr = (struct device  const  *)dev;
#line 34
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 34
  tmp = sprintf(buf, "0x%08x\n", rdev->device_rev);
#line 34
  return ((ssize_t )tmp);
}
}
#line 34 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_device_rev  =    {{"device_rev", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0},
                                        {(char)0}, {(char)0}, {(char)0}, {(char)0}}}},
    & device_rev_show, 0};
#line 35 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t asm_did_show(struct device *dev , struct device_attribute *attr , char *buf ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  int tmp ;

  {
#line 35
  __mptr = (struct device  const  *)dev;
#line 35
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 35
  tmp = sprintf(buf, "0x%04x\n", (int )rdev->asm_did);
#line 35
  return ((ssize_t )tmp);
}
}
#line 35 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_asm_did  =    {{"asm_did", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
                                     {(char)0}, {(char)0}, {(char)0}}}}, & asm_did_show,
    0};
#line 36 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t asm_vid_show(struct device *dev , struct device_attribute *attr , char *buf ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  int tmp ;

  {
#line 36
  __mptr = (struct device  const  *)dev;
#line 36
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 36
  tmp = sprintf(buf, "0x%04x\n", (int )rdev->asm_vid);
#line 36
  return ((ssize_t )tmp);
}
}
#line 36 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_asm_vid  =    {{"asm_vid", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
                                     {(char)0}, {(char)0}, {(char)0}}}}, & asm_vid_show,
    0};
#line 37 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t asm_rev_show(struct device *dev , struct device_attribute *attr , char *buf ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  int tmp ;

  {
#line 37
  __mptr = (struct device  const  *)dev;
#line 37
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 37
  tmp = sprintf(buf, "0x%04x\n", (int )rdev->asm_rev);
#line 37
  return ((ssize_t )tmp);
}
}
#line 37 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_asm_rev  =    {{"asm_rev", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
                                     {(char)0}, {(char)0}, {(char)0}}}}, & asm_rev_show,
    0};
#line 38 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t destid_show(struct device *dev , struct device_attribute *attr , char *buf ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  int tmp ;

  {
#line 38
  __mptr = (struct device  const  *)dev;
#line 38
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 38
  tmp = sprintf(buf, "0x%04x\n", (int )rdev->destid);
#line 38
  return ((ssize_t )tmp);
}
}
#line 38 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_destid  =    {{"destid", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
                                    {(char)0}, {(char)0}, {(char)0}}}}, & destid_show,
    0};
#line 39 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t hopcount_show(struct device *dev , struct device_attribute *attr ,
                             char *buf ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  int tmp ;

  {
#line 39
  __mptr = (struct device  const  *)dev;
#line 39
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 39
  tmp = sprintf(buf, "0x%02x\n", (int )rdev->hopcount);
#line 39
  return ((ssize_t )tmp);
}
}
#line 39 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_hopcount  =    {{"hopcount", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0},
                                      {(char)0}, {(char)0}, {(char)0}, {(char)0}}}},
    & hopcount_show, 0};
#line 41 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t routes_show(struct device *dev , struct device_attribute *attr , char *buf ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  char *str ;
  int i ;
  int tmp ;

  {
#line 43
  __mptr = (struct device  const  *)dev;
#line 43
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 44
  str = buf;
#line 47
  i = 0;
#line 47
  goto ldv_25934;
  ldv_25933: ;
#line 49
  if ((unsigned int )*(((struct rio_switch *)(& rdev->rswitch))->route_table + (unsigned long )i) == 255U) {
#line 50
    goto ldv_25932;
  } else {

  }
#line 51
  tmp = sprintf(str, "%04x %02x\n", i, (int )*(((struct rio_switch *)(& rdev->rswitch))->route_table + (unsigned long )i));
#line 51
  str = str + (unsigned long )tmp;
  ldv_25932: 
#line 48
  i = i + 1;
  ldv_25934: ;
#line 47
  if ((((rdev->net)->hport)->sys_size != 0U ? 65536 : 256) > i) {
#line 49
    goto ldv_25933;
  } else {

  }

#line 56
  return ((long )str - (long )buf);
}
}
#line 58 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_routes  =    {{"routes", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
                                    {(char)0}, {(char)0}, {(char)0}}}}, & routes_show,
    0};
#line 60 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t lprev_show(struct device *dev , struct device_attribute *attr , char *buf ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  char const   *tmp ;
  char const   *tmp___0 ;
  int tmp___1 ;

  {
#line 63
  __mptr = (struct device  const  *)dev;
#line 63
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 65
  if ((unsigned long )rdev->prev != (unsigned long )((struct rio_dev *)0)) {
#line 65
    tmp = rio_name(rdev->prev);
#line 65
    tmp___0 = tmp;
  } else {
#line 65
    tmp___0 = "root";
  }
#line 65
  tmp___1 = sprintf(buf, "%s\n", tmp___0);
#line 65
  return ((ssize_t )tmp___1);
}
}
#line 68 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_lprev  =    {{"lprev", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
                                   {(char)0}, {(char)0}, {(char)0}}}}, & lprev_show,
    0};
#line 70 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t lnext_show(struct device *dev , struct device_attribute *attr , char *buf ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  char *str ;
  int i ;
  char const   *tmp ;
  int tmp___0 ;
  int tmp___1 ;

  {
#line 73
  __mptr = (struct device  const  *)dev;
#line 73
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 74
  str = buf;
#line 77
  if ((rdev->pef & 268435456U) != 0U) {
#line 78
    i = 0;
#line 78
    goto ldv_25957;
    ldv_25956: ;
#line 79
    if ((unsigned long )((struct rio_switch *)(& rdev->rswitch))->nextdev[i] != (unsigned long )((struct rio_dev *)0)) {
#line 80
      tmp = rio_name(((struct rio_switch *)(& rdev->rswitch))->nextdev[i]);
#line 80
      tmp___0 = sprintf(str, "%s\n", tmp);
#line 80
      str = str + (unsigned long )tmp___0;
    } else {
#line 83
      tmp___1 = sprintf(str, "null\n");
#line 83
      str = str + (unsigned long )tmp___1;
    }
#line 78
    i = i + 1;
    ldv_25957: ;
#line 78
    if ((u32 )i < (rdev->swpinfo & 65280U) >> 8) {
#line 80
      goto ldv_25956;
    } else {

    }

  } else {

  }
#line 87
  return ((long )str - (long )buf);
}
}
#line 89 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_lnext  =    {{"lnext", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
                                   {(char)0}, {(char)0}, {(char)0}}}}, & lnext_show,
    0};
#line 91 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t modalias_show(struct device *dev , struct device_attribute *attr ,
                             char *buf ) 
{ 
  struct rio_dev *rdev ;
  struct device  const  *__mptr ;
  int tmp ;

  {
#line 94
  __mptr = (struct device  const  *)dev;
#line 94
  rdev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 96
  tmp = sprintf(buf, "rapidio:v%04Xd%04Xav%04Xad%04X\n", (int )rdev->vid, (int )rdev->did,
                (int )rdev->asm_vid, (int )rdev->asm_did);
#line 96
  return ((ssize_t )tmp);
}
}
#line 99 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_modalias  =    {{"modalias", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0},
                                      {(char)0}, {(char)0}, {(char)0}, {(char)0}}}},
    & modalias_show, 0};
#line 101 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct attribute *rio_dev_attrs[10U]  = 
#line 101
  {      & dev_attr_did.attr,      & dev_attr_vid.attr,      & dev_attr_device_rev.attr,      & dev_attr_asm_did.attr, 
        & dev_attr_asm_vid.attr,      & dev_attr_asm_rev.attr,      & dev_attr_lprev.attr,      & dev_attr_destid.attr, 
        & dev_attr_modalias.attr,      (struct attribute *)0};
#line 114 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct attribute_group  const  rio_dev_group  =    {0, 0, (struct attribute **)(& rio_dev_attrs), 0};
#line 118 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
struct attribute_group  const  *rio_dev_groups[2U]  = {      & rio_dev_group,      (struct attribute_group  const  *)0};
#line 124 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t rio_read_config(struct file *filp , struct kobject *kobj , struct bin_attribute *bin_attr ,
                               char *buf , loff_t off , size_t count ) 
{ 
  struct rio_dev *dev ;
  struct device  const  *__mptr ;
  struct kobject  const  *__mptr___0 ;
  unsigned int size ;
  loff_t init_off ;
  u8 *data ;
  bool tmp ;
  u8 val ;
  u16 val___0 ;
  u32 val___1 ;
  u16 val___2 ;
  u8 val___3 ;

  {
#line 129
  __mptr___0 = (struct kobject  const  *)kobj;
#line 129
  __mptr = (struct device  const  *)((struct device *)__mptr___0 + 0xfffffffffffffff0UL);
#line 129
  dev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 130
  size = 256U;
#line 131
  init_off = off;
#line 132
  data = (u8 *)buf;
#line 135
  tmp = capable(21);
#line 135
  if ((int )tmp) {
#line 136
    size = 16777216U;
  } else {

  }
#line 138
  if ((loff_t )size <= off) {
#line 139
    return (0L);
  } else {

  }
#line 140
  if ((unsigned long long )off + (unsigned long long )count > (unsigned long long )size) {
#line 141
    size = size - (unsigned int )off;
#line 142
    count = (size_t )size;
  } else {
#line 144
    size = (unsigned int )count;
  }
#line 147
  if ((int )off & 1 && size != 0U) {
#line 149
    rio_read_config_8(dev, (u32 )off, & val);
#line 150
    *(data + (unsigned long )(off - init_off)) = val;
#line 151
    off = off + 1LL;
#line 152
    size = size - 1U;
  } else {

  }
#line 155
  if ((off & 3LL) != 0LL && size > 2U) {
#line 157
    rio_read_config_16(dev, (u32 )off, & val___0);
#line 158
    *(data + (unsigned long )(off - init_off)) = (u8 )((int )val___0 >> 8);
#line 159
    *(data + ((unsigned long )(off - init_off) + 1UL)) = (u8 )val___0;
#line 160
    off = off + 2LL;
#line 161
    size = size - 2U;
  } else {

  }
#line 164
  goto ldv_25992;
  ldv_25991: 
#line 166
  rio_read_config_32(dev, (u32 )off, & val___1);
#line 167
  *(data + (unsigned long )(off - init_off)) = (u8 )(val___1 >> 24);
#line 168
  *(data + ((unsigned long )(off - init_off) + 1UL)) = (u8 )(val___1 >> 16);
#line 169
  *(data + ((unsigned long )(off - init_off) + 2UL)) = (u8 )(val___1 >> 8);
#line 170
  *(data + ((unsigned long )(off - init_off) + 3UL)) = (u8 )val___1;
#line 171
  off = off + 4LL;
#line 172
  size = size - 4U;
  ldv_25992: ;
#line 164
  if (size > 3U) {
#line 166
    goto ldv_25991;
  } else {

  }

#line 175
  if (size > 1U) {
#line 177
    rio_read_config_16(dev, (u32 )off, & val___2);
#line 178
    *(data + (unsigned long )(off - init_off)) = (u8 )((int )val___2 >> 8);
#line 179
    *(data + ((unsigned long )(off - init_off) + 1UL)) = (u8 )val___2;
#line 180
    off = off + 2LL;
#line 181
    size = size - 2U;
  } else {

  }
#line 184
  if (size != 0U) {
#line 186
    rio_read_config_8(dev, (u32 )off, & val___3);
#line 187
    *(data + (unsigned long )(off - init_off)) = val___3;
#line 188
    off = off + 1LL;
#line 189
    size = size - 1U;
  } else {

  }
#line 192
  return ((ssize_t )count);
}
}
#line 196 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t rio_write_config(struct file *filp , struct kobject *kobj , struct bin_attribute *bin_attr ,
                                char *buf , loff_t off , size_t count ) 
{ 
  struct rio_dev *dev ;
  struct device  const  *__mptr ;
  struct kobject  const  *__mptr___0 ;
  unsigned int size ;
  loff_t init_off ;
  u8 *data ;
  u16 val ;
  u32 val___0 ;
  u16 val___1 ;

  {
#line 201
  __mptr___0 = (struct kobject  const  *)kobj;
#line 201
  __mptr = (struct device  const  *)((struct device *)__mptr___0 + 0xfffffffffffffff0UL);
#line 201
  dev = (struct rio_dev *)__mptr + 0xffffffffffffff98UL;
#line 202
  size = (unsigned int )count;
#line 203
  init_off = off;
#line 204
  data = (u8 *)buf;
#line 206
  if (off > 16777215LL) {
#line 207
    return (0L);
  } else {

  }
#line 208
  if ((unsigned long long )off + (unsigned long long )count > 16777216ULL) {
#line 209
    size = 16777216U - (unsigned int )off;
#line 210
    count = (size_t )size;
  } else {

  }
#line 213
  if ((int )off & 1 && size != 0U) {
#line 214
    rio_write_config_8(dev, (u32 )off, (int )*(data + (unsigned long )(off - init_off)));
#line 215
    off = off + 1LL;
#line 216
    size = size - 1U;
  } else {

  }
#line 219
  if ((off & 3LL) != 0LL && size > 2U) {
#line 220
    val = (u16 )*(data + ((unsigned long )(off - init_off) + 1UL));
#line 221
    val = (u16 )((int )((short )((int )*(data + (unsigned long )(off - init_off)) << 8)) | (int )((short )val));
#line 222
    rio_write_config_16(dev, (u32 )off, (int )val);
#line 223
    off = off + 2LL;
#line 224
    size = size - 2U;
  } else {

  }
#line 227
  goto ldv_26015;
  ldv_26014: 
#line 228
  val___0 = (u32 )*(data + ((unsigned long )(off - init_off) + 3UL));
#line 229
  val___0 = ((unsigned int )*(data + ((unsigned long )(off - init_off) + 2UL)) << 8) | val___0;
#line 230
  val___0 = ((unsigned int )*(data + ((unsigned long )(off - init_off) + 1UL)) << 16) | val___0;
#line 231
  val___0 = ((unsigned int )*(data + (unsigned long )(off - init_off)) << 24) | val___0;
#line 232
  rio_write_config_32(dev, (u32 )off, val___0);
#line 233
  off = off + 4LL;
#line 234
  size = size - 4U;
  ldv_26015: ;
#line 227
  if (size > 3U) {
#line 229
    goto ldv_26014;
  } else {

  }

#line 237
  if (size > 1U) {
#line 238
    val___1 = (u16 )*(data + ((unsigned long )(off - init_off) + 1UL));
#line 239
    val___1 = (u16 )((int )((short )((int )*(data + (unsigned long )(off - init_off)) << 8)) | (int )((short )val___1));
#line 240
    rio_write_config_16(dev, (u32 )off, (int )val___1);
#line 241
    off = off + 2LL;
#line 242
    size = size - 2U;
  } else {

  }
#line 245
  if (size != 0U) {
#line 246
    rio_write_config_8(dev, (u32 )off, (int )*(data + (unsigned long )(off - init_off)));
#line 247
    off = off + 1LL;
#line 248
    size = size - 1U;
  } else {

  }
#line 251
  return ((ssize_t )count);
}
}
#line 254 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct bin_attribute rio_config_attr  =    {{"config", 420U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
                                    {(char)0}, {(char)0}, {(char)0}}}}, 16777216UL,
    0, & rio_read_config, & rio_write_config, 0};
#line 270 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
int rio_create_sysfs_dev_files(struct rio_dev *rdev ) 
{ 
  int err ;
  int tmp ;
  int tmp___0 ;
  int tmp___1 ;
  char const   *tmp___2 ;

  {
#line 272
  err = 0;
#line 274
  err = device_create_bin_file(& rdev->dev, (struct bin_attribute  const  *)(& rio_config_attr));
#line 276
  if (err == 0 && (rdev->pef & 268435456U) != 0U) {
#line 277
    tmp = device_create_file(& rdev->dev, (struct device_attribute  const  *)(& dev_attr_routes));
#line 277
    err = tmp | err;
#line 278
    tmp___0 = device_create_file(& rdev->dev, (struct device_attribute  const  *)(& dev_attr_lnext));
#line 278
    err = tmp___0 | err;
#line 279
    tmp___1 = device_create_file(& rdev->dev, (struct device_attribute  const  *)(& dev_attr_hopcount));
#line 279
    err = tmp___1 | err;
  } else {

  }
#line 282
  if (err != 0) {
#line 283
    tmp___2 = rio_name(rdev);
#line 283
    printk("\fRIO: Failed to create attribute file(s) for %s\n", tmp___2);
  } else {

  }
#line 286
  return (err);
}
}
#line 295 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
void rio_remove_sysfs_dev_files(struct rio_dev *rdev ) 
{ 


  {
#line 297
  device_remove_bin_file(& rdev->dev, (struct bin_attribute  const  *)(& rio_config_attr));
#line 298
  if ((rdev->pef & 268435456U) != 0U) {
#line 299
    device_remove_file(& rdev->dev, (struct device_attribute  const  *)(& dev_attr_routes));
#line 300
    device_remove_file(& rdev->dev, (struct device_attribute  const  *)(& dev_attr_lnext));
#line 301
    device_remove_file(& rdev->dev, (struct device_attribute  const  *)(& dev_attr_hopcount));
  } else {

  }
#line 303
  return;
}
}
#line 305 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t bus_scan_store(struct bus_type *bus , char const   *buf , size_t count ) 
{ 
  long val ;
  int rc ;
  int tmp ;

  {
#line 311
  tmp = kstrtol(buf, 0U, & val);
#line 311
  if (tmp < 0) {
#line 312
    return (-22L);
  } else {

  }
#line 314
  if (val == -1L) {
#line 315
    rc = rio_init_mports();
#line 316
    goto exit;
  } else {

  }
#line 319
  if (val < 0L || val > 7L) {
#line 320
    return (-22L);
  } else {

  }
#line 322
  rc = rio_mport_scan((int )val);
  exit: ;
#line 324
  if (rc == 0) {
#line 325
    rc = (int )count;
  } else {

  }
#line 327
  return ((ssize_t )rc);
}
}
#line 329 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct bus_attribute bus_attr_scan  =    {{"scan", 144U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
                                  {(char)0}, {(char)0}, {(char)0}}}}, (ssize_t (*)(struct bus_type * ,
                                                                                   char * ))0,
    & bus_scan_store};
#line 331 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct attribute *rio_bus_attrs[2U]  = {      & bus_attr_scan.attr,      (struct attribute *)0};
#line 336 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct attribute_group  const  rio_bus_group  =    {0, 0, (struct attribute **)(& rio_bus_attrs), 0};
#line 340 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
struct attribute_group  const  *rio_bus_groups[2U]  = {      & rio_bus_group,      (struct attribute_group  const  *)0};
#line 346 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t port_destid_show(struct device *dev , struct device_attribute *attr ,
                                char *buf ) 
{ 
  struct rio_mport *mport ;
  struct device  const  *__mptr ;
  int tmp ;

  {
#line 349
  __mptr = (struct device  const  *)dev;
#line 349
  mport = (struct rio_mport *)__mptr + 0xfffffffffffffb50UL;
#line 351
  if ((unsigned long )mport != (unsigned long )((struct rio_mport *)0)) {
#line 352
    tmp = sprintf(buf, "0x%04x\n", mport->host_deviceid);
#line 352
    return ((ssize_t )tmp);
  } else {
#line 354
    return (-19L);
  }
}
}
#line 356 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_port_destid  =    {{"port_destid", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0},
                                         {(char)0}, {(char)0}, {(char)0}, {(char)0}}}},
    & port_destid_show, 0};
#line 358 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static ssize_t sys_size_show(struct device *dev , struct device_attribute *attr ,
                             char *buf ) 
{ 
  struct rio_mport *mport ;
  struct device  const  *__mptr ;
  int tmp ;

  {
#line 361
  __mptr = (struct device  const  *)dev;
#line 361
  mport = (struct rio_mport *)__mptr + 0xfffffffffffffb50UL;
#line 363
  if ((unsigned long )mport != (unsigned long )((struct rio_mport *)0)) {
#line 364
    tmp = sprintf(buf, "%u\n", mport->sys_size);
#line 364
    return ((ssize_t )tmp);
  } else {
#line 366
    return (-19L);
  }
}
}
#line 368 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct device_attribute dev_attr_sys_size  =    {{"sys_size", 292U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0},
                                      {(char)0}, {(char)0}, {(char)0}, {(char)0}}}},
    & sys_size_show, 0};
#line 370 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct attribute *rio_mport_attrs[3U]  = {      & dev_attr_port_destid.attr,      & dev_attr_sys_size.attr,      (struct attribute *)0};
#line 376 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
static struct attribute_group  const  rio_mport_group  =    {0, 0, (struct attribute **)(& rio_mport_attrs), 0};
#line 380 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.c"
struct attribute_group  const  *rio_mport_groups[2U]  = {      & rio_mport_group,      (struct attribute_group  const  *)0};
#line 64 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
extern int ldv_probe_5(void) ;
#line 65
extern int ldv_release_5(void) ;
#line 68 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_initialize_bin_attribute_5(void) 
{ 
  void *tmp ;
  void *tmp___0 ;
  void *tmp___1 ;

  {
#line 69
  tmp = ldv_init_zalloc(296UL);
#line 69
  rio_config_attr_group0 = (struct kobject *)tmp;
#line 70
  tmp___0 = __VERIFIER_nondet_pointer();
#line 70
  rio_config_attr_group1 = (struct file *)tmp___0;
#line 71
  tmp___1 = ldv_init_zalloc(72UL);
#line 71
  rio_config_attr_group2 = (struct bin_attribute *)tmp___1;
#line 72
  return;
}
}
#line 74 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_11(void) 
{ 
  struct device_attribute *ldvarg2 ;
  void *tmp ;
  struct device *ldvarg0 ;
  void *tmp___0 ;
  char *ldvarg1 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 75
  tmp = ldv_init_zalloc(48UL);
#line 75
  ldvarg2 = (struct device_attribute *)tmp;
#line 76
  tmp___0 = ldv_init_zalloc(1416UL);
#line 76
  ldvarg0 = (struct device *)tmp___0;
#line 77
  tmp___1 = ldv_init_zalloc(1UL);
#line 77
  ldvarg1 = (char *)tmp___1;
#line 79
  tmp___2 = __VERIFIER_nondet_int();
#line 79
  switch (tmp___2) {
  case 0: ;
#line 82
  if (ldv_state_variable_11 == 1) {
#line 84
    destid_show(ldvarg0, ldvarg2, ldvarg1);
#line 86
    ldv_state_variable_11 = 1;
  } else {

  }
#line 89
  goto ldv_26085;
  default: 
#line 90
  ldv_stop();
  }
  ldv_26085: ;
#line 94
  return;
}
}
#line 96 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_7(void) 
{ 
  struct device_attribute *ldvarg5 ;
  void *tmp ;
  struct device *ldvarg3 ;
  void *tmp___0 ;
  char *ldvarg4 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 97
  tmp = ldv_init_zalloc(48UL);
#line 97
  ldvarg5 = (struct device_attribute *)tmp;
#line 98
  tmp___0 = ldv_init_zalloc(1416UL);
#line 98
  ldvarg3 = (struct device *)tmp___0;
#line 99
  tmp___1 = ldv_init_zalloc(1UL);
#line 99
  ldvarg4 = (char *)tmp___1;
#line 101
  tmp___2 = __VERIFIER_nondet_int();
#line 101
  switch (tmp___2) {
  case 0: ;
#line 104
  if (ldv_state_variable_7 == 1) {
#line 106
    lnext_show(ldvarg3, ldvarg5, ldvarg4);
#line 108
    ldv_state_variable_7 = 1;
  } else {

  }
#line 111
  goto ldv_26094;
  default: 
#line 112
  ldv_stop();
  }
  ldv_26094: ;
#line 116
  return;
}
}
#line 118 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_17(void) 
{ 
  struct device *ldvarg6 ;
  void *tmp ;
  char *ldvarg7 ;
  void *tmp___0 ;
  struct device_attribute *ldvarg8 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 119
  tmp = ldv_init_zalloc(1416UL);
#line 119
  ldvarg6 = (struct device *)tmp;
#line 120
  tmp___0 = ldv_init_zalloc(1UL);
#line 120
  ldvarg7 = (char *)tmp___0;
#line 121
  tmp___1 = ldv_init_zalloc(48UL);
#line 121
  ldvarg8 = (struct device_attribute *)tmp___1;
#line 123
  tmp___2 = __VERIFIER_nondet_int();
#line 123
  switch (tmp___2) {
  case 0: ;
#line 126
  if (ldv_state_variable_17 == 1) {
#line 128
    did_show(ldvarg6, ldvarg8, ldvarg7);
#line 130
    ldv_state_variable_17 = 1;
  } else {

  }
#line 133
  goto ldv_26103;
  default: 
#line 134
  ldv_stop();
  }
  ldv_26103: ;
#line 138
  return;
}
}
#line 140 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_2(void) 
{ 
  struct device *ldvarg9 ;
  void *tmp ;
  char *ldvarg10 ;
  void *tmp___0 ;
  struct device_attribute *ldvarg11 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 141
  tmp = ldv_init_zalloc(1416UL);
#line 141
  ldvarg9 = (struct device *)tmp;
#line 142
  tmp___0 = ldv_init_zalloc(1UL);
#line 142
  ldvarg10 = (char *)tmp___0;
#line 143
  tmp___1 = ldv_init_zalloc(48UL);
#line 143
  ldvarg11 = (struct device_attribute *)tmp___1;
#line 145
  tmp___2 = __VERIFIER_nondet_int();
#line 145
  switch (tmp___2) {
  case 0: ;
#line 148
  if (ldv_state_variable_2 == 1) {
#line 150
    sys_size_show(ldvarg9, ldvarg11, ldvarg10);
#line 152
    ldv_state_variable_2 = 1;
  } else {

  }
#line 155
  goto ldv_26112;
  default: 
#line 156
  ldv_stop();
  }
  ldv_26112: ;
#line 160
  return;
}
}
#line 162 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_16(void) 
{ 
  char *ldvarg15 ;
  void *tmp ;
  struct device_attribute *ldvarg16 ;
  void *tmp___0 ;
  struct device *ldvarg14 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 163
  tmp = ldv_init_zalloc(1UL);
#line 163
  ldvarg15 = (char *)tmp;
#line 164
  tmp___0 = ldv_init_zalloc(48UL);
#line 164
  ldvarg16 = (struct device_attribute *)tmp___0;
#line 165
  tmp___1 = ldv_init_zalloc(1416UL);
#line 165
  ldvarg14 = (struct device *)tmp___1;
#line 167
  tmp___2 = __VERIFIER_nondet_int();
#line 167
  switch (tmp___2) {
  case 0: ;
#line 170
  if (ldv_state_variable_16 == 1) {
#line 172
    vid_show(ldvarg14, ldvarg16, ldvarg15);
#line 174
    ldv_state_variable_16 = 1;
  } else {

  }
#line 177
  goto ldv_26121;
  default: 
#line 178
  ldv_stop();
  }
  ldv_26121: ;
#line 182
  return;
}
}
#line 184 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_13(void) 
{ 
  struct device_attribute *ldvarg19 ;
  void *tmp ;
  struct device *ldvarg17 ;
  void *tmp___0 ;
  char *ldvarg18 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 185
  tmp = ldv_init_zalloc(48UL);
#line 185
  ldvarg19 = (struct device_attribute *)tmp;
#line 186
  tmp___0 = ldv_init_zalloc(1416UL);
#line 186
  ldvarg17 = (struct device *)tmp___0;
#line 187
  tmp___1 = ldv_init_zalloc(1UL);
#line 187
  ldvarg18 = (char *)tmp___1;
#line 189
  tmp___2 = __VERIFIER_nondet_int();
#line 189
  switch (tmp___2) {
  case 0: ;
#line 192
  if (ldv_state_variable_13 == 1) {
#line 194
    asm_vid_show(ldvarg17, ldvarg19, ldvarg18);
#line 196
    ldv_state_variable_13 = 1;
  } else {

  }
#line 199
  goto ldv_26130;
  default: 
#line 200
  ldv_stop();
  }
  ldv_26130: ;
#line 204
  return;
}
}
#line 206 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_6(void) 
{ 
  struct device_attribute *ldvarg22 ;
  void *tmp ;
  struct device *ldvarg20 ;
  void *tmp___0 ;
  char *ldvarg21 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 207
  tmp = ldv_init_zalloc(48UL);
#line 207
  ldvarg22 = (struct device_attribute *)tmp;
#line 208
  tmp___0 = ldv_init_zalloc(1416UL);
#line 208
  ldvarg20 = (struct device *)tmp___0;
#line 209
  tmp___1 = ldv_init_zalloc(1UL);
#line 209
  ldvarg21 = (char *)tmp___1;
#line 211
  tmp___2 = __VERIFIER_nondet_int();
#line 211
  switch (tmp___2) {
  case 0: ;
#line 214
  if (ldv_state_variable_6 == 1) {
#line 216
    modalias_show(ldvarg20, ldvarg22, ldvarg21);
#line 218
    ldv_state_variable_6 = 1;
  } else {

  }
#line 221
  goto ldv_26139;
  default: 
#line 222
  ldv_stop();
  }
  ldv_26139: ;
#line 226
  return;
}
}
#line 228 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_3(void) 
{ 
  struct device *ldvarg23 ;
  void *tmp ;
  struct device_attribute *ldvarg25 ;
  void *tmp___0 ;
  char *ldvarg24 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 229
  tmp = ldv_init_zalloc(1416UL);
#line 229
  ldvarg23 = (struct device *)tmp;
#line 230
  tmp___0 = ldv_init_zalloc(48UL);
#line 230
  ldvarg25 = (struct device_attribute *)tmp___0;
#line 231
  tmp___1 = ldv_init_zalloc(1UL);
#line 231
  ldvarg24 = (char *)tmp___1;
#line 233
  tmp___2 = __VERIFIER_nondet_int();
#line 233
  switch (tmp___2) {
  case 0: ;
#line 236
  if (ldv_state_variable_3 == 1) {
#line 238
    port_destid_show(ldvarg23, ldvarg25, ldvarg24);
#line 240
    ldv_state_variable_3 = 1;
  } else {

  }
#line 243
  goto ldv_26148;
  default: 
#line 244
  ldv_stop();
  }
  ldv_26148: ;
#line 248
  return;
}
}
#line 250 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_9(void) 
{ 
  struct device_attribute *ldvarg28 ;
  void *tmp ;
  struct device *ldvarg26 ;
  void *tmp___0 ;
  char *ldvarg27 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 251
  tmp = ldv_init_zalloc(48UL);
#line 251
  ldvarg28 = (struct device_attribute *)tmp;
#line 252
  tmp___0 = ldv_init_zalloc(1416UL);
#line 252
  ldvarg26 = (struct device *)tmp___0;
#line 253
  tmp___1 = ldv_init_zalloc(1UL);
#line 253
  ldvarg27 = (char *)tmp___1;
#line 255
  tmp___2 = __VERIFIER_nondet_int();
#line 255
  switch (tmp___2) {
  case 0: ;
#line 258
  if (ldv_state_variable_9 == 1) {
#line 260
    routes_show(ldvarg26, ldvarg28, ldvarg27);
#line 262
    ldv_state_variable_9 = 1;
  } else {

  }
#line 265
  goto ldv_26157;
  default: 
#line 266
  ldv_stop();
  }
  ldv_26157: ;
#line 270
  return;
}
}
#line 272 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_12(void) 
{ 
  char *ldvarg30 ;
  void *tmp ;
  struct device *ldvarg29 ;
  void *tmp___0 ;
  struct device_attribute *ldvarg31 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 273
  tmp = ldv_init_zalloc(1UL);
#line 273
  ldvarg30 = (char *)tmp;
#line 274
  tmp___0 = ldv_init_zalloc(1416UL);
#line 274
  ldvarg29 = (struct device *)tmp___0;
#line 275
  tmp___1 = ldv_init_zalloc(48UL);
#line 275
  ldvarg31 = (struct device_attribute *)tmp___1;
#line 277
  tmp___2 = __VERIFIER_nondet_int();
#line 277
  switch (tmp___2) {
  case 0: ;
#line 280
  if (ldv_state_variable_12 == 1) {
#line 282
    asm_rev_show(ldvarg29, ldvarg31, ldvarg30);
#line 284
    ldv_state_variable_12 = 1;
  } else {

  }
#line 287
  goto ldv_26166;
  default: 
#line 288
  ldv_stop();
  }
  ldv_26166: ;
#line 292
  return;
}
}
#line 294 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_14(void) 
{ 
  char *ldvarg33 ;
  void *tmp ;
  struct device_attribute *ldvarg34 ;
  void *tmp___0 ;
  struct device *ldvarg32 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 295
  tmp = ldv_init_zalloc(1UL);
#line 295
  ldvarg33 = (char *)tmp;
#line 296
  tmp___0 = ldv_init_zalloc(48UL);
#line 296
  ldvarg34 = (struct device_attribute *)tmp___0;
#line 297
  tmp___1 = ldv_init_zalloc(1416UL);
#line 297
  ldvarg32 = (struct device *)tmp___1;
#line 299
  tmp___2 = __VERIFIER_nondet_int();
#line 299
  switch (tmp___2) {
  case 0: ;
#line 302
  if (ldv_state_variable_14 == 1) {
#line 304
    asm_did_show(ldvarg32, ldvarg34, ldvarg33);
#line 306
    ldv_state_variable_14 = 1;
  } else {

  }
#line 309
  goto ldv_26175;
  default: 
#line 310
  ldv_stop();
  }
  ldv_26175: ;
#line 314
  return;
}
}
#line 316 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_15(void) 
{ 
  char *ldvarg36 ;
  void *tmp ;
  struct device *ldvarg35 ;
  void *tmp___0 ;
  struct device_attribute *ldvarg37 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 317
  tmp = ldv_init_zalloc(1UL);
#line 317
  ldvarg36 = (char *)tmp;
#line 318
  tmp___0 = ldv_init_zalloc(1416UL);
#line 318
  ldvarg35 = (struct device *)tmp___0;
#line 319
  tmp___1 = ldv_init_zalloc(48UL);
#line 319
  ldvarg37 = (struct device_attribute *)tmp___1;
#line 321
  tmp___2 = __VERIFIER_nondet_int();
#line 321
  switch (tmp___2) {
  case 0: ;
#line 324
  if (ldv_state_variable_15 == 1) {
#line 326
    device_rev_show(ldvarg35, ldvarg37, ldvarg36);
#line 328
    ldv_state_variable_15 = 1;
  } else {

  }
#line 331
  goto ldv_26184;
  default: 
#line 332
  ldv_stop();
  }
  ldv_26184: ;
#line 336
  return;
}
}
#line 338 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_8(void) 
{ 
  struct device *ldvarg38 ;
  void *tmp ;
  struct device_attribute *ldvarg40 ;
  void *tmp___0 ;
  char *ldvarg39 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 339
  tmp = ldv_init_zalloc(1416UL);
#line 339
  ldvarg38 = (struct device *)tmp;
#line 340
  tmp___0 = ldv_init_zalloc(48UL);
#line 340
  ldvarg40 = (struct device_attribute *)tmp___0;
#line 341
  tmp___1 = ldv_init_zalloc(1UL);
#line 341
  ldvarg39 = (char *)tmp___1;
#line 343
  tmp___2 = __VERIFIER_nondet_int();
#line 343
  switch (tmp___2) {
  case 0: ;
#line 346
  if (ldv_state_variable_8 == 1) {
#line 348
    lprev_show(ldvarg38, ldvarg40, ldvarg39);
#line 350
    ldv_state_variable_8 = 1;
  } else {

  }
#line 353
  goto ldv_26193;
  default: 
#line 354
  ldv_stop();
  }
  ldv_26193: ;
#line 358
  return;
}
}
#line 360 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_4(void) 
{ 
  size_t ldvarg42 ;
  char *ldvarg43 ;
  void *tmp ;
  struct bus_type *ldvarg41 ;
  void *tmp___0 ;
  int tmp___1 ;

  {
#line 362
  tmp = ldv_init_zalloc(1UL);
#line 362
  ldvarg43 = (char *)tmp;
#line 363
  tmp___0 = ldv_init_zalloc(160UL);
#line 363
  ldvarg41 = (struct bus_type *)tmp___0;
#line 361
  ldv_memset((void *)(& ldvarg42), 0, 8UL);
#line 365
  tmp___1 = __VERIFIER_nondet_int();
#line 365
  switch (tmp___1) {
  case 0: ;
#line 368
  if (ldv_state_variable_4 == 1) {
#line 370
    bus_scan_store(ldvarg41, (char const   *)ldvarg43, ldvarg42);
#line 372
    ldv_state_variable_4 = 1;
  } else {

  }
#line 375
  goto ldv_26202;
  default: 
#line 376
  ldv_stop();
  }
  ldv_26202: ;
#line 380
  return;
}
}
#line 382 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_10(void) 
{ 
  struct device *ldvarg46 ;
  void *tmp ;
  char *ldvarg47 ;
  void *tmp___0 ;
  struct device_attribute *ldvarg48 ;
  void *tmp___1 ;
  int tmp___2 ;

  {
#line 383
  tmp = ldv_init_zalloc(1416UL);
#line 383
  ldvarg46 = (struct device *)tmp;
#line 384
  tmp___0 = ldv_init_zalloc(1UL);
#line 384
  ldvarg47 = (char *)tmp___0;
#line 385
  tmp___1 = ldv_init_zalloc(48UL);
#line 385
  ldvarg48 = (struct device_attribute *)tmp___1;
#line 387
  tmp___2 = __VERIFIER_nondet_int();
#line 387
  switch (tmp___2) {
  case 0: ;
#line 390
  if (ldv_state_variable_10 == 1) {
#line 392
    hopcount_show(ldvarg46, ldvarg48, ldvarg47);
#line 394
    ldv_state_variable_10 = 1;
  } else {

  }
#line 397
  goto ldv_26211;
  default: 
#line 398
  ldv_stop();
  }
  ldv_26211: ;
#line 402
  return;
}
}
#line 404 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_main_exported_5(void) 
{ 
  char *ldvarg50 ;
  void *tmp ;
  size_t ldvarg49 ;
  size_t ldvarg52 ;
  char *ldvarg53 ;
  void *tmp___0 ;
  loff_t ldvarg51 ;
  loff_t ldvarg54 ;
  int tmp___1 ;

  {
#line 405
  tmp = ldv_init_zalloc(1UL);
#line 405
  ldvarg50 = (char *)tmp;
#line 408
  tmp___0 = ldv_init_zalloc(1UL);
#line 408
  ldvarg53 = (char *)tmp___0;
#line 406
  ldv_memset((void *)(& ldvarg49), 0, 8UL);
#line 407
  ldv_memset((void *)(& ldvarg52), 0, 8UL);
#line 409
  ldv_memset((void *)(& ldvarg51), 0, 8UL);
#line 410
  ldv_memset((void *)(& ldvarg54), 0, 8UL);
#line 412
  tmp___1 = __VERIFIER_nondet_int();
#line 412
  switch (tmp___1) {
  case 0: ;
#line 415
  if (ldv_state_variable_5 == 2) {
#line 417
    rio_write_config(rio_config_attr_group1, rio_config_attr_group0, rio_config_attr_group2,
                     ldvarg53, ldvarg54, ldvarg52);
#line 419
    ldv_state_variable_5 = 2;
  } else {

  }
#line 422
  goto ldv_26223;
  case 1: ;
#line 425
  if (ldv_state_variable_5 == 2) {
#line 427
    rio_read_config(rio_config_attr_group1, rio_config_attr_group0, rio_config_attr_group2,
                    ldvarg50, ldvarg51, ldvarg49);
#line 429
    ldv_state_variable_5 = 2;
  } else {

  }
#line 432
  goto ldv_26223;
  case 2: ;
#line 435
  if (ldv_state_variable_5 == 2) {
#line 437
    ldv_release_5();
#line 439
    ldv_state_variable_5 = 1;
#line 440
    ref_cnt = ref_cnt - 1;
  } else {

  }
#line 443
  goto ldv_26223;
  case 3: ;
#line 446
  if (ldv_state_variable_5 == 1) {
#line 448
    ldv_probe_5();
#line 450
    ldv_state_variable_5 = 2;
#line 451
    ref_cnt = ref_cnt + 1;
  } else {

  }
#line 454
  goto ldv_26223;
  default: 
#line 455
  ldv_stop();
  }
  ldv_26223: ;
#line 459
  return;
}
}
#line 484 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
bool ldv_queue_work_on_65(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                          struct work_struct *ldv_func_arg3 ) 
{ 
  ldv_func_ret_type ldv_func_res ;
  bool tmp ;

  {
#line 488
  tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3);
#line 488
  ldv_func_res = tmp;
#line 490
  activate_work_1(ldv_func_arg3, 2);
#line 492
  return (ldv_func_res);
}
}
#line 495 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
bool ldv_queue_delayed_work_on_66(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                  struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) 
{ 
  ldv_func_ret_type___0 ldv_func_res ;
  bool tmp ;

  {
#line 499
  tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4);
#line 499
  ldv_func_res = tmp;
#line 501
  activate_work_1(& ldv_func_arg3->work, 2);
#line 503
  return (ldv_func_res);
}
}
#line 506 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
bool ldv_queue_work_on_67(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                          struct work_struct *ldv_func_arg3 ) 
{ 
  ldv_func_ret_type___1 ldv_func_res ;
  bool tmp ;

  {
#line 510
  tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3);
#line 510
  ldv_func_res = tmp;
#line 512
  activate_work_1(ldv_func_arg3, 2);
#line 514
  return (ldv_func_res);
}
}
#line 517 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
void ldv_flush_workqueue_68(struct workqueue_struct *ldv_func_arg1 ) 
{ 


  {
#line 520
  flush_workqueue(ldv_func_arg1);
#line 522
  call_and_disable_all_1(2);
#line 523
  return;
}
}
#line 525 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/dscv/ri/08_1a/drivers/rapidio/rio-sysfs.o.c.prepared"
bool ldv_queue_delayed_work_on_69(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 ,
                                  struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) 
{ 
  ldv_func_ret_type___2 ldv_func_res ;
  bool tmp ;

  {
#line 529
  tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4);
#line 529
  ldv_func_res = tmp;
#line 531
  activate_work_1(& ldv_func_arg3->work, 2);
#line 533
  return (ldv_func_res);
}
}
#line 8 "/home/ldvuser/ldv/inst/kernel-rules/verifier/sv-comp.h"
extern void *memset(void * , int  , size_t  ) ;
#line 12 "/home/ldvuser/ldv/inst/kernel-rules/verifier/rcv.h"
__inline static void ldv_error(void) 
{ 


  {
  ERROR: ;
#line 14
  __VERIFIER_error();
}
}
#line 7 "/home/ldvuser/ldv/inst/kernel-rules/kernel-model/ERR.inc"
bool ldv_is_err(void const   *ptr ) 
{ 


  {
#line 10
  return ((unsigned long )ptr > 2012UL);
}
}
#line 14 "/home/ldvuser/ldv/inst/kernel-rules/kernel-model/ERR.inc"
void *ldv_err_ptr(long error ) 
{ 


  {
#line 17
  return ((void *)(2012L - error));
}
}
#line 21 "/home/ldvuser/ldv/inst/kernel-rules/kernel-model/ERR.inc"
long ldv_ptr_err(void const   *ptr ) 
{ 


  {
#line 24
  return ((long )(2012UL - (unsigned long )ptr));
}
}
#line 28 "/home/ldvuser/ldv/inst/kernel-rules/kernel-model/ERR.inc"
bool ldv_is_err_or_null(void const   *ptr ) 
{ 
  bool tmp ;
  int tmp___0 ;

  {
#line 31
  if ((unsigned long )ptr == (unsigned long )((void const   *)0)) {
#line 31
    tmp___0 = 1;
  } else {
#line 31
    tmp = ldv_is_err(ptr);
#line 31
    if ((int )tmp) {
#line 31
      tmp___0 = 1;
    } else {
#line 31
      tmp___0 = 0;
    }
  }
#line 31
  return ((bool )tmp___0);
}
}
#line 7 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/rule-instrumentor/08_1a/common-model/ldv_common_model.c"
int ldv_module_refcounter  =    1;
#line 10 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/rule-instrumentor/08_1a/common-model/ldv_common_model.c"
void ldv_module_get(struct module *module ) 
{ 


  {
#line 13
  if ((unsigned long )module != (unsigned long )((struct module *)0)) {
#line 15
    ldv_module_refcounter = ldv_module_refcounter + 1;
  } else {

  }
#line 16
  return;
}
}
#line 20 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/rule-instrumentor/08_1a/common-model/ldv_common_model.c"
int ldv_try_module_get(struct module *module ) 
{ 
  int module_get_succeeded ;

  {
#line 25
  if ((unsigned long )module != (unsigned long )((struct module *)0)) {
#line 28
    module_get_succeeded = ldv_undef_int();
#line 30
    if (module_get_succeeded == 1) {
#line 32
      ldv_module_refcounter = ldv_module_refcounter + 1;
#line 34
      return (1);
    } else {
#line 39
      return (0);
    }
  } else {

  }
#line 41
  return (0);
}
}
#line 45 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/rule-instrumentor/08_1a/common-model/ldv_common_model.c"
void ldv_module_put(struct module *module ) 
{ 


  {
#line 48
  if ((unsigned long )module != (unsigned long )((struct module *)0)) {
#line 50
    if (ldv_module_refcounter <= 1) {
#line 50
      ldv_error();
    } else {

    }
#line 52
    ldv_module_refcounter = ldv_module_refcounter - 1;
  } else {

  }
#line 54
  return;
}
}
#line 57 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/rule-instrumentor/08_1a/common-model/ldv_common_model.c"
void ldv_module_put_and_exit(void) 
{ 


  {
#line 59
  ldv_module_put((struct module *)1);
  LDV_STOP: ;
#line 61
  goto LDV_STOP;
}
}
#line 65 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/rule-instrumentor/08_1a/common-model/ldv_common_model.c"
unsigned int ldv_module_refcount(void) 
{ 


  {
#line 68
  return ((unsigned int )(ldv_module_refcounter + -1));
}
}
#line 72 "/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/453/dscv_tempdir/rule-instrumentor/08_1a/common-model/ldv_common_model.c"
void ldv_check_final_state(void) 
{ 


  {
#line 75
  if (ldv_module_refcounter != 1) {
#line 75
    ldv_error();
  } else {

  }
#line 79
  return;
}
}
