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/929d281/linux-drivers-clk2/avtg/drivers/usb/host/ohci-hcd.ko/linux:drivers:clk2/weaver - ohci-hcd.c.aux (source / functions) Hit Total Coverage
Test: coverage.info Lines: 362 372 97.3 %
Date: 2017-01-25 Functions: 56 58 96.6 %

          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/pci.h>
      29             : #include <linux/pm.h>
      30             : #include <linux/timer.h>
      31             : #include <linux/usb.h>
      32             : #include <linux/interrupt.h>
      33             : 
      34             : 
      35             : struct ldv_struct_free_irq_8 {
      36             :  int arg0;
      37             :  int signal_pending;
      38             : };
      39           1 : 
      40             : struct ldv_struct_insmod_6 {
      41             :  int signal_pending;
      42             : };
      43           1 : 
      44             : struct ldv_struct_pci_scenario_2 {
      45             :  struct pci_driver *arg0;
      46             :  int signal_pending;
      47             : };
      48           1 : 
      49             : struct ldv_struct_timer_scenario_5 {
      50             :  struct timer_list *arg0;
      51             :  int signal_pending;
      52             : };
      53             : 
      54             : /* EMG Function declarations */
      55             : void ldv_dispatch_default_deregister_8_6_4(void);
      56             : void ldv_dispatch_default_deregister_9_6_5(void);
      57             : void ldv_dispatch_default_irq_register_4_6_6(void);
      58             : void ldv_dispatch_default_register_8_6_8(void);
      59             : void ldv_dispatch_default_register_9_6_7(void);
      60             : void ldv_dispatch_deregister_10_1(struct pci_driver *);
      61             : void ldv_dispatch_insmod_deregister_12_2(void);
      62             : void ldv_dispatch_insmod_register_12_3(void);
      63             : void ldv_dispatch_instance_deregister_7_1(struct timer_list *);
      64             : void ldv_dispatch_instance_register_9_3(struct timer_list *);
      65             : void ldv_dispatch_irq_deregister_8_1(int);
      66             : void ldv_dispatch_register_11_3(struct pci_driver *);
      67             : int ldv_emg___pci_register_driver(struct pci_driver *, struct module *, char *);
      68             : int ldv_emg_del_timer(struct timer_list *);
      69             : void ldv_emg_free_irq(int, void *);
      70             : int ldv_emg_mod_timer(struct timer_list *, long unsigned int);
      71             : void ldv_emg_pci_unregister_driver(struct pci_driver *);
      72             : void ldv_insmod_6(void *);
      73             : void ldv_insmod_ohci_hcd_mod_exit_6_2(void (*)(void));
      74             : int ldv_insmod_ohci_hcd_mod_init_6_12(int (*)(void));
      75             : void ldv_interrupt_scenario_1(void *);
      76             : enum irqreturn ldv_interrupt_scenario_handler_1_5(irqreturn_t (*)(int, void *), int, void *);
      77             : void ldv_interrupt_scenario_thread_1_3(irqreturn_t (*)(int, void *), int, void *);
      78             : void ldv_main_12(void *);
      79             : void ldv_partially_ordered_scenario_3(void *);
      80             : void ldv_partially_ordered_scenario_callback_3_17(int (*)(struct usb_hcd *), struct usb_hcd *);
      81             : void ldv_partially_ordered_scenario_callback_3_18(int (*)(struct usb_hcd *, short unsigned int, short unsigned int, short unsigned int, char *, short unsigned int), struct usb_hcd *, short unsigned int, short unsigned int, short unsigned int, char *, short unsigned int);
      82             : void ldv_partially_ordered_scenario_callback_3_21(int (*)(struct usb_hcd *, char *), struct usb_hcd *, char *);
      83             : void ldv_partially_ordered_scenario_callback_3_24(irqreturn_t (*)(struct usb_hcd *), struct usb_hcd *);
      84             : void ldv_partially_ordered_scenario_callback_3_25(int (*)(struct usb_hcd *), struct usb_hcd *);
      85             : void ldv_partially_ordered_scenario_callback_3_26(void (*)(struct usb_hcd *), struct usb_hcd *);
      86             : void ldv_partially_ordered_scenario_callback_3_27(int (*)(struct usb_hcd *, struct urb *, int), struct usb_hcd *, struct urb *, int);
      87             : void ldv_partially_ordered_scenario_callback_3_30(int (*)(struct usb_hcd *, struct urb *, gfp_t ), struct usb_hcd *, struct urb *, unsigned int);
      88             : void ldv_partially_ordered_scenario_callback_3_4(void (*)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *, struct usb_host_endpoint *);
      89             : int ldv_partially_ordered_scenario_probe_3_12(int (*)(struct usb_hcd *), struct usb_hcd *);
      90             : void ldv_partially_ordered_scenario_release_3_2(void (*)(struct usb_hcd *), struct usb_hcd *);
      91             : void ldv_pci_scenario_2(void *);
      92             : int ldv_pci_scenario_probe_2_17(int (*)(struct pci_dev *, struct pci_device_id *), struct pci_dev *, struct pci_device_id *);
      93             : void ldv_pci_scenario_release_2_2(void (*)(struct pci_dev *), struct pci_dev *);
      94             : void ldv_pci_scenario_resume_2_5(int (*)(struct pci_dev *), struct pci_dev *);
      95             : void ldv_pci_scenario_resume_early_2_6(int (*)(struct pci_dev *), struct pci_dev *);
      96             : void ldv_pci_scenario_shutdown_2_3(void (*)(struct pci_dev *), struct pci_dev *);
      97             : int ldv_pci_scenario_suspend_2_8(int (*)(struct pci_dev *, struct pm_message), struct pci_dev *, struct pm_message);
      98             : int ldv_pci_scenario_suspend_late_2_7(int (*)(struct pci_dev *, struct pm_message), struct pci_dev *, struct pm_message);
      99             : void ldv_random_containerless_scenario_4(void *);
     100             : void ldv_random_containerless_scenario_callback_4_10(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
     101             : void ldv_random_containerless_scenario_callback_4_4(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
     102             : void ldv_timer_scenario_5(void *);
     103             : void ldv_timer_scenario_callback_5_2(void (*)(unsigned long), unsigned long);
     104             : int main(void);
     105             : 
     106             : /* EMG variable declarations */
     107           1 : struct ldv_thread ldv_thread_1;
     108           1 : struct ldv_thread ldv_thread_12;
     109           1 : struct ldv_thread ldv_thread_2;
     110           1 : struct ldv_thread ldv_thread_3;
     111           1 : struct ldv_thread ldv_thread_4;
     112           1 : struct ldv_thread ldv_thread_5;
     113           1 : struct ldv_thread ldv_thread_6;
     114             : 
     115             : /* EMG variable initialization */
     116             : 
     117             : /* EMG function definitions */
     118             : /* AUX_FUNC ldv_dispatch_default_deregister_8_6_4 */
     119             : void ldv_dispatch_default_deregister_8_6_4() {
     120             :  struct ldv_struct_insmod_6 *cf_arg_3;
     121             :  /* Skip thread join call */
     122           1 :  return;
     123             : }
     124             : 
     125             : /* AUX_FUNC ldv_dispatch_default_deregister_9_6_5 */
     126             : void ldv_dispatch_default_deregister_9_6_5() {
     127             :  struct ldv_struct_insmod_6 *cf_arg_4;
     128             :  /* Skip thread join call */
     129           1 :  return;
     130             : }
     131             : 
     132             : /* AUX_FUNC ldv_dispatch_default_irq_register_4_6_6 */
     133             : void ldv_dispatch_default_irq_register_4_6_6() {
     134             :  struct ldv_struct_insmod_6 *cf_arg_1;
     135           4 :  cf_arg_1 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_6));
     136           5 :  ldv_interrupt_scenario_1(cf_arg_1);
     137           1 :  return;
     138             : }
     139             : 
     140             : /* AUX_FUNC ldv_dispatch_default_register_8_6_8 */
     141             : void ldv_dispatch_default_register_8_6_8() {
     142             :  struct ldv_struct_insmod_6 *cf_arg_3;
     143           4 :  cf_arg_3 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_6));
     144           3 :  ldv_partially_ordered_scenario_3(cf_arg_3);
     145           1 :  return;
     146             : }
     147             : 
     148             : /* AUX_FUNC ldv_dispatch_default_register_9_6_7 */
     149             : void ldv_dispatch_default_register_9_6_7() {
     150             :  struct ldv_struct_insmod_6 *cf_arg_4;
     151           4 :  cf_arg_4 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_6));
     152           3 :  ldv_random_containerless_scenario_4(cf_arg_4);
     153           1 :  return;
     154             : }
     155             : 
     156             : /* AUX_FUNC ldv_dispatch_deregister_10_1 */
     157             : void ldv_dispatch_deregister_10_1(struct pci_driver *arg0) {
     158             :  struct ldv_struct_pci_scenario_2 *cf_arg_2;
     159             :  /* Skip thread join call */
     160           2 :  return;
     161             : }
     162             : 
     163             : /* AUX_FUNC ldv_dispatch_insmod_deregister_12_2 */
     164             : void ldv_dispatch_insmod_deregister_12_2() {
     165             :  struct ldv_struct_insmod_6 *cf_arg_6;
     166             :  /* Skip thread join call */
     167           1 :  return;
     168             : }
     169             : 
     170             : /* AUX_FUNC ldv_dispatch_insmod_register_12_3 */
     171             : void ldv_dispatch_insmod_register_12_3() {
     172             :  struct ldv_struct_insmod_6 *cf_arg_6;
     173           4 :  cf_arg_6 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_6));
     174           4 :  ldv_insmod_6(cf_arg_6);
     175           1 :  return;
     176             : }
     177             : 
     178             : /* AUX_FUNC ldv_dispatch_instance_deregister_7_1 */
     179             : void ldv_dispatch_instance_deregister_7_1(struct timer_list *arg0) {
     180             :  struct ldv_struct_timer_scenario_5 *cf_arg_5;
     181             :  /* Skip thread join call */
     182           3 :  return;
     183             : }
     184             : 
     185             : /* AUX_FUNC ldv_dispatch_instance_register_9_3 */
     186             : void ldv_dispatch_instance_register_9_3(struct timer_list *arg0) {
     187             :  struct ldv_struct_timer_scenario_5 *cf_arg_5;
     188          12 :  cf_arg_5 = ldv_xmalloc(sizeof(struct ldv_struct_timer_scenario_5));
     189           6 :  cf_arg_5->arg0 = arg0;
     190          12 :  ldv_timer_scenario_5(cf_arg_5);
     191           3 :  return;
     192             : }
     193             : 
     194             : /* AUX_FUNC ldv_dispatch_irq_deregister_8_1 */
     195             : void ldv_dispatch_irq_deregister_8_1(int arg0) {
     196             :  struct ldv_struct_free_irq_8 *cf_arg_1;
     197             :  /* Skip thread join call */
     198           3 :  return;
     199             : }
     200             : 
     201             : /* AUX_FUNC ldv_dispatch_register_11_3 */
     202             : void ldv_dispatch_register_11_3(struct pci_driver *arg0) {
     203             :  struct ldv_struct_pci_scenario_2 *cf_arg_2;
     204           4 :  cf_arg_2 = ldv_xmalloc(sizeof(struct ldv_struct_pci_scenario_2));
     205           2 :  cf_arg_2->arg0 = arg0;
     206           2 :  ldv_pci_scenario_2(cf_arg_2);
     207           1 :  return;
     208             : }
     209             : 
     210             : /* AUX_FUNC ldv_emg___pci_register_driver */
     211             : int ldv_emg___pci_register_driver(struct pci_driver *arg0, struct module *arg1, char *arg2) {
     212             :  /* LDV {"comment": "Control function '__pci_register_driver'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg___pci_register_driver"} */
     213             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     214           1 :  struct pci_driver *ldv_11_pci_driver_pci_driver;
     215           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     216           1 :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     217             : 
     218           4 :  if (ldv_undef_int()) {
     219             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get 'pci' callbacks to register."} */
     220           1 :   ldv_11_pci_driver_pci_driver = arg0;
     221             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     222             : 
     223             :   /* LDV {"action": "REGISTER", "type": "DISPATCH_BEGIN", "comment": "Register PCI callbacks."} */
     224           2 :   ldv_dispatch_register_11_3(ldv_11_pci_driver_pci_driver);
     225             :   /* LDV {"action": "REGISTER", "type": "DISPATCH_END"} */
     226             : 
     227             :   /* LDV {"action": "FAIL", "type": "CONDITION_BEGIN", "comment": "Fail registration of 'pci' callbacks."} */
     228           3 :   return ldv_undef_int_negative();
     229             :   /* LDV {"action": "FAIL", "type": "CONDITION_END"} */
     230             : 
     231             :   /* Exit function at a terminal state */
     232             :  }
     233             :  else {
     234             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_BEGIN", "comment": "Registration of 'pci' callbacks has been successful."} */
     235           1 :   return 0;
     236             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_END"} */
     237             : 
     238             :   /* Exit function at a terminal state */
     239             :  }
     240             :  /* End of the process */
     241             :  /* LDV {"comment": "End of control function based on process '__pci_register_driver'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg___pci_register_driver"} */
     242             : }
     243             : 
     244             : /* AUX_FUNC ldv_emg_del_timer */
     245             : int ldv_emg_del_timer(struct timer_list *arg0) {
     246             :  /* LDV {"comment": "Control function 'del_timer'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_del_timer"} */
     247           3 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     248             :  struct timer_list *ldv_7_timer_list_timer_list;
     249             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     250             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get timer representing structure."} */
     251           3 :  ldv_7_timer_list_timer_list = arg0;
     252             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     253             : 
     254             :  /* LDV {"action": "INSTANCE_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Deregister TIMER callbacks."} */
     255           6 :  ldv_dispatch_instance_deregister_7_1(ldv_7_timer_list_timer_list);
     256           3 :  /* LDV {"action": "INSTANCE_DEREGISTER", "type": "DISPATCH_END"} */
     257             : 
     258             :  /* Exit function at a terminal state */
     259             :  /* End of the process */
     260             :  /* LDV {"comment": "End of control function based on process 'del_timer'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_del_timer"} */
     261             : }
     262             : 
     263             : /* AUX_FUNC ldv_emg_free_irq */
     264             : void ldv_emg_free_irq(int arg0, void *arg1) {
     265             :  /* LDV {"comment": "Control function 'free_irq'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_free_irq"} */
     266           3 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     267             :  int ldv_8_line_line;
     268             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     269             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get an interrupt line argument."} */
     270           3 :  ldv_8_line_line = arg0;
     271             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     272             : 
     273             :  /* LDV {"action": "IRQ_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "The interrupt line is freed."} */
     274           6 :  ldv_dispatch_irq_deregister_8_1(ldv_8_line_line);
     275             :  /* LDV {"action": "IRQ_DEREGISTER", "type": "DISPATCH_END"} */
     276             : 
     277             :  /* Exit function at a terminal state */
     278           3 :  return;
     279             :  /* End of the process */
     280             :  return;
     281             :  /* LDV {"comment": "End of control function based on process 'free_irq'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_free_irq"} */
     282             : }
     283             : 
     284             : /* AUX_FUNC ldv_emg_mod_timer */
     285             : int ldv_emg_mod_timer(struct timer_list *arg0, long unsigned int arg1) {
     286             :  /* LDV {"comment": "Control function 'mod_timer'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_mod_timer"} */
     287           3 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     288           3 :  struct timer_list *ldv_9_timer_list_timer_list;
     289           3 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     290             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     291             : 
     292          12 :  if (ldv_undef_int()) {
     293             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get timer representing structure."} */
     294           3 :   ldv_9_timer_list_timer_list = arg0;
     295             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     296             : 
     297             :   /* LDV {"action": "INSTANCE_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Register TIMER callbacks."} */
     298           6 :   ldv_dispatch_instance_register_9_3(ldv_9_timer_list_timer_list);
     299             :   /* LDV {"action": "INSTANCE_REGISTER", "type": "DISPATCH_END"} */
     300             : 
     301             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_BEGIN", "comment": "Successfully modified a timer's timeout"} */
     302           3 :   return 0;
     303             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_END"} */
     304             : 
     305             :   /* Exit function at a terminal state */
     306             :  }
     307             :  else {
     308             :   /* LDV {"action": "FAIL", "type": "CONDITION_BEGIN", "comment": "Failed to modify a timer's timeout"} */
     309           9 :   return ldv_undef_int_negative();
     310             :   /* LDV {"action": "FAIL", "type": "CONDITION_END"} */
     311             : 
     312             :   /* Exit function at a terminal state */
     313             :  }
     314             :  /* End of the process */
     315             :  /* LDV {"comment": "End of control function based on process 'mod_timer'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_mod_timer"} */
     316             : }
     317             : 
     318             : /* AUX_FUNC ldv_emg_pci_unregister_driver */
     319             : void ldv_emg_pci_unregister_driver(struct pci_driver *arg0) {
     320             :  /* LDV {"comment": "Control function 'pci_unregister_driver'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_pci_unregister_driver"} */
     321           2 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     322             :  struct pci_driver *ldv_10_pci_driver_pci_driver;
     323             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     324             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get 'pci' callbacks to deregister."} */
     325           2 :  ldv_10_pci_driver_pci_driver = arg0;
     326             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     327             : 
     328             :  /* LDV {"action": "DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Deregister PCI callbacks."} */
     329           4 :  ldv_dispatch_deregister_10_1(ldv_10_pci_driver_pci_driver);
     330             :  /* LDV {"action": "DEREGISTER", "type": "DISPATCH_END"} */
     331             : 
     332             :  /* Exit function at a terminal state */
     333           2 :  return;
     334             :  /* End of the process */
     335             :  return;
     336             :  /* LDV {"comment": "End of control function based on process 'pci_unregister_driver'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_pci_unregister_driver"} */
     337             : }
     338             : 
     339             : /* AUX_FUNC ldv_insmod_6 */
     340             : void ldv_insmod_6(void *arg0) {
     341             :  /* LDV {"thread": 6, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'insmod(artificial)'", "function": "ldv_insmod_6"} */
     342           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     343           1 :  void (*ldv_6_ohci_hcd_mod_exit_default)(void);
     344           1 :  int (*ldv_6_ohci_hcd_mod_init_default)(void);
     345           1 :  int ldv_6_ret_default;
     346           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     347             :  /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module initialization."} */
     348           2 :  ldv_free(arg0);
     349             :  /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_END"} */
     350             : 
     351             :  /* LDV {"action": "OHCI_HCD_MOD_INIT", "type": "CALL_BEGIN", "callback": true, "comment": "Initialize the module after insmod with 'ohci_hcd_mod_init' function. Invoke callback ohci_hcd_mod_init from ARTIFICIAL."} */
     352             :  /* LDV {"type": "CALLBACK", "call": "ldv_6_ret_default = (ohci_hcd_mod_init)();", "comment": "ohci_hcd_mod_init"} */
     353           2 :  ldv_6_ret_default = ldv_insmod_ohci_hcd_mod_init_6_12(ldv_6_ohci_hcd_mod_init_default);
     354             :  /* Callback post-call */
     355           2 :  ldv_6_ret_default = ldv_post_init(ldv_6_ret_default);
     356             :  /* LDV {"action": "OHCI_HCD_MOD_INIT", "type": "CALL_END"} */
     357             : 
     358           4 :  if (ldv_undef_int()) {
     359             :   /* LDV {"action": "INIT_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to initialize the module."} */
     360           2 :   ldv_assume(ldv_6_ret_default != 0);
     361             :   /* LDV {"action": "INIT_FAILED", "type": "CONDITION_END"} */
     362             : 
     363             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
     364             :   /* Skip a non-replicative signal receiving */
     365             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
     366             : 
     367             :   /* Exit function at a terminal state */
     368           1 :   return;
     369             :  }
     370             :  else {
     371             :   /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Module has been initialized."} */
     372           2 :   ldv_assume(ldv_6_ret_default == 0);
     373             :   /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_END"} */
     374             : 
     375           4 :   if (ldv_undef_int()) {
     376             :    /* LDV {"action": "DEFAULT_REGISTER_8", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_HC_DRIVER' callbacks with unknown registration function."} */
     377           2 :    ldv_dispatch_default_register_8_6_8();
     378             :    /* LDV {"action": "DEFAULT_REGISTER_8", "type": "DISPATCH_END"} */
     379             : 
     380             :    /* LDV {"action": "DEFAULT_REGISTER_9", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_KERNEL_PARAM' callbacks with unknown registration function."} */
     381           2 :    ldv_dispatch_default_register_9_6_7();
     382             :    /* LDV {"action": "DEFAULT_REGISTER_9", "type": "DISPATCH_END"} */
     383             : 
     384             :    /* LDV {"action": "DEFAULT_IRQ_REGISTER_4", "type": "DISPATCH_BEGIN", "comment": "Register 'INTERRUPT' callbacks with unknown registration function."} */
     385           2 :    ldv_dispatch_default_irq_register_4_6_6();
     386             :    /* LDV {"action": "DEFAULT_IRQ_REGISTER_4", "type": "DISPATCH_END"} */
     387             : 
     388             :    /* LDV {"action": "DEFAULT_DEREGISTER_9", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_KERNEL_PARAM' callbacks with unknown deregistration function."} */
     389           2 :    ldv_dispatch_default_deregister_9_6_5();
     390             :    /* LDV {"action": "DEFAULT_DEREGISTER_9", "type": "DISPATCH_END"} */
     391             : 
     392             :    /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_HC_DRIVER' callbacks with unknown deregistration function."} */
     393           2 :    ldv_dispatch_default_deregister_8_6_4();
     394             :    /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "DISPATCH_END"} */
     395             : 
     396             :   }
     397             :   else {
     398             :    /* LDV {"action": "NONE", "type": "CONDITION_BEGIN", "comment": "Skip default callbacks registrations and deregistrations."} */
     399             :    /* LDV {"action": "NONE", "type": "CONDITION_END"} */
     400             : 
     401             :   }
     402             :   /* LDV {"action": "OHCI_HCD_MOD_EXIT", "type": "CALL_BEGIN", "callback": true, "comment": "Exit the module before its unloading with 'ohci_hcd_mod_exit' function. Invoke callback ohci_hcd_mod_exit from ARTIFICIAL."} */
     403             :   /* LDV {"type": "CALLBACK", "call": "(ohci_hcd_mod_exit)();", "comment": "ohci_hcd_mod_exit"} */
     404           4 :   ldv_insmod_ohci_hcd_mod_exit_6_2(ldv_6_ohci_hcd_mod_exit_default);
     405             :   /* LDV {"action": "OHCI_HCD_MOD_EXIT", "type": "CALL_END"} */
     406             : 
     407             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
     408             :   /* Skip a non-replicative signal receiving */
     409             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
     410             : 
     411             :   /* Exit function at a terminal state */
     412           1 :   return;
     413             :  }
     414             :  /* End of the process */
     415             :  return;
     416             :  /* LDV {"comment": "End of control function based on process 'insmod(artificial)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_insmod_6"} */
     417             : }
     418             : 
     419             : /* AUX_FUNC_CALLBACK ldv_insmod_ohci_hcd_mod_exit_6_2 */
     420             : void ldv_insmod_ohci_hcd_mod_exit_6_2(void (*arg0)(void)) {
     421           4 :  (ohci_hcd_mod_exit)();
     422           2 : }
     423             : 
     424             : /* AUX_FUNC_CALLBACK ldv_insmod_ohci_hcd_mod_init_6_12 */
     425             : int ldv_insmod_ohci_hcd_mod_init_6_12(int (*arg0)(void)) {
     426           5 :  return (ohci_hcd_mod_init)();
     427           1 : }
     428             : 
     429             : /* AUX_FUNC ldv_interrupt_scenario_1 */
     430             : void ldv_interrupt_scenario_1(void *arg0) {
     431             :  /* LDV {"thread": 1, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'interrupt_scenario(interrupt)'", "function": "ldv_interrupt_scenario_1"} */
     432           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     433           1 :  irqreturn_t (*ldv_1_callback_handler)(int, void *);
     434           1 :  void *ldv_1_data_data;
     435           1 :  int ldv_1_line_line;
     436           1 :  enum irqreturn ldv_1_ret_val_default;
     437           1 :  irqreturn_t (*ldv_1_thread_thread)(int, void *);
     438           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     439           1 :  /* LDV {"action": "DEFAULT_IRQ_REGISTER_4", "type": "RECEIVE_BEGIN", "comment": "An interrupt is registered."} */
     440           2 :  ldv_free(arg0);
     441             :  /* LDV {"action": "DEFAULT_IRQ_REGISTER_4", "type": "RECEIVE_END"} */
     442             : 
     443             :  /* LDV {"action": "DEFAULT_ALLOC_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
     444           3 :  ldv_1_callback_handler = ldv_xmalloc_unknown_size(0);
     445           3 :  ldv_1_thread_thread = ldv_xmalloc_unknown_size(0);
     446           2 :  ldv_1_data_data = ldv_xmalloc_unknown_size(0);
     447             :  /* LDV {"action": "DEFAULT_ALLOC_4", "type": "CONDITION_END"} */
     448             : 
     449             :  /* 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."} */
     450             :  /* Callback pre-call */
     451           1 :  ldv_switch_to_interrupt_context();
     452           2 :  if (ldv_1_callback_handler) {
     453             :  /* LDV {"type": "CALLBACK", "call": "ldv_1_ret_val_default = (ldv_1_callback_handler)(ldv_1_line_line, ldv_1_data_data);", "comment": "handler"} */
     454           2 :   ldv_1_ret_val_default = ldv_interrupt_scenario_handler_1_5(ldv_1_callback_handler, ldv_1_line_line, ldv_1_data_data);
     455             :  }
     456             :  /* Callback post-call */
     457           2 :  ldv_switch_to_process_context();
     458             :  /* LDV {"action": "HANDLER", "type": "CALL_END"} */
     459             : 
     460           6 :  if (ldv_undef_int()) {
     461             :   /* LDV {"action": "NEED_THREAD", "type": "CONDITION_BEGIN", "comment": "Wake a thread to continue an interrupt handling."} */
     462           2 :   ldv_assume(ldv_1_ret_val_default == IRQ_WAKE_THREAD);
     463             :   /* LDV {"action": "NEED_THREAD", "type": "CONDITION_END"} */
     464             : 
     465             :   /* LDV {"action": "THREAD", "type": "CALL_BEGIN", "callback": true, "comment": "Proceed with the interrupt handling, execute the top half function. Invoke callback thread from INTERRUPT."} */
     466           2 :   if (ldv_1_thread_thread) {
     467             :   /* LDV {"type": "CALLBACK", "call": "(ldv_1_thread_thread)(ldv_1_line_line, ldv_1_data_data);", "comment": "thread"} */
     468           2 :    ldv_interrupt_scenario_thread_1_3(ldv_1_thread_thread, ldv_1_line_line, ldv_1_data_data);
     469             :   }
     470             :   /* LDV {"action": "THREAD", "type": "CALL_END"} */
     471             : 
     472             :  }
     473             :  else {
     474             :   /* LDV {"action": "HANDLED", "type": "CONDITION_BEGIN", "comment": "An interrupt has been handled."} */
     475           2 :   ldv_assume(ldv_1_ret_val_default != IRQ_WAKE_THREAD);
     476             :   /* LDV {"action": "HANDLED", "type": "CONDITION_END"} */
     477             : 
     478             :  }
     479             :  /* LDV {"action": "IRQ_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "An interrupt is deregistered."} */
     480             :  /* Skip a non-replicative signal receiving */
     481             :  /* LDV {"action": "IRQ_DEREGISTER", "type": "RECEIVE_END"} */
     482             : 
     483             :  /* Exit function at a terminal state */
     484           3 :  return;
     485             :  /* End of the process */
     486             :  return;
     487             :  /* LDV {"comment": "End of control function based on process 'interrupt_scenario(interrupt)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_interrupt_scenario_1"} */
     488             : }
     489             : 
     490             : /* AUX_FUNC_CALLBACK ldv_interrupt_scenario_handler_1_5 */
     491             : enum irqreturn ldv_interrupt_scenario_handler_1_5(irqreturn_t (*arg0)(int, void *), int arg1, void *arg2) {
     492           2 :  return (*arg0)(arg1, arg2);
     493             : }
     494           1 : 
     495             : /* AUX_FUNC_CALLBACK ldv_interrupt_scenario_thread_1_3 */
     496             : void ldv_interrupt_scenario_thread_1_3(irqreturn_t (*arg0)(int, void *), int arg1, void *arg2) {
     497           1 :  (*arg0)(arg1, arg2);
     498           1 : }
     499             : 
     500             : /* AUX_FUNC ldv_main_12 */
     501             : void ldv_main_12(void *arg0) {
     502             :  /* LDV {"thread": 12, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'main(main)'", "function": "ldv_main_12"} */
     503             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     504             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     505             :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Initialize rule models."} */
     506           1 :  ldv_initialize();
     507             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
     508             : 
     509             :  /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Start environment model scenarios."} */
     510           2 :  ldv_dispatch_insmod_register_12_3();
     511             :  /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_END"} */
     512             : 
     513             :  /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Stop environment model scenarios."} */
     514           2 :  ldv_dispatch_insmod_deregister_12_2();
     515             :  /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_END"} */
     516             : 
     517             :  /* LDV {"action": "FINAL", "type": "CONDITION_BEGIN", "comment": "Check rule model state at the exit."} */
     518           1 :  ldv_check_final_state();
     519           1 :  ldv_stop();
     520             :  /* LDV {"action": "FINAL", "type": "CONDITION_END"} */
     521             : 
     522             :  /* Exit function at a terminal state */
     523           0 :  return;
     524             :  /* End of the process */
     525             :  return;
     526             :  /* LDV {"comment": "End of control function based on process 'main(main)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_main_12"} */
     527             : }
     528             : 
     529             : /* AUX_FUNC ldv_partially_ordered_scenario_3 */
     530             : void ldv_partially_ordered_scenario_3(void *arg0) {
     531             :  /* LDV {"thread": 3, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'partially_ordered_scenario(struct_hc_driver)'", "function": "ldv_partially_ordered_scenario_3"} */
     532           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     533           1 :  void (*ldv_3_callback_endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *);
     534           1 :  int (*ldv_3_callback_get_frame_number)(struct usb_hcd *);
     535             :  int (*ldv_3_callback_hub_control)(struct usb_hcd *, short unsigned int, short unsigned int, short unsigned int, char *, short unsigned int);
     536           1 :  int (*ldv_3_callback_hub_status_data)(struct usb_hcd *, char *);
     537           1 :  irqreturn_t (*ldv_3_callback_irq)(struct usb_hcd *);
     538           1 :  int (*ldv_3_callback_reset)(struct usb_hcd *);
     539           1 :  void (*ldv_3_callback_shutdown)(struct usb_hcd *);
     540           1 :  int (*ldv_3_callback_urb_dequeue)(struct usb_hcd *, struct urb *, int);
     541           1 :  int (*ldv_3_callback_urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t );
     542           1 :  struct hc_driver *ldv_3_container_struct_hc_driver;
     543           1 :  short unsigned int ldv_3_ldv_param_18_1_default;
     544           1 :  short unsigned int ldv_3_ldv_param_18_2_default;
     545           1 :  short unsigned int ldv_3_ldv_param_18_3_default;
     546           1 :  char *ldv_3_ldv_param_18_4_default;
     547           1 :  short unsigned int ldv_3_ldv_param_18_5_default;
     548           1 :  char *ldv_3_ldv_param_21_1_default;
     549           1 :  int ldv_3_ldv_param_27_2_default;
     550           1 :  unsigned int ldv_3_ldv_param_30_2_default;
     551           1 :  struct urb *ldv_3_resource_struct_urb_ptr;
     552           1 :  struct usb_hcd *ldv_3_resource_struct_usb_hcd_ptr;
     553           1 :  struct usb_host_endpoint *ldv_3_resource_struct_usb_host_endpoint_ptr;
     554           1 :  int ldv_3_ret_default;
     555           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     556           1 :  /* Initialize automaton variables */
     557           2 :  ldv_3_ret_default = 1;
     558           1 :  /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_HC_DRIVER callbacks invocations scenario."} */
     559           3 :  ldv_free(arg0);
     560           1 :  /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_END"} */
     561           1 : 
     562           1 :  /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
     563           4 :  ldv_3_container_struct_hc_driver = ldv_xmalloc_unknown_size(0);
     564             :  /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_END"} */
     565             : 
     566             :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Alloc memory for common callback arguments."} */
     567           3 :  ldv_3_resource_struct_urb_ptr = ldv_xmalloc_unknown_size(0);
     568           3 :  ldv_3_resource_struct_usb_hcd_ptr = ldv_xmalloc_unknown_size(0);
     569           3 :  ldv_3_resource_struct_usb_host_endpoint_ptr = ldv_xmalloc_unknown_size(0);
     570             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
     571             : 
     572             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Start with an initialization callback."} */
     573             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     574             : 
     575             :  /* Jump to a subprocess 'main' initial state */
     576           1 :  goto ldv_main_3;
     577             :  /* End of the process */
     578             :  return;
     579           1 : 
     580             :  /* Sbprocess main */
     581             :  ldv_main_3:
     582             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     583             : 
     584           4 :  if (ldv_undef_int()) {
     585             :   /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Call an initialization callback. Invoke callback start from hc_driver."} */
     586             :   /* LDV {"type": "CALLBACK", "call": "ldv_3_ret_default = ((& ohci_pci_start))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "probe"} */
     587           2 :   ldv_3_ret_default = ldv_partially_ordered_scenario_probe_3_12(ldv_3_container_struct_hc_driver->start, ldv_3_resource_struct_usb_hcd_ptr);
     588             :   /* Callback post-call */
     589           2 :   ldv_3_ret_default = ldv_filter_err_code(ldv_3_ret_default);
     590             :   /* LDV {"action": "PROBE", "type": "CALL_END"} */
     591             : 
     592           4 :   if (ldv_undef_int()) {
     593             :    /* LDV {"action": "Y_RET", "type": "CONDITION_BEGIN", "comment": "Initialization has been successful."} */
     594           2 :    ldv_assume(ldv_3_ret_default == 0);
     595             :    /* LDV {"action": "Y_RET", "type": "CONDITION_END"} */
     596             : 
     597             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     598             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     599             : 
     600             :    /* Jump to a subprocess 'call' initial state */
     601           1 :    goto ldv_call_3;
     602             :   }
     603             :   else {
     604             :    /* LDV {"action": "N_RET", "type": "CONDITION_BEGIN", "comment": "Initialization has failed."} */
     605           2 :    ldv_assume(ldv_3_ret_default != 0);
     606             :    /* LDV {"action": "N_RET", "type": "CONDITION_END"} */
     607             : 
     608             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Start with an initialization callback."} */
     609             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     610             : 
     611             :    /* Jump to a subprocess 'main' initial state */
     612           1 :    goto ldv_main_3;
     613             :   }
     614             :  }
     615             :  else {
     616             :   /* LDV {"action": "FREE", "type": "CONDITION_BEGIN", "comment": "Free memory for common callback arguments."} */
     617           2 :   ldv_free(ldv_3_resource_struct_urb_ptr);
     618           2 :   ldv_free(ldv_3_resource_struct_usb_hcd_ptr);
     619           2 :   ldv_free(ldv_3_resource_struct_usb_host_endpoint_ptr);
     620             :   /* LDV {"action": "FREE", "type": "CONDITION_END"} */
     621             : 
     622             :   /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
     623           2 :   ldv_free(ldv_3_container_struct_hc_driver);
     624             :   /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_END"} */
     625             : 
     626             :   /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_HC_DRIVER callbacks invocations scenario."} */
     627             :   /* Skip a non-replicative signal receiving */
     628             :   /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_END"} */
     629             : 
     630             :   /* Exit function at a terminal state */
     631           1 :   return;
     632             :  }
     633             :  /* End of the subprocess 'main' */
     634             :  return;
     635           1 : 
     636             :  /* Sbprocess call */
     637             :  ldv_call_3:
     638             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     639             : 
     640           2 :  switch (ldv_undef_int()) {
     641           3 :   case 1: {
     642             :    /* LDV {"action": "PRE_CALL_30", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     643             :    /* LDV {"action": "PRE_CALL_30", "type": "CONDITION_END"} */
     644             : 
     645             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback urb_enqueue from hc_driver."} */
     646             :    /* LDV {"type": "CALLBACK", "call": "((& ohci_urb_enqueue))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_urb_ptr, ldv_3_ldv_param_30_2_default);", "comment": "callback"} */
     647           2 :    ldv_partially_ordered_scenario_callback_3_30(ldv_3_callback_urb_enqueue, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_urb_ptr, ldv_3_ldv_param_30_2_default);
     648             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     649             : 
     650             :    /* LDV {"action": "POST_CALL_30", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     651             :    /* LDV {"action": "POST_CALL_30", "type": "CONDITION_END"} */
     652             : 
     653             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     654             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     655             : 
     656             :    /* Jump to a subprocess 'call' initial state */
     657           1 :    goto ldv_call_3;
     658           1 :    break;
     659             :   }
     660           3 :   case 2: {
     661             :    /* LDV {"action": "PRE_CALL_27", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     662             :    /* LDV {"action": "PRE_CALL_27", "type": "CONDITION_END"} */
     663             : 
     664             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback urb_dequeue from hc_driver."} */
     665             :    /* LDV {"type": "CALLBACK", "call": "((& ohci_urb_dequeue))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_urb_ptr, ldv_3_ldv_param_27_2_default);", "comment": "callback"} */
     666           2 :    ldv_partially_ordered_scenario_callback_3_27(ldv_3_callback_urb_dequeue, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_urb_ptr, ldv_3_ldv_param_27_2_default);
     667             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     668             : 
     669             :    /* LDV {"action": "POST_CALL_27", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     670             :    /* LDV {"action": "POST_CALL_27", "type": "CONDITION_END"} */
     671             : 
     672             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     673             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     674             : 
     675             :    /* Jump to a subprocess 'call' initial state */
     676           1 :    goto ldv_call_3;
     677             :    /* Jump to a subprocess 'call' initial state */
     678             :    goto ldv_call_3;
     679           1 :    break;
     680             :   }
     681           3 :   case 3: {
     682             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback shutdown from hc_driver."} */
     683             :    /* LDV {"type": "CALLBACK", "call": "((& ohci_shutdown))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "callback"} */
     684           2 :    ldv_partially_ordered_scenario_callback_3_26(ldv_3_callback_shutdown, ldv_3_resource_struct_usb_hcd_ptr);
     685             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     686             : 
     687             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     688             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     689             : 
     690             :    /* Jump to a subprocess 'call' initial state */
     691           1 :    goto ldv_call_3;
     692             :    /* Jump to a subprocess 'call' initial state */
     693             :    goto ldv_call_3;
     694             :    /* Jump to a subprocess 'call' initial state */
     695             :    goto ldv_call_3;
     696           1 :    break;
     697             :   }
     698           3 :   case 4: {
     699             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback reset from hc_driver."} */
     700             :    /* LDV {"type": "CALLBACK", "call": "((& ohci_pci_reset))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "callback"} */
     701           2 :    ldv_partially_ordered_scenario_callback_3_25(ldv_3_callback_reset, ldv_3_resource_struct_usb_hcd_ptr);
     702             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     703             : 
     704             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     705             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     706             : 
     707             :    /* Jump to a subprocess 'call' initial state */
     708           1 :    goto ldv_call_3;
     709             :    /* Jump to a subprocess 'call' initial state */
     710             :    goto ldv_call_3;
     711             :    /* Jump to a subprocess 'call' initial state */
     712             :    goto ldv_call_3;
     713             :    /* Jump to a subprocess 'call' initial state */
     714             :    goto ldv_call_3;
     715           1 :    break;
     716             :   }
     717           3 :   case 5: {
     718             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback irq from hc_driver."} */
     719             :    /* LDV {"type": "CALLBACK", "call": "((& ohci_irq))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "callback"} */
     720           2 :    ldv_partially_ordered_scenario_callback_3_24(ldv_3_callback_irq, ldv_3_resource_struct_usb_hcd_ptr);
     721             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     722             : 
     723             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     724             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     725             : 
     726             :    /* Jump to a subprocess 'call' initial state */
     727           1 :    goto ldv_call_3;
     728             :    /* Jump to a subprocess 'call' initial state */
     729             :    goto ldv_call_3;
     730             :    /* Jump to a subprocess 'call' initial state */
     731             :    goto ldv_call_3;
     732             :    /* Jump to a subprocess 'call' initial state */
     733             :    goto ldv_call_3;
     734             :    /* Jump to a subprocess 'call' initial state */
     735             :    goto ldv_call_3;
     736           1 :    break;
     737             :   }
     738           3 :   case 6: {
     739             :    /* LDV {"action": "PRE_CALL_21", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     740           3 :    ldv_3_ldv_param_21_1_default = ldv_xmalloc_unknown_size(0);
     741             :    /* LDV {"action": "PRE_CALL_21", "type": "CONDITION_END"} */
     742             : 
     743             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback hub_status_data from hc_driver."} */
     744             :    /* LDV {"type": "CALLBACK", "call": "((& ohci_hub_status_data))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_21_1_default);", "comment": "callback"} */
     745           2 :    ldv_partially_ordered_scenario_callback_3_21(ldv_3_callback_hub_status_data, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_21_1_default);
     746             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     747             : 
     748             :    /* LDV {"action": "POST_CALL_21", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     749           2 :    ldv_free(ldv_3_ldv_param_21_1_default);
     750             :    /* LDV {"action": "POST_CALL_21", "type": "CONDITION_END"} */
     751             : 
     752             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     753             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     754             : 
     755             :    /* Jump to a subprocess 'call' initial state */
     756           1 :    goto ldv_call_3;
     757             :    /* Jump to a subprocess 'call' initial state */
     758             :    goto ldv_call_3;
     759             :    /* Jump to a subprocess 'call' initial state */
     760             :    goto ldv_call_3;
     761             :    /* Jump to a subprocess 'call' initial state */
     762             :    goto ldv_call_3;
     763             :    /* Jump to a subprocess 'call' initial state */
     764             :    goto ldv_call_3;
     765             :    /* Jump to a subprocess 'call' initial state */
     766             :    goto ldv_call_3;
     767           1 :    break;
     768             :   }
     769           3 :   case 7: {
     770             :    /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     771           3 :    ldv_3_ldv_param_18_4_default = ldv_xmalloc_unknown_size(0);
     772             :    /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
     773             : 
     774             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback hub_control from hc_driver."} */
     775             :    /* LDV {"type": "CALLBACK", "call": "((& ohci_hub_control))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_18_1_default, ldv_3_ldv_param_18_2_default, ldv_3_ldv_param_18_3_default, ldv_3_ldv_param_18_4_default, ldv_3_ldv_param_18_5_default);", "comment": "callback"} */
     776           2 :    ldv_partially_ordered_scenario_callback_3_18(ldv_3_callback_hub_control, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_18_1_default, ldv_3_ldv_param_18_2_default, ldv_3_ldv_param_18_3_default, ldv_3_ldv_param_18_4_default, ldv_3_ldv_param_18_5_default);
     777             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     778             : 
     779             :    /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     780           2 :    ldv_free(ldv_3_ldv_param_18_4_default);
     781             :    /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
     782             : 
     783             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     784             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     785             : 
     786             :    /* Jump to a subprocess 'call' initial state */
     787           1 :    goto ldv_call_3;
     788             :    /* Jump to a subprocess 'call' initial state */
     789             :    goto ldv_call_3;
     790             :    /* Jump to a subprocess 'call' initial state */
     791             :    goto ldv_call_3;
     792             :    /* Jump to a subprocess 'call' initial state */
     793             :    goto ldv_call_3;
     794             :    /* Jump to a subprocess 'call' initial state */
     795             :    goto ldv_call_3;
     796             :    /* Jump to a subprocess 'call' initial state */
     797             :    goto ldv_call_3;
     798             :    /* Jump to a subprocess 'call' initial state */
     799             :    goto ldv_call_3;
     800           1 :    break;
     801             :   }
     802           3 :   case 8: {
     803             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get_frame_number from hc_driver."} */
     804             :    /* LDV {"type": "CALLBACK", "call": "((& ohci_get_frame))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "callback"} */
     805           2 :    ldv_partially_ordered_scenario_callback_3_17(ldv_3_callback_get_frame_number, ldv_3_resource_struct_usb_hcd_ptr);
     806             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     807             : 
     808             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     809             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     810             : 
     811             :    /* Jump to a subprocess 'call' initial state */
     812           1 :    goto ldv_call_3;
     813             :    /* Jump to a subprocess 'call' initial state */
     814             :    goto ldv_call_3;
     815             :    /* Jump to a subprocess 'call' initial state */
     816             :    goto ldv_call_3;
     817             :    /* Jump to a subprocess 'call' initial state */
     818             :    goto ldv_call_3;
     819             :    /* Jump to a subprocess 'call' initial state */
     820             :    goto ldv_call_3;
     821             :    /* Jump to a subprocess 'call' initial state */
     822             :    goto ldv_call_3;
     823             :    /* Jump to a subprocess 'call' initial state */
     824             :    goto ldv_call_3;
     825             :    /* Jump to a subprocess 'call' initial state */
     826             :    goto ldv_call_3;
     827           1 :    break;
     828             :   }
     829           3 :   case 9: {
     830             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback endpoint_disable from hc_driver."} */
     831             :    /* LDV {"type": "CALLBACK", "call": "((& ohci_endpoint_disable))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);", "comment": "callback"} */
     832           2 :    ldv_partially_ordered_scenario_callback_3_4(ldv_3_callback_endpoint_disable, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);
     833             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     834             : 
     835             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     836             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     837             : 
     838             :    /* Jump to a subprocess 'call' initial state */
     839           1 :    goto ldv_call_3;
     840             :    /* Jump to a subprocess 'call' initial state */
     841             :    goto ldv_call_3;
     842             :    /* Jump to a subprocess 'call' initial state */
     843             :    goto ldv_call_3;
     844             :    /* Jump to a subprocess 'call' initial state */
     845             :    goto ldv_call_3;
     846             :    /* Jump to a subprocess 'call' initial state */
     847             :    goto ldv_call_3;
     848             :    /* Jump to a subprocess 'call' initial state */
     849             :    goto ldv_call_3;
     850             :    /* Jump to a subprocess 'call' initial state */
     851             :    goto ldv_call_3;
     852             :    /* Jump to a subprocess 'call' initial state */
     853             :    goto ldv_call_3;
     854             :    /* Jump to a subprocess 'call' initial state */
     855             :    goto ldv_call_3;
     856           1 :    break;
     857             :   }
     858           3 :   case 10: {
     859             :    /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Do uninitializations before deregistration. Invoke callback stop from hc_driver."} */
     860             :    /* LDV {"type": "CALLBACK", "call": "((& ohci_stop))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "release"} */
     861           2 :    ldv_partially_ordered_scenario_release_3_2(ldv_3_container_struct_hc_driver->stop, ldv_3_resource_struct_usb_hcd_ptr);
     862             :    /* LDV {"action": "RELEASE", "type": "CALL_END"} */
     863             : 
     864             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Start with an initialization callback."} */
     865             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     866             : 
     867             :    /* Jump to a subprocess 'main' initial state */
     868           1 :    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 'partially_ordered_scenario(struct_hc_driver)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_partially_ordered_scenario_3"} */
     876             : }
     877             : 
     878             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_17 */
     879             : void ldv_partially_ordered_scenario_callback_3_17(int (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
     880           2 :  ((& ohci_get_frame))(arg1);
     881           1 : }
     882             : 
     883             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_18 */
     884             : void ldv_partially_ordered_scenario_callback_3_18(int (*arg0)(struct usb_hcd *, short unsigned int, short unsigned int, short unsigned int, char *, short unsigned int), struct usb_hcd *arg1, short unsigned int arg2, short unsigned int arg3, short unsigned int arg4, char *arg5, short unsigned int arg6) {
     885          10 :  ((& ohci_hub_control))(arg1, arg2, arg3, arg4, arg5, arg6);
     886           1 : }
     887             : 
     888             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_21 */
     889             : void ldv_partially_ordered_scenario_callback_3_21(int (*arg0)(struct usb_hcd *, char *), struct usb_hcd *arg1, char *arg2) {
     890           2 :  ((& ohci_hub_status_data))(arg1, arg2);
     891           1 : }
     892             : 
     893             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_24 */
     894             : void ldv_partially_ordered_scenario_callback_3_24(irqreturn_t (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
     895           5 :  ((& ohci_irq))(arg1);
     896           1 : }
     897             : 
     898             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_25 */
     899             : void ldv_partially_ordered_scenario_callback_3_25(int (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
     900           3 :  ((& ohci_pci_reset))(arg1);
     901           1 : }
     902             : 
     903             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_26 */
     904             : void ldv_partially_ordered_scenario_callback_3_26(void (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
     905           2 :  ((& ohci_shutdown))(arg1);
     906           1 : }
     907             : 
     908             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_27 */
     909             : void ldv_partially_ordered_scenario_callback_3_27(int (*arg0)(struct usb_hcd *, struct urb *, int), struct usb_hcd *arg1, struct urb *arg2, int arg3) {
     910           2 :  ((& ohci_urb_dequeue))(arg1, arg2, arg3);
     911           1 : }
     912             : 
     913             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_30 */
     914             : void ldv_partially_ordered_scenario_callback_3_30(int (*arg0)(struct usb_hcd *, struct urb *, gfp_t ), struct usb_hcd *arg1, struct urb *arg2, unsigned int arg3) {
     915           5 :  ((& ohci_urb_enqueue))(arg1, arg2, arg3);
     916           1 : }
     917             : 
     918             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_4 */
     919             : void ldv_partially_ordered_scenario_callback_3_4(void (*arg0)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *arg1, struct usb_host_endpoint *arg2) {
     920           3 :  ((& ohci_endpoint_disable))(arg1, arg2);
     921           1 : }
     922             : 
     923             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_probe_3_12 */
     924             : int ldv_partially_ordered_scenario_probe_3_12(int (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
     925           4 :  return ((& ohci_pci_start))(arg1);
     926           1 : }
     927             : 
     928             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_release_3_2 */
     929             : void ldv_partially_ordered_scenario_release_3_2(void (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
     930           3 :  ((& ohci_stop))(arg1);
     931           1 : }
     932             : 
     933             : /* AUX_FUNC ldv_pci_scenario_2 */
     934             : void ldv_pci_scenario_2(void *arg0) {
     935             :  /* LDV {"thread": 2, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'pci_scenario(pci)'", "function": "ldv_pci_scenario_2"} */
     936           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     937           1 :  struct pci_driver *ldv_2_container_pci_driver;
     938           1 :  struct pci_dev *ldv_2_resource_dev;
     939           1 :  struct pm_message ldv_2_resource_pm_message;
     940           1 :  struct pci_device_id *ldv_2_resource_struct_pci_device_id_ptr;
     941           1 :  int ldv_2_ret_default;
     942           1 :  /* Received labels */
     943           2 :  struct ldv_struct_pci_scenario_2 *data = (struct ldv_struct_pci_scenario_2*) arg0;
     944           1 : 
     945           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     946           1 :  /* Initialize automaton variables */
     947           1 :  ldv_2_ret_default = 1;
     948             :  /* LDV {"action": "REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin PCI callbacks invocating."} */
     949             :  /* Assign recieved labels */
     950           2 :  if (data) {
     951           1 :   ldv_2_container_pci_driver = data->arg0;
     952           2 :   ldv_free(data);
     953             :  }
     954             :  /* LDV {"action": "REGISTER", "type": "RECEIVE_END"} */
     955             : 
     956             :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Allocate memory for pci_dev structure."} */
     957           5 :  ldv_2_resource_dev = ldv_xmalloc(sizeof(struct pci_dev));
     958           3 :  ldv_2_resource_struct_pci_device_id_ptr = ldv_xmalloc_unknown_size(0);
     959             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
     960             : 
     961             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "New device is inserted, probe it."} */
     962             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     963             : 
     964             :  /* Jump to a subprocess 'main' initial state */
     965           1 :  goto ldv_main_2;
     966             :  /* End of the process */
     967             :  return;
     968           1 : 
     969             :  /* Sbprocess main */
     970             :  ldv_main_2:
     971             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     972             : 
     973           4 :  if (ldv_undef_int()) {
     974             :   /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe new PCI driver. Invoke callback probe from pci_driver."} */
     975             :   /* Callback pre-call */
     976           1 :   ldv_pre_probe();
     977             :   /* LDV {"type": "CALLBACK", "call": "ldv_2_ret_default = ((& usb_hcd_pci_probe))(ldv_2_resource_dev, ldv_2_resource_struct_pci_device_id_ptr);", "comment": "probe"} */
     978           3 :   ldv_2_ret_default = ldv_pci_scenario_probe_2_17(ldv_2_container_pci_driver->probe, ldv_2_resource_dev, ldv_2_resource_struct_pci_device_id_ptr);
     979             :   /* Callback post-call */
     980           2 :   ldv_2_ret_default = ldv_post_probe(ldv_2_ret_default);
     981             :   /* LDV {"action": "PROBE", "type": "CALL_END"} */
     982             : 
     983           4 :   if (ldv_undef_int()) {
     984             :    /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Probing of PCI driver has been successfull."} */
     985           2 :    ldv_assume(ldv_2_ret_default == 0);
     986             :    /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
     987             : 
     988             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call rest callbacks."} */
     989             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     990             : 
     991             :    /* Jump to a subprocess 'call' initial state */
     992           1 :    goto ldv_call_2;
     993             :   }
     994             :   else {
     995             :    /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe PCI driver."} */
     996           2 :    ldv_assume(ldv_2_ret_default != 0);
     997             :    /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
     998             : 
     999             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "New device is inserted, probe it."} */
    1000             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
    1001             : 
    1002             :    /* Jump to a subprocess 'main' initial state */
    1003           1 :    goto ldv_main_2;
    1004             :   }
    1005             :  }
    1006             :  else {
    1007             :   /* LDV {"action": "FREE", "type": "CONDITION_BEGIN", "comment": "Free memory of pci_dev structure."} */
    1008           2 :   ldv_free(ldv_2_resource_dev);
    1009           2 :   ldv_free(ldv_2_resource_struct_pci_device_id_ptr);
    1010             :   /* LDV {"action": "FREE", "type": "CONDITION_END"} */
    1011             : 
    1012             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Stop PCI callbacks invocating."} */
    1013             :   /* Skip a non-replicative signal receiving */
    1014             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_END"} */
    1015             : 
    1016             :   /* Exit function at a terminal state */
    1017           1 :   return;
    1018             :  }
    1019             :  /* End of the subprocess 'main' */
    1020             :  return;
    1021           1 : 
    1022             :  /* Sbprocess call */
    1023             :  ldv_call_2:
    1024             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1025             : 
    1026           2 :  switch (ldv_undef_int()) {
    1027           3 :   case 1: {
    1028             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "comment": "Call callback 'callback' of a process 'pci_scenario' of an interface category 'pci'"} */
    1029             :    /* Skip callback without implementations */
    1030             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1031             : 
    1032             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call rest callbacks."} */
    1033             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1034             : 
    1035             :    /* Jump to a subprocess 'call' initial state */
    1036           1 :    goto ldv_call_2;
    1037           1 :    break;
    1038             :   }
    1039           3 :   case 2: {
    1040             :    /* LDV {"action": "SUSPEND", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from PCI."} */
    1041           3 :    if (ldv_2_container_pci_driver->suspend) {
    1042             :    /* LDV {"type": "CALLBACK", "call": "ldv_2_ret_default = (ldv_2_container_pci_driver->suspend)(ldv_2_resource_dev, ldv_2_resource_pm_message);", "comment": "suspend"} */
    1043           2 :     ldv_2_ret_default = ldv_pci_scenario_suspend_2_8(ldv_2_container_pci_driver->suspend, ldv_2_resource_dev, ldv_2_resource_pm_message);
    1044             :    }
    1045             :    /* Callback post-call */
    1046           4 :    ldv_2_ret_default = ldv_filter_err_code(ldv_2_ret_default);
    1047             :    /* LDV {"action": "SUSPEND", "type": "CALL_END"} */
    1048             : 
    1049             :    /* LDV {"action": "SUSPEND_LATE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend_late from PCI."} */
    1050           3 :    if (ldv_2_container_pci_driver->suspend_late) {
    1051             :    /* LDV {"type": "CALLBACK", "call": "ldv_2_ret_default = (ldv_2_container_pci_driver->suspend_late)(ldv_2_resource_dev, ldv_2_resource_pm_message);", "comment": "suspend_late"} */
    1052           2 :     ldv_2_ret_default = ldv_pci_scenario_suspend_late_2_7(ldv_2_container_pci_driver->suspend_late, ldv_2_resource_dev, ldv_2_resource_pm_message);
    1053             :    }
    1054             :    /* Callback post-call */
    1055           4 :    ldv_2_ret_default = ldv_filter_err_code(ldv_2_ret_default);
    1056             :    /* LDV {"action": "SUSPEND_LATE", "type": "CALL_END"} */
    1057             : 
    1058             :    /* LDV {"action": "RESUME_EARLY", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume_early from PCI."} */
    1059           3 :    if (ldv_2_container_pci_driver->resume_early) {
    1060             :    /* LDV {"type": "CALLBACK", "call": "(ldv_2_container_pci_driver->resume_early)(ldv_2_resource_dev);", "comment": "resume_early"} */
    1061           2 :     ldv_pci_scenario_resume_early_2_6(ldv_2_container_pci_driver->resume_early, ldv_2_resource_dev);
    1062             :    }
    1063             :    /* LDV {"action": "RESUME_EARLY", "type": "CALL_END"} */
    1064             : 
    1065             :    /* LDV {"action": "RESUME", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from PCI."} */
    1066           6 :    if (ldv_2_container_pci_driver->resume) {
    1067             :    /* LDV {"type": "CALLBACK", "call": "(ldv_2_container_pci_driver->resume)(ldv_2_resource_dev);", "comment": "resume"} */
    1068           4 :     ldv_pci_scenario_resume_2_5(ldv_2_container_pci_driver->resume, ldv_2_resource_dev);
    1069             :    }
    1070             :    /* LDV {"action": "RESUME", "type": "CALL_END"} */
    1071             : 
    1072             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call rest callbacks."} */
    1073             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1074             : 
    1075             :    /* Jump to a subprocess 'call' initial state */
    1076           3 :    goto ldv_call_2;
    1077           1 :    break;
    1078             :   }
    1079           3 :   case 3: {
    1080             :    /* LDV {"action": "SHUTDOWN", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback shutdown from pci_driver."} */
    1081             :    /* LDV {"type": "CALLBACK", "call": "((& usb_hcd_pci_shutdown))(ldv_2_resource_dev);", "comment": "shutdown"} */
    1082           2 :    ldv_pci_scenario_shutdown_2_3(ldv_2_container_pci_driver->shutdown, ldv_2_resource_dev);
    1083             :    /* LDV {"action": "SHUTDOWN", "type": "CALL_END"} */
    1084             : 
    1085             :    /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from pci_driver."} */
    1086             :    /* LDV {"type": "CALLBACK", "call": "((& usb_hcd_pci_remove))(ldv_2_resource_dev);", "comment": "release"} */
    1087           2 :    ldv_pci_scenario_release_2_2(ldv_2_container_pci_driver->remove, ldv_2_resource_dev);
    1088             :    /* LDV {"action": "RELEASE", "type": "CALL_END"} */
    1089             : 
    1090             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "New device is inserted, probe it."} */
    1091             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
    1092             : 
    1093             :    /* Jump to a subprocess 'main' initial state */
    1094           1 :    goto ldv_main_2;
    1095           1 :    break;
    1096             :   }
    1097           2 :   default: ldv_stop();
    1098           1 :  }
    1099           0 :  /* End of the subprocess 'call' */
    1100           0 :  return;
    1101             :  /* LDV {"comment": "End of control function based on process 'pci_scenario(pci)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_pci_scenario_2"} */
    1102             : }
    1103             : 
    1104             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_probe_2_17 */
    1105             : int ldv_pci_scenario_probe_2_17(int (*arg0)(struct pci_dev *, struct pci_device_id *), struct pci_dev *arg1, struct pci_device_id *arg2) {
    1106           2 :  return ((& usb_hcd_pci_probe))(arg1, arg2);
    1107             : }
    1108           1 : 
    1109             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_release_2_2 */
    1110             : void ldv_pci_scenario_release_2_2(void (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
    1111           1 :  ((& usb_hcd_pci_remove))(arg1);
    1112           1 : }
    1113             : 
    1114             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_resume_2_5 */
    1115             : void ldv_pci_scenario_resume_2_5(int (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
    1116           2 :  (*arg0)(arg1);
    1117           2 : }
    1118             : 
    1119             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_resume_early_2_6 */
    1120             : void ldv_pci_scenario_resume_early_2_6(int (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
    1121           1 :  (*arg0)(arg1);
    1122           1 : }
    1123             : 
    1124             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_shutdown_2_3 */
    1125             : void ldv_pci_scenario_shutdown_2_3(void (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
    1126           1 :  ((& usb_hcd_pci_shutdown))(arg1);
    1127           1 : }
    1128             : 
    1129             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_suspend_2_8 */
    1130             : int ldv_pci_scenario_suspend_2_8(int (*arg0)(struct pci_dev *, struct pm_message), struct pci_dev *arg1, struct pm_message arg2) {
    1131           2 :  return (*arg0)(arg1, arg2);
    1132             : }
    1133           1 : 
    1134             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_suspend_late_2_7 */
    1135             : int ldv_pci_scenario_suspend_late_2_7(int (*arg0)(struct pci_dev *, struct pm_message), struct pci_dev *arg1, struct pm_message arg2) {
    1136           2 :  return (*arg0)(arg1, arg2);
    1137             : }
    1138           1 : 
    1139             : /* AUX_FUNC ldv_random_containerless_scenario_4 */
    1140             : void ldv_random_containerless_scenario_4(void *arg0) {
    1141             :  /* LDV {"thread": 4, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_kernel_param)'", "function": "ldv_random_containerless_scenario_4"} */
    1142           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1143           1 :  int (*ldv_4_callback_get)(char *, struct kernel_param *);
    1144           1 :  int (*ldv_4_callback_set)(char *, struct kernel_param *);
    1145           1 :  struct kernel_param *ldv_4_container_struct_kernel_param;
    1146           1 :  char *ldv_4_ldv_param_10_0_default;
    1147           1 :  char *ldv_4_ldv_param_4_0_default;
    1148           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1149           1 :  /* LDV {"action": "DEFAULT_REGISTER_9", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
    1150           3 :  ldv_free(arg0);
    1151           1 :  /* LDV {"action": "DEFAULT_REGISTER_9", "type": "RECEIVE_END"} */
    1152             : 
    1153             :  /* LDV {"action": "DEFAULT_ALLOC_9", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
    1154           3 :  ldv_4_container_struct_kernel_param = ldv_xmalloc_unknown_size(0);
    1155             :  /* LDV {"action": "DEFAULT_ALLOC_9", "type": "CONDITION_END"} */
    1156             : 
    1157             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1158             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1159             : 
    1160             :  /* Jump to a subprocess 'call' initial state */
    1161           1 :  goto ldv_call_4;
    1162             :  /* End of the process */
    1163             :  return;
    1164           1 : 
    1165             :  /* Sbprocess call */
    1166             :  ldv_call_4:
    1167             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1168             : 
    1169           4 :  if (ldv_undef_int()) {
    1170             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1171           3 :   ldv_4_ldv_param_4_0_default = ldv_xmalloc_unknown_size(0);
    1172             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
    1173             : 
    1174           4 :   if (ldv_undef_int()) {
    1175             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1176           3 :    ldv_4_ldv_param_10_0_default = ldv_xmalloc_unknown_size(0);
    1177             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
    1178             : 
    1179             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback set from kernel_param."} */
    1180             :    /* LDV {"type": "CALLBACK", "call": "((& param_set_bool))(ldv_4_ldv_param_10_0_default, ldv_4_container_struct_kernel_param);", "comment": "callback"} */
    1181           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);
    1182             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1183             : 
    1184             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1185           2 :    ldv_free(ldv_4_ldv_param_10_0_default);
    1186             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
    1187             : 
    1188             :   }
    1189             :   else {
    1190             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get from kernel_param."} */
    1191             :    /* LDV {"type": "CALLBACK", "call": "((& param_get_bool))(ldv_4_ldv_param_4_0_default, ldv_4_container_struct_kernel_param);", "comment": "callback"} */
    1192           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);
    1193             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1194             : 
    1195             :   }
    1196             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1197           4 :   ldv_free(ldv_4_ldv_param_4_0_default);
    1198             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
    1199             : 
    1200             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1201             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1202             : 
    1203             :   /* Jump to a subprocess 'call' initial state */
    1204           1 :   goto ldv_call_4;
    1205             :  }
    1206             :  else {
    1207             :   /* LDV {"action": "DEFAULT_FREE_9", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
    1208           2 :   ldv_free(ldv_4_container_struct_kernel_param);
    1209             :   /* LDV {"action": "DEFAULT_FREE_9", "type": "CONDITION_END"} */
    1210             : 
    1211             :   /* LDV {"action": "DEFAULT_DEREGISTER_9", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
    1212             :   /* Skip a non-replicative signal receiving */
    1213             :   /* LDV {"action": "DEFAULT_DEREGISTER_9", "type": "RECEIVE_END"} */
    1214             : 
    1215             :   /* Exit function at a terminal state */
    1216           1 :   return;
    1217             :  }
    1218             :  /* End of the subprocess 'call' */
    1219             :  return;
    1220             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_kernel_param)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_4"} */
    1221             : }
    1222             : 
    1223             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_10 */
    1224             : void ldv_random_containerless_scenario_callback_4_10(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
    1225           1 :  ((& param_set_bool))(arg1, arg2);
    1226           1 : }
    1227             : 
    1228             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_4 */
    1229             : void ldv_random_containerless_scenario_callback_4_4(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
    1230           1 :  ((& param_get_bool))(arg1, arg2);
    1231           1 : }
    1232             : 
    1233             : /* AUX_FUNC ldv_timer_scenario_5 */
    1234             : void ldv_timer_scenario_5(void *arg0) {
    1235             :  /* LDV {"thread": 5, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'timer_scenario(timer)'", "function": "ldv_timer_scenario_5"} */
    1236           3 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1237           3 :  struct timer_list *ldv_5_container_timer_list;
    1238             :  /* Received labels */
    1239           3 :  struct ldv_struct_timer_scenario_5 *data = (struct ldv_struct_timer_scenario_5*) arg0;
    1240             : 
    1241             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1242             :  /* LDV {"action": "INSTANCE_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin TIMER callbacks invocations scenario."} */
    1243             :  /* Assign recieved labels */
    1244           6 :  if (data) {
    1245           3 :   ldv_5_container_timer_list = data->arg0;
    1246           6 :   ldv_free(data);
    1247             :  }
    1248             :  /* LDV {"action": "INSTANCE_REGISTER", "type": "RECEIVE_END"} */
    1249             : 
    1250             :  /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Time has come: call the timer callback. Invoke callback callback from TIMER."} */
    1251             :  /* Callback pre-call */
    1252           6 :  ldv_switch_to_interrupt_context();
    1253          18 :  if (ldv_5_container_timer_list->function) {
    1254             :  /* LDV {"type": "CALLBACK", "call": "(ldv_5_container_timer_list->function)(ldv_5_container_timer_list->data);", "comment": "callback"} */
    1255          12 :   ldv_timer_scenario_callback_5_2(ldv_5_container_timer_list->function, ldv_5_container_timer_list->data);
    1256             :  }
    1257             :  /* Callback post-call */
    1258           9 :  ldv_switch_to_process_context();
    1259             :  /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1260             : 
    1261             :  /* LDV {"action": "INSTANCE_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Finish TIMER callbacks invocations scenario."} */
    1262             :  /* Skip a non-replicative signal receiving */
    1263             :  /* LDV {"action": "INSTANCE_DEREGISTER", "type": "RECEIVE_END"} */
    1264             : 
    1265             :  /* Exit function at a terminal state */
    1266           9 :  return;
    1267             :  /* End of the process */
    1268             :  return;
    1269             :  /* LDV {"comment": "End of control function based on process 'timer_scenario(timer)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_timer_scenario_5"} */
    1270             : }
    1271             : 
    1272             : /* AUX_FUNC_CALLBACK ldv_timer_scenario_callback_5_2 */
    1273             : void ldv_timer_scenario_callback_5_2(void (*arg0)(unsigned long), unsigned long arg1) {
    1274          12 :  (*arg0)(arg1);
    1275           6 : }
    1276             : 
    1277             : /* AUX_FUNC main */
    1278             : int main() {
    1279           1 :  ldv_main_12(0);
    1280           0 :  return 0;
    1281             : }
    1282             : 
    1283             : 
    1284             : /* AUX_FUNC  ERR_PTR */
    1285             : static inline void *ERR_PTR (long int error)
    1286             : {
    1287             : 
    1288             :  return ldv_err_ptr(error);
    1289             : }
    1290             : 
    1291             : /* AUX_FUNC  PTR_ERR */
    1292             : static inline long int PTR_ERR (void const *ptr)
    1293             : {
    1294             : 
    1295             :  return ldv_ptr_err(ptr);
    1296             : }
    1297             : 
    1298             : /* AUX_FUNC  IS_ERR */
    1299             : static inline long int IS_ERR (void const *ptr)
    1300             : {
    1301             : 
    1302             :  return ldv_is_err(ptr);
    1303             : }
    1304             : 
    1305             : /* AUX_FUNC  IS_ERR_OR_NULL */
    1306             : static inline long int IS_ERR_OR_NULL (void const *ptr)
    1307             : {
    1308             : 
    1309             :  return ldv_is_err_or_null(ptr);
    1310             : }
    1311             : 
    1312             : /* AUX_FUNC  ldv_del_timer_5 */
    1313             : int ldv_del_timer_5 (struct timer_list *ldv_func_arg1)
    1314             : {
    1315             : 
    1316             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer'"} */
    1317             :  return ldv_emg_del_timer(ldv_func_arg1);
    1318             : }
    1319             : 
    1320             : /* AUX_FUNC  kzalloc */
    1321             : static inline void *kzalloc (size_t size, gfp_t flags)
    1322             : {
    1323           2 : 
    1324           6 :  return ldv_kzalloc(size, flags);
    1325             : }
    1326             : 
    1327             : /* AUX_FUNC  ldv_dev_get_drvdata_7 */
    1328             : void *ldv_dev_get_drvdata_7 (struct device const *dev)
    1329             : {
    1330             : 
    1331             :  return ldv_dev_get_drvdata(dev);
    1332             : }
    1333             : 
    1334             : /* AUX_FUNC  ldv_dev_get_drvdata_8 */
    1335             : void *ldv_dev_get_drvdata_8 (struct device const *dev)
    1336             : {
    1337             : 
    1338             :  return ldv_dev_get_drvdata(dev);
    1339             : }
    1340             : 
    1341             : /* AUX_FUNC  ldv_mod_timer_9 */
    1342             : int ldv_mod_timer_9 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
    1343             : {
    1344           3 : 
    1345             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
    1346          12 :  return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
    1347             : }
    1348             : 
    1349             : /* AUX_FUNC  ldv_mod_timer_10 */
    1350             : int ldv_mod_timer_10 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
    1351             : {
    1352           0 : 
    1353             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
    1354           0 :  return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
    1355             : }
    1356             : 
    1357             : /* AUX_FUNC  ldv_free_irq_11 */
    1358             : void ldv_free_irq_11 (unsigned int ldv_func_arg1, void *ldv_func_arg2)
    1359             : {
    1360             : 
    1361             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'free_irq'"} */
    1362           6 :  ldv_emg_free_irq(ldv_func_arg1, ldv_func_arg2);
    1363           3 : }
    1364             : 
    1365             : /* AUX_FUNC  ldv_del_timer_12 */
    1366             : int ldv_del_timer_12 (struct timer_list *ldv_func_arg1)
    1367             : {
    1368           3 : 
    1369             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer'"} */
    1370           9 :  return ldv_emg_del_timer(ldv_func_arg1);
    1371             : }
    1372             : 
    1373             : /* AUX_FUNC  ldv___pci_register_driver_13 */
    1374             : int ldv___pci_register_driver_13 (struct pci_driver *ldv_func_arg1, struct module *ldv_func_arg2, char const *ldv_func_arg3)
    1375             : {
    1376             : 
    1377           1 :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function '__pci_register_driver'"} */
    1378           4 :  return ldv_emg___pci_register_driver(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3);
    1379             : }
    1380             : 
    1381             : /* AUX_FUNC  ldv_pci_unregister_driver_14 */
    1382             : void ldv_pci_unregister_driver_14 (struct pci_driver *ldv_func_arg1)
    1383             : {
    1384             : 
    1385             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'pci_unregister_driver'"} */
    1386           0 :  ldv_emg_pci_unregister_driver(ldv_func_arg1);
    1387           0 : }
    1388             : 
    1389             : /* AUX_FUNC  ldv_pci_unregister_driver_15 */
    1390             : void ldv_pci_unregister_driver_15 (struct pci_driver *ldv_func_arg1)
    1391             : {
    1392             : 
    1393             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'pci_unregister_driver'"} */
    1394           4 :  ldv_emg_pci_unregister_driver(ldv_func_arg1);
    1395           2 : }

Generated by: LCOV version 1.10