// Skip function: __VERIFIER_error // Skip function: __VERIFIER_nondet_int // Function: __blkdev_driver_ioctl // with type: int __blkdev_driver_ioctl(struct block_device *, fmode_t , unsigned int, unsigned long) // with return type: int int __VERIFIER_nondet_int(void); int __blkdev_driver_ioctl(struct block_device *arg0, fmode_t arg1, unsigned int arg2, unsigned long arg3) { // Simple type return __VERIFIER_nondet_int(); } // Function: __class_register // with type: int __class_register(struct class *, struct lock_class_key *) // with return type: int int __VERIFIER_nondet_int(void); int __class_register(struct class *arg0, struct lock_class_key *arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: __free_pages // with type: void __free_pages(struct page *, unsigned int) // with return type: void void __free_pages(struct page *arg0, unsigned int arg1) { // Void type return; } // Function: __init_waitqueue_head // with type: void __init_waitqueue_head(wait_queue_head_t *, struct lock_class_key *) // with return type: void void __init_waitqueue_head(wait_queue_head_t *arg0, struct lock_class_key *arg1) { // Void type return; } extern _Bool __VERIFIER_nondet_bool(void) ; extern void *malloc(size_t) ; __inline static IS_ERR(void const *ptr ) ; extern void abort(void); void assume_abort_if_not(int cond) { if(!cond) {abort();} } void *ldv_malloc(size_t size ) { if(__VERIFIER_nondet_bool()) return 0; void *p = malloc(size); assume_abort_if_not(IS_ERR(p) == 0); return p; } // Function: __kmalloc // with type: void *__kmalloc(size_t , gfp_t ) // with return type: (void)* void *__kmalloc(size_t arg0, gfp_t arg1) { // Pointer type return ldv_malloc(arg0); } // Function: __list_add // with type: void __list_add(struct list_head *, struct list_head *, struct list_head *) // with return type: void void __list_add(struct list_head *arg0, struct list_head *arg1, struct list_head *arg2) { // Void type return; } // Function: __list_del_entry // with type: void __list_del_entry(struct list_head *) // with return type: void void __list_del_entry(struct list_head *arg0) { // Void type return; } // Function: __mutex_init // with type: void __mutex_init(struct mutex *, const char *, struct lock_class_key *) // with return type: void void __mutex_init(struct mutex *arg0, const char *arg1, struct lock_class_key *arg2) { // Void type return; } // Function: __raw_spin_lock_init // with type: void __raw_spin_lock_init(raw_spinlock_t *, const char *, struct lock_class_key *) // with return type: void void __raw_spin_lock_init(raw_spinlock_t *arg0, const char *arg1, struct lock_class_key *arg2) { // Void type return; } // Function: __wake_up // with type: void __wake_up(wait_queue_head_t *, unsigned int, int, void *) // with return type: void void __wake_up(wait_queue_head_t *arg0, unsigned int arg1, int arg2, void *arg3) { // Void type return; } // Function: _copy_from_user // with type: unsigned long int _copy_from_user(void *, const void *, unsigned int) // with return type: unsigned long int unsigned long __VERIFIER_nondet_ulong(void); unsigned long int _copy_from_user(void *arg0, const void *arg1, unsigned int arg2) { // Simple type return __VERIFIER_nondet_ulong(); } // Function: _copy_to_user // with type: unsigned long int _copy_to_user(void *, const void *, unsigned int) // with return type: unsigned long int unsigned long __VERIFIER_nondet_ulong(void); unsigned long int _copy_to_user(void *arg0, const void *arg1, unsigned int arg2) { // Simple type return __VERIFIER_nondet_ulong(); } // Function: _raw_spin_lock // with type: void _raw_spin_lock(raw_spinlock_t *) // with return type: void void _raw_spin_lock(raw_spinlock_t *arg0) { // Void type return; } // Function: _raw_spin_lock_irq // with type: void _raw_spin_lock_irq(raw_spinlock_t *) // with return type: void void _raw_spin_lock_irq(raw_spinlock_t *arg0) { // Void type return; } // Function: _raw_spin_unlock // with type: void _raw_spin_unlock(raw_spinlock_t *) // with return type: void void _raw_spin_unlock(raw_spinlock_t *arg0) { // Void type return; } // Function: _raw_spin_unlock_irq // with type: void _raw_spin_unlock_irq(raw_spinlock_t *) // with return type: void void _raw_spin_unlock_irq(raw_spinlock_t *arg0) { // Void type return; } // Function: add_disk // with type: void add_disk(struct gendisk *) // with return type: void void add_disk(struct gendisk *arg0) { // Void type return; } // Function: add_wait_queue // with type: void add_wait_queue(wait_queue_head_t *, wait_queue_t *) // with return type: void void add_wait_queue(wait_queue_head_t *arg0, wait_queue_t *arg1) { // Void type return; } // Function: alloc_disk // with type: struct gendisk *alloc_disk(int) // with return type: (struct gendisk)* struct gendisk *alloc_disk(int arg0) { // Pointer type return ldv_malloc(sizeof(struct gendisk)); } // Function: alloc_pages_current // with type: struct page *alloc_pages_current(gfp_t , unsigned int) // with return type: (struct page)* struct page *alloc_pages_current(gfp_t arg0, unsigned int arg1) { // Pointer type return ldv_malloc(sizeof(struct page)); } // Function: bd_set_size // with type: void bd_set_size(struct block_device *, loff_t ) // with return type: void void bd_set_size(struct block_device *arg0, loff_t arg1) { // Void type return; } // Function: bdevname // with type: const char *bdevname(struct block_device *, char *) // with return type: (const char)* const char *bdevname(struct block_device *arg0, char *arg1) { // Pointer type return ldv_malloc(sizeof(char)); } // Function: bdget // with type: struct block_device *bdget(dev_t ) // with return type: (struct block_device)* struct block_device *bdget(dev_t arg0) { // Pointer type return ldv_malloc(sizeof(struct block_device)); } // Function: bio_add_page // with type: int bio_add_page(struct bio *, struct page *, unsigned int, unsigned int) // with return type: int int __VERIFIER_nondet_int(void); int bio_add_page(struct bio *arg0, struct page *arg1, unsigned int arg2, unsigned int arg3) { // Simple type return __VERIFIER_nondet_int(); } // Function: bio_clone // with type: struct bio *bio_clone(struct bio *, gfp_t ) // with return type: (struct bio)* struct bio *bio_clone(struct bio *arg0, gfp_t arg1) { // Pointer type return ldv_malloc(sizeof(struct bio)); } // Function: bio_endio // with type: void bio_endio(struct bio *, int) // with return type: void void bio_endio(struct bio *arg0, int arg1) { // Void type return; } // Function: bio_init // with type: void bio_init(struct bio *) // with return type: void void bio_init(struct bio *arg0) { // Void type return; } // Function: bio_pair_release // with type: void bio_pair_release(struct bio_pair *) // with return type: void void bio_pair_release(struct bio_pair *arg0) { // Void type return; } // Function: bio_put // with type: void bio_put(struct bio *) // with return type: void void bio_put(struct bio *arg0) { // Void type return; } // Function: bio_split // with type: struct bio_pair *bio_split(struct bio *, int) // with return type: (struct bio_pair)* struct bio_pair *bio_split(struct bio *arg0, int arg1) { // Pointer type return ldv_malloc(sizeof(struct bio_pair)); } // Function: blk_alloc_queue // with type: struct request_queue *blk_alloc_queue(gfp_t ) // with return type: (struct request_queue)* struct request_queue *blk_alloc_queue(gfp_t arg0) { // Pointer type return ldv_malloc(sizeof(struct request_queue)); } // Function: blk_cleanup_queue // with type: void blk_cleanup_queue(struct request_queue *) // with return type: void void blk_cleanup_queue(struct request_queue *arg0) { // Void type return; } // Function: blk_execute_rq // with type: int blk_execute_rq(struct request_queue *, struct gendisk *, struct request *, int) // with return type: int int __VERIFIER_nondet_int(void); int blk_execute_rq(struct request_queue *arg0, struct gendisk *arg1, struct request *arg2, int arg3) { // Simple type return __VERIFIER_nondet_int(); } // Function: blk_get_request // with type: struct request *blk_get_request(struct request_queue *, int, gfp_t ) // with return type: (struct request)* struct request *blk_get_request(struct request_queue *arg0, int arg1, gfp_t arg2) { // Pointer type return ldv_malloc(sizeof(struct request)); } // Function: blk_put_request // with type: void blk_put_request(struct request *) // with return type: void void blk_put_request(struct request *arg0) { // Void type return; } // Function: blk_queue_bounce // with type: void blk_queue_bounce(struct request_queue *, struct bio **) // with return type: void void blk_queue_bounce(struct request_queue *arg0, struct bio **arg1) { // Void type return; } // Function: blk_queue_logical_block_size // with type: void blk_queue_logical_block_size(struct request_queue *, unsigned short) // with return type: void void blk_queue_logical_block_size(struct request_queue *arg0, unsigned short arg1) { // Void type return; } // Function: blk_queue_make_request // with type: void blk_queue_make_request(struct request_queue *, make_request_fn *) // with return type: void void blk_queue_make_request(struct request_queue *arg0, make_request_fn *arg1) { // Void type return; } // Function: blk_queue_max_hw_sectors // with type: void blk_queue_max_hw_sectors(struct request_queue *, unsigned int) // with return type: void void blk_queue_max_hw_sectors(struct request_queue *arg0, unsigned int arg1) { // Void type return; } // Function: blk_queue_merge_bvec // with type: void blk_queue_merge_bvec(struct request_queue *, merge_bvec_fn *) // with return type: void void blk_queue_merge_bvec(struct request_queue *arg0, merge_bvec_fn *arg1) { // Void type return; } // Function: blk_rq_map_kern // with type: int blk_rq_map_kern(struct request_queue *, struct request *, void *, unsigned int, gfp_t ) // with return type: int int __VERIFIER_nondet_int(void); int blk_rq_map_kern(struct request_queue *arg0, struct request *arg1, void *arg2, unsigned int arg3, gfp_t arg4) { // Simple type return __VERIFIER_nondet_int(); } // Function: blkdev_get // with type: int blkdev_get(struct block_device *, fmode_t , void *) // with return type: int int __VERIFIER_nondet_int(void); int blkdev_get(struct block_device *arg0, fmode_t arg1, void *arg2) { // Simple type return __VERIFIER_nondet_int(); } // Function: blkdev_put // with type: int blkdev_put(struct block_device *, fmode_t ) // with return type: int int __VERIFIER_nondet_int(void); int blkdev_put(struct block_device *arg0, fmode_t arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: capable // with type: bool capable(int) // with return type: bool bool __VERIFIER_nondet_bool(void); bool capable(int arg0) { // Typedef type // Real type: _Bool // Simple type return __VERIFIER_nondet_bool(); } // Function: class_destroy // with type: void class_destroy(struct class *) // with return type: void void class_destroy(struct class *arg0) { // Void type return; } // Function: clear_bdi_congested // with type: void clear_bdi_congested(struct backing_dev_info *, int) // with return type: void void clear_bdi_congested(struct backing_dev_info *arg0, int arg1) { // Void type return; } // Function: congestion_wait // with type: long int congestion_wait(int, long) // with return type: long int long __VERIFIER_nondet_long(void); long int congestion_wait(int arg0, long arg1) { // Simple type return __VERIFIER_nondet_long(); } // Function: debugfs_create_dir // with type: struct dentry *debugfs_create_dir(const char *, struct dentry *) // with return type: (struct dentry)* struct dentry *debugfs_create_dir(const char *arg0, struct dentry *arg1) { // Pointer type return ldv_malloc(sizeof(struct dentry)); } // Function: debugfs_create_file // with type: struct dentry *debugfs_create_file(const char *, mode_t , struct dentry *, void *, const struct file_operations *) // with return type: (struct dentry)* struct dentry *debugfs_create_file(const char *arg0, mode_t arg1, struct dentry *arg2, void *arg3, const struct file_operations *arg4) { // Pointer type return ldv_malloc(sizeof(struct dentry)); } // Function: debugfs_remove // with type: void debugfs_remove(struct dentry *) // with return type: void void debugfs_remove(struct dentry *arg0) { // Void type return; } // Function: del_gendisk // with type: void del_gendisk(struct gendisk *) // with return type: void void del_gendisk(struct gendisk *arg0) { // Void type return; } // Function: device_create // with type: struct device *device_create(struct class *, struct device *, dev_t , void *, const char *, ...) // with return type: (struct device)* struct device *device_create(struct class *arg0, struct device *arg1, dev_t arg2, void *arg3, const char *arg4, ...) { // Pointer type return ldv_malloc(sizeof(struct device)); } // Function: device_unregister // with type: void device_unregister(struct device *) // with return type: void void device_unregister(struct device *arg0) { // Void type return; } // Function: generic_make_request // with type: void generic_make_request(struct bio *) // with return type: void void generic_make_request(struct bio *arg0) { // Void type return; } // Function: init_cdrom_command // with type: void init_cdrom_command(struct packet_command *, void *, int, int) // with return type: void void init_cdrom_command(struct packet_command *arg0, void *arg1, int arg2, int arg3) { // Void type return; } // Function: kasprintf // with type: char *kasprintf(gfp_t , const char *, ...) // with return type: (char)* char *kasprintf(gfp_t arg0, const char *arg1, ...) { // Pointer type return ldv_malloc(sizeof(char)); } // Skip function: kfree // Function: kobject_init_and_add // with type: int kobject_init_and_add(struct kobject *, struct kobj_type *, struct kobject *, const char *, ...) // with return type: int int __VERIFIER_nondet_int(void); int kobject_init_and_add(struct kobject *arg0, struct kobj_type *arg1, struct kobject *arg2, const char *arg3, ...) { // Simple type return __VERIFIER_nondet_int(); } // Function: kobject_put // with type: void kobject_put(struct kobject *) // with return type: void void kobject_put(struct kobject *arg0) { // Void type return; } // Function: kobject_uevent // with type: int kobject_uevent(struct kobject *, enum kobject_action ) // with return type: int int __VERIFIER_nondet_int(void); int kobject_uevent(struct kobject *arg0, enum kobject_action arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: kthread_create_on_node // with type: struct task_struct *kthread_create_on_node(int (*)(void *), void *, int, const char *, ...) // with return type: (struct task_struct)* struct task_struct *kthread_create_on_node(int (*arg0)(void *), void *arg1, int arg2, const char *arg3, ...) { // Pointer type return ldv_malloc(sizeof(struct task_struct)); } // Function: kthread_should_stop // with type: int kthread_should_stop() // with return type: int int __VERIFIER_nondet_int(void); int kthread_should_stop() { // Simple type return __VERIFIER_nondet_int(); } // Function: kthread_stop // with type: int kthread_stop(struct task_struct *) // with return type: int int __VERIFIER_nondet_int(void); int kthread_stop(struct task_struct *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: ldv_check_return_value // with type: void ldv_check_return_value(int) // with return type: void void ldv_check_return_value(int arg0) { // Void type return; } // Function: ldv_initialize // with type: void ldv_initialize() // with return type: void void ldv_initialize() { // Void type return; } // Function: ldv_undefined_int // with type: int ldv_undefined_int() // with return type: int int __VERIFIER_nondet_int(void); int ldv_undefined_int() { // Simple type return __VERIFIER_nondet_int(); } // Function: list_del // with type: void list_del(struct list_head *) // with return type: void void list_del(struct list_head *arg0) { // Void type return; } // Skip function: memcpy // Function: mempool_alloc // with type: void *mempool_alloc(mempool_t *, gfp_t ) // with return type: (void)* void *mempool_alloc(mempool_t *arg0, gfp_t arg1) { // Pointer type return ldv_malloc(0UL); } // Function: mempool_create // with type: mempool_t *mempool_create(int, mempool_alloc_t *, mempool_free_t *, void *) // with return type: (mempool_t )* mempool_t *mempool_create(int arg0, mempool_alloc_t *arg1, mempool_free_t *arg2, void *arg3) { // Pointer type return ldv_malloc(sizeof(mempool_t)); } // Function: mempool_destroy // with type: void mempool_destroy(mempool_t *) // with return type: void void mempool_destroy(mempool_t *arg0) { // Void type return; } // Function: mempool_free // with type: void mempool_free(void *, mempool_t *) // with return type: void void mempool_free(void *arg0, mempool_t *arg1) { // Void type return; } // Skip function: memset // Function: might_fault // with type: void might_fault() // with return type: void void might_fault() { // Void type return; } // Function: misc_deregister // with type: int misc_deregister(struct miscdevice *) // with return type: int int __VERIFIER_nondet_int(void); int misc_deregister(struct miscdevice *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: misc_register // with type: int misc_register(struct miscdevice *) // with return type: int int __VERIFIER_nondet_int(void); int misc_register(struct miscdevice *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: mutex_lock_nested // with type: void mutex_lock_nested(struct mutex *, unsigned int) // with return type: void void mutex_lock_nested(struct mutex *arg0, unsigned int arg1) { // Void type return; } // Function: mutex_unlock // with type: void mutex_unlock(struct mutex *) // with return type: void void mutex_unlock(struct mutex *arg0) { // Void type return; } // Function: printk // with type: int printk(const char *, ...) // with return type: int int __VERIFIER_nondet_int(void); int printk(const char *arg0, ...) { // Simple type return __VERIFIER_nondet_int(); } // Function: proc_create_data // with type: struct proc_dir_entry *proc_create_data(const char *, mode_t , struct proc_dir_entry *, const struct file_operations *, void *) // with return type: (struct proc_dir_entry)* struct proc_dir_entry *proc_create_data(const char *arg0, mode_t arg1, struct proc_dir_entry *arg2, const struct file_operations *arg3, void *arg4) { // Pointer type return ldv_malloc(sizeof(struct proc_dir_entry)); } // Function: proc_mkdir // with type: struct proc_dir_entry *proc_mkdir(const char *, struct proc_dir_entry *) // with return type: (struct proc_dir_entry)* struct proc_dir_entry *proc_mkdir(const char *arg0, struct proc_dir_entry *arg1) { // Pointer type return ldv_malloc(sizeof(struct proc_dir_entry)); } // Function: put_disk // with type: void put_disk(struct gendisk *) // with return type: void void put_disk(struct gendisk *arg0) { // Void type return; } // Function: rb_erase // with type: void rb_erase(struct rb_node *, struct rb_root *) // with return type: void void rb_erase(struct rb_node *arg0, struct rb_root *arg1) { // Void type return; } // Function: rb_first // with type: struct rb_node *rb_first(const struct rb_root *) // with return type: (struct rb_node)* struct rb_node *rb_first(const struct rb_root *arg0) { // Pointer type return ldv_malloc(sizeof(struct rb_node)); } // Function: rb_insert_color // with type: void rb_insert_color(struct rb_node *, struct rb_root *) // with return type: void void rb_insert_color(struct rb_node *arg0, struct rb_root *arg1) { // Void type return; } // Function: rb_next // with type: struct rb_node *rb_next(const struct rb_node *) // with return type: (struct rb_node)* struct rb_node *rb_next(const struct rb_node *arg0) { // Pointer type return ldv_malloc(sizeof(struct rb_node)); } // Function: refrigerator // with type: void refrigerator() // with return type: void void refrigerator() { // Void type return; } // Function: register_blkdev // with type: int register_blkdev(unsigned int, const char *) // with return type: int int __VERIFIER_nondet_int(void); int register_blkdev(unsigned int arg0, const char *arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: remove_proc_entry // with type: void remove_proc_entry(const char *, struct proc_dir_entry *) // with return type: void void remove_proc_entry(const char *arg0, struct proc_dir_entry *arg1) { // Void type return; } // Function: remove_wait_queue // with type: void remove_wait_queue(wait_queue_head_t *, wait_queue_t *) // with return type: void void remove_wait_queue(wait_queue_head_t *arg0, wait_queue_t *arg1) { // Void type return; } // Function: schedule_timeout // with type: long int schedule_timeout(long) // with return type: long int long __VERIFIER_nondet_long(void); long int schedule_timeout(long arg0) { // Simple type return __VERIFIER_nondet_long(); } // Function: seq_printf // with type: int seq_printf(struct seq_file *, const char *, ...) // with return type: int int __VERIFIER_nondet_int(void); int seq_printf(struct seq_file *arg0, const char *arg1, ...) { // Simple type return __VERIFIER_nondet_int(); } // Function: set_bdi_congested // with type: void set_bdi_congested(struct backing_dev_info *, int) // with return type: void void set_bdi_congested(struct backing_dev_info *arg0, int arg1) { // Void type return; } // Function: set_blocksize // with type: int set_blocksize(struct block_device *, int) // with return type: int int __VERIFIER_nondet_int(void); int set_blocksize(struct block_device *arg0, int arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: set_user_nice // with type: void set_user_nice(struct task_struct *, long) // with return type: void void set_user_nice(struct task_struct *arg0, long arg1) { // Void type return; } // Function: single_open // with type: int single_open(struct file *, int (*)(struct seq_file *, void *), void *) // with return type: int int __VERIFIER_nondet_int(void); int single_open(struct file *arg0, int (*arg1)(struct seq_file *, void *), void *arg2) { // Simple type return __VERIFIER_nondet_int(); } // Skip function: sprintf // Skip function: sscanf // Skip function: strcmp // Skip function: strcpy // Function: unregister_blkdev // with type: void unregister_blkdev(unsigned int, const char *) // with return type: void void unregister_blkdev(unsigned int arg0, const char *arg1) { // Void type return; } // Function: wake_up_process // with type: int wake_up_process(struct task_struct *) // with return type: int int __VERIFIER_nondet_int(void); int wake_up_process(struct task_struct *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: warn_slowpath_fmt // with type: void warn_slowpath_fmt(const char *, const int, const char *, ...) // with return type: void void warn_slowpath_fmt(const char *arg0, const int arg1, const char *arg2, ...) { // Void type return; } // Function: default_wake_function // with type: int default_wake_function(wait_queue_t *, unsigned int, int, void *) // with return type: int int __VERIFIER_nondet_int(void); int default_wake_function(wait_queue_t *arg0, unsigned int arg1, int arg2, void *arg3) { // Simple type return __VERIFIER_nondet_int(); }