// Skip function: __VERIFIER_error // Skip function: __VERIFIER_nondet_int // Function: __alloc_skb // with type: struct sk_buff *__alloc_skb(unsigned int, gfp_t , int, int) // with return type: (struct sk_buff)* struct sk_buff *__alloc_skb(unsigned int arg0, gfp_t arg1, int arg2, int arg3) { // Pointer type struct sk_buff *skb = ldv_malloc(sizeof(struct sk_buff)); if(skb) { skb->head = ldv_malloc(arg0); skb->data = skb->head; skb->tail = 0; } return skb; } // 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: __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; } // 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: __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: __rwlock_init // with type: void __rwlock_init(rwlock_t *, const char *, struct lock_class_key *) // with return type: void void __rwlock_init(rwlock_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_read_lock // with type: void _raw_read_lock(rwlock_t *) // with return type: void void _raw_read_lock(rwlock_t *arg0) { // Void type return; } // Function: _raw_read_lock_bh // with type: void _raw_read_lock_bh(rwlock_t *) // with return type: void void _raw_read_lock_bh(rwlock_t *arg0) { // Void type return; } // Function: _raw_read_lock_irqsave // with type: unsigned long int _raw_read_lock_irqsave(rwlock_t *) // with return type: unsigned long int unsigned long __VERIFIER_nondet_ulong(void); unsigned long int _raw_read_lock_irqsave(rwlock_t *arg0) { // Simple type return __VERIFIER_nondet_ulong(); } // Function: _raw_read_unlock // with type: void _raw_read_unlock(rwlock_t *) // with return type: void void _raw_read_unlock(rwlock_t *arg0) { // Void type return; } // Function: _raw_read_unlock_bh // with type: void _raw_read_unlock_bh(rwlock_t *) // with return type: void void _raw_read_unlock_bh(rwlock_t *arg0) { // Void type return; } // Function: _raw_read_unlock_irqrestore // with type: void _raw_read_unlock_irqrestore(rwlock_t *, unsigned long) // with return type: void void _raw_read_unlock_irqrestore(rwlock_t *arg0, unsigned long arg1) { // 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_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: _raw_write_lock_bh // with type: void _raw_write_lock_bh(rwlock_t *) // with return type: void void _raw_write_lock_bh(rwlock_t *arg0) { // Void type return; } // Function: _raw_write_lock_irqsave // with type: unsigned long int _raw_write_lock_irqsave(rwlock_t *) // with return type: unsigned long int unsigned long __VERIFIER_nondet_ulong(void); unsigned long int _raw_write_lock_irqsave(rwlock_t *arg0) { // Simple type return __VERIFIER_nondet_ulong(); } // Function: _raw_write_unlock_bh // with type: void _raw_write_unlock_bh(rwlock_t *) // with return type: void void _raw_write_unlock_bh(rwlock_t *arg0) { // Void type return; } // Function: _raw_write_unlock_irqrestore // with type: void _raw_write_unlock_irqrestore(rwlock_t *, unsigned long) // with return type: void void _raw_write_unlock_irqrestore(rwlock_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: class_find_device // with type: struct device *class_find_device(struct class *, struct device *, void *, int (*)(struct device *, void *)) // with return type: (struct device)* struct device *class_find_device(struct class *arg0, struct device *arg1, void *arg2, int (*arg3)(struct device *, void *)) { // Pointer type return ldv_malloc(sizeof(struct device)); } // Function: class_for_each_device // with type: int class_for_each_device(struct class *, struct device *, void *, int (*)(struct device *, void *)) // with return type: int int __VERIFIER_nondet_int(void); int class_for_each_device(struct class *arg0, struct device *arg1, void *arg2, int (*arg3)(struct device *, void *)) { // Simple type return __VERIFIER_nondet_int(); } // Function: class_unregister // with type: void class_unregister(struct class *) // with return type: void void class_unregister(struct class *arg0) { // Void type return; } // Function: complete // with type: void complete(struct completion *) // with return type: void void complete(struct completion *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: 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_get_drvdata // with type: void *dev_get_drvdata(const struct device *) // with return type: (void)* void *dev_get_drvdata(const struct device *arg0) { // Pointer type return ldv_malloc(0UL); } // Function: dev_set_drvdata // with type: int dev_set_drvdata(struct device *, void *) // with return type: int int __VERIFIER_nondet_int(void); int dev_set_drvdata(struct device *arg0, void *arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: dev_set_name // with type: int dev_set_name(struct device *, const char *, ...) // with return type: int int __VERIFIER_nondet_int(void); int dev_set_name(struct device *arg0, const char *arg1, ...) { // Simple type return __VERIFIER_nondet_int(); } // Function: device_add // with type: int device_add(struct device *) // with return type: int int __VERIFIER_nondet_int(void); int device_add(struct device *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: device_del // with type: void device_del(struct device *) // with return type: void void device_del(struct device *arg0) { // Void type return; } // Function: device_initialize // with type: void device_initialize(struct device *) // with return type: void void device_initialize(struct device *arg0) { // Void type return; } // Function: device_rename // with type: int device_rename(struct device *, const char *) // with return type: int int __VERIFIER_nondet_int(void); int device_rename(struct device *arg0, const char *arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: do_gettimeofday // with type: void do_gettimeofday(struct timeval *) // with return type: void void do_gettimeofday(struct timeval *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_sync // with type: bool flush_work_sync(struct work_struct *) // with return type: bool bool __VERIFIER_nondet_bool(void); bool flush_work_sync(struct work_struct *arg0) { // Typedef type // Real type: _Bool // Simple type return __VERIFIER_nondet_bool(); } // Function: get_random_bytes // with type: void get_random_bytes(void *, int) // with return type: void void get_random_bytes(void *arg0, int arg1) { // Void type return; } // Function: init_timer_key // with type: void init_timer_key(struct timer_list *, const char *, struct lock_class_key *) // with return type: void void init_timer_key(struct timer_list *arg0, const char *arg1, struct lock_class_key *arg2) { // Void type return; } // Skip function: kfree // Function: kfree_skb // with type: void kfree_skb(struct sk_buff *) // with return type: void void kfree_skb(struct sk_buff *arg0) { // Void type return; } // 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: ktime_get_real // with type: ktime_t ktime_get_real() // with return type: ktime_t ktime_t ktime_get_real() { // Typedef type // Real type: union ktime // Composite type return *(union ktime *)ldv_xmalloc(sizeof(union ktime)); } // 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; } // Function: lock_sock_nested // with type: void lock_sock_nested(struct sock *, int) // with return type: void void lock_sock_nested(struct sock *arg0, int arg1) { // 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: memcpy // Function: memcpy_fromiovec // with type: int memcpy_fromiovec(unsigned char *, struct iovec *, int) // with return type: int int __VERIFIER_nondet_int(void); int memcpy_fromiovec(unsigned char *arg0, struct iovec *arg1, int arg2) { // Simple type return __VERIFIER_nondet_int(); } // 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: ns_to_timeval // with type: struct timeval ns_to_timeval(const s64 ) // with return type: struct timeval struct timeval ns_to_timeval(const s64 arg0) { // Composite type return *(struct timeval *)ldv_xmalloc(sizeof(struct timeval)); } // Function: prepare_to_wait // with type: void prepare_to_wait(wait_queue_head_t *, wait_queue_t *, int) // with return type: void void prepare_to_wait(wait_queue_head_t *arg0, wait_queue_t *arg1, int arg2) { // 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: put_cmsg // with type: int put_cmsg(struct msghdr *, int, int, int, void *) // with return type: int int __VERIFIER_nondet_int(void); int put_cmsg(struct msghdr *arg0, int arg1, int arg2, int arg3, void *arg4) { // Simple type return __VERIFIER_nondet_int(); } // Function: put_device // with type: void put_device(struct device *) // with return type: void void put_device(struct device *arg0) { // Void type return; } // Function: release_sock // with type: void release_sock(struct sock *) // with return type: void void release_sock(struct sock *arg0) { // Void type return; } // Function: schedule // with type: void schedule() // with return type: void void schedule() { // Void type return; } // Function: schedule_work // with type: int schedule_work(struct work_struct *) // with return type: int int __VERIFIER_nondet_int(void); int schedule_work(struct work_struct *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: sk_alloc // with type: struct sock *sk_alloc(struct net *, int, gfp_t , struct proto *) // with return type: (struct sock)* struct sock *sk_alloc(struct net *arg0, int arg1, gfp_t arg2, struct proto *arg3) { // Pointer type return ldv_malloc(sizeof(struct sock)); } // Function: sk_free // with type: void sk_free(struct sock *) // with return type: void void sk_free(struct sock *arg0) { // Void type return; } // Function: skb_clone // with type: struct sk_buff *skb_clone(struct sk_buff *, gfp_t ) // with return type: (struct sk_buff)* struct sk_buff *skb_clone(struct sk_buff *arg0, gfp_t arg1) { // Pointer type return ldv_malloc(sizeof(struct sk_buff)); } // Function: skb_copy // with type: struct sk_buff *skb_copy(const struct sk_buff *, gfp_t ) // with return type: (struct sk_buff)* struct sk_buff *skb_copy(const struct sk_buff *arg0, gfp_t arg1) { // Pointer type return ldv_malloc(sizeof(struct sk_buff)); } // Function: skb_copy_datagram_iovec // with type: int skb_copy_datagram_iovec(const struct sk_buff *, int, struct iovec *, int) // with return type: int int __VERIFIER_nondet_int(void); int skb_copy_datagram_iovec(const struct sk_buff *arg0, int arg1, struct iovec *arg2, int arg3) { // Simple type return __VERIFIER_nondet_int(); } // Function: skb_dequeue // with type: struct sk_buff *skb_dequeue(struct sk_buff_head *) // with return type: (struct sk_buff)* struct sk_buff *skb_dequeue(struct sk_buff_head *arg0) { // Pointer type return ldv_malloc(sizeof(struct sk_buff)); } // Function: skb_free_datagram // with type: void skb_free_datagram(struct sock *, struct sk_buff *) // with return type: void void skb_free_datagram(struct sock *arg0, struct sk_buff *arg1) { // 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; } // Function: skb_queue_head // with type: void skb_queue_head(struct sk_buff_head *, struct sk_buff *) // with return type: void void skb_queue_head(struct sk_buff_head *arg0, struct sk_buff *arg1) { // Void type return; } // Function: skb_queue_purge // with type: void skb_queue_purge(struct sk_buff_head *) // with return type: void void skb_queue_purge(struct sk_buff_head *arg0) { // Void type return; } // Function: skb_queue_tail // with type: void skb_queue_tail(struct sk_buff_head *, struct sk_buff *) // with return type: void void skb_queue_tail(struct sk_buff_head *arg0, struct sk_buff *arg1) { // Void type return; } // Function: skb_recv_datagram // with type: struct sk_buff *skb_recv_datagram(struct sock *, unsigned int, int, int *) // with return type: (struct sk_buff)* struct sk_buff *skb_recv_datagram(struct sock *arg0, unsigned int arg1, int arg2, int *arg3) { // Pointer type return ldv_malloc(sizeof(struct sk_buff)); } // Function: skb_trim // with type: void skb_trim(struct sk_buff *, unsigned int) // with return type: void void skb_trim(struct sk_buff *arg0, unsigned int arg1) { // Void type return; } // Function: sock_init_data // with type: void sock_init_data(struct socket *, struct sock *) // with return type: void void sock_init_data(struct socket *arg0, struct sock *arg1) { // Void type return; } // Function: sock_queue_rcv_skb // with type: int sock_queue_rcv_skb(struct sock *, struct sk_buff *) // with return type: int int __VERIFIER_nondet_int(void); int sock_queue_rcv_skb(struct sock *arg0, struct sk_buff *arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: sock_register // with type: int sock_register(const struct net_proto_family *) // with return type: int int __VERIFIER_nondet_int(void); int sock_register(const struct net_proto_family *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: sock_unregister // with type: void sock_unregister(int) // with return type: void void sock_unregister(int arg0) { // Void type return; } // Skip function: sprintf // Skip function: strcpy // Skip function: strlen // Skip function: strncpy // Function: wait_for_completion // with type: void wait_for_completion(struct completion *) // with return type: void void wait_for_completion(struct completion *arg0) { // 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: 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; } // Function: autoremove_wake_function // with type: int autoremove_wake_function(wait_queue_t *, unsigned int, int, void *) // with return type: int int __VERIFIER_nondet_int(void); int autoremove_wake_function(wait_queue_t *arg0, unsigned int arg1, int arg2, void * arg3) { // Simple type return __VERIFIER_nondet_int(); }