// Skip function: __VERIFIER_error // Skip function: __VERIFIER_nondet_int // Skip function: __VERIFIER_nondet_ulong // Function: ___ratelimit // with type: int ___ratelimit(struct ratelimit_state *, const char *) // with return type: int int __VERIFIER_nondet_int(void); int ___ratelimit(struct ratelimit_state *arg0, const char *arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: __class_create // with type: struct class *__class_create(struct module *, const char *, struct lock_class_key *) // with return type: (struct class)* struct class *__class_create(struct module *arg0, const char *arg1, struct lock_class_key *arg2) { // Pointer type return ldv_malloc(sizeof(struct class)); } // Function: __copy_from_user_overflow // with type: void __copy_from_user_overflow() // with return type: void void __copy_from_user_overflow() { // Void type return; } // Function: __copy_to_user_overflow // with type: void __copy_to_user_overflow() // with return type: void void __copy_to_user_overflow() { // Void type return; } // Function: __dynamic_dev_dbg // with type: void __dynamic_dev_dbg(struct _ddebug *, const struct device *, const char *, ...) // with return type: void void __dynamic_dev_dbg(struct _ddebug *arg0, const struct device *arg1, const char *arg2, ...) { // Void type return; } // Function: __dynamic_netdev_dbg // with type: void __dynamic_netdev_dbg(struct _ddebug *, const struct net_device *, const char *, ...) // with return type: void void __dynamic_netdev_dbg(struct _ddebug *arg0, const struct net_device *arg1, const char *arg2, ...) { // Void type return; } // Function: __init_waitqueue_head // with type: void __init_waitqueue_head(wait_queue_head_t *, const char *, struct lock_class_key *) // with return type: void void __init_waitqueue_head(wait_queue_head_t *arg0, const char *arg1, struct lock_class_key *arg2) { // Void type return; } // Function: __init_work // with type: void __init_work(struct work_struct *, int) // with return type: void void __init_work(struct work_struct *arg0, int arg1) { // Void type return; } // 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: __might_fault // with type: void __might_fault(const char *, int) // with return type: void void __might_fault(const char *arg0, int arg1) { // Void type return; } // Function: __might_sleep // with type: void __might_sleep(const char *, int, int) // with return type: void void __might_sleep(const char *arg0, int arg1, int arg2) { // 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: __netdev_alloc_skb // with type: struct sk_buff *__netdev_alloc_skb(struct net_device *, unsigned int, gfp_t ) // with return type: (struct sk_buff)* struct sk_buff *__netdev_alloc_skb(struct net_device *arg0, unsigned int arg1, gfp_t arg2) { // Pointer type struct sk_buff *skb = ldv_malloc(sizeof(struct sk_buff)); if(skb) { skb->dev = arg0; skb->head = ldv_malloc(arg1); skb->data = skb->head; skb->tail = 0; } return skb; } // Function: __printk_ratelimit // with type: int __printk_ratelimit(const char *) // with return type: int int __VERIFIER_nondet_int(void); int __printk_ratelimit(const char *arg0) { // Simple type return __VERIFIER_nondet_int(); } // 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: __refrigerator // with type: bool __refrigerator(bool ) // with return type: bool bool __VERIFIER_nondet_bool(void); bool __refrigerator(bool arg0) { // Typedef type // Real type: _Bool // Simple type return __VERIFIER_nondet_bool(); } // Function: __udelay // with type: void __udelay(unsigned long) // with return type: void void __udelay(unsigned long arg0) { // 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: _dev_info // with type: void _dev_info(const struct device *, const char *, ...) // with return type: void void _dev_info(const struct device *arg0, const char *arg1, ...) { // Void type return; } // 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_bh // with type: void _raw_spin_lock_bh(raw_spinlock_t *) // with return type: void void _raw_spin_lock_bh(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_lock_irqsave // with type: unsigned long int _raw_spin_lock_irqsave(raw_spinlock_t *) // with return type: unsigned long int unsigned long __VERIFIER_nondet_ulong(void); unsigned long int _raw_spin_lock_irqsave(raw_spinlock_t *arg0) { // Simple type return __VERIFIER_nondet_ulong(); } // 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_bh // with type: void _raw_spin_unlock_bh(raw_spinlock_t *) // with return type: void void _raw_spin_unlock_bh(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: _raw_spin_unlock_irqrestore // with type: void _raw_spin_unlock_irqrestore(raw_spinlock_t *, unsigned long) // with return type: void void _raw_spin_unlock_irqrestore(raw_spinlock_t *arg0, unsigned long arg1) { // Void type return; } // Function: add_timer // with type: void add_timer(struct timer_list *) // with return type: void void add_timer(struct timer_list *arg0) { // Void type return; } // Function: add_uevent_var // with type: int add_uevent_var(struct kobj_uevent_env *, const char *, ...) // with return type: int int __VERIFIER_nondet_int(void); int add_uevent_var(struct kobj_uevent_env *arg0, const char *arg1, ...) { // Simple type return __VERIFIER_nondet_int(); } // Function: alloc_netdev_mqs // with type: struct net_device *alloc_netdev_mqs(int, const char *, unsigned char, void (*)(struct net_device *), unsigned int, unsigned int) // with return type: (struct net_device)* struct net_device *alloc_netdev_mqs(int arg0, const char *arg1, unsigned char arg2, void (*arg3)(struct net_device *), unsigned int arg4, unsigned int arg5) { // Pointer type return ldv_malloc(sizeof(struct net_device)); } // Skip function: calloc // 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: cdev_add // with type: int cdev_add(struct cdev *, dev_t , unsigned int) // with return type: int int __VERIFIER_nondet_int(void); int cdev_add(struct cdev *arg0, dev_t arg1, unsigned int arg2) { // Simple type return __VERIFIER_nondet_int(); } // Function: cdev_del // with type: void cdev_del(struct cdev *) // with return type: void void cdev_del(struct cdev *arg0) { // Void type return; } // Function: cdev_init // with type: void cdev_init(struct cdev *, const struct file_operations *) // with return type: void void cdev_init(struct cdev *arg0, const struct file_operations *arg1) { // Void type return; } // Function: class_destroy // with type: void class_destroy(struct class *) // with return type: void void class_destroy(struct class *arg0) { // Void type return; } // Function: consume_skb // with type: void consume_skb(struct sk_buff *) // with return type: void void consume_skb(struct sk_buff *arg0) { // Void type return; } // Function: crc32_be // with type: u32 crc32_be(u32 , const unsigned char *, size_t ) // with return type: u32 unsigned int __VERIFIER_nondet_uint(void); u32 crc32_be(u32 arg0, const unsigned char *arg1, size_t arg2) { // Typedef type // Real type: unsigned int // Simple type return __VERIFIER_nondet_uint(); } // Function: current_kernel_time // with type: struct timespec current_kernel_time() // with return type: struct timespec struct timespec current_kernel_time() { // Composite type return *(struct timespec *)ldv_xmalloc(sizeof(struct timespec)); } // Function: debug_check_no_locks_held // with type: void debug_check_no_locks_held() // with return type: void void debug_check_no_locks_held() { // Void type return; } // Function: default_llseek // with type: loff_t default_llseek(struct file *, loff_t , int) // with return type: loff_t long __VERIFIER_nondet_long(void); loff_t default_llseek(struct file *arg0, loff_t arg1, int arg2) { // Typedef type // Real type: __kernel_loff_t // Typedef type // Real type: long long // Simple type return __VERIFIER_nondet_long(); } // Function: del_timer // with type: int del_timer(struct timer_list *) // with return type: int int __VERIFIER_nondet_int(void); int del_timer(struct timer_list *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: dev_err // with type: void dev_err(const struct device *, const char *, ...) // with return type: void void dev_err(const struct device *arg0, const char *arg1, ...) { // Void type return; } // Function: dev_warn // with type: void dev_warn(const struct device *, const char *, ...) // with return type: void void dev_warn(const struct device *arg0, const char *arg1, ...) { // 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_destroy // with type: void device_destroy(struct class *, dev_t ) // with return type: void void device_destroy(struct class *arg0, dev_t arg1) { // Void type return; } // Function: down_interruptible // with type: int down_interruptible(struct semaphore *) // with return type: int int __VERIFIER_nondet_int(void); int down_interruptible(struct semaphore *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: down_read // with type: void down_read(struct rw_semaphore *) // with return type: void void down_read(struct rw_semaphore *arg0) { // Void type return; } // Function: down_write // with type: void down_write(struct rw_semaphore *) // with return type: void void down_write(struct rw_semaphore *arg0) { // Void type return; } // Function: eth_change_mtu // with type: int eth_change_mtu(struct net_device *, int) // with return type: int int __VERIFIER_nondet_int(void); int eth_change_mtu(struct net_device *arg0, int arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: eth_header // with type: int eth_header(struct sk_buff *, struct net_device *, unsigned short, const void *, const void *, unsigned int) // with return type: int int __VERIFIER_nondet_int(void); int eth_header(struct sk_buff *arg0, struct net_device *arg1, unsigned short arg2, const void *arg3, const void *arg4, unsigned int arg5) { // Simple type return __VERIFIER_nondet_int(); } // Function: eth_header_parse // with type: int eth_header_parse(const struct sk_buff *, unsigned char *) // with return type: int int __VERIFIER_nondet_int(void); int eth_header_parse(const struct sk_buff *arg0, unsigned char *arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: eth_validate_addr // with type: int eth_validate_addr(struct net_device *) // with return type: int int __VERIFIER_nondet_int(void); int eth_validate_addr(struct net_device *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: ether_setup // with type: void ether_setup(struct net_device *) // with return type: void void ether_setup(struct net_device *arg0) { // Void type return; } // Function: finish_wait // with type: void finish_wait(wait_queue_head_t *, wait_queue_t *) // with return type: void void finish_wait(wait_queue_head_t *arg0, wait_queue_t *arg1) { // Void type return; } // Function: flush_work // with type: bool flush_work(struct work_struct *) // with return type: bool bool __VERIFIER_nondet_bool(void); bool flush_work(struct work_struct *arg0) { // Typedef type // Real type: _Bool // Simple type return __VERIFIER_nondet_bool(); } // Function: flush_workqueue // with type: void flush_workqueue(struct workqueue_struct *) // with return type: void void flush_workqueue(struct workqueue_struct *arg0) { // Void type return; } // Function: free_netdev // with type: void free_netdev(struct net_device *) // with return type: void void free_netdev(struct net_device *arg0) { // Void type return; } // Function: freezing_slow_path // with type: bool freezing_slow_path(struct task_struct *) // with return type: bool bool __VERIFIER_nondet_bool(void); bool freezing_slow_path(struct task_struct *arg0) { // Typedef type // Real type: _Bool // Simple type return __VERIFIER_nondet_bool(); } // 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: 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: bool kthread_should_stop() // with return type: bool bool __VERIFIER_nondet_bool(void); bool kthread_should_stop() { // Typedef type // Real type: _Bool // Simple type return __VERIFIER_nondet_bool(); } // 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: ktime_get_with_offset // with type: ktime_t ktime_get_with_offset(enum tk_offsets ) // with return type: ktime_t ktime_t ktime_get_with_offset(enum tk_offsets arg0) { // Typedef type // Real type: union ktime // Composite type return *(union ktime *)ldv_xmalloc(sizeof(union ktime)); } // Function: ldv_initialize // with type: void ldv_initialize() // with return type: void void ldv_initialize() { // Void type return; } // Function: ldv_ndo_init_5 // with type: int ldv_ndo_init_5() // with return type: int int __VERIFIER_nondet_int(void); int ldv_ndo_init_5() { // Simple type return __VERIFIER_nondet_int(); } // Function: ldv_ndo_uninit_5 // with type: int ldv_ndo_uninit_5() // with return type: int int __VERIFIER_nondet_int(void); int ldv_ndo_uninit_5() { // Simple type return __VERIFIER_nondet_int(); } // Function: ldv_release_11 // with type: int ldv_release_11() // with return type: int int __VERIFIER_nondet_int(void); int ldv_release_11() { // 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; } // Function: lockdep_init_map // with type: void lockdep_init_map(struct lockdep_map *, const char *, struct lock_class_key *, int) // with return type: void void lockdep_init_map(struct lockdep_map *arg0, const char *arg1, struct lock_class_key *arg2, int arg3) { // Void type return; } // Skip function: malloc // Skip function: memcmp // Skip function: memcpy // Function: memdup_user // with type: void *memdup_user(const void *, size_t ) // with return type: (void)* void *memdup_user(const void *arg0, size_t arg1) { // Pointer type return ldv_malloc(0UL); } // Skip function: memset // Function: msleep // with type: void msleep(unsigned int) // with return type: void void msleep(unsigned int arg0) { // Void type return; } // Function: msleep_interruptible // with type: unsigned long int msleep_interruptible(unsigned int) // with return type: unsigned long int unsigned long __VERIFIER_nondet_ulong(void); unsigned long int msleep_interruptible(unsigned int arg0) { // Simple type return __VERIFIER_nondet_ulong(); } // Function: mutex_lock_interruptible_nested // with type: int mutex_lock_interruptible_nested(struct mutex *, unsigned int) // with return type: int int __VERIFIER_nondet_int(void); int mutex_lock_interruptible_nested(struct mutex *arg0, unsigned int arg1) { // 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: netif_rx // with type: int netif_rx(struct sk_buff *) // with return type: int int __VERIFIER_nondet_int(void); int netif_rx(struct sk_buff *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: noop_llseek // with type: loff_t noop_llseek(struct file *, loff_t , int) // with return type: loff_t long __VERIFIER_nondet_long(void); loff_t noop_llseek(struct file *arg0, loff_t arg1, int arg2) { // Typedef type // Real type: __kernel_loff_t // Typedef type // Real type: long long // Simple type return __VERIFIER_nondet_long(); } // Function: prepare_to_wait_event // with type: long int prepare_to_wait_event(wait_queue_head_t *, wait_queue_t *, int) // with return type: long int long __VERIFIER_nondet_long(void); long int prepare_to_wait_event(wait_queue_head_t *arg0, wait_queue_t *arg1, int arg2) { // Simple type return __VERIFIER_nondet_long(); } // 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: queue_delayed_work_on // with type: bool queue_delayed_work_on(int, struct workqueue_struct *, struct delayed_work *, unsigned long) // with return type: bool bool __VERIFIER_nondet_bool(void); bool queue_delayed_work_on(int arg0, struct workqueue_struct *arg1, struct delayed_work *arg2, unsigned long arg3) { // Typedef type // Real type: _Bool // Simple type return __VERIFIER_nondet_bool(); } // Function: queue_work_on // with type: bool queue_work_on(int, struct workqueue_struct *, struct work_struct *) // with return type: bool bool __VERIFIER_nondet_bool(void); bool queue_work_on(int arg0, struct workqueue_struct *arg1, struct work_struct *arg2) { // Typedef type // Real type: _Bool // Simple type return __VERIFIER_nondet_bool(); } // Function: register_chrdev_region // with type: int register_chrdev_region(dev_t , unsigned int, const char *) // with return type: int int __VERIFIER_nondet_int(void); int register_chrdev_region(dev_t arg0, unsigned int arg1, const char *arg2) { // Simple type return __VERIFIER_nondet_int(); } // Function: register_netdev // with type: int register_netdev(struct net_device *) // with return type: int int __VERIFIER_nondet_int(void); int register_netdev(struct net_device *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: schedule // with type: void schedule() // with return type: void void schedule() { // 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: set_freezable // with type: bool set_freezable() // with return type: bool bool __VERIFIER_nondet_bool(void); bool set_freezable() { // Typedef type // Real type: _Bool // Simple type return __VERIFIER_nondet_bool(); } // Function: set_normalized_timespec // with type: void set_normalized_timespec(struct timespec *, time_t , s64 ) // with return type: void void set_normalized_timespec(struct timespec *arg0, time_t arg1, s64 arg2) { // Void type return; } // Function: skb_pull // with type: unsigned char *skb_pull(struct sk_buff *, unsigned int) // with return type: (unsigned char)* unsigned char *skb_pull(struct sk_buff *arg0, unsigned int arg1) { // Pointer type return ldv_malloc(sizeof(unsigned char)); } // Function: skb_push // with type: unsigned char *skb_push(struct sk_buff *, unsigned int) // with return type: (unsigned char)* unsigned char *skb_push(struct sk_buff *arg0, unsigned int arg1) { // Pointer type return ldv_malloc(sizeof(unsigned char)); } // Function: skb_put // with type: unsigned char *skb_put(struct sk_buff *, unsigned int) // with return type: (unsigned char)* unsigned char *skb_put(struct sk_buff *arg0, unsigned int arg1) { unsigned char *ret_val = arg0->data + arg0->tail; // a more precise implementation of skb_put would actually re-allocate memory // here arg0->tail += arg1; // Pointer type return ret_val; } // Skip function: snprintf // Skip function: strncmp // Function: symbol_put_addr // with type: void symbol_put_addr(void *) // with return type: void void symbol_put_addr(void *arg0) { // Void type return; } // Function: unregister_chrdev_region // with type: void unregister_chrdev_region(dev_t , unsigned int) // with return type: void void unregister_chrdev_region(dev_t arg0, unsigned int arg1) { // Void type return; } // Function: unregister_netdev // with type: void unregister_netdev(struct net_device *) // with return type: void void unregister_netdev(struct net_device *arg0) { // Void type return; } // Function: up // with type: void up(struct semaphore *) // with return type: void void up(struct semaphore *arg0) { // Void type return; } // Function: up_read // with type: void up_read(struct rw_semaphore *) // with return type: void void up_read(struct rw_semaphore *arg0) { // Void type return; } // Function: up_write // with type: void up_write(struct rw_semaphore *) // with return type: void void up_write(struct rw_semaphore *arg0) { // Void type return; } // Function: vfree // with type: void vfree(const void *) // with return type: void void vfree(const void *arg0) { // Void type return; } // Function: vmalloc // with type: void *vmalloc(unsigned long) // with return type: (void)* void *vmalloc(unsigned long arg0) { // Pointer type return ldv_malloc(arg0); } // 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_null // with type: void warn_slowpath_null(const char *, const int) // with return type: void void warn_slowpath_null(const char *arg0, const int arg1) { // Void type return; }