LCOV - code coverage report
Current view: top level - home/alexey/klever/native-scheduler-work-dir/native-scheduler-work-dir/scheduler/jobs/032ed983781f2acce615a4df71b22f31/klever-core-work-dir/0f4725e/linux-drivers-clk2/avtg/drivers/net/3c59x.ko/linux:drivers:clk2/weaver - 3c59x.c.aux (source / functions) Hit Total Coverage
Test: coverage.info Lines: 502 510 98.4 %
Date: 2017-01-25 Functions: 80 81 98.8 %

          Line data    Source code
       1             : 
       2             : struct device;
       3             : 
       4             : void *ldv_dev_get_drvdata(const struct device *dev);
       5             : int ldv_dev_set_drvdata(struct device *dev, void *data);
       6             : 
       7             : struct spi_master;
       8             : struct device;
       9             : struct spi_master *ldv_spi_alloc_master(struct device *host, unsigned size);
      10             : 
      11             : #include <linux/ldv/err.h>
      12             : 
      13             : #include <linux/types.h>
      14             : void *ldv_kzalloc(size_t size, gfp_t flags);
      15             : 
      16             : struct clk;
      17             : 
      18             : extern void ldv_clk_disable(struct clk *clk);
      19             : extern int ldv_clk_enable(void);
      20             : 
      21             : #include <linux/ldv/common.h>
      22             : #include <linux/ldv/irq.h>
      23             : #include <verifier/common.h>
      24             : #include <verifier/nondet.h>
      25             : #include <verifier/memory.h>
      26             : #include <verifier/thread.h>
      27             : 
      28             : #include <linux/netdevice.h>
      29             : #include <linux/pci.h>
      30             : #include <linux/pm.h>
      31             : #include <linux/timer.h>
      32             : #include <linux/interrupt.h>
      33             : 
      34             : 
      35             : struct ldv_struct_free_irq_9 {
      36             :  int arg0;
      37             :  int signal_pending;
      38             : };
      39           1 : 
      40             : struct ldv_struct_insmod_7 {
      41             :  int signal_pending;
      42             : };
      43           1 : 
      44             : struct ldv_struct_interrupt_scenario_1 {
      45             :  int arg0;
      46             :  irqreturn_t (*arg1)(int, void *);
      47             :  irqreturn_t (*arg2)(int, void *);
      48             :  void *arg3;
      49             :  int signal_pending;
      50             : };
      51           1 : 
      52             : struct ldv_struct_pci_scenario_3 {
      53             :  struct pci_driver *arg0;
      54             :  int signal_pending;
      55             : };
      56           1 : 
      57             : struct ldv_struct_random_containerless_scenario_2 {
      58             :  struct net_device *arg0;
      59             :  int signal_pending;
      60             : };
      61           1 : 
      62             : struct ldv_struct_timer_scenario_6 {
      63             :  struct timer_list *arg0;
      64             :  int signal_pending;
      65             : };
      66             : 
      67             : /* EMG Function declarations */
      68             : void ldv_dispatch_default_deregister_13_7_4(void);
      69             : void ldv_dispatch_default_register_13_7_5(void);
      70             : void ldv_dispatch_deregister_14_1(struct net_device *);
      71             : void ldv_dispatch_deregister_15_1(struct pci_driver *);
      72             : void ldv_dispatch_insmod_deregister_17_2(void);
      73             : void ldv_dispatch_insmod_register_17_3(void);
      74             : void ldv_dispatch_instance_deregister_8_1(struct timer_list *);
      75             : void ldv_dispatch_instance_register_11_3(struct timer_list *);
      76             : void ldv_dispatch_irq_deregister_9_1(int);
      77             : void ldv_dispatch_irq_register_13_3(int, irqreturn_t (*)(int, void *), irqreturn_t (*)(int, void *), void *);
      78             : void ldv_dispatch_register_12_4(struct net_device *);
      79             : void ldv_dispatch_register_16_3(struct pci_driver *);
      80             : int ldv_emg___pci_register_driver(struct pci_driver *, struct module *, char *);
      81             : int ldv_emg_del_timer_sync(struct timer_list *);
      82             : void ldv_emg_free_irq(int, void *);
      83             : void ldv_emg_free_netdev(struct net_device *);
      84             : int ldv_emg_mod_timer(struct timer_list *, long unsigned int);
      85             : void ldv_emg_pci_unregister_driver(struct pci_driver *);
      86             : int ldv_emg_register_netdev(struct net_device *);
      87             : int ldv_emg_request_irq(unsigned int, irq_handler_t , long unsigned int, char *, void *);
      88             : void ldv_emg_unregister_netdev(struct net_device *);
      89             : void ldv_insmod_7(void *);
      90             : void ldv_insmod_vortex_cleanup_7_2(void (*)(void));
      91             : int ldv_insmod_vortex_init_7_9(int (*)(void));
      92             : void ldv_interrupt_scenario_1(void *);
      93             : enum irqreturn ldv_interrupt_scenario_handler_1_5(irqreturn_t (*)(int, void *), int, void *);
      94             : void ldv_interrupt_scenario_thread_1_3(irqreturn_t (*)(int, void *), int, void *);
      95             : void ldv_main_17(void *);
      96             : void ldv_pci_scenario_3(void *);
      97             : int ldv_pci_scenario_probe_3_17(int (*)(struct pci_dev *, struct pci_device_id *), struct pci_dev *, struct pci_device_id *);
      98             : void ldv_pci_scenario_release_3_2(void (*)(struct pci_dev *), struct pci_dev *);
      99             : void ldv_pci_scenario_resume_3_5(int (*)(struct pci_dev *), struct pci_dev *);
     100             : void ldv_pci_scenario_resume_early_3_6(int (*)(struct pci_dev *), struct pci_dev *);
     101             : void ldv_pci_scenario_shutdown_3_3(void (*)(struct pci_dev *), struct pci_dev *);
     102             : int ldv_pci_scenario_suspend_3_8(int (*)(struct pci_dev *, struct pm_message), struct pci_dev *, struct pm_message);
     103             : int ldv_pci_scenario_suspend_late_3_7(int (*)(struct pci_dev *, struct pm_message), struct pci_dev *, struct pm_message);
     104             : void ldv_random_containerless_scenario_2(void *);
     105             : void ldv_random_containerless_scenario_4(void *);
     106             : void ldv_random_containerless_scenario_5(void *);
     107             : void ldv_random_containerless_scenario_callback_2_10(u32 (*)(struct net_device *), struct net_device *);
     108             : void ldv_random_containerless_scenario_callback_2_11(int (*)(struct net_device *, struct ethtool_cmd *), struct net_device *, struct ethtool_cmd *);
     109             : void ldv_random_containerless_scenario_callback_2_12(int (*)(struct net_device *, int), struct net_device *, int);
     110             : void ldv_random_containerless_scenario_callback_2_15(void (*)(struct net_device *, u32 , u8 *), struct net_device *, unsigned int, u8 *);
     111             : void ldv_random_containerless_scenario_callback_2_18(int (*)(struct net_device *, int), struct net_device *, int);
     112             : void ldv_random_containerless_scenario_callback_2_21(int (*)(struct net_device *, struct ifreq *, int), struct net_device *, struct ifreq *, int);
     113             : void ldv_random_containerless_scenario_callback_2_24(struct net_device_stats *(*)(struct net_device *), struct net_device *);
     114             : void ldv_random_containerless_scenario_callback_2_25(int (*)(struct net_device *, void *), struct net_device *, void *);
     115             : void ldv_random_containerless_scenario_callback_2_26(void (*)(struct net_device *), struct net_device *);
     116             : void ldv_random_containerless_scenario_callback_2_27(netdev_tx_t (*)(struct sk_buff *, struct net_device *), struct sk_buff *, struct net_device *);
     117             : void ldv_random_containerless_scenario_callback_2_28(void (*)(struct net_device *), struct net_device *);
     118             : void ldv_random_containerless_scenario_callback_2_29(int (*)(struct net_device *), struct net_device *);
     119             : void ldv_random_containerless_scenario_callback_2_3(void (*)(struct net_device *, struct ethtool_drvinfo *), struct net_device *, struct ethtool_drvinfo *);
     120             : void ldv_random_containerless_scenario_callback_2_30(int (*)(struct net_device *), struct net_device *);
     121             : void ldv_random_containerless_scenario_callback_2_31(void (*)(struct net_device *, u32 ), struct net_device *, unsigned int);
     122             : void ldv_random_containerless_scenario_callback_2_34(int (*)(struct net_device *, struct ethtool_cmd *), struct net_device *, struct ethtool_cmd *);
     123             : void ldv_random_containerless_scenario_callback_2_6(void (*)(struct net_device *, struct ethtool_stats *, u64 *), struct net_device *, struct ethtool_stats *, u64 *);
     124             : void ldv_random_containerless_scenario_callback_2_9(u32 (*)(struct net_device *), struct net_device *);
     125             : void ldv_random_containerless_scenario_callback_4_10(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
     126             : void ldv_random_containerless_scenario_callback_4_4(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
     127             : void ldv_random_containerless_scenario_callback_5_10(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
     128             : void ldv_random_containerless_scenario_callback_5_4(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
     129             : int ldv_register_netdev_open_12_6(int (*)(struct net_device *), struct net_device *);
     130             : void ldv_timer_scenario_6(void *);
     131             : void ldv_timer_scenario_callback_6_2(void (*)(unsigned long), unsigned long);
     132             : void ldv_unregister_netdev_stop_14_2(int (*)(struct net_device *), struct net_device *);
     133             : int main(void);
     134             : 
     135             : /* EMG variable declarations */
     136           1 : struct ldv_thread ldv_thread_1;
     137           1 : struct ldv_thread ldv_thread_17;
     138           1 : struct ldv_thread ldv_thread_2;
     139           1 : struct ldv_thread ldv_thread_3;
     140           1 : struct ldv_thread ldv_thread_4;
     141           1 : struct ldv_thread ldv_thread_5;
     142           1 : struct ldv_thread ldv_thread_6;
     143           1 : struct ldv_thread ldv_thread_7;
     144             : 
     145             : /* EMG variable initialization */
     146             : 
     147             : /* EMG function definitions */
     148             : /* AUX_FUNC ldv_dispatch_default_deregister_13_7_4 */
     149             : void ldv_dispatch_default_deregister_13_7_4() {
     150             :  struct ldv_struct_insmod_7 *cf_arg_4;
     151             :  struct ldv_struct_insmod_7 *cf_arg_5;
     152             :  /* Skip thread join call */
     153             :  /* Skip thread join call */
     154           1 :  return;
     155             : }
     156             : 
     157             : /* AUX_FUNC ldv_dispatch_default_register_13_7_5 */
     158             : void ldv_dispatch_default_register_13_7_5() {
     159             :  struct ldv_struct_insmod_7 *cf_arg_4;
     160           1 :  struct ldv_struct_insmod_7 *cf_arg_5;
     161           4 :  cf_arg_4 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_7));
     162           3 :  ldv_random_containerless_scenario_4(cf_arg_4);
     163           4 :  cf_arg_5 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_7));
     164           2 :  ldv_random_containerless_scenario_5(cf_arg_5);
     165           1 :  return;
     166             : }
     167             : 
     168             : /* AUX_FUNC ldv_dispatch_deregister_14_1 */
     169             : void ldv_dispatch_deregister_14_1(struct net_device *arg0) {
     170             :  struct ldv_struct_random_containerless_scenario_2 *cf_arg_2;
     171             :  /* Skip thread join call */
     172           4 :  return;
     173             : }
     174             : 
     175             : /* AUX_FUNC ldv_dispatch_deregister_15_1 */
     176             : void ldv_dispatch_deregister_15_1(struct pci_driver *arg0) {
     177             :  struct ldv_struct_pci_scenario_3 *cf_arg_3;
     178             :  /* Skip thread join call */
     179           2 :  return;
     180             : }
     181             : 
     182             : /* AUX_FUNC ldv_dispatch_insmod_deregister_17_2 */
     183             : void ldv_dispatch_insmod_deregister_17_2() {
     184             :  struct ldv_struct_insmod_7 *cf_arg_7;
     185             :  /* Skip thread join call */
     186           1 :  return;
     187             : }
     188             : 
     189             : /* AUX_FUNC ldv_dispatch_insmod_register_17_3 */
     190             : void ldv_dispatch_insmod_register_17_3() {
     191             :  struct ldv_struct_insmod_7 *cf_arg_7;
     192           4 :  cf_arg_7 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_7));
     193           4 :  ldv_insmod_7(cf_arg_7);
     194           1 :  return;
     195             : }
     196             : 
     197             : /* AUX_FUNC ldv_dispatch_instance_deregister_8_1 */
     198             : void ldv_dispatch_instance_deregister_8_1(struct timer_list *arg0) {
     199             :  struct ldv_struct_timer_scenario_6 *cf_arg_6;
     200             :  /* Skip thread join call */
     201         728 :  return;
     202             : }
     203             : 
     204             : /* AUX_FUNC ldv_dispatch_instance_register_11_3 */
     205             : void ldv_dispatch_instance_register_11_3(struct timer_list *arg0) {
     206             :  struct ldv_struct_timer_scenario_6 *cf_arg_6;
     207         120 :  cf_arg_6 = ldv_xmalloc(sizeof(struct ldv_struct_timer_scenario_6));
     208          60 :  cf_arg_6->arg0 = arg0;
     209         120 :  ldv_timer_scenario_6(cf_arg_6);
     210          30 :  return;
     211             : }
     212             : 
     213             : /* AUX_FUNC ldv_dispatch_irq_deregister_9_1 */
     214             : void ldv_dispatch_irq_deregister_9_1(int arg0) {
     215             :  struct ldv_struct_free_irq_9 *cf_arg_1;
     216             :  /* Skip thread join call */
     217          48 :  return;
     218             : }
     219             : 
     220             : /* AUX_FUNC ldv_dispatch_irq_register_13_3 */
     221             : void ldv_dispatch_irq_register_13_3(int arg0, irqreturn_t (*arg1)(int, void *), irqreturn_t (*arg2)(int, void *), void *arg3) {
     222             :  struct ldv_struct_interrupt_scenario_1 *cf_arg_1;
     223          60 :  cf_arg_1 = ldv_xmalloc(sizeof(struct ldv_struct_interrupt_scenario_1));
     224          40 :  cf_arg_1->arg0 = arg0;
     225          40 :  cf_arg_1->arg1 = arg1;
     226          20 :  cf_arg_1->arg2 = arg2;
     227          20 :  cf_arg_1->arg3 = arg3;
     228          80 :  ldv_interrupt_scenario_1(cf_arg_1);
     229          20 :  return;
     230             : }
     231             : 
     232             : /* AUX_FUNC ldv_dispatch_register_12_4 */
     233             : void ldv_dispatch_register_12_4(struct net_device *arg0) {
     234             :  struct ldv_struct_random_containerless_scenario_2 *cf_arg_2;
     235          40 :  cf_arg_2 = ldv_xmalloc(sizeof(struct ldv_struct_random_containerless_scenario_2));
     236          20 :  cf_arg_2->arg0 = arg0;
     237          20 :  ldv_random_containerless_scenario_2(cf_arg_2);
     238          10 :  return;
     239             : }
     240             : 
     241             : /* AUX_FUNC ldv_dispatch_register_16_3 */
     242             : void ldv_dispatch_register_16_3(struct pci_driver *arg0) {
     243             :  struct ldv_struct_pci_scenario_3 *cf_arg_3;
     244           4 :  cf_arg_3 = ldv_xmalloc(sizeof(struct ldv_struct_pci_scenario_3));
     245           2 :  cf_arg_3->arg0 = arg0;
     246           2 :  ldv_pci_scenario_3(cf_arg_3);
     247           1 :  return;
     248             : }
     249             : 
     250             : /* AUX_FUNC ldv_emg___pci_register_driver */
     251             : int ldv_emg___pci_register_driver(struct pci_driver *arg0, struct module *arg1, char *arg2) {
     252             :  /* LDV {"comment": "Control function '__pci_register_driver'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg___pci_register_driver"} */
     253             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     254           1 :  struct pci_driver *ldv_16_pci_driver_pci_driver;
     255           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     256           1 :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     257             : 
     258           4 :  if (ldv_undef_int()) {
     259             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get 'pci' callbacks to register."} */
     260           1 :   ldv_16_pci_driver_pci_driver = arg0;
     261             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     262             : 
     263             :   /* LDV {"action": "REGISTER", "type": "DISPATCH_BEGIN", "comment": "Register PCI callbacks."} */
     264           2 :   ldv_dispatch_register_16_3(ldv_16_pci_driver_pci_driver);
     265             :   /* LDV {"action": "REGISTER", "type": "DISPATCH_END"} */
     266             : 
     267             :   /* LDV {"action": "FAIL", "type": "CONDITION_BEGIN", "comment": "Fail registration of 'pci' callbacks."} */
     268           3 :   return ldv_undef_int_negative();
     269             :   /* LDV {"action": "FAIL", "type": "CONDITION_END"} */
     270             : 
     271             :   /* Exit function at a terminal state */
     272             :  }
     273             :  else {
     274             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_BEGIN", "comment": "Registration of 'pci' callbacks has been successful."} */
     275           1 :   return 0;
     276             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_END"} */
     277             : 
     278             :   /* Exit function at a terminal state */
     279             :  }
     280             :  /* End of the process */
     281             :  /* LDV {"comment": "End of control function based on process '__pci_register_driver'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg___pci_register_driver"} */
     282             : }
     283             : 
     284             : /* AUX_FUNC ldv_emg_del_timer_sync */
     285             : int ldv_emg_del_timer_sync(struct timer_list *arg0) {
     286             :  /* LDV {"comment": "Control function 'del_timer_sync'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_del_timer_sync"} */
     287         728 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     288             :  struct timer_list *ldv_8_timer_list_timer_list;
     289             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     290             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get timer representing structure."} */
     291         728 :  ldv_8_timer_list_timer_list = arg0;
     292             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     293             : 
     294             :  /* LDV {"action": "INSTANCE_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Deregister TIMER callbacks."} */
     295        1456 :  ldv_dispatch_instance_deregister_8_1(ldv_8_timer_list_timer_list);
     296         728 :  /* LDV {"action": "INSTANCE_DEREGISTER", "type": "DISPATCH_END"} */
     297             : 
     298             :  /* Exit function at a terminal state */
     299             :  /* End of the process */
     300             :  /* LDV {"comment": "End of control function based on process 'del_timer_sync'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_del_timer_sync"} */
     301             : }
     302             : 
     303             : /* AUX_FUNC ldv_emg_free_irq */
     304             : void ldv_emg_free_irq(int arg0, void *arg1) {
     305             :  /* LDV {"comment": "Control function 'free_irq'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_free_irq"} */
     306          48 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     307             :  int ldv_9_line_line;
     308             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     309             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get an interrupt line argument."} */
     310          48 :  ldv_9_line_line = arg0;
     311             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     312             : 
     313             :  /* LDV {"action": "IRQ_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "The interrupt line is freed."} */
     314          96 :  ldv_dispatch_irq_deregister_9_1(ldv_9_line_line);
     315             :  /* LDV {"action": "IRQ_DEREGISTER", "type": "DISPATCH_END"} */
     316             : 
     317             :  /* Exit function at a terminal state */
     318          48 :  return;
     319             :  /* End of the process */
     320             :  return;
     321             :  /* LDV {"comment": "End of control function based on process 'free_irq'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_free_irq"} */
     322             : }
     323             : 
     324             : /* AUX_FUNC ldv_emg_free_netdev */
     325             : void ldv_emg_free_netdev(struct net_device *arg0) {
     326             :  /* LDV {"comment": "Control function 'free_netdev'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_free_netdev"} */
     327           8 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     328             :  struct net_device *ldv_10_netdev_net_device;
     329             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     330             :  /* LDV {"action": "FREE", "type": "CONDITION_BEGIN", "comment": "Freeing memory of a network device."} */
     331           8 :  ldv_10_netdev_net_device = arg0;
     332          16 :  ldv_free(ldv_10_netdev_net_device);
     333             :  /* LDV {"action": "FREE", "type": "CONDITION_END"} */
     334             : 
     335             :  /* Exit function at a terminal state */
     336           8 :  return;
     337             :  /* End of the process */
     338             :  return;
     339             :  /* LDV {"comment": "End of control function based on process 'free_netdev'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_free_netdev"} */
     340             : }
     341             : 
     342             : /* AUX_FUNC ldv_emg_mod_timer */
     343             : int ldv_emg_mod_timer(struct timer_list *arg0, long unsigned int arg1) {
     344             :  /* LDV {"comment": "Control function 'mod_timer'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_mod_timer"} */
     345          30 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     346          30 :  struct timer_list *ldv_11_timer_list_timer_list;
     347          30 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     348             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     349             : 
     350         120 :  if (ldv_undef_int()) {
     351             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get timer representing structure."} */
     352          30 :   ldv_11_timer_list_timer_list = arg0;
     353             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     354             : 
     355             :   /* LDV {"action": "INSTANCE_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Register TIMER callbacks."} */
     356          60 :   ldv_dispatch_instance_register_11_3(ldv_11_timer_list_timer_list);
     357             :   /* LDV {"action": "INSTANCE_REGISTER", "type": "DISPATCH_END"} */
     358             : 
     359             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_BEGIN", "comment": "Successfully modified a timer's timeout"} */
     360          30 :   return 0;
     361             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_END"} */
     362             : 
     363             :   /* Exit function at a terminal state */
     364             :  }
     365             :  else {
     366             :   /* LDV {"action": "FAIL", "type": "CONDITION_BEGIN", "comment": "Failed to modify a timer's timeout"} */
     367          90 :   return ldv_undef_int_negative();
     368             :   /* LDV {"action": "FAIL", "type": "CONDITION_END"} */
     369             : 
     370             :   /* Exit function at a terminal state */
     371             :  }
     372             :  /* End of the process */
     373             :  /* LDV {"comment": "End of control function based on process 'mod_timer'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_mod_timer"} */
     374             : }
     375             : 
     376             : /* AUX_FUNC ldv_emg_pci_unregister_driver */
     377             : void ldv_emg_pci_unregister_driver(struct pci_driver *arg0) {
     378             :  /* LDV {"comment": "Control function 'pci_unregister_driver'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_pci_unregister_driver"} */
     379           2 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     380             :  struct pci_driver *ldv_15_pci_driver_pci_driver;
     381             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     382             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get 'pci' callbacks to deregister."} */
     383           2 :  ldv_15_pci_driver_pci_driver = arg0;
     384             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     385             : 
     386             :  /* LDV {"action": "DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Deregister PCI callbacks."} */
     387           4 :  ldv_dispatch_deregister_15_1(ldv_15_pci_driver_pci_driver);
     388             :  /* LDV {"action": "DEREGISTER", "type": "DISPATCH_END"} */
     389             : 
     390             :  /* Exit function at a terminal state */
     391           2 :  return;
     392             :  /* End of the process */
     393             :  return;
     394             :  /* LDV {"comment": "End of control function based on process 'pci_unregister_driver'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_pci_unregister_driver"} */
     395             : }
     396             : 
     397             : /* AUX_FUNC ldv_emg_register_netdev */
     398             : int ldv_emg_register_netdev(struct net_device *arg0) {
     399             :  /* LDV {"comment": "Control function 'register_netdev'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_register_netdev"} */
     400          10 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     401          10 :  struct net_device *ldv_12_netdev_net_device;
     402          10 :  int ldv_12_ret_default;
     403          10 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     404          10 :  /* Initialize automaton variables */
     405          20 :  ldv_12_ret_default = 1;
     406             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     407             : 
     408          40 :  if (ldv_undef_int()) {
     409             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get network device structure."} */
     410          10 :   ldv_12_netdev_net_device = arg0;
     411             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     412             : 
     413             :   /* LDV {"action": "OPEN", "type": "CALL_BEGIN", "callback": true, "comment": "Switch network device to the up state. Invoke callback ndo_open from net_device_ops."} */
     414             :   /* LDV {"type": "CALLBACK", "call": "ldv_12_ret_default = ((& vortex_open))(ldv_12_netdev_net_device);", "comment": "open"} */
     415          20 :   ldv_12_ret_default = ldv_register_netdev_open_12_6(ldv_12_netdev_net_device->netdev_ops->ndo_open, ldv_12_netdev_net_device);
     416             :   /* LDV {"action": "OPEN", "type": "CALL_END"} */
     417             : 
     418          40 :   if (ldv_undef_int()) {
     419             :    /* LDV {"action": "OPEN_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Network device is in the up state."} */
     420          20 :    ldv_assume(ldv_12_ret_default == 0);
     421             :    /* LDV {"action": "OPEN_SUCCESS", "type": "CONDITION_END"} */
     422             : 
     423             :    /* LDV {"action": "REGISTER", "type": "DISPATCH_BEGIN", "comment": "Register network device callbacks."} */
     424          20 :    ldv_dispatch_register_12_4(ldv_12_netdev_net_device);
     425             :    /* LDV {"action": "REGISTER", "type": "DISPATCH_END"} */
     426             : 
     427             :    /* LDV {"action": "SUCCESS", "type": "CONDITION_BEGIN", "comment": "Registration of the network device has successfully finished."} */
     428          10 :    return 0;
     429             :    /* LDV {"action": "SUCCESS", "type": "CONDITION_END"} */
     430             : 
     431             :    /* Exit function at a terminal state */
     432             :   }
     433             :   else {
     434             :    /* LDV {"action": "OPEN_FAIL", "type": "CONDITION_BEGIN", "comment": "Registration of the network device has failed."} */
     435          20 :    ldv_assume(ldv_12_ret_default == 0);
     436          10 :    ldv_failed_register_netdev();
     437          30 :    return ldv_undef_int_negative();
     438             :    /* LDV {"action": "OPEN_FAIL", "type": "CONDITION_END"} */
     439             : 
     440             :    /* Exit function at a terminal state */
     441             :   }
     442             :  }
     443             :  else {
     444             :   /* LDV {"action": "FAIL", "type": "CONDITION_BEGIN", "comment": "Registration of the network device has failed."} */
     445          10 :   ldv_failed_register_netdev();
     446          30 :   return ldv_undef_int_negative();
     447             :   /* LDV {"action": "FAIL", "type": "CONDITION_END"} */
     448             : 
     449             :   /* Exit function at a terminal state */
     450             :  }
     451             :  /* End of the process */
     452             :  /* LDV {"comment": "End of control function based on process 'register_netdev'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_register_netdev"} */
     453             : }
     454             : 
     455             : /* AUX_FUNC ldv_emg_request_irq */
     456             : int ldv_emg_request_irq(unsigned int arg0, irqreturn_t (*arg1)(int, void *), long unsigned int arg2, char *arg3, void *arg4) {
     457             :  /* LDV {"comment": "Control function 'request_irq'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_request_irq"} */
     458             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     459          20 :  irqreturn_t (*ldv_13_callback_handler)(int, void *);
     460          20 :  void *ldv_13_data_data;
     461          20 :  int ldv_13_line_line;
     462          20 :  irqreturn_t (*ldv_13_thread_thread)(int, void *);
     463          20 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     464          20 :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     465             : 
     466          80 :  if (ldv_undef_int()) {
     467             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get line, callbacks and data arguments."} */
     468          20 :   ldv_13_line_line = arg0;
     469          20 :   ldv_13_callback_handler = arg1;
     470          20 :   ldv_13_thread_thread = 0;
     471          20 :   ldv_13_data_data = arg4;
     472             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     473             : 
     474             :   /* LDV {"action": "IRQ_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Register interrupt callback (callbacks)."} */
     475          40 :   ldv_dispatch_irq_register_13_3(ldv_13_line_line, ldv_13_callback_handler, ldv_13_thread_thread, ldv_13_data_data);
     476             :   /* LDV {"action": "IRQ_REGISTER", "type": "DISPATCH_END"} */
     477             : 
     478             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_BEGIN", "comment": "Successfully allocated an interrupt line for a managed device."} */
     479          20 :   return 0;
     480             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_END"} */
     481             : 
     482             :   /* Exit function at a terminal state */
     483             :  }
     484             :  else {
     485             :   /* LDV {"action": "FAIL", "type": "CONDITION_BEGIN", "comment": "Failed to allocate an interrupt line for a managed device."} */
     486          60 :   return ldv_undef_int_negative();
     487             :   /* LDV {"action": "FAIL", "type": "CONDITION_END"} */
     488             : 
     489             :   /* Exit function at a terminal state */
     490             :  }
     491             :  /* End of the process */
     492             :  /* LDV {"comment": "End of control function based on process 'request_irq'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_request_irq"} */
     493             : }
     494             : 
     495             : /* AUX_FUNC ldv_emg_unregister_netdev */
     496             : void ldv_emg_unregister_netdev(struct net_device *arg0) {
     497             :  /* LDV {"comment": "Control function 'unregister_netdev'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_unregister_netdev"} */
     498           4 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     499             :  struct net_device *ldv_14_netdev_net_device;
     500             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     501             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get network device structure."} */
     502           4 :  ldv_14_netdev_net_device = arg0;
     503             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     504             : 
     505             :  /* LDV {"action": "STOP", "type": "CALL_BEGIN", "callback": true, "comment": "Switch network device to the down state. Invoke callback ndo_stop from net_device_ops."} */
     506             :  /* LDV {"type": "CALLBACK", "call": "((& vortex_close))(ldv_14_netdev_net_device);", "comment": "stop"} */
     507           8 :  ldv_unregister_netdev_stop_14_2(ldv_14_netdev_net_device->netdev_ops->ndo_stop, ldv_14_netdev_net_device);
     508             :  /* LDV {"action": "STOP", "type": "CALL_END"} */
     509             : 
     510             :  /* LDV {"action": "DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Deregiste of the network device has finished."} */
     511           8 :  ldv_dispatch_deregister_14_1(ldv_14_netdev_net_device);
     512             :  /* LDV {"action": "DEREGISTER", "type": "DISPATCH_END"} */
     513             : 
     514             :  /* Exit function at a terminal state */
     515           4 :  return;
     516             :  /* End of the process */
     517             :  return;
     518             :  /* LDV {"comment": "End of control function based on process 'unregister_netdev'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_unregister_netdev"} */
     519             : }
     520             : 
     521             : /* AUX_FUNC ldv_insmod_7 */
     522             : void ldv_insmod_7(void *arg0) {
     523             :  /* LDV {"thread": 7, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'insmod(artificial)'", "function": "ldv_insmod_7"} */
     524           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     525           1 :  int ldv_7_ret_default;
     526           1 :  void (*ldv_7_vortex_cleanup_default)(void);
     527           1 :  int (*ldv_7_vortex_init_default)(void);
     528           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     529             :  /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module initialization."} */
     530           2 :  ldv_free(arg0);
     531             :  /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_END"} */
     532             : 
     533             :  /* LDV {"action": "VORTEX_INIT", "type": "CALL_BEGIN", "callback": true, "comment": "Initialize the module after insmod with 'vortex_init' function. Invoke callback vortex_init from ARTIFICIAL."} */
     534             :  /* LDV {"type": "CALLBACK", "call": "ldv_7_ret_default = (vortex_init)();", "comment": "vortex_init"} */
     535           2 :  ldv_7_ret_default = ldv_insmod_vortex_init_7_9(ldv_7_vortex_init_default);
     536             :  /* Callback post-call */
     537           2 :  ldv_7_ret_default = ldv_post_init(ldv_7_ret_default);
     538             :  /* LDV {"action": "VORTEX_INIT", "type": "CALL_END"} */
     539             : 
     540           4 :  if (ldv_undef_int()) {
     541             :   /* LDV {"action": "INIT_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to initialize the module."} */
     542           2 :   ldv_assume(ldv_7_ret_default != 0);
     543             :   /* LDV {"action": "INIT_FAILED", "type": "CONDITION_END"} */
     544             : 
     545             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
     546             :   /* Skip a non-replicative signal receiving */
     547             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
     548             : 
     549             :   /* Exit function at a terminal state */
     550           1 :   return;
     551             :  }
     552             :  else {
     553             :   /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Module has been initialized."} */
     554           2 :   ldv_assume(ldv_7_ret_default == 0);
     555             :   /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_END"} */
     556             : 
     557           4 :   if (ldv_undef_int()) {
     558             :    /* LDV {"action": "DEFAULT_REGISTER_13", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_KPARAM_ARRAY' callbacks with unknown registration function."} */
     559           2 :    ldv_dispatch_default_register_13_7_5();
     560             :    /* LDV {"action": "DEFAULT_REGISTER_13", "type": "DISPATCH_END"} */
     561             : 
     562             :    /* LDV {"action": "DEFAULT_DEREGISTER_13", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_KPARAM_ARRAY' callbacks with unknown deregistration function."} */
     563           2 :    ldv_dispatch_default_deregister_13_7_4();
     564             :    /* LDV {"action": "DEFAULT_DEREGISTER_13", "type": "DISPATCH_END"} */
     565             : 
     566             :   }
     567             :   else {
     568             :    /* LDV {"action": "NONE", "type": "CONDITION_BEGIN", "comment": "Skip default callbacks registrations and deregistrations."} */
     569             :    /* LDV {"action": "NONE", "type": "CONDITION_END"} */
     570             : 
     571             :   }
     572             :   /* LDV {"action": "VORTEX_CLEANUP", "type": "CALL_BEGIN", "callback": true, "comment": "Exit the module before its unloading with 'vortex_cleanup' function. Invoke callback vortex_cleanup from ARTIFICIAL."} */
     573             :   /* LDV {"type": "CALLBACK", "call": "(vortex_cleanup)();", "comment": "vortex_cleanup"} */
     574           4 :   ldv_insmod_vortex_cleanup_7_2(ldv_7_vortex_cleanup_default);
     575             :   /* LDV {"action": "VORTEX_CLEANUP", "type": "CALL_END"} */
     576             : 
     577             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
     578             :   /* Skip a non-replicative signal receiving */
     579             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
     580             : 
     581             :   /* Exit function at a terminal state */
     582           1 :   return;
     583             :  }
     584             :  /* End of the process */
     585             :  return;
     586             :  /* LDV {"comment": "End of control function based on process 'insmod(artificial)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_insmod_7"} */
     587             : }
     588             : 
     589             : /* AUX_FUNC_CALLBACK ldv_insmod_vortex_cleanup_7_2 */
     590             : void ldv_insmod_vortex_cleanup_7_2(void (*arg0)(void)) {
     591           8 :  (vortex_cleanup)();
     592           2 : }
     593             : 
     594             : /* AUX_FUNC_CALLBACK ldv_insmod_vortex_init_7_9 */
     595             : int ldv_insmod_vortex_init_7_9(int (*arg0)(void)) {
     596           3 :  return (vortex_init)();
     597           1 : }
     598             : 
     599             : /* AUX_FUNC ldv_interrupt_scenario_1 */
     600             : void ldv_interrupt_scenario_1(void *arg0) {
     601             :  /* LDV {"thread": 1, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'interrupt_scenario(interrupt)'", "function": "ldv_interrupt_scenario_1"} */
     602          20 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     603          20 :  irqreturn_t (*ldv_1_callback_handler)(int, void *);
     604          20 :  void *ldv_1_data_data;
     605          20 :  int ldv_1_line_line;
     606          20 :  enum irqreturn ldv_1_ret_val_default;
     607          20 :  irqreturn_t (*ldv_1_thread_thread)(int, void *);
     608          20 :  /* Received labels */
     609          20 :  struct ldv_struct_interrupt_scenario_1 *data = (struct ldv_struct_interrupt_scenario_1*) arg0;
     610             : 
     611             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     612             :  /* LDV {"action": "IRQ_REGISTER", "type": "RECEIVE_BEGIN", "comment": "An interrupt is registered."} */
     613             :  /* Assign recieved labels */
     614          40 :  if (data) {
     615          20 :   ldv_1_line_line = data->arg0;
     616          20 :   ldv_1_callback_handler = data->arg1;
     617          20 :   ldv_1_thread_thread = data->arg2;
     618          20 :   ldv_1_data_data = data->arg3;
     619          40 :   ldv_free(data);
     620             :  }
     621             :  /* LDV {"action": "IRQ_REGISTER", "type": "RECEIVE_END"} */
     622             : 
     623             :  /* LDV {"action": "HANDLER", "type": "CALL_BEGIN", "callback": true, "comment": "An interrupt happens, execute the bottom half function to handle it. Invoke callback handler from INTERRUPT."} */
     624             :  /* Callback pre-call */
     625          40 :  ldv_switch_to_interrupt_context();
     626          80 :  if (ldv_1_callback_handler) {
     627             :  /* LDV {"type": "CALLBACK", "call": "ldv_1_ret_val_default = (ldv_1_callback_handler)(ldv_1_line_line, ldv_1_data_data);", "comment": "handler"} */
     628          80 :   ldv_1_ret_val_default = ldv_interrupt_scenario_handler_1_5(ldv_1_callback_handler, ldv_1_line_line, ldv_1_data_data);
     629             :  }
     630             :  /* Callback post-call */
     631          60 :  ldv_switch_to_process_context();
     632             :  /* LDV {"action": "HANDLER", "type": "CALL_END"} */
     633             : 
     634         160 :  if (ldv_undef_int()) {
     635             :   /* LDV {"action": "NEED_THREAD", "type": "CONDITION_BEGIN", "comment": "Wake a thread to continue an interrupt handling."} */
     636          40 :   ldv_assume(ldv_1_ret_val_default == IRQ_WAKE_THREAD);
     637             :   /* LDV {"action": "NEED_THREAD", "type": "CONDITION_END"} */
     638             : 
     639             :   /* LDV {"action": "THREAD", "type": "CALL_BEGIN", "callback": true, "comment": "Proceed with the interrupt handling, execute the top half function. Invoke callback thread from INTERRUPT."} */
     640          40 :   if (ldv_1_thread_thread) {
     641             :   /* LDV {"type": "CALLBACK", "call": "(ldv_1_thread_thread)(ldv_1_line_line, ldv_1_data_data);", "comment": "thread"} */
     642          40 :    ldv_interrupt_scenario_thread_1_3(ldv_1_thread_thread, ldv_1_line_line, ldv_1_data_data);
     643             :   }
     644             :   /* LDV {"action": "THREAD", "type": "CALL_END"} */
     645             : 
     646             :  }
     647             :  else {
     648             :   /* LDV {"action": "HANDLED", "type": "CONDITION_BEGIN", "comment": "An interrupt has been handled."} */
     649          40 :   ldv_assume(ldv_1_ret_val_default != IRQ_WAKE_THREAD);
     650             :   /* LDV {"action": "HANDLED", "type": "CONDITION_END"} */
     651             : 
     652             :  }
     653             :  /* LDV {"action": "IRQ_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "An interrupt is deregistered."} */
     654             :  /* Skip a non-replicative signal receiving */
     655             :  /* LDV {"action": "IRQ_DEREGISTER", "type": "RECEIVE_END"} */
     656             : 
     657             :  /* Exit function at a terminal state */
     658          60 :  return;
     659             :  /* End of the process */
     660             :  return;
     661             :  /* LDV {"comment": "End of control function based on process 'interrupt_scenario(interrupt)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_interrupt_scenario_1"} */
     662             : }
     663             : 
     664             : /* AUX_FUNC_CALLBACK ldv_interrupt_scenario_handler_1_5 */
     665             : enum irqreturn ldv_interrupt_scenario_handler_1_5(irqreturn_t (*arg0)(int, void *), int arg1, void *arg2) {
     666         160 :  return (*arg0)(arg1, arg2);
     667             : }
     668          40 : 
     669             : /* AUX_FUNC_CALLBACK ldv_interrupt_scenario_thread_1_3 */
     670             : void ldv_interrupt_scenario_thread_1_3(irqreturn_t (*arg0)(int, void *), int arg1, void *arg2) {
     671          60 :  (*arg0)(arg1, arg2);
     672          20 : }
     673             : 
     674             : /* AUX_FUNC ldv_main_17 */
     675             : void ldv_main_17(void *arg0) {
     676             :  /* LDV {"thread": 17, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'main(main)'", "function": "ldv_main_17"} */
     677             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     678             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     679             :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Initialize rule models."} */
     680           1 :  ldv_initialize();
     681             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
     682             : 
     683             :  /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Start environment model scenarios."} */
     684           2 :  ldv_dispatch_insmod_register_17_3();
     685             :  /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_END"} */
     686             : 
     687             :  /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Stop environment model scenarios."} */
     688           2 :  ldv_dispatch_insmod_deregister_17_2();
     689             :  /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_END"} */
     690             : 
     691             :  /* LDV {"action": "FINAL", "type": "CONDITION_BEGIN", "comment": "Check rule model state at the exit."} */
     692           1 :  ldv_check_final_state();
     693           1 :  ldv_stop();
     694             :  /* LDV {"action": "FINAL", "type": "CONDITION_END"} */
     695             : 
     696             :  /* Exit function at a terminal state */
     697           0 :  return;
     698             :  /* End of the process */
     699             :  return;
     700             :  /* LDV {"comment": "End of control function based on process 'main(main)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_main_17"} */
     701             : }
     702             : 
     703             : /* AUX_FUNC ldv_pci_scenario_3 */
     704             : void ldv_pci_scenario_3(void *arg0) {
     705             :  /* LDV {"thread": 3, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'pci_scenario(pci)'", "function": "ldv_pci_scenario_3"} */
     706           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     707           1 :  struct pci_driver *ldv_3_container_pci_driver;
     708           1 :  struct pci_dev *ldv_3_resource_dev;
     709           1 :  struct pm_message ldv_3_resource_pm_message;
     710           1 :  struct pci_device_id *ldv_3_resource_struct_pci_device_id_ptr;
     711           1 :  int ldv_3_ret_default;
     712           1 :  /* Received labels */
     713           2 :  struct ldv_struct_pci_scenario_3 *data = (struct ldv_struct_pci_scenario_3*) arg0;
     714           1 : 
     715           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     716           1 :  /* Initialize automaton variables */
     717           1 :  ldv_3_ret_default = 1;
     718             :  /* LDV {"action": "REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin PCI callbacks invocating."} */
     719             :  /* Assign recieved labels */
     720           2 :  if (data) {
     721           1 :   ldv_3_container_pci_driver = data->arg0;
     722           2 :   ldv_free(data);
     723             :  }
     724             :  /* LDV {"action": "REGISTER", "type": "RECEIVE_END"} */
     725             : 
     726             :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Allocate memory for pci_dev structure."} */
     727           5 :  ldv_3_resource_dev = ldv_xmalloc(sizeof(struct pci_dev));
     728           3 :  ldv_3_resource_struct_pci_device_id_ptr = ldv_xmalloc_unknown_size(0);
     729             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
     730             : 
     731             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "New device is inserted, probe it."} */
     732             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     733             : 
     734             :  /* Jump to a subprocess 'main' initial state */
     735           1 :  goto ldv_main_3;
     736             :  /* End of the process */
     737             :  return;
     738           1 : 
     739             :  /* Sbprocess main */
     740             :  ldv_main_3:
     741             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     742             : 
     743           4 :  if (ldv_undef_int()) {
     744             :   /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe new PCI driver. Invoke callback probe from pci_driver."} */
     745             :   /* Callback pre-call */
     746           1 :   ldv_pre_probe();
     747             :   /* LDV {"type": "CALLBACK", "call": "ldv_3_ret_default = ((& vortex_init_one))(ldv_3_resource_dev, ldv_3_resource_struct_pci_device_id_ptr);", "comment": "probe"} */
     748           3 :   ldv_3_ret_default = ldv_pci_scenario_probe_3_17(ldv_3_container_pci_driver->probe, ldv_3_resource_dev, ldv_3_resource_struct_pci_device_id_ptr);
     749             :   /* Callback post-call */
     750           2 :   ldv_3_ret_default = ldv_post_probe(ldv_3_ret_default);
     751             :   /* LDV {"action": "PROBE", "type": "CALL_END"} */
     752             : 
     753           4 :   if (ldv_undef_int()) {
     754             :    /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Probing of PCI driver has been successfull."} */
     755           2 :    ldv_assume(ldv_3_ret_default == 0);
     756             :    /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
     757             : 
     758             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call rest callbacks."} */
     759             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     760             : 
     761             :    /* Jump to a subprocess 'call' initial state */
     762           1 :    goto ldv_call_3;
     763             :   }
     764             :   else {
     765             :    /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe PCI driver."} */
     766           2 :    ldv_assume(ldv_3_ret_default != 0);
     767             :    /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
     768             : 
     769             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "New device is inserted, probe it."} */
     770             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     771             : 
     772             :    /* Jump to a subprocess 'main' initial state */
     773           1 :    goto ldv_main_3;
     774             :   }
     775             :  }
     776             :  else {
     777             :   /* LDV {"action": "FREE", "type": "CONDITION_BEGIN", "comment": "Free memory of pci_dev structure."} */
     778           2 :   ldv_free(ldv_3_resource_dev);
     779           2 :   ldv_free(ldv_3_resource_struct_pci_device_id_ptr);
     780             :   /* LDV {"action": "FREE", "type": "CONDITION_END"} */
     781             : 
     782             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Stop PCI callbacks invocating."} */
     783             :   /* Skip a non-replicative signal receiving */
     784             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_END"} */
     785             : 
     786             :   /* Exit function at a terminal state */
     787           1 :   return;
     788             :  }
     789             :  /* End of the subprocess 'main' */
     790             :  return;
     791           1 : 
     792             :  /* Sbprocess call */
     793             :  ldv_call_3:
     794             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     795             : 
     796           2 :  switch (ldv_undef_int()) {
     797           3 :   case 1: {
     798             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "comment": "Call callback 'callback' of a process 'pci_scenario' of an interface category 'pci'"} */
     799             :    /* Skip callback without implementations */
     800             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     801             : 
     802             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call rest callbacks."} */
     803             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     804             : 
     805             :    /* Jump to a subprocess 'call' initial state */
     806           1 :    goto ldv_call_3;
     807           1 :    break;
     808             :   }
     809           3 :   case 2: {
     810             :    /* LDV {"action": "SUSPEND", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from PCI."} */
     811           3 :    if (ldv_3_container_pci_driver->suspend) {
     812             :    /* LDV {"type": "CALLBACK", "call": "ldv_3_ret_default = (ldv_3_container_pci_driver->suspend)(ldv_3_resource_dev, ldv_3_resource_pm_message);", "comment": "suspend"} */
     813           2 :     ldv_3_ret_default = ldv_pci_scenario_suspend_3_8(ldv_3_container_pci_driver->suspend, ldv_3_resource_dev, ldv_3_resource_pm_message);
     814             :    }
     815             :    /* Callback post-call */
     816           4 :    ldv_3_ret_default = ldv_filter_err_code(ldv_3_ret_default);
     817             :    /* LDV {"action": "SUSPEND", "type": "CALL_END"} */
     818             : 
     819             :    /* LDV {"action": "SUSPEND_LATE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend_late from PCI."} */
     820           3 :    if (ldv_3_container_pci_driver->suspend_late) {
     821             :    /* LDV {"type": "CALLBACK", "call": "ldv_3_ret_default = (ldv_3_container_pci_driver->suspend_late)(ldv_3_resource_dev, ldv_3_resource_pm_message);", "comment": "suspend_late"} */
     822           2 :     ldv_3_ret_default = ldv_pci_scenario_suspend_late_3_7(ldv_3_container_pci_driver->suspend_late, ldv_3_resource_dev, ldv_3_resource_pm_message);
     823             :    }
     824             :    /* Callback post-call */
     825           4 :    ldv_3_ret_default = ldv_filter_err_code(ldv_3_ret_default);
     826             :    /* LDV {"action": "SUSPEND_LATE", "type": "CALL_END"} */
     827             : 
     828             :    /* LDV {"action": "RESUME_EARLY", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume_early from PCI."} */
     829           3 :    if (ldv_3_container_pci_driver->resume_early) {
     830             :    /* LDV {"type": "CALLBACK", "call": "(ldv_3_container_pci_driver->resume_early)(ldv_3_resource_dev);", "comment": "resume_early"} */
     831           2 :     ldv_pci_scenario_resume_early_3_6(ldv_3_container_pci_driver->resume_early, ldv_3_resource_dev);
     832             :    }
     833             :    /* LDV {"action": "RESUME_EARLY", "type": "CALL_END"} */
     834             : 
     835             :    /* LDV {"action": "RESUME", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from PCI."} */
     836           6 :    if (ldv_3_container_pci_driver->resume) {
     837             :    /* LDV {"type": "CALLBACK", "call": "(ldv_3_container_pci_driver->resume)(ldv_3_resource_dev);", "comment": "resume"} */
     838           4 :     ldv_pci_scenario_resume_3_5(ldv_3_container_pci_driver->resume, ldv_3_resource_dev);
     839             :    }
     840             :    /* LDV {"action": "RESUME", "type": "CALL_END"} */
     841             : 
     842             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call rest callbacks."} */
     843             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     844             : 
     845             :    /* Jump to a subprocess 'call' initial state */
     846           3 :    goto ldv_call_3;
     847           1 :    break;
     848             :   }
     849           3 :   case 3: {
     850             :    /* LDV {"action": "SHUTDOWN", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback shutdown from PCI."} */
     851           3 :    if (ldv_3_container_pci_driver->shutdown) {
     852             :    /* LDV {"type": "CALLBACK", "call": "(ldv_3_container_pci_driver->shutdown)(ldv_3_resource_dev);", "comment": "shutdown"} */
     853           2 :     ldv_pci_scenario_shutdown_3_3(ldv_3_container_pci_driver->shutdown, ldv_3_resource_dev);
     854             :    }
     855             :    /* LDV {"action": "SHUTDOWN", "type": "CALL_END"} */
     856             : 
     857             :    /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback release from PCI."} */
     858           6 :    if (ldv_3_container_pci_driver->remove) {
     859             :    /* LDV {"type": "CALLBACK", "call": "(ldv_3_container_pci_driver->remove)(ldv_3_resource_dev);", "comment": "release"} */
     860           4 :     ldv_pci_scenario_release_3_2(ldv_3_container_pci_driver->remove, ldv_3_resource_dev);
     861             :    }
     862             :    /* LDV {"action": "RELEASE", "type": "CALL_END"} */
     863             : 
     864             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "New device is inserted, probe it."} */
     865             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     866             : 
     867             :    /* Jump to a subprocess 'main' initial state */
     868           3 :    goto ldv_main_3;
     869           1 :    break;
     870             :   }
     871           2 :   default: ldv_stop();
     872           1 :  }
     873           0 :  /* End of the subprocess 'call' */
     874           0 :  return;
     875             :  /* LDV {"comment": "End of control function based on process 'pci_scenario(pci)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_pci_scenario_3"} */
     876             : }
     877             : 
     878             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_probe_3_17 */
     879             : int ldv_pci_scenario_probe_3_17(int (*arg0)(struct pci_dev *, struct pci_device_id *), struct pci_dev *arg1, struct pci_device_id *arg2) {
     880           4 :  return ((& vortex_init_one))(arg1, arg2);
     881             : }
     882           1 : 
     883             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_release_3_2 */
     884             : void ldv_pci_scenario_release_3_2(void (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
     885           2 :  (*arg0)(arg1);
     886           2 : }
     887             : 
     888             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_resume_3_5 */
     889             : void ldv_pci_scenario_resume_3_5(int (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
     890           2 :  (*arg0)(arg1);
     891           2 : }
     892             : 
     893             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_resume_early_3_6 */
     894             : void ldv_pci_scenario_resume_early_3_6(int (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
     895           1 :  (*arg0)(arg1);
     896           1 : }
     897             : 
     898             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_shutdown_3_3 */
     899             : void ldv_pci_scenario_shutdown_3_3(void (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
     900           1 :  (*arg0)(arg1);
     901           1 : }
     902             : 
     903             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_suspend_3_8 */
     904             : int ldv_pci_scenario_suspend_3_8(int (*arg0)(struct pci_dev *, struct pm_message), struct pci_dev *arg1, struct pm_message arg2) {
     905           2 :  return (*arg0)(arg1, arg2);
     906             : }
     907           1 : 
     908             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_suspend_late_3_7 */
     909             : int ldv_pci_scenario_suspend_late_3_7(int (*arg0)(struct pci_dev *, struct pm_message), struct pci_dev *arg1, struct pm_message arg2) {
     910           2 :  return (*arg0)(arg1, arg2);
     911             : }
     912           1 : 
     913             : /* AUX_FUNC ldv_random_containerless_scenario_2 */
     914             : void ldv_random_containerless_scenario_2(void *arg0) {
     915             :  /* LDV {"thread": 2, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(net)'", "function": "ldv_random_containerless_scenario_2"} */
     916          10 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     917          10 :  void (*ldv_2_callback_get_drvinfo)(struct net_device *, struct ethtool_drvinfo *);
     918             :  void (*ldv_2_callback_get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *);
     919          10 :  u32 (*ldv_2_callback_get_link)(struct net_device *);
     920          10 :  u32 (*ldv_2_callback_get_msglevel)(struct net_device *);
     921          10 :  int (*ldv_2_callback_get_settings)(struct net_device *, struct ethtool_cmd *);
     922          10 :  int (*ldv_2_callback_get_sset_count)(struct net_device *, int);
     923          10 :  void (*ldv_2_callback_get_strings)(struct net_device *, u32 , u8 *);
     924          10 :  int (*ldv_2_callback_ndo_change_mtu)(struct net_device *, int);
     925          10 :  int (*ldv_2_callback_ndo_do_ioctl)(struct net_device *, struct ifreq *, int);
     926          10 :  struct net_device_stats *(*ldv_2_callback_ndo_get_stats)(struct net_device *);
     927          10 :  int (*ldv_2_callback_ndo_set_mac_address)(struct net_device *, void *);
     928          10 :  void (*ldv_2_callback_ndo_set_multicast_list)(struct net_device *);
     929          10 :  netdev_tx_t (*ldv_2_callback_ndo_start_xmit)(struct sk_buff *, struct net_device *);
     930          10 :  void (*ldv_2_callback_ndo_tx_timeout)(struct net_device *);
     931          10 :  int (*ldv_2_callback_ndo_validate_addr)(struct net_device *);
     932          10 :  int (*ldv_2_callback_nway_reset)(struct net_device *);
     933          10 :  void (*ldv_2_callback_set_msglevel)(struct net_device *, u32 );
     934          10 :  int (*ldv_2_callback_set_settings)(struct net_device *, struct ethtool_cmd *);
     935          10 :  struct net_device *ldv_2_container_net_device;
     936          10 :  struct ethtool_cmd *ldv_2_container_struct_ethtool_cmd_ptr;
     937          10 :  struct ethtool_drvinfo *ldv_2_container_struct_ethtool_drvinfo_ptr;
     938          10 :  struct ethtool_stats *ldv_2_container_struct_ethtool_stats_ptr;
     939          10 :  struct ifreq *ldv_2_container_struct_ifreq_ptr;
     940          10 :  struct sk_buff *ldv_2_container_struct_sk_buff_ptr;
     941          10 :  int ldv_2_ldv_param_12_1_default;
     942          10 :  unsigned int ldv_2_ldv_param_15_1_default;
     943          10 :  unsigned char *ldv_2_ldv_param_15_2_default;
     944          10 :  int ldv_2_ldv_param_18_1_default;
     945          10 :  int ldv_2_ldv_param_21_2_default;
     946          10 :  unsigned int ldv_2_ldv_param_31_1_default;
     947          10 :  long long unsigned int *ldv_2_ldv_param_6_2_default;
     948          10 :  /* Received labels */
     949          20 :  struct ldv_struct_random_containerless_scenario_2 *data = (struct ldv_struct_random_containerless_scenario_2*) arg0;
     950          10 : 
     951          10 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     952             :  /* LDV {"action": "REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin NET callbacks invocations scenario."} */
     953             :  /* Assign recieved labels */
     954          20 :  if (data) {
     955          10 :   ldv_2_container_net_device = data->arg0;
     956          20 :   ldv_free(data);
     957             :  }
     958             :  /* LDV {"action": "REGISTER", "type": "RECEIVE_END"} */
     959             : 
     960             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     961             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     962             : 
     963             :  /* Jump to a subprocess 'call' initial state */
     964          20 :  goto ldv_call_2;
     965             :  /* End of the process */
     966             :  return;
     967          10 : 
     968             :  /* Sbprocess call */
     969             :  ldv_call_2:
     970             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     971             : 
     972          20 :  switch (ldv_undef_int()) {
     973          30 :   case 1: {
     974             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback set_settings from ethtool_ops."} */
     975             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_set_settings))(ldv_2_container_net_device, ldv_2_container_struct_ethtool_cmd_ptr);", "comment": "callback"} */
     976          20 :    ldv_random_containerless_scenario_callback_2_34(ldv_2_callback_set_settings, ldv_2_container_net_device, ldv_2_container_struct_ethtool_cmd_ptr);
     977             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     978             : 
     979             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     980             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     981             : 
     982             :    /* Jump to a subprocess 'call' initial state */
     983          10 :    goto ldv_call_2;
     984          10 :    break;
     985             :   }
     986          30 :   case 2: {
     987             :    /* LDV {"action": "PRE_CALL_31", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     988             :    /* LDV {"action": "PRE_CALL_31", "type": "CONDITION_END"} */
     989             : 
     990             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback set_msglevel from ethtool_ops."} */
     991             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_set_msglevel))(ldv_2_container_net_device, ldv_2_ldv_param_31_1_default);", "comment": "callback"} */
     992          20 :    ldv_random_containerless_scenario_callback_2_31(ldv_2_callback_set_msglevel, ldv_2_container_net_device, ldv_2_ldv_param_31_1_default);
     993             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     994             : 
     995             :    /* LDV {"action": "POST_CALL_31", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     996             :    /* LDV {"action": "POST_CALL_31", "type": "CONDITION_END"} */
     997             : 
     998             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     999             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1000             : 
    1001             :    /* Jump to a subprocess 'call' initial state */
    1002          10 :    goto ldv_call_2;
    1003             :    /* Jump to a subprocess 'call' initial state */
    1004             :    goto ldv_call_2;
    1005          10 :    break;
    1006             :   }
    1007          30 :   case 3: {
    1008             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback nway_reset from ethtool_ops."} */
    1009             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_nway_reset))(ldv_2_container_net_device);", "comment": "callback"} */
    1010          20 :    ldv_random_containerless_scenario_callback_2_30(ldv_2_callback_nway_reset, ldv_2_container_net_device);
    1011             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1012             : 
    1013             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1014             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1015             : 
    1016             :    /* Jump to a subprocess 'call' initial state */
    1017          10 :    goto ldv_call_2;
    1018             :    /* Jump to a subprocess 'call' initial state */
    1019             :    goto ldv_call_2;
    1020             :    /* Jump to a subprocess 'call' initial state */
    1021             :    goto ldv_call_2;
    1022          10 :    break;
    1023             :   }
    1024          30 :   case 4: {
    1025             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ndo_validate_addr from net_device_ops."} */
    1026             :    /* LDV {"type": "CALLBACK", "call": "((& eth_validate_addr))(ldv_2_container_net_device);", "comment": "callback"} */
    1027          20 :    ldv_random_containerless_scenario_callback_2_29(ldv_2_callback_ndo_validate_addr, ldv_2_container_net_device);
    1028             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1029             : 
    1030             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1031             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1032             : 
    1033             :    /* Jump to a subprocess 'call' initial state */
    1034          10 :    goto ldv_call_2;
    1035             :    /* Jump to a subprocess 'call' initial state */
    1036             :    goto ldv_call_2;
    1037             :    /* Jump to a subprocess 'call' initial state */
    1038             :    goto ldv_call_2;
    1039             :    /* Jump to a subprocess 'call' initial state */
    1040             :    goto ldv_call_2;
    1041          10 :    break;
    1042             :   }
    1043          30 :   case 5: {
    1044             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ndo_tx_timeout from net_device_ops."} */
    1045             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_tx_timeout))(ldv_2_container_net_device);", "comment": "callback"} */
    1046          20 :    ldv_random_containerless_scenario_callback_2_28(ldv_2_callback_ndo_tx_timeout, ldv_2_container_net_device);
    1047             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1048             : 
    1049             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1050             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1051             : 
    1052             :    /* Jump to a subprocess 'call' initial state */
    1053          10 :    goto ldv_call_2;
    1054             :    /* Jump to a subprocess 'call' initial state */
    1055             :    goto ldv_call_2;
    1056             :    /* Jump to a subprocess 'call' initial state */
    1057             :    goto ldv_call_2;
    1058             :    /* Jump to a subprocess 'call' initial state */
    1059             :    goto ldv_call_2;
    1060             :    /* Jump to a subprocess 'call' initial state */
    1061             :    goto ldv_call_2;
    1062          10 :    break;
    1063             :   }
    1064          30 :   case 6: {
    1065             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ndo_start_xmit from net_device_ops."} */
    1066             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_start_xmit))(ldv_2_container_struct_sk_buff_ptr, ldv_2_container_net_device);", "comment": "callback"} */
    1067          20 :    ldv_random_containerless_scenario_callback_2_27(ldv_2_callback_ndo_start_xmit, ldv_2_container_struct_sk_buff_ptr, ldv_2_container_net_device);
    1068             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1069             : 
    1070             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1071             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1072             : 
    1073             :    /* Jump to a subprocess 'call' initial state */
    1074          10 :    goto ldv_call_2;
    1075             :    /* Jump to a subprocess 'call' initial state */
    1076             :    goto ldv_call_2;
    1077             :    /* Jump to a subprocess 'call' initial state */
    1078             :    goto ldv_call_2;
    1079             :    /* Jump to a subprocess 'call' initial state */
    1080             :    goto ldv_call_2;
    1081             :    /* Jump to a subprocess 'call' initial state */
    1082             :    goto ldv_call_2;
    1083             :    /* Jump to a subprocess 'call' initial state */
    1084             :    goto ldv_call_2;
    1085          10 :    break;
    1086             :   }
    1087          30 :   case 7: {
    1088             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ndo_set_multicast_list from net_device_ops."} */
    1089             :    /* LDV {"type": "CALLBACK", "call": "((& set_rx_mode))(ldv_2_container_net_device);", "comment": "callback"} */
    1090          20 :    ldv_random_containerless_scenario_callback_2_26(ldv_2_callback_ndo_set_multicast_list, ldv_2_container_net_device);
    1091             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1092             : 
    1093             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1094             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1095             : 
    1096             :    /* Jump to a subprocess 'call' initial state */
    1097          10 :    goto ldv_call_2;
    1098             :    /* Jump to a subprocess 'call' initial state */
    1099             :    goto ldv_call_2;
    1100             :    /* Jump to a subprocess 'call' initial state */
    1101             :    goto ldv_call_2;
    1102             :    /* Jump to a subprocess 'call' initial state */
    1103             :    goto ldv_call_2;
    1104             :    /* Jump to a subprocess 'call' initial state */
    1105             :    goto ldv_call_2;
    1106             :    /* Jump to a subprocess 'call' initial state */
    1107             :    goto ldv_call_2;
    1108             :    /* Jump to a subprocess 'call' initial state */
    1109             :    goto ldv_call_2;
    1110          10 :    break;
    1111             :   }
    1112          30 :   case 8: {
    1113             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ndo_set_mac_address from net_device_ops."} */
    1114             :    /* LDV {"type": "CALLBACK", "call": "((& eth_mac_addr))(ldv_2_container_net_device, ldv_2_container_struct_ethtool_cmd_ptr);", "comment": "callback"} */
    1115          20 :    ldv_random_containerless_scenario_callback_2_25(ldv_2_callback_ndo_set_mac_address, ldv_2_container_net_device, ldv_2_container_struct_ethtool_cmd_ptr);
    1116             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1117             : 
    1118             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1119             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1120             : 
    1121             :    /* Jump to a subprocess 'call' initial state */
    1122          10 :    goto ldv_call_2;
    1123             :    /* Jump to a subprocess 'call' initial state */
    1124             :    goto ldv_call_2;
    1125             :    /* Jump to a subprocess 'call' initial state */
    1126             :    goto ldv_call_2;
    1127             :    /* Jump to a subprocess 'call' initial state */
    1128             :    goto ldv_call_2;
    1129             :    /* Jump to a subprocess 'call' initial state */
    1130             :    goto ldv_call_2;
    1131             :    /* Jump to a subprocess 'call' initial state */
    1132             :    goto ldv_call_2;
    1133             :    /* Jump to a subprocess 'call' initial state */
    1134             :    goto ldv_call_2;
    1135             :    /* Jump to a subprocess 'call' initial state */
    1136             :    goto ldv_call_2;
    1137          10 :    break;
    1138             :   }
    1139          30 :   case 9: {
    1140             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ndo_get_stats from net_device_ops."} */
    1141             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_get_stats))(ldv_2_container_net_device);", "comment": "callback"} */
    1142          20 :    ldv_random_containerless_scenario_callback_2_24(ldv_2_callback_ndo_get_stats, ldv_2_container_net_device);
    1143             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1144             : 
    1145             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1146             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1147             : 
    1148             :    /* Jump to a subprocess 'call' initial state */
    1149          10 :    goto ldv_call_2;
    1150             :    /* Jump to a subprocess 'call' initial state */
    1151             :    goto ldv_call_2;
    1152             :    /* Jump to a subprocess 'call' initial state */
    1153             :    goto ldv_call_2;
    1154             :    /* Jump to a subprocess 'call' initial state */
    1155             :    goto ldv_call_2;
    1156             :    /* Jump to a subprocess 'call' initial state */
    1157             :    goto ldv_call_2;
    1158             :    /* Jump to a subprocess 'call' initial state */
    1159             :    goto ldv_call_2;
    1160             :    /* Jump to a subprocess 'call' initial state */
    1161             :    goto ldv_call_2;
    1162             :    /* Jump to a subprocess 'call' initial state */
    1163             :    goto ldv_call_2;
    1164             :    /* Jump to a subprocess 'call' initial state */
    1165             :    goto ldv_call_2;
    1166          10 :    break;
    1167             :   }
    1168          30 :   case 10: {
    1169             :    /* LDV {"action": "PRE_CALL_21", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1170             :    /* LDV {"action": "PRE_CALL_21", "type": "CONDITION_END"} */
    1171             : 
    1172             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ndo_do_ioctl from net_device_ops."} */
    1173             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_ioctl))(ldv_2_container_net_device, ldv_2_container_struct_ifreq_ptr, ldv_2_ldv_param_21_2_default);", "comment": "callback"} */
    1174          20 :    ldv_random_containerless_scenario_callback_2_21(ldv_2_callback_ndo_do_ioctl, ldv_2_container_net_device, ldv_2_container_struct_ifreq_ptr, ldv_2_ldv_param_21_2_default);
    1175             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1176             : 
    1177             :    /* LDV {"action": "POST_CALL_21", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1178             :    /* LDV {"action": "POST_CALL_21", "type": "CONDITION_END"} */
    1179             : 
    1180             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1181             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1182             : 
    1183             :    /* Jump to a subprocess 'call' initial state */
    1184          10 :    goto ldv_call_2;
    1185             :    /* Jump to a subprocess 'call' initial state */
    1186             :    goto ldv_call_2;
    1187             :    /* Jump to a subprocess 'call' initial state */
    1188             :    goto ldv_call_2;
    1189             :    /* Jump to a subprocess 'call' initial state */
    1190             :    goto ldv_call_2;
    1191             :    /* Jump to a subprocess 'call' initial state */
    1192             :    goto ldv_call_2;
    1193             :    /* Jump to a subprocess 'call' initial state */
    1194             :    goto ldv_call_2;
    1195             :    /* Jump to a subprocess 'call' initial state */
    1196             :    goto ldv_call_2;
    1197             :    /* Jump to a subprocess 'call' initial state */
    1198             :    goto ldv_call_2;
    1199             :    /* Jump to a subprocess 'call' initial state */
    1200             :    goto ldv_call_2;
    1201             :    /* Jump to a subprocess 'call' initial state */
    1202             :    goto ldv_call_2;
    1203          10 :    break;
    1204             :   }
    1205          30 :   case 11: {
    1206             :    /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1207             :    /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
    1208             : 
    1209             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback ndo_change_mtu from net_device_ops."} */
    1210             :    /* LDV {"type": "CALLBACK", "call": "((& eth_change_mtu))(ldv_2_container_net_device, ldv_2_ldv_param_18_1_default);", "comment": "callback"} */
    1211          20 :    ldv_random_containerless_scenario_callback_2_18(ldv_2_callback_ndo_change_mtu, ldv_2_container_net_device, ldv_2_ldv_param_18_1_default);
    1212             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1213             : 
    1214             :    /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1215             :    /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
    1216             : 
    1217             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1218             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1219             : 
    1220             :    /* Jump to a subprocess 'call' initial state */
    1221          10 :    goto ldv_call_2;
    1222             :    /* Jump to a subprocess 'call' initial state */
    1223             :    goto ldv_call_2;
    1224             :    /* Jump to a subprocess 'call' initial state */
    1225             :    goto ldv_call_2;
    1226             :    /* Jump to a subprocess 'call' initial state */
    1227             :    goto ldv_call_2;
    1228             :    /* Jump to a subprocess 'call' initial state */
    1229             :    goto ldv_call_2;
    1230             :    /* Jump to a subprocess 'call' initial state */
    1231             :    goto ldv_call_2;
    1232             :    /* Jump to a subprocess 'call' initial state */
    1233             :    goto ldv_call_2;
    1234             :    /* Jump to a subprocess 'call' initial state */
    1235             :    goto ldv_call_2;
    1236             :    /* Jump to a subprocess 'call' initial state */
    1237             :    goto ldv_call_2;
    1238             :    /* Jump to a subprocess 'call' initial state */
    1239             :    goto ldv_call_2;
    1240             :    /* Jump to a subprocess 'call' initial state */
    1241             :    goto ldv_call_2;
    1242          10 :    break;
    1243             :   }
    1244          30 :   case 12: {
    1245             :    /* LDV {"action": "PRE_CALL_15", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1246          30 :    ldv_2_ldv_param_15_2_default = ldv_xmalloc_unknown_size(0);
    1247             :    /* LDV {"action": "PRE_CALL_15", "type": "CONDITION_END"} */
    1248             : 
    1249             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get_strings from ethtool_ops."} */
    1250             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_get_strings))(ldv_2_container_net_device, ldv_2_ldv_param_15_1_default, ldv_2_ldv_param_15_2_default);", "comment": "callback"} */
    1251          20 :    ldv_random_containerless_scenario_callback_2_15(ldv_2_callback_get_strings, ldv_2_container_net_device, ldv_2_ldv_param_15_1_default, ldv_2_ldv_param_15_2_default);
    1252             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1253             : 
    1254             :    /* LDV {"action": "POST_CALL_15", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1255          20 :    ldv_free(ldv_2_ldv_param_15_2_default);
    1256             :    /* LDV {"action": "POST_CALL_15", "type": "CONDITION_END"} */
    1257             : 
    1258             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1259             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1260             : 
    1261             :    /* Jump to a subprocess 'call' initial state */
    1262          10 :    goto ldv_call_2;
    1263             :    /* Jump to a subprocess 'call' initial state */
    1264             :    goto ldv_call_2;
    1265             :    /* Jump to a subprocess 'call' initial state */
    1266             :    goto ldv_call_2;
    1267             :    /* Jump to a subprocess 'call' initial state */
    1268             :    goto ldv_call_2;
    1269             :    /* Jump to a subprocess 'call' initial state */
    1270             :    goto ldv_call_2;
    1271             :    /* Jump to a subprocess 'call' initial state */
    1272             :    goto ldv_call_2;
    1273             :    /* Jump to a subprocess 'call' initial state */
    1274             :    goto ldv_call_2;
    1275             :    /* Jump to a subprocess 'call' initial state */
    1276             :    goto ldv_call_2;
    1277             :    /* Jump to a subprocess 'call' initial state */
    1278             :    goto ldv_call_2;
    1279             :    /* Jump to a subprocess 'call' initial state */
    1280             :    goto ldv_call_2;
    1281             :    /* Jump to a subprocess 'call' initial state */
    1282             :    goto ldv_call_2;
    1283             :    /* Jump to a subprocess 'call' initial state */
    1284             :    goto ldv_call_2;
    1285          10 :    break;
    1286             :   }
    1287          30 :   case 13: {
    1288             :    /* LDV {"action": "PRE_CALL_12", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1289             :    /* LDV {"action": "PRE_CALL_12", "type": "CONDITION_END"} */
    1290             : 
    1291             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get_sset_count from ethtool_ops."} */
    1292             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_get_sset_count))(ldv_2_container_net_device, ldv_2_ldv_param_12_1_default);", "comment": "callback"} */
    1293          20 :    ldv_random_containerless_scenario_callback_2_12(ldv_2_callback_get_sset_count, ldv_2_container_net_device, ldv_2_ldv_param_12_1_default);
    1294             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1295             : 
    1296             :    /* LDV {"action": "POST_CALL_12", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1297             :    /* LDV {"action": "POST_CALL_12", "type": "CONDITION_END"} */
    1298             : 
    1299             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1300             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1301             : 
    1302             :    /* Jump to a subprocess 'call' initial state */
    1303          10 :    goto ldv_call_2;
    1304             :    /* Jump to a subprocess 'call' initial state */
    1305             :    goto ldv_call_2;
    1306             :    /* Jump to a subprocess 'call' initial state */
    1307             :    goto ldv_call_2;
    1308             :    /* Jump to a subprocess 'call' initial state */
    1309             :    goto ldv_call_2;
    1310             :    /* Jump to a subprocess 'call' initial state */
    1311             :    goto ldv_call_2;
    1312             :    /* Jump to a subprocess 'call' initial state */
    1313             :    goto ldv_call_2;
    1314             :    /* Jump to a subprocess 'call' initial state */
    1315             :    goto ldv_call_2;
    1316             :    /* Jump to a subprocess 'call' initial state */
    1317             :    goto ldv_call_2;
    1318             :    /* Jump to a subprocess 'call' initial state */
    1319             :    goto ldv_call_2;
    1320             :    /* Jump to a subprocess 'call' initial state */
    1321             :    goto ldv_call_2;
    1322             :    /* Jump to a subprocess 'call' initial state */
    1323             :    goto ldv_call_2;
    1324             :    /* Jump to a subprocess 'call' initial state */
    1325             :    goto ldv_call_2;
    1326             :    /* Jump to a subprocess 'call' initial state */
    1327             :    goto ldv_call_2;
    1328          10 :    break;
    1329             :   }
    1330          30 :   case 14: {
    1331             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get_settings from ethtool_ops."} */
    1332             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_get_settings))(ldv_2_container_net_device, ldv_2_container_struct_ethtool_cmd_ptr);", "comment": "callback"} */
    1333          20 :    ldv_random_containerless_scenario_callback_2_11(ldv_2_callback_get_settings, ldv_2_container_net_device, ldv_2_container_struct_ethtool_cmd_ptr);
    1334             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1335             : 
    1336             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1337             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1338             : 
    1339             :    /* Jump to a subprocess 'call' initial state */
    1340          10 :    goto ldv_call_2;
    1341             :    /* Jump to a subprocess 'call' initial state */
    1342             :    goto ldv_call_2;
    1343             :    /* Jump to a subprocess 'call' initial state */
    1344             :    goto ldv_call_2;
    1345             :    /* Jump to a subprocess 'call' initial state */
    1346             :    goto ldv_call_2;
    1347             :    /* Jump to a subprocess 'call' initial state */
    1348             :    goto ldv_call_2;
    1349             :    /* Jump to a subprocess 'call' initial state */
    1350             :    goto ldv_call_2;
    1351             :    /* Jump to a subprocess 'call' initial state */
    1352             :    goto ldv_call_2;
    1353             :    /* Jump to a subprocess 'call' initial state */
    1354             :    goto ldv_call_2;
    1355             :    /* Jump to a subprocess 'call' initial state */
    1356             :    goto ldv_call_2;
    1357             :    /* Jump to a subprocess 'call' initial state */
    1358             :    goto ldv_call_2;
    1359             :    /* Jump to a subprocess 'call' initial state */
    1360             :    goto ldv_call_2;
    1361             :    /* Jump to a subprocess 'call' initial state */
    1362             :    goto ldv_call_2;
    1363             :    /* Jump to a subprocess 'call' initial state */
    1364             :    goto ldv_call_2;
    1365             :    /* Jump to a subprocess 'call' initial state */
    1366             :    goto ldv_call_2;
    1367          10 :    break;
    1368             :   }
    1369          30 :   case 15: {
    1370             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get_msglevel from ethtool_ops."} */
    1371             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_get_msglevel))(ldv_2_container_net_device);", "comment": "callback"} */
    1372          20 :    ldv_random_containerless_scenario_callback_2_10(ldv_2_callback_get_msglevel, ldv_2_container_net_device);
    1373             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1374             : 
    1375             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1376             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1377             : 
    1378             :    /* Jump to a subprocess 'call' initial state */
    1379          10 :    goto ldv_call_2;
    1380             :    /* Jump to a subprocess 'call' initial state */
    1381             :    goto ldv_call_2;
    1382             :    /* Jump to a subprocess 'call' initial state */
    1383             :    goto ldv_call_2;
    1384             :    /* Jump to a subprocess 'call' initial state */
    1385             :    goto ldv_call_2;
    1386             :    /* Jump to a subprocess 'call' initial state */
    1387             :    goto ldv_call_2;
    1388             :    /* Jump to a subprocess 'call' initial state */
    1389             :    goto ldv_call_2;
    1390             :    /* Jump to a subprocess 'call' initial state */
    1391             :    goto ldv_call_2;
    1392             :    /* Jump to a subprocess 'call' initial state */
    1393             :    goto ldv_call_2;
    1394             :    /* Jump to a subprocess 'call' initial state */
    1395             :    goto ldv_call_2;
    1396             :    /* Jump to a subprocess 'call' initial state */
    1397             :    goto ldv_call_2;
    1398             :    /* Jump to a subprocess 'call' initial state */
    1399             :    goto ldv_call_2;
    1400             :    /* Jump to a subprocess 'call' initial state */
    1401             :    goto ldv_call_2;
    1402             :    /* Jump to a subprocess 'call' initial state */
    1403             :    goto ldv_call_2;
    1404             :    /* Jump to a subprocess 'call' initial state */
    1405             :    goto ldv_call_2;
    1406             :    /* Jump to a subprocess 'call' initial state */
    1407             :    goto ldv_call_2;
    1408          10 :    break;
    1409             :   }
    1410          30 :   case 16: {
    1411             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get_link from ethtool_ops."} */
    1412             :    /* LDV {"type": "CALLBACK", "call": "((& ethtool_op_get_link))(ldv_2_container_net_device);", "comment": "callback"} */
    1413          20 :    ldv_random_containerless_scenario_callback_2_9(ldv_2_callback_get_link, ldv_2_container_net_device);
    1414             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1415             : 
    1416             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1417             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1418             : 
    1419             :    /* Jump to a subprocess 'call' initial state */
    1420          10 :    goto ldv_call_2;
    1421             :    /* Jump to a subprocess 'call' initial state */
    1422             :    goto ldv_call_2;
    1423             :    /* Jump to a subprocess 'call' initial state */
    1424             :    goto ldv_call_2;
    1425             :    /* Jump to a subprocess 'call' initial state */
    1426             :    goto ldv_call_2;
    1427             :    /* Jump to a subprocess 'call' initial state */
    1428             :    goto ldv_call_2;
    1429             :    /* Jump to a subprocess 'call' initial state */
    1430             :    goto ldv_call_2;
    1431             :    /* Jump to a subprocess 'call' initial state */
    1432             :    goto ldv_call_2;
    1433             :    /* Jump to a subprocess 'call' initial state */
    1434             :    goto ldv_call_2;
    1435             :    /* Jump to a subprocess 'call' initial state */
    1436             :    goto ldv_call_2;
    1437             :    /* Jump to a subprocess 'call' initial state */
    1438             :    goto ldv_call_2;
    1439             :    /* Jump to a subprocess 'call' initial state */
    1440             :    goto ldv_call_2;
    1441             :    /* Jump to a subprocess 'call' initial state */
    1442             :    goto ldv_call_2;
    1443             :    /* Jump to a subprocess 'call' initial state */
    1444             :    goto ldv_call_2;
    1445             :    /* Jump to a subprocess 'call' initial state */
    1446             :    goto ldv_call_2;
    1447             :    /* Jump to a subprocess 'call' initial state */
    1448             :    goto ldv_call_2;
    1449             :    /* Jump to a subprocess 'call' initial state */
    1450             :    goto ldv_call_2;
    1451          10 :    break;
    1452             :   }
    1453          30 :   case 17: {
    1454             :    /* LDV {"action": "PRE_CALL_6", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1455          30 :    ldv_2_ldv_param_6_2_default = ldv_xmalloc_unknown_size(0);
    1456             :    /* LDV {"action": "PRE_CALL_6", "type": "CONDITION_END"} */
    1457             : 
    1458             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get_ethtool_stats from ethtool_ops."} */
    1459             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_get_ethtool_stats))(ldv_2_container_net_device, ldv_2_container_struct_ethtool_stats_ptr, ldv_2_ldv_param_6_2_default);", "comment": "callback"} */
    1460          20 :    ldv_random_containerless_scenario_callback_2_6(ldv_2_callback_get_ethtool_stats, ldv_2_container_net_device, ldv_2_container_struct_ethtool_stats_ptr, ldv_2_ldv_param_6_2_default);
    1461             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1462             : 
    1463             :    /* LDV {"action": "POST_CALL_6", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1464          20 :    ldv_free(ldv_2_ldv_param_6_2_default);
    1465             :    /* LDV {"action": "POST_CALL_6", "type": "CONDITION_END"} */
    1466             : 
    1467             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1468             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1469             : 
    1470             :    /* Jump to a subprocess 'call' initial state */
    1471          10 :    goto ldv_call_2;
    1472             :    /* Jump to a subprocess 'call' initial state */
    1473             :    goto ldv_call_2;
    1474             :    /* Jump to a subprocess 'call' initial state */
    1475             :    goto ldv_call_2;
    1476             :    /* Jump to a subprocess 'call' initial state */
    1477             :    goto ldv_call_2;
    1478             :    /* Jump to a subprocess 'call' initial state */
    1479             :    goto ldv_call_2;
    1480             :    /* Jump to a subprocess 'call' initial state */
    1481             :    goto ldv_call_2;
    1482             :    /* Jump to a subprocess 'call' initial state */
    1483             :    goto ldv_call_2;
    1484             :    /* Jump to a subprocess 'call' initial state */
    1485             :    goto ldv_call_2;
    1486             :    /* Jump to a subprocess 'call' initial state */
    1487             :    goto ldv_call_2;
    1488             :    /* Jump to a subprocess 'call' initial state */
    1489             :    goto ldv_call_2;
    1490             :    /* Jump to a subprocess 'call' initial state */
    1491             :    goto ldv_call_2;
    1492             :    /* Jump to a subprocess 'call' initial state */
    1493             :    goto ldv_call_2;
    1494             :    /* Jump to a subprocess 'call' initial state */
    1495             :    goto ldv_call_2;
    1496             :    /* Jump to a subprocess 'call' initial state */
    1497             :    goto ldv_call_2;
    1498             :    /* Jump to a subprocess 'call' initial state */
    1499             :    goto ldv_call_2;
    1500             :    /* Jump to a subprocess 'call' initial state */
    1501             :    goto ldv_call_2;
    1502             :    /* Jump to a subprocess 'call' initial state */
    1503             :    goto ldv_call_2;
    1504          10 :    break;
    1505             :   }
    1506          30 :   case 18: {
    1507             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get_drvinfo from ethtool_ops."} */
    1508             :    /* LDV {"type": "CALLBACK", "call": "((& vortex_get_drvinfo))(ldv_2_container_net_device, ldv_2_container_struct_ethtool_drvinfo_ptr);", "comment": "callback"} */
    1509          20 :    ldv_random_containerless_scenario_callback_2_3(ldv_2_callback_get_drvinfo, ldv_2_container_net_device, ldv_2_container_struct_ethtool_drvinfo_ptr);
    1510             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1511             : 
    1512             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1513             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1514             : 
    1515             :    /* Jump to a subprocess 'call' initial state */
    1516          10 :    goto ldv_call_2;
    1517             :    /* Jump to a subprocess 'call' initial state */
    1518             :    goto ldv_call_2;
    1519             :    /* Jump to a subprocess 'call' initial state */
    1520             :    goto ldv_call_2;
    1521             :    /* Jump to a subprocess 'call' initial state */
    1522             :    goto ldv_call_2;
    1523             :    /* Jump to a subprocess 'call' initial state */
    1524             :    goto ldv_call_2;
    1525             :    /* Jump to a subprocess 'call' initial state */
    1526             :    goto ldv_call_2;
    1527             :    /* Jump to a subprocess 'call' initial state */
    1528             :    goto ldv_call_2;
    1529             :    /* Jump to a subprocess 'call' initial state */
    1530             :    goto ldv_call_2;
    1531             :    /* Jump to a subprocess 'call' initial state */
    1532             :    goto ldv_call_2;
    1533             :    /* Jump to a subprocess 'call' initial state */
    1534             :    goto ldv_call_2;
    1535             :    /* Jump to a subprocess 'call' initial state */
    1536             :    goto ldv_call_2;
    1537             :    /* Jump to a subprocess 'call' initial state */
    1538             :    goto ldv_call_2;
    1539             :    /* Jump to a subprocess 'call' initial state */
    1540             :    goto ldv_call_2;
    1541             :    /* Jump to a subprocess 'call' initial state */
    1542             :    goto ldv_call_2;
    1543             :    /* Jump to a subprocess 'call' initial state */
    1544             :    goto ldv_call_2;
    1545             :    /* Jump to a subprocess 'call' initial state */
    1546             :    goto ldv_call_2;
    1547             :    /* Jump to a subprocess 'call' initial state */
    1548             :    goto ldv_call_2;
    1549             :    /* Jump to a subprocess 'call' initial state */
    1550             :    goto ldv_call_2;
    1551          10 :    break;
    1552             :   }
    1553          30 :   case 19: {
    1554             :    /* LDV {"action": "DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Finish NET callbacks invocations scenario."} */
    1555             :    /* Skip a non-replicative signal receiving */
    1556             :    /* LDV {"action": "DEREGISTER", "type": "RECEIVE_END"} */
    1557             : 
    1558             :    /* Exit function at a terminal state */
    1559          10 :    return;
    1560          10 :    break;
    1561             :   }
    1562          20 :   default: ldv_stop();
    1563          10 :  }
    1564           0 :  /* End of the subprocess 'call' */
    1565           0 :  return;
    1566             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(net)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_2"} */
    1567             : }
    1568             : 
    1569             : /* AUX_FUNC ldv_random_containerless_scenario_4 */
    1570             : void ldv_random_containerless_scenario_4(void *arg0) {
    1571             :  /* LDV {"thread": 4, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_kparam_array)'", "function": "ldv_random_containerless_scenario_4"} */
    1572           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1573           1 :  int (*ldv_4_callback_get)(char *, struct kernel_param *);
    1574           1 :  int (*ldv_4_callback_set)(char *, struct kernel_param *);
    1575           1 :  struct kernel_param *ldv_4_container_struct_kernel_param_ptr;
    1576           1 :  char *ldv_4_ldv_param_10_0_default;
    1577           1 :  char *ldv_4_ldv_param_4_0_default;
    1578           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1579           1 :  /* LDV {"action": "DEFAULT_REGISTER_13", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_KPARAM_ARRAY callbacks invocations scenario."} */
    1580           3 :  ldv_free(arg0);
    1581           1 :  /* LDV {"action": "DEFAULT_REGISTER_13", "type": "RECEIVE_END"} */
    1582             : 
    1583             :  /* LDV {"action": "DEFAULT_ALLOC_13", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
    1584           3 :  ldv_4_container_struct_kernel_param_ptr = ldv_xmalloc_unknown_size(0);
    1585             :  /* LDV {"action": "DEFAULT_ALLOC_13", "type": "CONDITION_END"} */
    1586             : 
    1587             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1588             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1589             : 
    1590             :  /* Jump to a subprocess 'call' initial state */
    1591           1 :  goto ldv_call_4;
    1592             :  /* End of the process */
    1593             :  return;
    1594           1 : 
    1595             :  /* Sbprocess call */
    1596             :  ldv_call_4:
    1597             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1598             : 
    1599           4 :  if (ldv_undef_int()) {
    1600             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1601           3 :   ldv_4_ldv_param_4_0_default = ldv_xmalloc_unknown_size(0);
    1602             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
    1603             : 
    1604           4 :   if (ldv_undef_int()) {
    1605             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1606           3 :    ldv_4_ldv_param_10_0_default = ldv_xmalloc_unknown_size(0);
    1607             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
    1608             : 
    1609             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback set from kernel_param."} */
    1610             :    /* LDV {"type": "CALLBACK", "call": "((& param_set_int))(ldv_4_ldv_param_10_0_default, ldv_4_container_struct_kernel_param_ptr);", "comment": "callback"} */
    1611           2 :    ldv_random_containerless_scenario_callback_4_10(ldv_4_callback_set, ldv_4_ldv_param_10_0_default, ldv_4_container_struct_kernel_param_ptr);
    1612             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1613             : 
    1614             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1615           2 :    ldv_free(ldv_4_ldv_param_10_0_default);
    1616             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
    1617             : 
    1618             :   }
    1619             :   else {
    1620             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get from kernel_param."} */
    1621             :    /* LDV {"type": "CALLBACK", "call": "((& param_get_int))(ldv_4_ldv_param_4_0_default, ldv_4_container_struct_kernel_param_ptr);", "comment": "callback"} */
    1622           2 :    ldv_random_containerless_scenario_callback_4_4(ldv_4_callback_get, ldv_4_ldv_param_4_0_default, ldv_4_container_struct_kernel_param_ptr);
    1623             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1624             : 
    1625             :   }
    1626             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1627           4 :   ldv_free(ldv_4_ldv_param_4_0_default);
    1628             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
    1629             : 
    1630             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1631             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1632             : 
    1633             :   /* Jump to a subprocess 'call' initial state */
    1634           1 :   goto ldv_call_4;
    1635             :  }
    1636             :  else {
    1637             :   /* LDV {"action": "DEFAULT_FREE_13", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
    1638           2 :   ldv_free(ldv_4_container_struct_kernel_param_ptr);
    1639             :   /* LDV {"action": "DEFAULT_FREE_13", "type": "CONDITION_END"} */
    1640             : 
    1641             :   /* LDV {"action": "DEFAULT_DEREGISTER_13", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_KPARAM_ARRAY callbacks invocations scenario."} */
    1642             :   /* Skip a non-replicative signal receiving */
    1643             :   /* LDV {"action": "DEFAULT_DEREGISTER_13", "type": "RECEIVE_END"} */
    1644             : 
    1645             :   /* Exit function at a terminal state */
    1646           1 :   return;
    1647             :  }
    1648             :  /* End of the subprocess 'call' */
    1649             :  return;
    1650             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_kparam_array)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_4"} */
    1651             : }
    1652             : 
    1653             : /* AUX_FUNC ldv_random_containerless_scenario_5 */
    1654             : void ldv_random_containerless_scenario_5(void *arg0) {
    1655             :  /* LDV {"thread": 5, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_kparam_array)'", "function": "ldv_random_containerless_scenario_5"} */
    1656           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1657           1 :  int (*ldv_5_callback_get)(char *, struct kernel_param *);
    1658           1 :  int (*ldv_5_callback_set)(char *, struct kernel_param *);
    1659           1 :  struct kernel_param *ldv_5_container_struct_kernel_param_ptr;
    1660           1 :  char *ldv_5_ldv_param_10_0_default;
    1661           1 :  char *ldv_5_ldv_param_4_0_default;
    1662           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1663           1 :  /* LDV {"action": "DEFAULT_REGISTER_13", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_KPARAM_ARRAY callbacks invocations scenario."} */
    1664           3 :  ldv_free(arg0);
    1665           1 :  /* LDV {"action": "DEFAULT_REGISTER_13", "type": "RECEIVE_END"} */
    1666             : 
    1667             :  /* LDV {"action": "DEFAULT_ALLOC_13", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
    1668           3 :  ldv_5_container_struct_kernel_param_ptr = ldv_xmalloc_unknown_size(0);
    1669             :  /* LDV {"action": "DEFAULT_ALLOC_13", "type": "CONDITION_END"} */
    1670             : 
    1671             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1672             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1673             : 
    1674             :  /* Jump to a subprocess 'call' initial state */
    1675           1 :  goto ldv_call_5;
    1676             :  /* End of the process */
    1677             :  return;
    1678           1 : 
    1679             :  /* Sbprocess call */
    1680             :  ldv_call_5:
    1681             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1682             : 
    1683           4 :  if (ldv_undef_int()) {
    1684             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1685           3 :   ldv_5_ldv_param_4_0_default = ldv_xmalloc_unknown_size(0);
    1686             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
    1687             : 
    1688           4 :   if (ldv_undef_int()) {
    1689             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1690           3 :    ldv_5_ldv_param_10_0_default = ldv_xmalloc_unknown_size(0);
    1691             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
    1692             : 
    1693             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback set from kernel_param."} */
    1694             :    /* LDV {"type": "CALLBACK", "call": "((& param_array_set))(ldv_5_ldv_param_10_0_default, ldv_5_container_struct_kernel_param_ptr);", "comment": "callback"} */
    1695           2 :    ldv_random_containerless_scenario_callback_5_10(ldv_5_callback_set, ldv_5_ldv_param_10_0_default, ldv_5_container_struct_kernel_param_ptr);
    1696             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1697             : 
    1698             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1699           2 :    ldv_free(ldv_5_ldv_param_10_0_default);
    1700             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
    1701             : 
    1702             :   }
    1703             :   else {
    1704             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get from kernel_param."} */
    1705             :    /* LDV {"type": "CALLBACK", "call": "((& param_array_get))(ldv_5_ldv_param_4_0_default, ldv_5_container_struct_kernel_param_ptr);", "comment": "callback"} */
    1706           2 :    ldv_random_containerless_scenario_callback_5_4(ldv_5_callback_get, ldv_5_ldv_param_4_0_default, ldv_5_container_struct_kernel_param_ptr);
    1707             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1708             : 
    1709             :   }
    1710             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1711           4 :   ldv_free(ldv_5_ldv_param_4_0_default);
    1712             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
    1713             : 
    1714             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1715             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1716             : 
    1717             :   /* Jump to a subprocess 'call' initial state */
    1718           1 :   goto ldv_call_5;
    1719             :  }
    1720             :  else {
    1721             :   /* LDV {"action": "DEFAULT_FREE_13", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
    1722           2 :   ldv_free(ldv_5_container_struct_kernel_param_ptr);
    1723             :   /* LDV {"action": "DEFAULT_FREE_13", "type": "CONDITION_END"} */
    1724             : 
    1725             :   /* LDV {"action": "DEFAULT_DEREGISTER_13", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_KPARAM_ARRAY callbacks invocations scenario."} */
    1726             :   /* Skip a non-replicative signal receiving */
    1727             :   /* LDV {"action": "DEFAULT_DEREGISTER_13", "type": "RECEIVE_END"} */
    1728             : 
    1729             :   /* Exit function at a terminal state */
    1730           1 :   return;
    1731             :  }
    1732             :  /* End of the subprocess 'call' */
    1733             :  return;
    1734             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_kparam_array)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_5"} */
    1735             : }
    1736             : 
    1737             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_10 */
    1738             : void ldv_random_containerless_scenario_callback_2_10(u32 (*arg0)(struct net_device *), struct net_device *arg1) {
    1739          20 :  ((& vortex_get_msglevel))(arg1);
    1740          10 : }
    1741             : 
    1742             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_11 */
    1743             : void ldv_random_containerless_scenario_callback_2_11(int (*arg0)(struct net_device *, struct ethtool_cmd *), struct net_device *arg1, struct ethtool_cmd *arg2) {
    1744          20 :  ((& vortex_get_settings))(arg1, arg2);
    1745          10 : }
    1746             : 
    1747             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_12 */
    1748             : void ldv_random_containerless_scenario_callback_2_12(int (*arg0)(struct net_device *, int), struct net_device *arg1, int arg2) {
    1749          20 :  ((& vortex_get_sset_count))(arg1, arg2);
    1750          10 : }
    1751             : 
    1752             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_15 */
    1753             : void ldv_random_containerless_scenario_callback_2_15(void (*arg0)(struct net_device *, u32 , u8 *), struct net_device *arg1, unsigned int arg2, unsigned char *arg3) {
    1754          30 :  ((& vortex_get_strings))(arg1, arg2, arg3);
    1755          10 : }
    1756             : 
    1757             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_18 */
    1758             : void ldv_random_containerless_scenario_callback_2_18(int (*arg0)(struct net_device *, int), struct net_device *arg1, int arg2) {
    1759          10 :  ((& eth_change_mtu))(arg1, arg2);
    1760          10 : }
    1761             : 
    1762             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_21 */
    1763             : void ldv_random_containerless_scenario_callback_2_21(int (*arg0)(struct net_device *, struct ifreq *, int), struct net_device *arg1, struct ifreq *arg2, int arg3) {
    1764          20 :  ((& vortex_ioctl))(arg1, arg2, arg3);
    1765          10 : }
    1766             : 
    1767             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_24 */
    1768             : void ldv_random_containerless_scenario_callback_2_24(struct net_device_stats *(*arg0)(struct net_device *), struct net_device *arg1) {
    1769          30 :  ((& vortex_get_stats))(arg1);
    1770          10 : }
    1771             : 
    1772             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_25 */
    1773             : void ldv_random_containerless_scenario_callback_2_25(int (*arg0)(struct net_device *, void *), struct net_device *arg1, void *arg2) {
    1774          10 :  ((& eth_mac_addr))(arg1, arg2);
    1775          10 : }
    1776             : 
    1777             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_26 */
    1778             : void ldv_random_containerless_scenario_callback_2_26(void (*arg0)(struct net_device *), struct net_device *arg1) {
    1779          20 :  ((& set_rx_mode))(arg1);
    1780          10 : }
    1781             : 
    1782             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_27 */
    1783             : void ldv_random_containerless_scenario_callback_2_27(netdev_tx_t (*arg0)(struct sk_buff *, struct net_device *), struct sk_buff *arg1, struct net_device *arg2) {
    1784          20 :  ((& vortex_start_xmit))(arg1, arg2);
    1785          10 : }
    1786             : 
    1787             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_28 */
    1788             : void ldv_random_containerless_scenario_callback_2_28(void (*arg0)(struct net_device *), struct net_device *arg1) {
    1789          40 :  ((& vortex_tx_timeout))(arg1);
    1790          10 : }
    1791             : 
    1792             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_29 */
    1793             : void ldv_random_containerless_scenario_callback_2_29(int (*arg0)(struct net_device *), struct net_device *arg1) {
    1794          10 :  ((& eth_validate_addr))(arg1);
    1795          10 : }
    1796             : 
    1797             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_3 */
    1798             : void ldv_random_containerless_scenario_callback_2_3(void (*arg0)(struct net_device *, struct ethtool_drvinfo *), struct net_device *arg1, struct ethtool_drvinfo *arg2) {
    1799          30 :  ((& vortex_get_drvinfo))(arg1, arg2);
    1800          10 : }
    1801             : 
    1802             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_30 */
    1803             : void ldv_random_containerless_scenario_callback_2_30(int (*arg0)(struct net_device *), struct net_device *arg1) {
    1804          20 :  ((& vortex_nway_reset))(arg1);
    1805          10 : }
    1806             : 
    1807             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_31 */
    1808             : void ldv_random_containerless_scenario_callback_2_31(void (*arg0)(struct net_device *, u32 ), struct net_device *arg1, unsigned int arg2) {
    1809          20 :  ((& vortex_set_msglevel))(arg1, arg2);
    1810          10 : }
    1811             : 
    1812             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_34 */
    1813             : void ldv_random_containerless_scenario_callback_2_34(int (*arg0)(struct net_device *, struct ethtool_cmd *), struct net_device *arg1, struct ethtool_cmd *arg2) {
    1814          20 :  ((& vortex_set_settings))(arg1, arg2);
    1815          10 : }
    1816             : 
    1817             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_6 */
    1818             : void ldv_random_containerless_scenario_callback_2_6(void (*arg0)(struct net_device *, struct ethtool_stats *, u64 *), struct net_device *arg1, struct ethtool_stats *arg2, long long unsigned int *arg3) {
    1819          20 :  ((& vortex_get_ethtool_stats))(arg1, arg2, arg3);
    1820          10 : }
    1821             : 
    1822             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_9 */
    1823             : void ldv_random_containerless_scenario_callback_2_9(u32 (*arg0)(struct net_device *), struct net_device *arg1) {
    1824          10 :  ((& ethtool_op_get_link))(arg1);
    1825          10 : }
    1826             : 
    1827             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_10 */
    1828             : void ldv_random_containerless_scenario_callback_4_10(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
    1829           1 :  ((& param_set_int))(arg1, arg2);
    1830           1 : }
    1831             : 
    1832             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_4 */
    1833             : void ldv_random_containerless_scenario_callback_4_4(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
    1834           1 :  ((& param_get_int))(arg1, arg2);
    1835           1 : }
    1836             : 
    1837             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_5_10 */
    1838             : void ldv_random_containerless_scenario_callback_5_10(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
    1839           1 :  ((& param_array_set))(arg1, arg2);
    1840           1 : }
    1841             : 
    1842             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_5_4 */
    1843             : void ldv_random_containerless_scenario_callback_5_4(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
    1844           1 :  ((& param_array_get))(arg1, arg2);
    1845           1 : }
    1846             : 
    1847             : /* AUX_FUNC_CALLBACK ldv_register_netdev_open_12_6 */
    1848             : int ldv_register_netdev_open_12_6(int (*arg0)(struct net_device *), struct net_device *arg1) {
    1849          80 :  return ((& vortex_open))(arg1);
    1850          10 : }
    1851             : 
    1852             : /* AUX_FUNC ldv_timer_scenario_6 */
    1853             : void ldv_timer_scenario_6(void *arg0) {
    1854             :  /* LDV {"thread": 6, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'timer_scenario(timer)'", "function": "ldv_timer_scenario_6"} */
    1855          30 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1856          30 :  struct timer_list *ldv_6_container_timer_list;
    1857             :  /* Received labels */
    1858          30 :  struct ldv_struct_timer_scenario_6 *data = (struct ldv_struct_timer_scenario_6*) arg0;
    1859             : 
    1860             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1861             :  /* LDV {"action": "INSTANCE_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin TIMER callbacks invocations scenario."} */
    1862             :  /* Assign recieved labels */
    1863          60 :  if (data) {
    1864          30 :   ldv_6_container_timer_list = data->arg0;
    1865          60 :   ldv_free(data);
    1866             :  }
    1867             :  /* LDV {"action": "INSTANCE_REGISTER", "type": "RECEIVE_END"} */
    1868             : 
    1869             :  /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Time has come: call the timer callback. Invoke callback callback from TIMER."} */
    1870             :  /* Callback pre-call */
    1871          60 :  ldv_switch_to_interrupt_context();
    1872         180 :  if (ldv_6_container_timer_list->function) {
    1873             :  /* LDV {"type": "CALLBACK", "call": "(ldv_6_container_timer_list->function)(ldv_6_container_timer_list->data);", "comment": "callback"} */
    1874         120 :   ldv_timer_scenario_callback_6_2(ldv_6_container_timer_list->function, ldv_6_container_timer_list->data);
    1875             :  }
    1876             :  /* Callback post-call */
    1877          90 :  ldv_switch_to_process_context();
    1878             :  /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1879             : 
    1880             :  /* LDV {"action": "INSTANCE_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Finish TIMER callbacks invocations scenario."} */
    1881             :  /* Skip a non-replicative signal receiving */
    1882             :  /* LDV {"action": "INSTANCE_DEREGISTER", "type": "RECEIVE_END"} */
    1883             : 
    1884             :  /* Exit function at a terminal state */
    1885          90 :  return;
    1886             :  /* End of the process */
    1887             :  return;
    1888             :  /* LDV {"comment": "End of control function based on process 'timer_scenario(timer)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_timer_scenario_6"} */
    1889             : }
    1890             : 
    1891             : /* AUX_FUNC_CALLBACK ldv_timer_scenario_callback_6_2 */
    1892             : void ldv_timer_scenario_callback_6_2(void (*arg0)(unsigned long), unsigned long arg1) {
    1893         180 :  (*arg0)(arg1);
    1894          60 : }
    1895             : 
    1896             : /* AUX_FUNC_CALLBACK ldv_unregister_netdev_stop_14_2 */
    1897             : void ldv_unregister_netdev_stop_14_2(int (*arg0)(struct net_device *), struct net_device *arg1) {
    1898          16 :  ((& vortex_close))(arg1);
    1899           4 : }
    1900             : 
    1901             : /* AUX_FUNC main */
    1902             : int main() {
    1903           1 :  ldv_main_17(0);
    1904           0 :  return 0;
    1905             : }
    1906             : 
    1907             : 
    1908             : /* AUX_FUNC  ERR_PTR */
    1909             : static inline void *ERR_PTR (long int error)
    1910             : {
    1911             : 
    1912             :  return ldv_err_ptr(error);
    1913             : }
    1914             : 
    1915             : /* AUX_FUNC  PTR_ERR */
    1916             : static inline long int PTR_ERR (void const *ptr)
    1917             : {
    1918             : 
    1919             :  return ldv_ptr_err(ptr);
    1920             : }
    1921             : 
    1922             : /* AUX_FUNC  IS_ERR */
    1923             : static inline long int IS_ERR (void const *ptr)
    1924             : {
    1925             : 
    1926             :  return ldv_is_err(ptr);
    1927             : }
    1928             : 
    1929             : /* AUX_FUNC  IS_ERR_OR_NULL */
    1930             : static inline long int IS_ERR_OR_NULL (void const *ptr)
    1931             : {
    1932             : 
    1933             :  return ldv_is_err_or_null(ptr);
    1934             : }
    1935             : 
    1936             : /* AUX_FUNC  ldv_del_timer_sync_5 */
    1937             : int ldv_del_timer_sync_5 (struct timer_list *ldv_func_arg1)
    1938             : {
    1939             : 
    1940             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
    1941             :  return ldv_emg_del_timer_sync(ldv_func_arg1);
    1942             : }
    1943             : 
    1944             : /* AUX_FUNC  kzalloc */
    1945             : static inline void *kzalloc (size_t size, gfp_t flags)
    1946             : {
    1947             : 
    1948             :  return ldv_kzalloc(size, flags);
    1949             : }
    1950             : 
    1951             : /* AUX_FUNC  ldv_dev_get_drvdata_7 */
    1952             : void *ldv_dev_get_drvdata_7 (struct device const *dev)
    1953             : {
    1954             : 
    1955             :  return ldv_dev_get_drvdata(dev);
    1956             : }
    1957             : 
    1958             : /* AUX_FUNC  ldv_dev_get_drvdata_8 */
    1959             : void *ldv_dev_get_drvdata_8 (struct device const *dev)
    1960             : {
    1961             : 
    1962             :  return ldv_dev_get_drvdata(dev);
    1963             : }
    1964             : 
    1965             : /* AUX_FUNC  ldv_register_netdev_9 */
    1966             : int ldv_register_netdev_9 (struct net_device *ldv_func_arg1)
    1967             : {
    1968          10 : 
    1969             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'register_netdev'"} */
    1970          50 :  return ldv_emg_register_netdev(ldv_func_arg1);
    1971             : }
    1972             : 
    1973             : /* AUX_FUNC  ldv_free_netdev_10 */
    1974             : void ldv_free_netdev_10 (struct net_device *ldv_func_arg1)
    1975             : {
    1976             : 
    1977             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'free_netdev'"} */
    1978           8 :  ldv_emg_free_netdev(ldv_func_arg1);
    1979           4 : }
    1980             : 
    1981             : /* AUX_FUNC  ldv_request_irq_11 */
    1982             : static inline int ldv_request_irq_11 (unsigned int irq, irqreturn_t (*handler)(int, void *), long unsigned int flags, char const *name, void *dev)
    1983             : {
    1984             : 
    1985             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'request_irq'"} */
    1986          80 :  return ldv_emg_request_irq(irq, handler, flags, name, dev);
    1987          20 : }
    1988             : 
    1989             : /* AUX_FUNC  ldv_free_irq_12 */
    1990             : void ldv_free_irq_12 (unsigned int ldv_func_arg1, void *ldv_func_arg2)
    1991             : {
    1992             : 
    1993             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'free_irq'"} */
    1994          80 :  ldv_emg_free_irq(ldv_func_arg1, ldv_func_arg2);
    1995          40 : }
    1996             : 
    1997             : /* AUX_FUNC  ldv_mod_timer_13 */
    1998             : int ldv_mod_timer_13 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
    1999             : {
    2000           0 : 
    2001             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
    2002           0 :  return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
    2003             : }
    2004             : 
    2005             : /* AUX_FUNC  ldv_mod_timer_14 */
    2006             : int ldv_mod_timer_14 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
    2007             : {
    2008          10 : 
    2009             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
    2010          40 :  return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
    2011             : }
    2012             : 
    2013             : /* AUX_FUNC  ldv_mod_timer_15 */
    2014             : int ldv_mod_timer_15 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
    2015             : {
    2016          10 : 
    2017             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
    2018          40 :  return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
    2019             : }
    2020             : 
    2021             : /* AUX_FUNC  ldv_mod_timer_16 */
    2022             : int ldv_mod_timer_16 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
    2023             : {
    2024          10 : 
    2025             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
    2026          40 :  return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
    2027             : }
    2028             : 
    2029             : /* AUX_FUNC  ldv_del_timer_sync_17 */
    2030             : int ldv_del_timer_sync_17 (struct timer_list *ldv_func_arg1)
    2031             : {
    2032         364 : 
    2033             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
    2034        1092 :  return ldv_emg_del_timer_sync(ldv_func_arg1);
    2035             : }
    2036             : 
    2037             : /* AUX_FUNC  ldv_del_timer_sync_18 */
    2038             : int ldv_del_timer_sync_18 (struct timer_list *ldv_func_arg1)
    2039             : {
    2040         364 : 
    2041             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
    2042        1092 :  return ldv_emg_del_timer_sync(ldv_func_arg1);
    2043             : }
    2044             : 
    2045             : /* AUX_FUNC  ldv_free_irq_19 */
    2046             : void ldv_free_irq_19 (unsigned int ldv_func_arg1, void *ldv_func_arg2)
    2047             : {
    2048             : 
    2049             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'free_irq'"} */
    2050          16 :  ldv_emg_free_irq(ldv_func_arg1, ldv_func_arg2);
    2051           8 : }
    2052             : 
    2053             : /* AUX_FUNC  ldv_unregister_netdev_20 */
    2054             : void ldv_unregister_netdev_20 (struct net_device *ldv_func_arg1)
    2055             : {
    2056             : 
    2057             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'unregister_netdev'"} */
    2058             :  ldv_emg_unregister_netdev(ldv_func_arg1);
    2059             : }
    2060             : 
    2061             : /* AUX_FUNC  ldv_free_netdev_21 */
    2062             : void ldv_free_netdev_21 (struct net_device *ldv_func_arg1)
    2063             : {
    2064             : 
    2065             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'free_netdev'"} */
    2066             :  ldv_emg_free_netdev(ldv_func_arg1);
    2067             : }
    2068             : 
    2069             : /* AUX_FUNC  ldv___pci_register_driver_22 */
    2070             : int ldv___pci_register_driver_22 (struct pci_driver *ldv_func_arg1, struct module *ldv_func_arg2, char const *ldv_func_arg3)
    2071             : {
    2072             : 
    2073           1 :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function '__pci_register_driver'"} */
    2074           4 :  return ldv_emg___pci_register_driver(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3);
    2075             : }
    2076             : 
    2077             : /* AUX_FUNC  ldv_unregister_netdev_23 */
    2078             : void ldv_unregister_netdev_23 (struct net_device *ldv_func_arg1)
    2079             : {
    2080             : 
    2081             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'unregister_netdev'"} */
    2082           8 :  ldv_emg_unregister_netdev(ldv_func_arg1);
    2083           4 : }
    2084             : 
    2085             : /* AUX_FUNC  ldv_free_netdev_24 */
    2086             : void ldv_free_netdev_24 (struct net_device *ldv_func_arg1)
    2087             : {
    2088             : 
    2089             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'free_netdev'"} */
    2090           8 :  ldv_emg_free_netdev(ldv_func_arg1);
    2091           4 : }
    2092             : 
    2093             : /* AUX_FUNC  ldv_pci_unregister_driver_25 */
    2094             : void ldv_pci_unregister_driver_25 (struct pci_driver *ldv_func_arg1)
    2095             : {
    2096             : 
    2097             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'pci_unregister_driver'"} */
    2098           4 :  ldv_emg_pci_unregister_driver(ldv_func_arg1);
    2099           2 : }

Generated by: LCOV version 1.10