Showing error 771

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


Source:

   1/* Generated by CIL v. 1.3.7 */
   2/* print_CIL_Input is true */
   3
   4#line 23 "include/asm-generic/int-ll64.h"
   5typedef unsigned short __u16;
   6#line 26 "include/asm-generic/int-ll64.h"
   7typedef unsigned int __u32;
   8#line 30 "include/asm-generic/int-ll64.h"
   9typedef unsigned long long __u64;
  10#line 43 "include/asm-generic/int-ll64.h"
  11typedef unsigned char u8;
  12#line 45 "include/asm-generic/int-ll64.h"
  13typedef short s16;
  14#line 46 "include/asm-generic/int-ll64.h"
  15typedef unsigned short u16;
  16#line 48 "include/asm-generic/int-ll64.h"
  17typedef int s32;
  18#line 49 "include/asm-generic/int-ll64.h"
  19typedef unsigned int u32;
  20#line 51 "include/asm-generic/int-ll64.h"
  21typedef long long s64;
  22#line 14 "include/asm-generic/posix_types.h"
  23typedef long __kernel_long_t;
  24#line 15 "include/asm-generic/posix_types.h"
  25typedef unsigned long __kernel_ulong_t;
  26#line 75 "include/asm-generic/posix_types.h"
  27typedef __kernel_ulong_t __kernel_size_t;
  28#line 76 "include/asm-generic/posix_types.h"
  29typedef __kernel_long_t __kernel_ssize_t;
  30#line 27 "include/linux/types.h"
  31typedef unsigned short umode_t;
  32#line 63 "include/linux/types.h"
  33typedef __kernel_size_t size_t;
  34#line 68 "include/linux/types.h"
  35typedef __kernel_ssize_t ssize_t;
  36#line 202 "include/linux/types.h"
  37typedef unsigned int gfp_t;
  38#line 221 "include/linux/types.h"
  39struct __anonstruct_atomic_t_6 {
  40   int counter ;
  41};
  42#line 221 "include/linux/types.h"
  43typedef struct __anonstruct_atomic_t_6 atomic_t;
  44#line 226 "include/linux/types.h"
  45struct __anonstruct_atomic64_t_7 {
  46   long counter ;
  47};
  48#line 226 "include/linux/types.h"
  49typedef struct __anonstruct_atomic64_t_7 atomic64_t;
  50#line 227 "include/linux/types.h"
  51struct list_head {
  52   struct list_head *next ;
  53   struct list_head *prev ;
  54};
  55#line 55 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/alternative.h"
  56struct module;
  57#line 55
  58struct module;
  59#line 146 "include/linux/init.h"
  60typedef void (*ctor_fn_t)(void);
  61#line 46 "include/linux/dynamic_debug.h"
  62struct device;
  63#line 46
  64struct device;
  65#line 58 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/page_types.h"
  66struct page;
  67#line 58
  68struct page;
  69#line 26 "include/asm-generic/getorder.h"
  70struct task_struct;
  71#line 26
  72struct task_struct;
  73#line 327 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt_types.h"
  74struct arch_spinlock;
  75#line 327
  76struct arch_spinlock;
  77#line 306 "include/linux/bitmap.h"
  78struct bug_entry {
  79   int bug_addr_disp ;
  80   int file_disp ;
  81   unsigned short line ;
  82   unsigned short flags ;
  83};
  84#line 234 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/paravirt.h"
  85struct static_key;
  86#line 234
  87struct static_key;
  88#line 433 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/processor.h"
  89struct kmem_cache;
  90#line 23 "include/asm-generic/atomic-long.h"
  91typedef atomic64_t atomic_long_t;
  92#line 14 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  93typedef u16 __ticket_t;
  94#line 15 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  95typedef u32 __ticketpair_t;
  96#line 16 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
  97struct __raw_tickets {
  98   __ticket_t head ;
  99   __ticket_t tail ;
 100};
 101#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 102union __anonunion_ldv_5907_29 {
 103   __ticketpair_t head_tail ;
 104   struct __raw_tickets tickets ;
 105};
 106#line 26 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 107struct arch_spinlock {
 108   union __anonunion_ldv_5907_29 ldv_5907 ;
 109};
 110#line 27 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/spinlock_types.h"
 111typedef struct arch_spinlock arch_spinlock_t;
 112#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 113struct __anonstruct_ldv_5914_31 {
 114   u32 read ;
 115   s32 write ;
 116};
 117#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 118union __anonunion_arch_rwlock_t_30 {
 119   s64 lock ;
 120   struct __anonstruct_ldv_5914_31 ldv_5914 ;
 121};
 122#line 33 "/home/zakharov/launch/inst/current/envs/linux-3.4/linux-3.4/arch/x86/include/asm/rwlock.h"
 123typedef union __anonunion_arch_rwlock_t_30 arch_rwlock_t;
 124#line 34
 125struct lockdep_map;
 126#line 34
 127struct lockdep_map;
 128#line 55 "include/linux/debug_locks.h"
 129struct stack_trace {
 130   unsigned int nr_entries ;
 131   unsigned int max_entries ;
 132   unsigned long *entries ;
 133   int skip ;
 134};
 135#line 26 "include/linux/stacktrace.h"
 136struct lockdep_subclass_key {
 137   char __one_byte ;
 138};
 139#line 53 "include/linux/lockdep.h"
 140struct lock_class_key {
 141   struct lockdep_subclass_key subkeys[8U] ;
 142};
 143#line 59 "include/linux/lockdep.h"
 144struct lock_class {
 145   struct list_head hash_entry ;
 146   struct list_head lock_entry ;
 147   struct lockdep_subclass_key *key ;
 148   unsigned int subclass ;
 149   unsigned int dep_gen_id ;
 150   unsigned long usage_mask ;
 151   struct stack_trace usage_traces[13U] ;
 152   struct list_head locks_after ;
 153   struct list_head locks_before ;
 154   unsigned int version ;
 155   unsigned long ops ;
 156   char const   *name ;
 157   int name_version ;
 158   unsigned long contention_point[4U] ;
 159   unsigned long contending_point[4U] ;
 160};
 161#line 144 "include/linux/lockdep.h"
 162struct lockdep_map {
 163   struct lock_class_key *key ;
 164   struct lock_class *class_cache[2U] ;
 165   char const   *name ;
 166   int cpu ;
 167   unsigned long ip ;
 168};
 169#line 556 "include/linux/lockdep.h"
 170struct raw_spinlock {
 171   arch_spinlock_t raw_lock ;
 172   unsigned int magic ;
 173   unsigned int owner_cpu ;
 174   void *owner ;
 175   struct lockdep_map dep_map ;
 176};
 177#line 32 "include/linux/spinlock_types.h"
 178typedef struct raw_spinlock raw_spinlock_t;
 179#line 33 "include/linux/spinlock_types.h"
 180struct __anonstruct_ldv_6122_33 {
 181   u8 __padding[24U] ;
 182   struct lockdep_map dep_map ;
 183};
 184#line 33 "include/linux/spinlock_types.h"
 185union __anonunion_ldv_6123_32 {
 186   struct raw_spinlock rlock ;
 187   struct __anonstruct_ldv_6122_33 ldv_6122 ;
 188};
 189#line 33 "include/linux/spinlock_types.h"
 190struct spinlock {
 191   union __anonunion_ldv_6123_32 ldv_6123 ;
 192};
 193#line 76 "include/linux/spinlock_types.h"
 194typedef struct spinlock spinlock_t;
 195#line 23 "include/linux/rwlock_types.h"
 196struct __anonstruct_rwlock_t_34 {
 197   arch_rwlock_t raw_lock ;
 198   unsigned int magic ;
 199   unsigned int owner_cpu ;
 200   void *owner ;
 201   struct lockdep_map dep_map ;
 202};
 203#line 23 "include/linux/rwlock_types.h"
 204typedef struct __anonstruct_rwlock_t_34 rwlock_t;
 205#line 48 "include/linux/wait.h"
 206struct __wait_queue_head {
 207   spinlock_t lock ;
 208   struct list_head task_list ;
 209};
 210#line 53 "include/linux/wait.h"
 211typedef struct __wait_queue_head wait_queue_head_t;
 212#line 18 "include/linux/elf.h"
 213typedef __u64 Elf64_Addr;
 214#line 19 "include/linux/elf.h"
 215typedef __u16 Elf64_Half;
 216#line 23 "include/linux/elf.h"
 217typedef __u32 Elf64_Word;
 218#line 24 "include/linux/elf.h"
 219typedef __u64 Elf64_Xword;
 220#line 193 "include/linux/elf.h"
 221struct elf64_sym {
 222   Elf64_Word st_name ;
 223   unsigned char st_info ;
 224   unsigned char st_other ;
 225   Elf64_Half st_shndx ;
 226   Elf64_Addr st_value ;
 227   Elf64_Xword st_size ;
 228};
 229#line 201 "include/linux/elf.h"
 230typedef struct elf64_sym Elf64_Sym;
 231#line 445
 232struct sock;
 233#line 445
 234struct sock;
 235#line 446
 236struct kobject;
 237#line 446
 238struct kobject;
 239#line 447
 240enum kobj_ns_type {
 241    KOBJ_NS_TYPE_NONE = 0,
 242    KOBJ_NS_TYPE_NET = 1,
 243    KOBJ_NS_TYPES = 2
 244} ;
 245#line 453 "include/linux/elf.h"
 246struct kobj_ns_type_operations {
 247   enum kobj_ns_type type ;
 248   void *(*grab_current_ns)(void) ;
 249   void const   *(*netlink_ns)(struct sock * ) ;
 250   void const   *(*initial_ns)(void) ;
 251   void (*drop_ns)(void * ) ;
 252};
 253#line 57 "include/linux/kobject_ns.h"
 254struct attribute {
 255   char const   *name ;
 256   umode_t mode ;
 257   struct lock_class_key *key ;
 258   struct lock_class_key skey ;
 259};
 260#line 98 "include/linux/sysfs.h"
 261struct sysfs_ops {
 262   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
 263   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
 264   void const   *(*namespace)(struct kobject * , struct attribute  const  * ) ;
 265};
 266#line 117
 267struct sysfs_dirent;
 268#line 117
 269struct sysfs_dirent;
 270#line 182 "include/linux/sysfs.h"
 271struct kref {
 272   atomic_t refcount ;
 273};
 274#line 49 "include/linux/kobject.h"
 275struct kset;
 276#line 49
 277struct kobj_type;
 278#line 49 "include/linux/kobject.h"
 279struct kobject {
 280   char const   *name ;
 281   struct list_head entry ;
 282   struct kobject *parent ;
 283   struct kset *kset ;
 284   struct kobj_type *ktype ;
 285   struct sysfs_dirent *sd ;
 286   struct kref kref ;
 287   unsigned char state_initialized : 1 ;
 288   unsigned char state_in_sysfs : 1 ;
 289   unsigned char state_add_uevent_sent : 1 ;
 290   unsigned char state_remove_uevent_sent : 1 ;
 291   unsigned char uevent_suppress : 1 ;
 292};
 293#line 107 "include/linux/kobject.h"
 294struct kobj_type {
 295   void (*release)(struct kobject * ) ;
 296   struct sysfs_ops  const  *sysfs_ops ;
 297   struct attribute **default_attrs ;
 298   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject * ) ;
 299   void const   *(*namespace)(struct kobject * ) ;
 300};
 301#line 115 "include/linux/kobject.h"
 302struct kobj_uevent_env {
 303   char *envp[32U] ;
 304   int envp_idx ;
 305   char buf[2048U] ;
 306   int buflen ;
 307};
 308#line 122 "include/linux/kobject.h"
 309struct kset_uevent_ops {
 310   int (* const  filter)(struct kset * , struct kobject * ) ;
 311   char const   *(* const  name)(struct kset * , struct kobject * ) ;
 312   int (* const  uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
 313};
 314#line 139 "include/linux/kobject.h"
 315struct kset {
 316   struct list_head list ;
 317   spinlock_t list_lock ;
 318   struct kobject kobj ;
 319   struct kset_uevent_ops  const  *uevent_ops ;
 320};
 321#line 215
 322struct kernel_param;
 323#line 215
 324struct kernel_param;
 325#line 216 "include/linux/kobject.h"
 326struct kernel_param_ops {
 327   int (*set)(char const   * , struct kernel_param  const  * ) ;
 328   int (*get)(char * , struct kernel_param  const  * ) ;
 329   void (*free)(void * ) ;
 330};
 331#line 49 "include/linux/moduleparam.h"
 332struct kparam_string;
 333#line 49
 334struct kparam_array;
 335#line 49 "include/linux/moduleparam.h"
 336union __anonunion_ldv_13363_134 {
 337   void *arg ;
 338   struct kparam_string  const  *str ;
 339   struct kparam_array  const  *arr ;
 340};
 341#line 49 "include/linux/moduleparam.h"
 342struct kernel_param {
 343   char const   *name ;
 344   struct kernel_param_ops  const  *ops ;
 345   u16 perm ;
 346   s16 level ;
 347   union __anonunion_ldv_13363_134 ldv_13363 ;
 348};
 349#line 61 "include/linux/moduleparam.h"
 350struct kparam_string {
 351   unsigned int maxlen ;
 352   char *string ;
 353};
 354#line 67 "include/linux/moduleparam.h"
 355struct kparam_array {
 356   unsigned int max ;
 357   unsigned int elemsize ;
 358   unsigned int *num ;
 359   struct kernel_param_ops  const  *ops ;
 360   void *elem ;
 361};
 362#line 458 "include/linux/moduleparam.h"
 363struct static_key {
 364   atomic_t enabled ;
 365};
 366#line 225 "include/linux/jump_label.h"
 367struct tracepoint;
 368#line 225
 369struct tracepoint;
 370#line 226 "include/linux/jump_label.h"
 371struct tracepoint_func {
 372   void *func ;
 373   void *data ;
 374};
 375#line 29 "include/linux/tracepoint.h"
 376struct tracepoint {
 377   char const   *name ;
 378   struct static_key key ;
 379   void (*regfunc)(void) ;
 380   void (*unregfunc)(void) ;
 381   struct tracepoint_func *funcs ;
 382};
 383#line 86 "include/linux/tracepoint.h"
 384struct kernel_symbol {
 385   unsigned long value ;
 386   char const   *name ;
 387};
 388#line 27 "include/linux/export.h"
 389struct mod_arch_specific {
 390
 391};
 392#line 34 "include/linux/module.h"
 393struct module_param_attrs;
 394#line 34 "include/linux/module.h"
 395struct module_kobject {
 396   struct kobject kobj ;
 397   struct module *mod ;
 398   struct kobject *drivers_dir ;
 399   struct module_param_attrs *mp ;
 400};
 401#line 43 "include/linux/module.h"
 402struct module_attribute {
 403   struct attribute attr ;
 404   ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ;
 405   ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const   * ,
 406                    size_t  ) ;
 407   void (*setup)(struct module * , char const   * ) ;
 408   int (*test)(struct module * ) ;
 409   void (*free)(struct module * ) ;
 410};
 411#line 69
 412struct exception_table_entry;
 413#line 69
 414struct exception_table_entry;
 415#line 198
 416enum module_state {
 417    MODULE_STATE_LIVE = 0,
 418    MODULE_STATE_COMING = 1,
 419    MODULE_STATE_GOING = 2
 420} ;
 421#line 204 "include/linux/module.h"
 422struct module_ref {
 423   unsigned long incs ;
 424   unsigned long decs ;
 425};
 426#line 219
 427struct module_sect_attrs;
 428#line 219
 429struct module_notes_attrs;
 430#line 219
 431struct ftrace_event_call;
 432#line 219 "include/linux/module.h"
 433struct module {
 434   enum module_state state ;
 435   struct list_head list ;
 436   char name[56U] ;
 437   struct module_kobject mkobj ;
 438   struct module_attribute *modinfo_attrs ;
 439   char const   *version ;
 440   char const   *srcversion ;
 441   struct kobject *holders_dir ;
 442   struct kernel_symbol  const  *syms ;
 443   unsigned long const   *crcs ;
 444   unsigned int num_syms ;
 445   struct kernel_param *kp ;
 446   unsigned int num_kp ;
 447   unsigned int num_gpl_syms ;
 448   struct kernel_symbol  const  *gpl_syms ;
 449   unsigned long const   *gpl_crcs ;
 450   struct kernel_symbol  const  *unused_syms ;
 451   unsigned long const   *unused_crcs ;
 452   unsigned int num_unused_syms ;
 453   unsigned int num_unused_gpl_syms ;
 454   struct kernel_symbol  const  *unused_gpl_syms ;
 455   unsigned long const   *unused_gpl_crcs ;
 456   struct kernel_symbol  const  *gpl_future_syms ;
 457   unsigned long const   *gpl_future_crcs ;
 458   unsigned int num_gpl_future_syms ;
 459   unsigned int num_exentries ;
 460   struct exception_table_entry *extable ;
 461   int (*init)(void) ;
 462   void *module_init ;
 463   void *module_core ;
 464   unsigned int init_size ;
 465   unsigned int core_size ;
 466   unsigned int init_text_size ;
 467   unsigned int core_text_size ;
 468   unsigned int init_ro_size ;
 469   unsigned int core_ro_size ;
 470   struct mod_arch_specific arch ;
 471   unsigned int taints ;
 472   unsigned int num_bugs ;
 473   struct list_head bug_list ;
 474   struct bug_entry *bug_table ;
 475   Elf64_Sym *symtab ;
 476   Elf64_Sym *core_symtab ;
 477   unsigned int num_symtab ;
 478   unsigned int core_num_syms ;
 479   char *strtab ;
 480   char *core_strtab ;
 481   struct module_sect_attrs *sect_attrs ;
 482   struct module_notes_attrs *notes_attrs ;
 483   char *args ;
 484   void *percpu ;
 485   unsigned int percpu_size ;
 486   unsigned int num_tracepoints ;
 487   struct tracepoint * const  *tracepoints_ptrs ;
 488   unsigned int num_trace_bprintk_fmt ;
 489   char const   **trace_bprintk_fmt_start ;
 490   struct ftrace_event_call **trace_events ;
 491   unsigned int num_trace_events ;
 492   struct list_head source_list ;
 493   struct list_head target_list ;
 494   struct task_struct *waiter ;
 495   void (*exit)(void) ;
 496   struct module_ref *refptr ;
 497   ctor_fn_t (**ctors)(void) ;
 498   unsigned int num_ctors ;
 499};
 500#line 88 "include/linux/kmemleak.h"
 501struct kmem_cache_cpu {
 502   void **freelist ;
 503   unsigned long tid ;
 504   struct page *page ;
 505   struct page *partial ;
 506   int node ;
 507   unsigned int stat[26U] ;
 508};
 509#line 55 "include/linux/slub_def.h"
 510struct kmem_cache_node {
 511   spinlock_t list_lock ;
 512   unsigned long nr_partial ;
 513   struct list_head partial ;
 514   atomic_long_t nr_slabs ;
 515   atomic_long_t total_objects ;
 516   struct list_head full ;
 517};
 518#line 66 "include/linux/slub_def.h"
 519struct kmem_cache_order_objects {
 520   unsigned long x ;
 521};
 522#line 76 "include/linux/slub_def.h"
 523struct kmem_cache {
 524   struct kmem_cache_cpu *cpu_slab ;
 525   unsigned long flags ;
 526   unsigned long min_partial ;
 527   int size ;
 528   int objsize ;
 529   int offset ;
 530   int cpu_partial ;
 531   struct kmem_cache_order_objects oo ;
 532   struct kmem_cache_order_objects max ;
 533   struct kmem_cache_order_objects min ;
 534   gfp_t allocflags ;
 535   int refcount ;
 536   void (*ctor)(void * ) ;
 537   int inuse ;
 538   int align ;
 539   int reserved ;
 540   char const   *name ;
 541   struct list_head list ;
 542   struct kobject kobj ;
 543   int remote_node_defrag_ratio ;
 544   struct kmem_cache_node *node[1024U] ;
 545};
 546#line 554 "include/linux/capability.h"
 547struct semaphore {
 548   raw_spinlock_t lock ;
 549   unsigned int count ;
 550   struct list_head wait_list ;
 551};
 552#line 69 "include/linux/io.h"
 553enum ldv_15682 {
 554    PARPORT_CLASS_LEGACY = 0,
 555    PARPORT_CLASS_PRINTER = 1,
 556    PARPORT_CLASS_MODEM = 2,
 557    PARPORT_CLASS_NET = 3,
 558    PARPORT_CLASS_HDC = 4,
 559    PARPORT_CLASS_PCMCIA = 5,
 560    PARPORT_CLASS_MEDIA = 6,
 561    PARPORT_CLASS_FDC = 7,
 562    PARPORT_CLASS_PORTS = 8,
 563    PARPORT_CLASS_SCANNER = 9,
 564    PARPORT_CLASS_DIGCAM = 10,
 565    PARPORT_CLASS_OTHER = 11,
 566    PARPORT_CLASS_UNSPEC = 12,
 567    PARPORT_CLASS_SCSIADAPTER = 13
 568} ;
 569#line 52 "include/linux/parport.h"
 570typedef enum ldv_15682 parport_device_class;
 571#line 17 "include/linux/irqreturn.h"
 572struct parport;
 573#line 17
 574struct parport;
 575#line 18
 576struct pardevice;
 577#line 18
 578struct pardevice;
 579#line 19 "include/linux/irqreturn.h"
 580struct pc_parport_state {
 581   unsigned int ctr ;
 582   unsigned int ecr ;
 583};
 584#line 113 "include/linux/parport.h"
 585struct ax_parport_state {
 586   unsigned int ctr ;
 587   unsigned int ecr ;
 588   unsigned int dcsr ;
 589};
 590#line 119 "include/linux/parport.h"
 591struct amiga_parport_state {
 592   unsigned char data ;
 593   unsigned char datadir ;
 594   unsigned char status ;
 595   unsigned char statusdir ;
 596};
 597#line 127 "include/linux/parport.h"
 598struct ax88796_parport_state {
 599   unsigned char cpr ;
 600};
 601#line 131 "include/linux/parport.h"
 602struct ip32_parport_state {
 603   unsigned int dcr ;
 604   unsigned int ecr ;
 605};
 606#line 136 "include/linux/parport.h"
 607union __anonunion_u_145 {
 608   struct pc_parport_state pc ;
 609   struct ax_parport_state ax ;
 610   struct amiga_parport_state amiga ;
 611   struct ax88796_parport_state ax88796 ;
 612   struct ip32_parport_state ip32 ;
 613   void *misc ;
 614};
 615#line 136 "include/linux/parport.h"
 616struct parport_state {
 617   union __anonunion_u_145 u ;
 618};
 619#line 149 "include/linux/parport.h"
 620struct parport_operations {
 621   void (*write_data)(struct parport * , unsigned char  ) ;
 622   unsigned char (*read_data)(struct parport * ) ;
 623   void (*write_control)(struct parport * , unsigned char  ) ;
 624   unsigned char (*read_control)(struct parport * ) ;
 625   unsigned char (*frob_control)(struct parport * , unsigned char  , unsigned char  ) ;
 626   unsigned char (*read_status)(struct parport * ) ;
 627   void (*enable_irq)(struct parport * ) ;
 628   void (*disable_irq)(struct parport * ) ;
 629   void (*data_forward)(struct parport * ) ;
 630   void (*data_reverse)(struct parport * ) ;
 631   void (*init_state)(struct pardevice * , struct parport_state * ) ;
 632   void (*save_state)(struct parport * , struct parport_state * ) ;
 633   void (*restore_state)(struct parport * , struct parport_state * ) ;
 634   size_t (*epp_write_data)(struct parport * , void const   * , size_t  , int  ) ;
 635   size_t (*epp_read_data)(struct parport * , void * , size_t  , int  ) ;
 636   size_t (*epp_write_addr)(struct parport * , void const   * , size_t  , int  ) ;
 637   size_t (*epp_read_addr)(struct parport * , void * , size_t  , int  ) ;
 638   size_t (*ecp_write_data)(struct parport * , void const   * , size_t  , int  ) ;
 639   size_t (*ecp_read_data)(struct parport * , void * , size_t  , int  ) ;
 640   size_t (*ecp_write_addr)(struct parport * , void const   * , size_t  , int  ) ;
 641   size_t (*compat_write_data)(struct parport * , void const   * , size_t  , int  ) ;
 642   size_t (*nibble_read_data)(struct parport * , void * , size_t  , int  ) ;
 643   size_t (*byte_read_data)(struct parport * , void * , size_t  , int  ) ;
 644   struct module *owner ;
 645};
 646#line 200 "include/linux/parport.h"
 647struct parport_device_info {
 648   parport_device_class class ;
 649   char const   *class_name ;
 650   char const   *mfr ;
 651   char const   *model ;
 652   char const   *cmdset ;
 653   char const   *description ;
 654};
 655#line 209 "include/linux/parport.h"
 656struct pardevice {
 657   char const   *name ;
 658   struct parport *port ;
 659   int daisy ;
 660   int (*preempt)(void * ) ;
 661   void (*wakeup)(void * ) ;
 662   void *private ;
 663   void (*irq_func)(void * ) ;
 664   unsigned int flags ;
 665   struct pardevice *next ;
 666   struct pardevice *prev ;
 667   struct parport_state *state ;
 668   wait_queue_head_t wait_q ;
 669   unsigned long time ;
 670   unsigned long timeslice ;
 671   long volatile   timeout ;
 672   unsigned long waiting ;
 673   struct pardevice *waitprev ;
 674   struct pardevice *waitnext ;
 675   void *sysctl_table ;
 676};
 677#line 244
 678enum ieee1284_phase {
 679    IEEE1284_PH_FWD_DATA = 0,
 680    IEEE1284_PH_FWD_IDLE = 1,
 681    IEEE1284_PH_TERMINATE = 2,
 682    IEEE1284_PH_NEGOTIATION = 3,
 683    IEEE1284_PH_HBUSY_DNA = 4,
 684    IEEE1284_PH_REV_IDLE = 5,
 685    IEEE1284_PH_HBUSY_DAVAIL = 6,
 686    IEEE1284_PH_REV_DATA = 7,
 687    IEEE1284_PH_ECP_SETUP = 8,
 688    IEEE1284_PH_ECP_FWD_TO_REV = 9,
 689    IEEE1284_PH_ECP_REV_TO_FWD = 10,
 690    IEEE1284_PH_ECP_DIR_UNKNOWN = 11
 691} ;
 692#line 259 "include/linux/parport.h"
 693struct ieee1284_info {
 694   int mode ;
 695   enum ieee1284_phase  volatile  phase ;
 696   struct semaphore irq ;
 697};
 698#line 268 "include/linux/parport.h"
 699struct parport {
 700   unsigned long base ;
 701   unsigned long base_hi ;
 702   unsigned int size ;
 703   char const   *name ;
 704   unsigned int modes ;
 705   int irq ;
 706   int dma ;
 707   int muxport ;
 708   int portnum ;
 709   struct device *dev ;
 710   struct parport *physport ;
 711   struct pardevice *devices ;
 712   struct pardevice *cad ;
 713   int daisy ;
 714   int muxsel ;
 715   struct pardevice *waithead ;
 716   struct pardevice *waittail ;
 717   struct list_head list ;
 718   unsigned int flags ;
 719   void *sysctl_table ;
 720   struct parport_device_info probe_info[5U] ;
 721   struct ieee1284_info ieee1284 ;
 722   struct parport_operations *ops ;
 723   void *private_data ;
 724   int number ;
 725   spinlock_t pardevice_lock ;
 726   spinlock_t waitlist_lock ;
 727   rwlock_t cad_lock ;
 728   int spintime ;
 729   atomic_t ref_count ;
 730   unsigned long devflags ;
 731   struct pardevice *proc_device ;
 732   struct list_head full_list ;
 733   struct parport *slaves[3U] ;
 734};
 735#line 566 "include/linux/parport.h"
 736struct exception_table_entry {
 737   unsigned long insn ;
 738   unsigned long fixup ;
 739};
 740#line 2 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
 741void ldv_spin_lock(void) ;
 742#line 3
 743void ldv_spin_unlock(void) ;
 744#line 4
 745int ldv_spin_trylock(void) ;
 746#line 101 "include/linux/printk.h"
 747extern int printk(char const   *  , ...) ;
 748#line 220 "include/linux/slub_def.h"
 749extern void *kmem_cache_alloc(struct kmem_cache * , gfp_t  ) ;
 750#line 223
 751void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) ;
 752#line 11 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
 753void ldv_check_alloc_flags(gfp_t flags ) ;
 754#line 12
 755void ldv_check_alloc_nonatomic(void) ;
 756#line 14
 757struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) ;
 758#line 8 "include/asm-generic/delay.h"
 759extern void __udelay(unsigned long  ) ;
 760#line 369 "include/linux/parport.h"
 761extern struct parport *parport_find_base(unsigned long  ) ;
 762#line 384
 763extern struct pardevice *parport_register_device(struct parport * , char const   * ,
 764                                                 int (*)(void * ) , void (*)(void * ) ,
 765                                                 void (*)(void * ) , int  , void * ) ;
 766#line 391
 767extern void parport_unregister_device(struct pardevice * ) ;
 768#line 397
 769extern int parport_claim(struct pardevice * ) ;
 770#line 412
 771extern void parport_release(struct pardevice * ) ;
 772#line 29 "include/linux/ks0108.h"
 773void ks0108_writedata(unsigned char byte ) ;
 774#line 32
 775void ks0108_writecontrol(unsigned char byte ) ;
 776#line 35
 777void ks0108_displaystate(unsigned char state ) ;
 778#line 38
 779void ks0108_startline(unsigned char startline ) ;
 780#line 41
 781void ks0108_address(unsigned char address ) ;
 782#line 44
 783void ks0108_page(unsigned char page ) ;
 784#line 47
 785unsigned char ks0108_isinited(void) ;
 786#line 57 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
 787static unsigned int ks0108_port  =    888U;
 788#line 61 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
 789static unsigned int ks0108_delay  =    2U;
 790#line 69 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
 791static struct parport *ks0108_parport  ;
 792#line 70 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
 793static struct pardevice *ks0108_pardevice  ;
 794#line 90 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
 795void ks0108_writedata(unsigned char byte ) 
 796{ unsigned long __cil_tmp2 ;
 797  unsigned long __cil_tmp3 ;
 798  struct parport_operations *__cil_tmp4 ;
 799  void (*__cil_tmp5)(struct parport * , unsigned char  ) ;
 800  int __cil_tmp6 ;
 801  unsigned char __cil_tmp7 ;
 802
 803  {
 804  {
 805#line 92
 806  __cil_tmp2 = (unsigned long )ks0108_parport;
 807#line 92
 808  __cil_tmp3 = __cil_tmp2 + 488;
 809#line 92
 810  __cil_tmp4 = *((struct parport_operations **)__cil_tmp3);
 811#line 92
 812  __cil_tmp5 = *((void (**)(struct parport * , unsigned char  ))__cil_tmp4);
 813#line 92
 814  __cil_tmp6 = (int )byte;
 815#line 92
 816  __cil_tmp7 = (unsigned char )__cil_tmp6;
 817#line 92
 818  (*__cil_tmp5)(ks0108_parport, __cil_tmp7);
 819  }
 820#line 93
 821  return;
 822}
 823}
 824#line 95 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
 825void ks0108_writecontrol(unsigned char byte ) 
 826{ unsigned int *__cil_tmp2 ;
 827  unsigned int __cil_tmp3 ;
 828  unsigned long __cil_tmp4 ;
 829  unsigned long __cil_tmp5 ;
 830  unsigned long __cil_tmp6 ;
 831  struct parport_operations *__cil_tmp7 ;
 832  unsigned long __cil_tmp8 ;
 833  unsigned long __cil_tmp9 ;
 834  void (*__cil_tmp10)(struct parport * , unsigned char  ) ;
 835  unsigned int __cil_tmp11 ;
 836  unsigned int __cil_tmp12 ;
 837  int __cil_tmp13 ;
 838  unsigned char __cil_tmp14 ;
 839
 840  {
 841  {
 842#line 97
 843  __cil_tmp2 = & ks0108_delay;
 844#line 97
 845  __cil_tmp3 = *__cil_tmp2;
 846#line 97
 847  __cil_tmp4 = (unsigned long )__cil_tmp3;
 848#line 97
 849  __udelay(__cil_tmp4);
 850#line 98
 851  __cil_tmp5 = (unsigned long )ks0108_parport;
 852#line 98
 853  __cil_tmp6 = __cil_tmp5 + 488;
 854#line 98
 855  __cil_tmp7 = *((struct parport_operations **)__cil_tmp6);
 856#line 98
 857  __cil_tmp8 = (unsigned long )__cil_tmp7;
 858#line 98
 859  __cil_tmp9 = __cil_tmp8 + 16;
 860#line 98
 861  __cil_tmp10 = *((void (**)(struct parport * , unsigned char  ))__cil_tmp9);
 862#line 98
 863  __cil_tmp11 = (unsigned int )byte;
 864#line 98
 865  __cil_tmp12 = __cil_tmp11 ^ 11U;
 866#line 98
 867  __cil_tmp13 = (int )__cil_tmp12;
 868#line 98
 869  __cil_tmp14 = (unsigned char )__cil_tmp13;
 870#line 98
 871  (*__cil_tmp10)(ks0108_parport, __cil_tmp14);
 872  }
 873#line 99
 874  return;
 875}
 876}
 877#line 101 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
 878void ks0108_displaystate(unsigned char state ) 
 879{ int tmp ;
 880  unsigned int __cil_tmp3 ;
 881  unsigned char __cil_tmp4 ;
 882
 883  {
 884  {
 885#line 103
 886  __cil_tmp3 = (unsigned int )state;
 887#line 103
 888  if (__cil_tmp3 != 0U) {
 889#line 103
 890    tmp = 63;
 891  } else {
 892#line 103
 893    tmp = 62;
 894  }
 895  }
 896  {
 897#line 103
 898  __cil_tmp4 = (unsigned char )tmp;
 899#line 103
 900  ks0108_writedata(__cil_tmp4);
 901  }
 902#line 104
 903  return;
 904}
 905}
 906#line 106 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
 907void ks0108_startline(unsigned char startline ) 
 908{ unsigned char _min1 ;
 909  unsigned char _min2 ;
 910  int tmp ;
 911  int __cil_tmp5 ;
 912  int __cil_tmp6 ;
 913  signed char __cil_tmp7 ;
 914  int __cil_tmp8 ;
 915  int __cil_tmp9 ;
 916  unsigned char __cil_tmp10 ;
 917  int __cil_tmp11 ;
 918  unsigned char __cil_tmp12 ;
 919
 920  {
 921#line 108
 922  _min1 = startline;
 923#line 108
 924  _min2 = (unsigned char)63;
 925  {
 926#line 108
 927  __cil_tmp5 = (int )_min2;
 928#line 108
 929  __cil_tmp6 = (int )_min1;
 930#line 108
 931  if (__cil_tmp6 < __cil_tmp5) {
 932#line 108
 933    tmp = (int )_min1;
 934  } else {
 935#line 108
 936    tmp = (int )_min2;
 937  }
 938  }
 939  {
 940#line 108
 941  __cil_tmp7 = (signed char )tmp;
 942#line 108
 943  __cil_tmp8 = (int )__cil_tmp7;
 944#line 108
 945  __cil_tmp9 = __cil_tmp8 | -64;
 946#line 108
 947  __cil_tmp10 = (unsigned char )__cil_tmp9;
 948#line 108
 949  __cil_tmp11 = (int )__cil_tmp10;
 950#line 108
 951  __cil_tmp12 = (unsigned char )__cil_tmp11;
 952#line 108
 953  ks0108_writedata(__cil_tmp12);
 954  }
 955#line 110
 956  return;
 957}
 958}
 959#line 111 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
 960void ks0108_address(unsigned char address ) 
 961{ unsigned char _min1 ;
 962  unsigned char _min2 ;
 963  int tmp ;
 964  int __cil_tmp5 ;
 965  int __cil_tmp6 ;
 966  signed char __cil_tmp7 ;
 967  int __cil_tmp8 ;
 968  int __cil_tmp9 ;
 969  unsigned char __cil_tmp10 ;
 970  int __cil_tmp11 ;
 971  unsigned char __cil_tmp12 ;
 972
 973  {
 974#line 113
 975  _min1 = address;
 976#line 113
 977  _min2 = (unsigned char)63;
 978  {
 979#line 113
 980  __cil_tmp5 = (int )_min2;
 981#line 113
 982  __cil_tmp6 = (int )_min1;
 983#line 113
 984  if (__cil_tmp6 < __cil_tmp5) {
 985#line 113
 986    tmp = (int )_min1;
 987  } else {
 988#line 113
 989    tmp = (int )_min2;
 990  }
 991  }
 992  {
 993#line 113
 994  __cil_tmp7 = (signed char )tmp;
 995#line 113
 996  __cil_tmp8 = (int )__cil_tmp7;
 997#line 113
 998  __cil_tmp9 = __cil_tmp8 | 64;
 999#line 113
1000  __cil_tmp10 = (unsigned char )__cil_tmp9;
1001#line 113
1002  __cil_tmp11 = (int )__cil_tmp10;
1003#line 113
1004  __cil_tmp12 = (unsigned char )__cil_tmp11;
1005#line 113
1006  ks0108_writedata(__cil_tmp12);
1007  }
1008#line 115
1009  return;
1010}
1011}
1012#line 116 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1013void ks0108_page(unsigned char page ) 
1014{ unsigned char _min1 ;
1015  unsigned char _min2 ;
1016  int tmp ;
1017  int __cil_tmp5 ;
1018  int __cil_tmp6 ;
1019  signed char __cil_tmp7 ;
1020  int __cil_tmp8 ;
1021  int __cil_tmp9 ;
1022  unsigned char __cil_tmp10 ;
1023  int __cil_tmp11 ;
1024  unsigned char __cil_tmp12 ;
1025
1026  {
1027#line 118
1028  _min1 = page;
1029#line 118
1030  _min2 = (unsigned char)7;
1031  {
1032#line 118
1033  __cil_tmp5 = (int )_min2;
1034#line 118
1035  __cil_tmp6 = (int )_min1;
1036#line 118
1037  if (__cil_tmp6 < __cil_tmp5) {
1038#line 118
1039    tmp = (int )_min1;
1040  } else {
1041#line 118
1042    tmp = (int )_min2;
1043  }
1044  }
1045  {
1046#line 118
1047  __cil_tmp7 = (signed char )tmp;
1048#line 118
1049  __cil_tmp8 = (int )__cil_tmp7;
1050#line 118
1051  __cil_tmp9 = __cil_tmp8 | -72;
1052#line 118
1053  __cil_tmp10 = (unsigned char )__cil_tmp9;
1054#line 118
1055  __cil_tmp11 = (int )__cil_tmp10;
1056#line 118
1057  __cil_tmp12 = (unsigned char )__cil_tmp11;
1058#line 118
1059  ks0108_writedata(__cil_tmp12);
1060  }
1061#line 120
1062  return;
1063}
1064}
1065#line 132 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1066static unsigned char ks0108_inited  ;
1067#line 133 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1068unsigned char ks0108_isinited(void) 
1069{ 
1070
1071  {
1072#line 135
1073  return (ks0108_inited);
1074}
1075}
1076#line 143 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1077static int ks0108_init(void) 
1078{ int result ;
1079  int ret ;
1080  unsigned int *__cil_tmp3 ;
1081  unsigned int __cil_tmp4 ;
1082  unsigned long __cil_tmp5 ;
1083  struct parport *__cil_tmp6 ;
1084  unsigned long __cil_tmp7 ;
1085  unsigned long __cil_tmp8 ;
1086  unsigned int *__cil_tmp9 ;
1087  unsigned int __cil_tmp10 ;
1088  int (*__cil_tmp11)(void * ) ;
1089  void (*__cil_tmp12)(void * ) ;
1090  void (*__cil_tmp13)(void * ) ;
1091  void *__cil_tmp14 ;
1092  struct pardevice *__cil_tmp15 ;
1093  unsigned long __cil_tmp16 ;
1094  unsigned long __cil_tmp17 ;
1095  unsigned int *__cil_tmp18 ;
1096  unsigned int __cil_tmp19 ;
1097
1098  {
1099  {
1100#line 146
1101  ret = -22;
1102#line 148
1103  __cil_tmp3 = & ks0108_port;
1104#line 148
1105  __cil_tmp4 = *__cil_tmp3;
1106#line 148
1107  __cil_tmp5 = (unsigned long )__cil_tmp4;
1108#line 148
1109  ks0108_parport = parport_find_base(__cil_tmp5);
1110  }
1111  {
1112#line 149
1113  __cil_tmp6 = (struct parport *)0;
1114#line 149
1115  __cil_tmp7 = (unsigned long )__cil_tmp6;
1116#line 149
1117  __cil_tmp8 = (unsigned long )ks0108_parport;
1118#line 149
1119  if (__cil_tmp8 == __cil_tmp7) {
1120    {
1121#line 150
1122    __cil_tmp9 = & ks0108_port;
1123#line 150
1124    __cil_tmp10 = *__cil_tmp9;
1125#line 150
1126    printk("<3>ks0108: ERROR: parport didn\'t find %i port\n", __cil_tmp10);
1127    }
1128#line 152
1129    goto none;
1130  } else {
1131
1132  }
1133  }
1134  {
1135#line 155
1136  __cil_tmp11 = (int (*)(void * ))0;
1137#line 155
1138  __cil_tmp12 = (void (*)(void * ))0;
1139#line 155
1140  __cil_tmp13 = (void (*)(void * ))0;
1141#line 155
1142  __cil_tmp14 = (void *)0;
1143#line 155
1144  ks0108_pardevice = parport_register_device(ks0108_parport, "ks0108", __cil_tmp11,
1145                                             __cil_tmp12, __cil_tmp13, 2, __cil_tmp14);
1146  }
1147  {
1148#line 157
1149  __cil_tmp15 = (struct pardevice *)0;
1150#line 157
1151  __cil_tmp16 = (unsigned long )__cil_tmp15;
1152#line 157
1153  __cil_tmp17 = (unsigned long )ks0108_pardevice;
1154#line 157
1155  if (__cil_tmp17 == __cil_tmp16) {
1156    {
1157#line 158
1158    printk("<3>ks0108: ERROR: parport didn\'t register new device\n");
1159    }
1160#line 160
1161    goto none;
1162  } else {
1163
1164  }
1165  }
1166  {
1167#line 163
1168  result = parport_claim(ks0108_pardevice);
1169  }
1170#line 164
1171  if (result != 0) {
1172    {
1173#line 165
1174    __cil_tmp18 = & ks0108_port;
1175#line 165
1176    __cil_tmp19 = *__cil_tmp18;
1177#line 165
1178    printk("<3>ks0108: ERROR: can\'t claim %i parport, maybe in use\n", __cil_tmp19);
1179#line 167
1180    ret = result;
1181    }
1182#line 168
1183    goto registered;
1184  } else {
1185
1186  }
1187#line 171
1188  ks0108_inited = (unsigned char)1;
1189#line 172
1190  return (0);
1191  registered: 
1192  {
1193#line 175
1194  parport_unregister_device(ks0108_pardevice);
1195  }
1196  none: ;
1197#line 178
1198  return (ret);
1199}
1200}
1201#line 181 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1202static void ks0108_exit(void) 
1203{ 
1204
1205  {
1206  {
1207#line 183
1208  parport_release(ks0108_pardevice);
1209#line 184
1210  parport_unregister_device(ks0108_pardevice);
1211  }
1212#line 185
1213  return;
1214}
1215}
1216#line 211
1217extern void ldv_check_final_state(void) ;
1218#line 217
1219extern void ldv_initialize(void) ;
1220#line 220
1221extern int __VERIFIER_nondet_int(void) ;
1222#line 223 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1223int LDV_IN_INTERRUPT  ;
1224#line 226 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1225void main(void) 
1226{ int tmp ;
1227  int tmp___0 ;
1228  int tmp___1 ;
1229
1230  {
1231  {
1232#line 238
1233  LDV_IN_INTERRUPT = 1;
1234#line 247
1235  ldv_initialize();
1236#line 256
1237  tmp = ks0108_init();
1238  }
1239#line 256
1240  if (tmp != 0) {
1241#line 257
1242    goto ldv_final;
1243  } else {
1244
1245  }
1246#line 259
1247  goto ldv_18625;
1248  ldv_18624: 
1249  {
1250#line 262
1251  tmp___0 = __VERIFIER_nondet_int();
1252  }
1253  {
1254#line 264
1255  goto switch_default;
1256#line 262
1257  if (0) {
1258    switch_default: /* CIL Label */ ;
1259#line 264
1260    goto ldv_18623;
1261  } else {
1262    switch_break: /* CIL Label */ ;
1263  }
1264  }
1265  ldv_18623: ;
1266  ldv_18625: 
1267  {
1268#line 259
1269  tmp___1 = __VERIFIER_nondet_int();
1270  }
1271#line 259
1272  if (tmp___1 != 0) {
1273#line 260
1274    goto ldv_18624;
1275  } else {
1276#line 262
1277    goto ldv_18626;
1278  }
1279  ldv_18626: ;
1280  {
1281#line 279
1282  ks0108_exit();
1283  }
1284  ldv_final: 
1285  {
1286#line 282
1287  ldv_check_final_state();
1288  }
1289#line 285
1290  return;
1291}
1292}
1293#line 5 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast-assert.h"
1294void ldv_blast_assert(void) 
1295{ 
1296
1297  {
1298  ERROR: ;
1299#line 6
1300  goto ERROR;
1301}
1302}
1303#line 6 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/kernel-rules/files/engine-blast.h"
1304extern int __VERIFIER_nondet_int(void) ;
1305#line 306 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1306int ldv_spin  =    0;
1307#line 310 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1308void ldv_check_alloc_flags(gfp_t flags ) 
1309{ 
1310
1311  {
1312#line 313
1313  if (ldv_spin != 0) {
1314#line 313
1315    if (flags != 32U) {
1316      {
1317#line 313
1318      ldv_blast_assert();
1319      }
1320    } else {
1321
1322    }
1323  } else {
1324
1325  }
1326#line 316
1327  return;
1328}
1329}
1330#line 316
1331extern struct page *ldv_some_page(void) ;
1332#line 319 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1333struct page *ldv_check_alloc_flags_and_return_some_page(gfp_t flags ) 
1334{ struct page *tmp ;
1335
1336  {
1337#line 322
1338  if (ldv_spin != 0) {
1339#line 322
1340    if (flags != 32U) {
1341      {
1342#line 322
1343      ldv_blast_assert();
1344      }
1345    } else {
1346
1347    }
1348  } else {
1349
1350  }
1351  {
1352#line 324
1353  tmp = ldv_some_page();
1354  }
1355#line 324
1356  return (tmp);
1357}
1358}
1359#line 328 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1360void ldv_check_alloc_nonatomic(void) 
1361{ 
1362
1363  {
1364#line 331
1365  if (ldv_spin != 0) {
1366    {
1367#line 331
1368    ldv_blast_assert();
1369    }
1370  } else {
1371
1372  }
1373#line 334
1374  return;
1375}
1376}
1377#line 335 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1378void ldv_spin_lock(void) 
1379{ 
1380
1381  {
1382#line 338
1383  ldv_spin = 1;
1384#line 339
1385  return;
1386}
1387}
1388#line 342 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1389void ldv_spin_unlock(void) 
1390{ 
1391
1392  {
1393#line 345
1394  ldv_spin = 0;
1395#line 346
1396  return;
1397}
1398}
1399#line 349 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1400int ldv_spin_trylock(void) 
1401{ int is_lock ;
1402
1403  {
1404  {
1405#line 354
1406  is_lock = __VERIFIER_nondet_int();
1407  }
1408#line 356
1409  if (is_lock != 0) {
1410#line 359
1411    return (0);
1412  } else {
1413#line 364
1414    ldv_spin = 1;
1415#line 366
1416    return (1);
1417  }
1418}
1419}
1420#line 533 "/home/zakharov/launch/work/current--X--drivers/--X--defaultlinux-3.4--X--43_1a--X--cpachecker/linux-3.4/csd_deg_dscv/17289/dscv_tempdir/dscv/ri/43_1a/drivers/auxdisplay/ks0108.c.p"
1421void *ldv_kmem_cache_alloc_16(struct kmem_cache *ldv_func_arg1 , gfp_t ldv_func_arg2 ) 
1422{ 
1423
1424  {
1425  {
1426#line 539
1427  ldv_check_alloc_flags(ldv_func_arg2);
1428#line 541
1429  kmem_cache_alloc(ldv_func_arg1, ldv_func_arg2);
1430  }
1431#line 542
1432  return ((void *)0);
1433}
1434}