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; } // Skip function: __VERIFIER_error // Skip function: __VERIFIER_nondet_int // 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: __netif_schedule // with type: void __netif_schedule(struct Qdisc *) // with return type: void void __netif_schedule(struct Qdisc *arg0) { // Void type return; } // Function: __pci_register_driver // with type: int __pci_register_driver(struct pci_driver *, struct module *, const char *) // with return type: int int __VERIFIER_nondet_int(void); int __pci_register_driver(struct pci_driver *arg0, struct module *arg1, const char *arg2) { // 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: __tasklet_schedule // with type: void __tasklet_schedule(struct tasklet_struct *) // with return type: void void __tasklet_schedule(struct tasklet_struct *arg0) { // 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_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: alloc_hdlcdev // with type: struct net_device *alloc_hdlcdev(void *) // with return type: (struct net_device)* struct net_device *alloc_hdlcdev(void *arg0) { // Pointer type return ldv_malloc(sizeof(struct net_device)); } // 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: 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: 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: dev_alloc_skb // with type: struct sk_buff *dev_alloc_skb(unsigned int) // with return type: (struct sk_buff)* struct sk_buff *dev_alloc_skb(unsigned int arg0) { // Pointer type return ldv_malloc(sizeof(struct sk_buff)); } // 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: 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: 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: hdlc_close // with type: void hdlc_close(struct net_device *) // with return type: void void hdlc_close(struct net_device *arg0) { // Void type return; } // Function: hdlc_ioctl // with type: int hdlc_ioctl(struct net_device *, struct ifreq *, int) // with return type: int int __VERIFIER_nondet_int(void); int hdlc_ioctl(struct net_device *arg0, struct ifreq *arg1, int arg2) { // Simple type return __VERIFIER_nondet_int(); } // Function: hdlc_open // with type: int hdlc_open(struct net_device *) // with return type: int int __VERIFIER_nondet_int(void); int hdlc_open(struct net_device *arg0) { // Simple type return __VERIFIER_nondet_int(); } // 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; } // Skip function: kfree // 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: 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: might_fault // with type: void might_fault() // with return type: void void might_fault() { // Void type return; } // Function: netif_carrier_off // with type: void netif_carrier_off(struct net_device *) // with return type: void void netif_carrier_off(struct net_device *arg0) { // Void type return; } // Function: netif_carrier_on // with type: void netif_carrier_on(struct net_device *) // with return type: void void netif_carrier_on(struct net_device *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: netpoll_trap // with type: int netpoll_trap() // with return type: int int __VERIFIER_nondet_int(void); int netpoll_trap() { // Simple type return __VERIFIER_nondet_int(); } // Function: pci_bus_read_config_byte // with type: int pci_bus_read_config_byte(struct pci_bus *, unsigned int, int, u8 *) // with return type: int int __VERIFIER_nondet_int(void); int pci_bus_read_config_byte(struct pci_bus *arg0, unsigned int arg1, int arg2, u8 *arg3) { // Simple type return __VERIFIER_nondet_int(); } // Function: pci_bus_write_config_byte // with type: int pci_bus_write_config_byte(struct pci_bus *, unsigned int, int, u8 ) // with return type: int int __VERIFIER_nondet_int(void); int pci_bus_write_config_byte(struct pci_bus *arg0, unsigned int arg1, int arg2, u8 arg3) { // Simple type return __VERIFIER_nondet_int(); } // Function: pci_disable_device // with type: void pci_disable_device(struct pci_dev *) // with return type: void void pci_disable_device(struct pci_dev *arg0) { // Void type return; } // Function: pci_enable_device // with type: int pci_enable_device(struct pci_dev *) // with return type: int int __VERIFIER_nondet_int(void); int pci_enable_device(struct pci_dev *arg0) { // Simple type return __VERIFIER_nondet_int(); } // Function: pci_release_regions // with type: void pci_release_regions(struct pci_dev *) // with return type: void void pci_release_regions(struct pci_dev *arg0) { // Void type return; } // Function: pci_request_regions // with type: int pci_request_regions(struct pci_dev *, const char *) // with return type: int int __VERIFIER_nondet_int(void); int pci_request_regions(struct pci_dev *arg0, const char *arg1) { // Simple type return __VERIFIER_nondet_int(); } // Function: pci_set_master // with type: void pci_set_master(struct pci_dev *) // with return type: void void pci_set_master(struct pci_dev *arg0) { // Void type return; } // Function: pci_unregister_driver // with type: void pci_unregister_driver(struct pci_driver *) // with return type: void void pci_unregister_driver(struct pci_driver *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: 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: 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: schedule_timeout_uninterruptible // with type: long int schedule_timeout_uninterruptible(long) // with return type: long int long __VERIFIER_nondet_long(void); long int schedule_timeout_uninterruptible(long arg0) { // Simple type return __VERIFIER_nondet_long(); } // 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: unregister_hdlc_device // with type: void unregister_hdlc_device(struct net_device *) // with return type: void void unregister_hdlc_device(struct net_device *arg0) { // Void type return; } // 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; }