// Skip function: __VERIFIER_error // Skip function: __VERIFIER_nondet_int // Skip function: __VERIFIER_nondet_size_t // Skip function: __VERIFIER_nondet_u16 // Skip function: __VERIFIER_nondet_u32 // Skip function: __VERIFIER_nondet_u8 // Skip function: __VERIFIER_nondet_uint // Skip function: __VERIFIER_nondet_ulong // Function: __alloc_workqueue_key // with type: struct workqueue_struct *__alloc_workqueue_key(const char *, unsigned int, int, struct lock_class_key *, const char *, ...) // with return type: (struct workqueue_struct)* struct workqueue_struct *__alloc_workqueue_key(const char *arg0, unsigned int arg1, int arg2, struct lock_class_key *arg3, const char *arg4, ...) { // Pointer type return ldv_malloc(0UL); } // 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: __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: __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: __phys_addr // with type: unsigned long int __phys_addr(unsigned long) // with return type: unsigned long int unsigned long __VERIFIER_nondet_ulong(void); unsigned long int __phys_addr(unsigned long arg0) { // Simple type return __VERIFIER_nondet_ulong(); } // Function: __platform_driver_register // with type: int __platform_driver_register(struct platform_driver *, struct module *) // with return type: int int __VERIFIER_nondet_int(void); int __platform_driver_register(struct platform_driver *arg0, struct module *arg1) { // Simple type return __VERIFIER_nondet_int(); } // 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: _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; } // Skip function: calloc // Function: complete // with type: void complete(struct completion *) // with return type: void void complete(struct completion *arg0) { // Void type return; } // Function: debug_dma_alloc_coherent // with type: void debug_dma_alloc_coherent(struct device *, size_t , dma_addr_t , void *) // with return type: void void debug_dma_alloc_coherent(struct device *arg0, size_t arg1, dma_addr_t arg2, void *arg3) { // Void type return; } // Function: debug_dma_free_coherent // with type: void debug_dma_free_coherent(struct device *, size_t , void *, dma_addr_t ) // with return type: void void debug_dma_free_coherent(struct device *arg0, size_t arg1, void *arg2, dma_addr_t arg3) { // Void type return; } // Function: debug_dma_map_page // with type: void debug_dma_map_page(struct device *, struct page *, size_t , size_t , int, dma_addr_t , bool ) // with return type: void void debug_dma_map_page(struct device *arg0, struct page *arg1, size_t arg2, size_t arg3, int arg4, dma_addr_t arg5, bool arg6) { // Void type return; } // Function: debug_dma_unmap_page // with type: void debug_dma_unmap_page(struct device *, dma_addr_t , size_t , int, bool ) // with return type: void void debug_dma_unmap_page(struct device *arg0, dma_addr_t arg1, size_t arg2, int arg3, bool arg4) { // Void type return; } // Function: debug_lockdep_rcu_enabled // with type: int debug_lockdep_rcu_enabled() // with return type: int int __VERIFIER_nondet_int(void); int debug_lockdep_rcu_enabled() { // Simple type return __VERIFIER_nondet_int(); } // 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 *, umode_t , struct dentry *, void *, const struct file_operations *) // with return type: (struct dentry)* struct dentry *debugfs_create_file(const char *arg0, umode_t arg1, struct dentry *arg2, void *arg3, const struct file_operations *arg4) { // Pointer type return ldv_malloc(sizeof(struct dentry)); } // Function: debugfs_remove_recursive // with type: void debugfs_remove_recursive(struct dentry *) // with return type: void void debugfs_remove_recursive(struct dentry *arg0) { // Void type return; } // Function: destroy_workqueue // with type: void destroy_workqueue(struct workqueue_struct *) // with return type: void void destroy_workqueue(struct workqueue_struct *arg0) { // Void type return; } // Function: disable_irq_nosync // with type: void disable_irq_nosync(unsigned int) // with return type: void void disable_irq_nosync(unsigned int arg0) { // Void type return; } // Function: enable_irq // with type: void enable_irq(unsigned int) // with return type: void void enable_irq(unsigned int arg0) { // Void type return; } // 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_irq // with type: void free_irq(unsigned int, void *) // with return type: void void free_irq(unsigned int arg0, void *arg1) { // Void type return; } // Function: ieee80211_alloc_hw // with type: struct ieee80211_hw *ieee80211_alloc_hw(size_t , const struct ieee80211_ops *) // with return type: (struct ieee80211_hw)* struct ieee80211_hw *ieee80211_alloc_hw(size_t arg0, const struct ieee80211_ops *arg1) { // Pointer type return ldv_malloc(sizeof(struct ieee80211_hw)); } // Function: ieee80211_beacon_get_tim // with type: struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw *, struct ieee80211_vif *, u16 *, u16 *) // with return type: (struct sk_buff)* struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw *arg0, struct ieee80211_vif *arg1, u16 *arg2, u16 *arg3) { // Pointer type return ldv_malloc(sizeof(struct sk_buff)); } // Function: ieee80211_connection_loss // with type: void ieee80211_connection_loss(struct ieee80211_vif *) // with return type: void void ieee80211_connection_loss(struct ieee80211_vif *arg0) { // Void type return; } // Function: ieee80211_find_sta // with type: struct ieee80211_sta *ieee80211_find_sta(struct ieee80211_vif *, const u8 *) // with return type: (struct ieee80211_sta)* struct ieee80211_sta *ieee80211_find_sta(struct ieee80211_vif *arg0, const u8 *arg1) { // Pointer type return ldv_malloc(sizeof(struct ieee80211_sta)); } // Function: ieee80211_free_hw // with type: void ieee80211_free_hw(struct ieee80211_hw *) // with return type: void void ieee80211_free_hw(struct ieee80211_hw *arg0) { // Void type return; } // Function: ieee80211_free_txskb // with type: void ieee80211_free_txskb(struct ieee80211_hw *, struct sk_buff *) // with return type: void void ieee80211_free_txskb(struct ieee80211_hw *arg0, struct sk_buff *arg1) { // Void type return; } // Function: ieee80211_proberesp_get // with type: struct sk_buff *ieee80211_proberesp_get(struct ieee80211_hw *, struct ieee80211_vif *) // with return type: (struct sk_buff)* struct sk_buff *ieee80211_proberesp_get(struct ieee80211_hw *arg0, struct ieee80211_vif *arg1) { // Pointer type return ldv_malloc(sizeof(struct sk_buff)); } // Function: ieee80211_register_hw // with type: int ieee80211_register_hw(struct ieee80211_hw *) // with return type: int int __VERIFIER_nondet_int(void); int ieee80211_register_hw(struct ieee80211_hw *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: ieee80211_report_low_ack // with type: void ieee80211_report_low_ack(struct ieee80211_sta *, u32 ) // with return type: void void ieee80211_report_low_ack(struct ieee80211_sta *arg0, u32 arg1) { // Void type return; } // Function: ieee80211_rx_irqsafe // with type: void ieee80211_rx_irqsafe(struct ieee80211_hw *, struct sk_buff *) // with return type: void void ieee80211_rx_irqsafe(struct ieee80211_hw *arg0, struct sk_buff *arg1) { // Void type return; } // Function: ieee80211_start_tx_ba_cb_irqsafe // with type: void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_vif *, const u8 *, u16 ) // with return type: void void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_vif *arg0, const u8 *arg1, u16 arg2) { // Void type return; } // Function: ieee80211_start_tx_ba_session // with type: int ieee80211_start_tx_ba_session(struct ieee80211_sta *, u16 , u16 ) // with return type: int int __VERIFIER_nondet_int(void); int ieee80211_start_tx_ba_session(struct ieee80211_sta *arg0, u16 arg1, u16 arg2) { // Simple type return __VERIFIER_nondet_int(); } // Function: ieee80211_stop_queues // with type: void ieee80211_stop_queues(struct ieee80211_hw *) // with return type: void void ieee80211_stop_queues(struct ieee80211_hw *arg0) { // Void type return; } // Function: ieee80211_stop_tx_ba_cb_irqsafe // with type: void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_vif *, const u8 *, u16 ) // with return type: void void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_vif *arg0, const u8 *arg1, u16 arg2) { // Void type return; } // Function: ieee80211_tx_status_irqsafe // with type: void ieee80211_tx_status_irqsafe(struct ieee80211_hw *, struct sk_buff *) // with return type: void void ieee80211_tx_status_irqsafe(struct ieee80211_hw *arg0, struct sk_buff *arg1) { // Void type return; } // Function: ieee80211_unregister_hw // with type: void ieee80211_unregister_hw(struct ieee80211_hw *) // with return type: void void ieee80211_unregister_hw(struct ieee80211_hw *arg0) { // Void type return; } // Function: ieee80211_wake_queues // with type: void ieee80211_wake_queues(struct ieee80211_hw *) // with return type: void void ieee80211_wake_queues(struct ieee80211_hw *arg0) { // Void type return; } // Function: ioremap_nocache // with type: void *ioremap_nocache(resource_size_t , unsigned long) // with return type: (void)* void *ioremap_nocache(resource_size_t arg0, unsigned long arg1) { // Pointer type return ldv_malloc(0UL); } // Function: iounmap // with type: void iounmap(volatile void *) // with return type: void void iounmap(volatile void *arg0) { // Void type return; } // Function: irq_set_irq_wake // with type: int irq_set_irq_wake(unsigned int, unsigned int) // with return type: int int __VERIFIER_nondet_int(void); int irq_set_irq_wake(unsigned int arg0, unsigned int arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: jiffies_to_msecs // with type: unsigned int jiffies_to_msecs(const unsigned long) // with return type: unsigned int unsigned int __VERIFIER_nondet_uint(void); unsigned int jiffies_to_msecs(const unsigned long arg0) { // Simple type return __VERIFIER_nondet_uint(); } // Skip function: kfree // Function: kmemdup // with type: void *kmemdup(const void *, size_t , gfp_t ) // with return type: (void)* void *kmemdup(const void *arg0, size_t arg1, gfp_t arg2) { // Pointer type return ldv_malloc(0UL); } // Function: kstrtouint // with type: int kstrtouint(const char *, unsigned int, unsigned int *) // with return type: int int __VERIFIER_nondet_int(void); int kstrtouint(const char *arg0, unsigned int arg1, unsigned int *arg2) { // Simple type return __VERIFIER_nondet_int(); } // Function: ldv_release_3 // with type: int ldv_release_3() // with return type: int int __VERIFIER_nondet_int(void); int ldv_release_3() { // Simple type return __VERIFIER_nondet_int(); } // Function: ldv_release_4 // with type: int ldv_release_4() // with return type: int int __VERIFIER_nondet_int(void); int ldv_release_4() { // 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_acquire // with type: void lock_acquire(struct lockdep_map *, unsigned int, int, int, int, struct lockdep_map *, unsigned long) // with return type: void void lock_acquire(struct lockdep_map *arg0, unsigned int arg1, int arg2, int arg3, int arg4, struct lockdep_map *arg5, unsigned long arg6) { // Void type return; } // Function: lock_release // with type: void lock_release(struct lockdep_map *, int, unsigned long) // with return type: void void lock_release(struct lockdep_map *arg0, int arg1, unsigned long arg2) { // 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; } // Function: lockdep_rcu_suspicious // with type: void lockdep_rcu_suspicious(const char *, const int, const char *) // with return type: void void lockdep_rcu_suspicious(const char *arg0, const int arg1, const char *arg2) { // Void type return; } // Skip function: malloc // Skip function: memcmp // Skip function: memcpy // Skip function: memset // Function: might_fault // with type: void might_fault() // with return type: void void might_fault() { // Void type return; } // Function: msecs_to_jiffies // with type: unsigned long int msecs_to_jiffies(const unsigned int) // with return type: unsigned long int unsigned long __VERIFIER_nondet_ulong(void); unsigned long int msecs_to_jiffies(const unsigned int arg0) { // Simple type return __VERIFIER_nondet_ulong(); } // Function: mutex_destroy // with type: void mutex_destroy(struct mutex *) // with return type: void void mutex_destroy(struct mutex *arg0) { // Void type return; } // 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: platform_driver_unregister // with type: void platform_driver_unregister(struct platform_driver *) // with return type: void void platform_driver_unregister(struct platform_driver *arg0) { // Void type return; } // Function: platform_get_resource_byname // with type: struct resource *platform_get_resource_byname(struct platform_device *, unsigned int, const char *) // with return type: (struct resource)* struct resource *platform_get_resource_byname(struct platform_device *arg0, unsigned int arg1, const char *arg2) { // Pointer type return ldv_malloc(sizeof(struct resource)); } // Function: print_hex_dump // with type: void print_hex_dump(const char *, const char *, int, int, int, const void *, size_t , bool ) // with return type: void void print_hex_dump(const char *arg0, const char *arg1, int arg2, int arg3, int arg4, const void *arg5, size_t arg6, bool arg7) { // 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: 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: rcu_is_watching // with type: bool rcu_is_watching() // with return type: bool bool __VERIFIER_nondet_bool(void); bool rcu_is_watching() { // Typedef type // Real type: _Bool // Simple type return __VERIFIER_nondet_bool(); } // Function: release_firmware // with type: void release_firmware(const struct firmware *) // with return type: void void release_firmware(const struct firmware *arg0) { // Void type return; } // Function: request_firmware // with type: int request_firmware(const struct firmware **, const char *, struct device *) // with return type: int int __VERIFIER_nondet_int(void); int request_firmware(const struct firmware **arg0, const char *arg1, struct device *arg2) { // Simple type return __VERIFIER_nondet_int(); } // Function: request_threaded_irq // with type: int request_threaded_irq(unsigned int, irqreturn_t (*)(int, void *), irqreturn_t (*)(int, void *), unsigned long, const char *, void *) // with return type: int int __VERIFIER_nondet_int(void); int request_threaded_irq(unsigned int arg0, irqreturn_t (*arg1)(int, void *), irqreturn_t (*arg2)(int, void *), unsigned long arg3, const char *arg4, void *arg5) { // Simple type return __VERIFIER_nondet_int(); } // Function: simple_open // with type: int simple_open(struct inode *, struct file *) // with return type: int int __VERIFIER_nondet_int(void); int simple_open(struct inode *arg0, struct file *arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: simple_read_from_buffer // with type: ssize_t simple_read_from_buffer(void *, size_t , loff_t *, const void *, size_t ) // with return type: ssize_t long __VERIFIER_nondet_long(void); ssize_t simple_read_from_buffer(void *arg0, size_t arg1, loff_t *arg2, const void *arg3, size_t arg4) { // Typedef type // Real type: __kernel_ssize_t // Typedef type // Real type: __kernel_long_t // Typedef type // Real type: long // Simple type return __VERIFIER_nondet_long(); } // 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_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: strsep // with type: char *strsep(char **, const char *) // with return type: (char)* char *strsep(char **arg0, const char *arg1) { // Pointer type return ldv_malloc(sizeof(char)); } // Function: wait_for_completion_timeout // with type: unsigned long int wait_for_completion_timeout(struct completion *, unsigned long) // with return type: unsigned long int unsigned long __VERIFIER_nondet_ulong(void); unsigned long int wait_for_completion_timeout(struct completion *arg0, unsigned long arg1) { // Simple type return __VERIFIER_nondet_ulong(); } // 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; }