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/ehci-hcd.ko/linux:drivers:clk2/weaver - ehci-hcd.c.aux (source / functions) Hit Total Coverage
Test: coverage.info Lines: 473 481 98.3 %
Date: 2017-01-25 Functions: 72 73 98.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             : 
      32             : 
      33             : struct ldv_struct_insmod_8 {
      34             :  int signal_pending;
      35             : };
      36           1 : 
      37             : struct ldv_struct_pci_scenario_1 {
      38             :  struct pci_driver *arg0;
      39             :  int signal_pending;
      40             : };
      41           1 : 
      42             : struct ldv_struct_timer_scenario_7 {
      43             :  struct timer_list *arg0;
      44             :  int signal_pending;
      45             : };
      46             : 
      47             : /* EMG Function declarations */
      48             : void ldv_dispatch_default_deregister_6_8_5(void);
      49             : void ldv_dispatch_default_deregister_7_8_6(void);
      50             : void ldv_dispatch_default_deregister_8_8_4(void);
      51             : void ldv_dispatch_default_register_6_8_8(void);
      52             : void ldv_dispatch_default_register_7_8_7(void);
      53             : void ldv_dispatch_default_register_8_8_9(void);
      54             : void ldv_dispatch_deregister_11_1(struct pci_driver *);
      55             : void ldv_dispatch_insmod_deregister_13_2(void);
      56             : void ldv_dispatch_insmod_register_13_3(void);
      57             : void ldv_dispatch_instance_deregister_9_1(struct timer_list *);
      58             : void ldv_dispatch_instance_register_10_3(struct timer_list *);
      59             : void ldv_dispatch_register_12_3(struct pci_driver *);
      60             : int ldv_emg___pci_register_driver(struct pci_driver *, struct module *, char *);
      61             : int ldv_emg_del_timer_sync(struct timer_list *);
      62             : int ldv_emg_mod_timer(struct timer_list *, long unsigned int);
      63             : void ldv_emg_pci_unregister_driver(struct pci_driver *);
      64             : void ldv_insmod_8(void *);
      65             : void ldv_insmod_ehci_hcd_cleanup_8_2(void (*)(void));
      66             : int ldv_insmod_ehci_hcd_init_8_13(int (*)(void));
      67             : void ldv_main_13(void *);
      68             : void ldv_partially_ordered_scenario_3(void *);
      69             : void ldv_partially_ordered_scenario_callback_3_17(void (*)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *, struct usb_host_endpoint *);
      70             : void ldv_partially_ordered_scenario_callback_3_18(void (*)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *, struct usb_host_endpoint *);
      71             : void ldv_partially_ordered_scenario_callback_3_19(int (*)(struct usb_hcd *), struct usb_hcd *);
      72             : void ldv_partially_ordered_scenario_callback_3_20(int (*)(struct usb_hcd *, u16 , u16 , u16 , char *, u16 ), struct usb_hcd *, short unsigned int, short unsigned int, short unsigned int, char *, short unsigned int);
      73             : void ldv_partially_ordered_scenario_callback_3_23(int (*)(struct usb_hcd *, char *), struct usb_hcd *, char *);
      74             : void ldv_partially_ordered_scenario_callback_3_26(irqreturn_t (*)(struct usb_hcd *), struct usb_hcd *);
      75             : void ldv_partially_ordered_scenario_callback_3_27(int (*)(struct usb_hcd *, int), struct usb_hcd *, int);
      76             : void ldv_partially_ordered_scenario_callback_3_30(void (*)(struct usb_hcd *, int), struct usb_hcd *, int);
      77             : void ldv_partially_ordered_scenario_callback_3_33(int (*)(struct usb_hcd *), struct usb_hcd *);
      78             : void ldv_partially_ordered_scenario_callback_3_34(void (*)(struct usb_hcd *), struct usb_hcd *);
      79             : void ldv_partially_ordered_scenario_callback_3_35(int (*)(struct usb_hcd *, struct urb *, int), struct usb_hcd *, struct urb *, int);
      80             : void ldv_partially_ordered_scenario_callback_3_38(int (*)(struct usb_hcd *, struct urb *, unsigned int), struct usb_hcd *, struct urb *, unsigned int);
      81             : void ldv_partially_ordered_scenario_callback_3_4(void (*)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *, struct usb_host_endpoint *);
      82             : int ldv_partially_ordered_scenario_probe_3_12(int (*)(struct usb_hcd *), struct usb_hcd *);
      83             : void ldv_partially_ordered_scenario_release_3_2(void (*)(struct usb_hcd *), struct usb_hcd *);
      84             : void ldv_pci_scenario_1(void *);
      85             : int ldv_pci_scenario_probe_1_17(int (*)(struct pci_dev *, struct pci_device_id *), struct pci_dev *, struct pci_device_id *);
      86             : void ldv_pci_scenario_release_1_2(void (*)(struct pci_dev *), struct pci_dev *);
      87             : void ldv_pci_scenario_resume_1_5(int (*)(struct pci_dev *), struct pci_dev *);
      88             : void ldv_pci_scenario_resume_early_1_6(int (*)(struct pci_dev *), struct pci_dev *);
      89             : void ldv_pci_scenario_shutdown_1_3(void (*)(struct pci_dev *), struct pci_dev *);
      90             : int ldv_pci_scenario_suspend_1_8(int (*)(struct pci_dev *, struct pm_message), struct pci_dev *, struct pm_message);
      91             : int ldv_pci_scenario_suspend_late_1_7(int (*)(struct pci_dev *, struct pm_message), struct pci_dev *, struct pm_message);
      92             : void ldv_random_containerless_scenario_2(void *);
      93             : void ldv_random_containerless_scenario_4(void *);
      94             : void ldv_random_containerless_scenario_5(void *);
      95             : void ldv_random_containerless_scenario_6(void *);
      96             : void ldv_random_containerless_scenario_callback_2_10(ssize_t (*)(struct device *, struct device_attribute *, char *, size_t ), struct device *, struct device_attribute *, char *, long unsigned int);
      97             : void ldv_random_containerless_scenario_callback_2_4(ssize_t (*)(struct device *, struct device_attribute *, char *), struct device *, struct device_attribute *, char *);
      98             : void ldv_random_containerless_scenario_callback_4_10(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
      99             : void ldv_random_containerless_scenario_callback_4_4(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
     100             : void ldv_random_containerless_scenario_callback_5_10(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
     101             : void ldv_random_containerless_scenario_callback_5_4(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
     102             : void ldv_random_containerless_scenario_callback_6_10(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
     103             : void ldv_random_containerless_scenario_callback_6_4(int (*)(char *, struct kernel_param *), char *, struct kernel_param *);
     104             : void ldv_timer_scenario_7(void *);
     105             : void ldv_timer_scenario_callback_7_2(void (*)(unsigned long), unsigned long);
     106             : int main(void);
     107             : 
     108             : /* EMG variable declarations */
     109           1 : struct ldv_thread ldv_thread_1;
     110           1 : struct ldv_thread ldv_thread_13;
     111           1 : struct ldv_thread ldv_thread_2;
     112           1 : struct ldv_thread ldv_thread_3;
     113           1 : struct ldv_thread ldv_thread_4;
     114           1 : struct ldv_thread ldv_thread_5;
     115           1 : struct ldv_thread ldv_thread_6;
     116           1 : struct ldv_thread ldv_thread_7;
     117           1 : struct ldv_thread ldv_thread_8;
     118             : 
     119             : /* EMG variable initialization */
     120             : 
     121             : /* EMG function definitions */
     122             : /* AUX_FUNC ldv_dispatch_default_deregister_6_8_5 */
     123             : void ldv_dispatch_default_deregister_6_8_5() {
     124             :  struct ldv_struct_insmod_8 *cf_arg_2;
     125             :  /* Skip thread join call */
     126           1 :  return;
     127             : }
     128             : 
     129             : /* AUX_FUNC ldv_dispatch_default_deregister_7_8_6 */
     130             : void ldv_dispatch_default_deregister_7_8_6() {
     131             :  struct ldv_struct_insmod_8 *cf_arg_3;
     132             :  /* Skip thread join call */
     133           1 :  return;
     134             : }
     135             : 
     136             : /* AUX_FUNC ldv_dispatch_default_deregister_8_8_4 */
     137             : void ldv_dispatch_default_deregister_8_8_4() {
     138             :  struct ldv_struct_insmod_8 *cf_arg_4;
     139             :  struct ldv_struct_insmod_8 *cf_arg_5;
     140             :  struct ldv_struct_insmod_8 *cf_arg_6;
     141             :  /* Skip thread join call */
     142             :  /* Skip thread join call */
     143             :  /* Skip thread join call */
     144           1 :  return;
     145             : }
     146             : 
     147             : /* AUX_FUNC ldv_dispatch_default_register_6_8_8 */
     148             : void ldv_dispatch_default_register_6_8_8() {
     149             :  struct ldv_struct_insmod_8 *cf_arg_2;
     150           4 :  cf_arg_2 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     151           3 :  ldv_random_containerless_scenario_2(cf_arg_2);
     152           1 :  return;
     153             : }
     154             : 
     155             : /* AUX_FUNC ldv_dispatch_default_register_7_8_7 */
     156             : void ldv_dispatch_default_register_7_8_7() {
     157             :  struct ldv_struct_insmod_8 *cf_arg_3;
     158           4 :  cf_arg_3 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     159           3 :  ldv_partially_ordered_scenario_3(cf_arg_3);
     160           1 :  return;
     161             : }
     162             : 
     163             : /* AUX_FUNC ldv_dispatch_default_register_8_8_9 */
     164             : void ldv_dispatch_default_register_8_8_9() {
     165             :  struct ldv_struct_insmod_8 *cf_arg_4;
     166           1 :  struct ldv_struct_insmod_8 *cf_arg_5;
     167           1 :  struct ldv_struct_insmod_8 *cf_arg_6;
     168           4 :  cf_arg_4 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     169           3 :  ldv_random_containerless_scenario_4(cf_arg_4);
     170           4 :  cf_arg_5 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     171           3 :  ldv_random_containerless_scenario_5(cf_arg_5);
     172           3 :  cf_arg_6 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     173           2 :  ldv_random_containerless_scenario_6(cf_arg_6);
     174           1 :  return;
     175             : }
     176             : 
     177             : /* AUX_FUNC ldv_dispatch_deregister_11_1 */
     178             : void ldv_dispatch_deregister_11_1(struct pci_driver *arg0) {
     179             :  struct ldv_struct_pci_scenario_1 *cf_arg_1;
     180             :  /* Skip thread join call */
     181           2 :  return;
     182             : }
     183             : 
     184             : /* AUX_FUNC ldv_dispatch_insmod_deregister_13_2 */
     185             : void ldv_dispatch_insmod_deregister_13_2() {
     186             :  struct ldv_struct_insmod_8 *cf_arg_8;
     187             :  /* Skip thread join call */
     188           1 :  return;
     189             : }
     190             : 
     191             : /* AUX_FUNC ldv_dispatch_insmod_register_13_3 */
     192             : void ldv_dispatch_insmod_register_13_3() {
     193             :  struct ldv_struct_insmod_8 *cf_arg_8;
     194           4 :  cf_arg_8 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     195           4 :  ldv_insmod_8(cf_arg_8);
     196           1 :  return;
     197             : }
     198             : 
     199             : /* AUX_FUNC ldv_dispatch_instance_deregister_9_1 */
     200             : void ldv_dispatch_instance_deregister_9_1(struct timer_list *arg0) {
     201             :  struct ldv_struct_timer_scenario_7 *cf_arg_7;
     202             :  /* Skip thread join call */
     203           4 :  return;
     204             : }
     205             : 
     206             : /* AUX_FUNC ldv_dispatch_instance_register_10_3 */
     207             : void ldv_dispatch_instance_register_10_3(struct timer_list *arg0) {
     208             :  struct ldv_struct_timer_scenario_7 *cf_arg_7;
     209         268 :  cf_arg_7 = ldv_xmalloc(sizeof(struct ldv_struct_timer_scenario_7));
     210         134 :  cf_arg_7->arg0 = arg0;
     211         268 :  ldv_timer_scenario_7(cf_arg_7);
     212          67 :  return;
     213             : }
     214             : 
     215             : /* AUX_FUNC ldv_dispatch_register_12_3 */
     216             : void ldv_dispatch_register_12_3(struct pci_driver *arg0) {
     217             :  struct ldv_struct_pci_scenario_1 *cf_arg_1;
     218           8 :  cf_arg_1 = ldv_xmalloc(sizeof(struct ldv_struct_pci_scenario_1));
     219           4 :  cf_arg_1->arg0 = arg0;
     220           4 :  ldv_pci_scenario_1(cf_arg_1);
     221           2 :  return;
     222             : }
     223             : 
     224             : /* AUX_FUNC ldv_emg___pci_register_driver */
     225             : int ldv_emg___pci_register_driver(struct pci_driver *arg0, struct module *arg1, char *arg2) {
     226             :  /* LDV {"comment": "Control function '__pci_register_driver'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg___pci_register_driver"} */
     227             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     228           2 :  struct pci_driver *ldv_12_pci_driver_pci_driver;
     229           2 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     230           2 :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     231             : 
     232           8 :  if (ldv_undef_int()) {
     233             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get 'pci' callbacks to register."} */
     234           2 :   ldv_12_pci_driver_pci_driver = arg0;
     235             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     236             : 
     237             :   /* LDV {"action": "REGISTER", "type": "DISPATCH_BEGIN", "comment": "Register PCI callbacks."} */
     238           4 :   ldv_dispatch_register_12_3(ldv_12_pci_driver_pci_driver);
     239             :   /* LDV {"action": "REGISTER", "type": "DISPATCH_END"} */
     240             : 
     241             :   /* LDV {"action": "FAIL", "type": "CONDITION_BEGIN", "comment": "Fail registration of 'pci' callbacks."} */
     242           6 :   return ldv_undef_int_negative();
     243             :   /* LDV {"action": "FAIL", "type": "CONDITION_END"} */
     244             : 
     245             :   /* Exit function at a terminal state */
     246             :  }
     247             :  else {
     248             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_BEGIN", "comment": "Registration of 'pci' callbacks has been successful."} */
     249           2 :   return 0;
     250             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_END"} */
     251             : 
     252             :   /* Exit function at a terminal state */
     253             :  }
     254             :  /* End of the process */
     255             :  /* LDV {"comment": "End of control function based on process '__pci_register_driver'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg___pci_register_driver"} */
     256             : }
     257             : 
     258             : /* AUX_FUNC ldv_emg_del_timer_sync */
     259             : int ldv_emg_del_timer_sync(struct timer_list *arg0) {
     260             :  /* LDV {"comment": "Control function 'del_timer_sync'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_del_timer_sync"} */
     261           4 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     262             :  struct timer_list *ldv_9_timer_list_timer_list;
     263             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     264             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get timer representing structure."} */
     265           4 :  ldv_9_timer_list_timer_list = arg0;
     266             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     267             : 
     268             :  /* LDV {"action": "INSTANCE_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Deregister TIMER callbacks."} */
     269           8 :  ldv_dispatch_instance_deregister_9_1(ldv_9_timer_list_timer_list);
     270           4 :  /* LDV {"action": "INSTANCE_DEREGISTER", "type": "DISPATCH_END"} */
     271             : 
     272             :  /* Exit function at a terminal state */
     273             :  /* End of the process */
     274             :  /* LDV {"comment": "End of control function based on process 'del_timer_sync'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_del_timer_sync"} */
     275             : }
     276             : 
     277             : /* AUX_FUNC ldv_emg_mod_timer */
     278             : int ldv_emg_mod_timer(struct timer_list *arg0, long unsigned int arg1) {
     279             :  /* LDV {"comment": "Control function 'mod_timer'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_mod_timer"} */
     280          67 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     281          67 :  struct timer_list *ldv_10_timer_list_timer_list;
     282          67 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     283             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     284             : 
     285         268 :  if (ldv_undef_int()) {
     286             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get timer representing structure."} */
     287          67 :   ldv_10_timer_list_timer_list = arg0;
     288             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     289             : 
     290             :   /* LDV {"action": "INSTANCE_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Register TIMER callbacks."} */
     291         134 :   ldv_dispatch_instance_register_10_3(ldv_10_timer_list_timer_list);
     292             :   /* LDV {"action": "INSTANCE_REGISTER", "type": "DISPATCH_END"} */
     293             : 
     294             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_BEGIN", "comment": "Successfully modified a timer's timeout"} */
     295          67 :   return 0;
     296             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_END"} */
     297             : 
     298             :   /* Exit function at a terminal state */
     299             :  }
     300             :  else {
     301             :   /* LDV {"action": "FAIL", "type": "CONDITION_BEGIN", "comment": "Failed to modify a timer's timeout"} */
     302         201 :   return ldv_undef_int_negative();
     303             :   /* LDV {"action": "FAIL", "type": "CONDITION_END"} */
     304             : 
     305             :   /* Exit function at a terminal state */
     306             :  }
     307             :  /* End of the process */
     308             :  /* LDV {"comment": "End of control function based on process 'mod_timer'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_mod_timer"} */
     309             : }
     310             : 
     311             : /* AUX_FUNC ldv_emg_pci_unregister_driver */
     312             : void ldv_emg_pci_unregister_driver(struct pci_driver *arg0) {
     313             :  /* LDV {"comment": "Control function 'pci_unregister_driver'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_pci_unregister_driver"} */
     314           2 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     315             :  struct pci_driver *ldv_11_pci_driver_pci_driver;
     316             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     317             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get 'pci' callbacks to deregister."} */
     318           2 :  ldv_11_pci_driver_pci_driver = arg0;
     319             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     320             : 
     321             :  /* LDV {"action": "DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Deregister PCI callbacks."} */
     322           4 :  ldv_dispatch_deregister_11_1(ldv_11_pci_driver_pci_driver);
     323             :  /* LDV {"action": "DEREGISTER", "type": "DISPATCH_END"} */
     324             : 
     325             :  /* Exit function at a terminal state */
     326           2 :  return;
     327             :  /* End of the process */
     328             :  return;
     329             :  /* LDV {"comment": "End of control function based on process 'pci_unregister_driver'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_pci_unregister_driver"} */
     330             : }
     331             : 
     332             : /* AUX_FUNC ldv_insmod_8 */
     333             : void ldv_insmod_8(void *arg0) {
     334             :  /* LDV {"thread": 8, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'insmod(artificial)'", "function": "ldv_insmod_8"} */
     335           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     336           1 :  void (*ldv_8_ehci_hcd_cleanup_default)(void);
     337           1 :  int (*ldv_8_ehci_hcd_init_default)(void);
     338           1 :  int ldv_8_ret_default;
     339           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     340             :  /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module initialization."} */
     341           2 :  ldv_free(arg0);
     342             :  /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_END"} */
     343             : 
     344             :  /* LDV {"action": "EHCI_HCD_INIT", "type": "CALL_BEGIN", "callback": true, "comment": "Initialize the module after insmod with 'ehci_hcd_init' function. Invoke callback ehci_hcd_init from ARTIFICIAL."} */
     345             :  /* LDV {"type": "CALLBACK", "call": "ldv_8_ret_default = (ehci_hcd_init)();", "comment": "ehci_hcd_init"} */
     346           2 :  ldv_8_ret_default = ldv_insmod_ehci_hcd_init_8_13(ldv_8_ehci_hcd_init_default);
     347             :  /* Callback post-call */
     348           2 :  ldv_8_ret_default = ldv_post_init(ldv_8_ret_default);
     349             :  /* LDV {"action": "EHCI_HCD_INIT", "type": "CALL_END"} */
     350             : 
     351           4 :  if (ldv_undef_int()) {
     352             :   /* LDV {"action": "INIT_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to initialize the module."} */
     353           2 :   ldv_assume(ldv_8_ret_default != 0);
     354             :   /* LDV {"action": "INIT_FAILED", "type": "CONDITION_END"} */
     355             : 
     356             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
     357             :   /* Skip a non-replicative signal receiving */
     358             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
     359             : 
     360             :   /* Exit function at a terminal state */
     361           1 :   return;
     362             :  }
     363             :  else {
     364             :   /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Module has been initialized."} */
     365           2 :   ldv_assume(ldv_8_ret_default == 0);
     366             :   /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_END"} */
     367             : 
     368           4 :   if (ldv_undef_int()) {
     369             :    /* LDV {"action": "DEFAULT_REGISTER_8", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_KERNEL_PARAM' callbacks with unknown registration function."} */
     370           2 :    ldv_dispatch_default_register_8_8_9();
     371             :    /* LDV {"action": "DEFAULT_REGISTER_8", "type": "DISPATCH_END"} */
     372             : 
     373             :    /* LDV {"action": "DEFAULT_REGISTER_6", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_DEVICE_ATTRIBUTE' callbacks with unknown registration function."} */
     374           2 :    ldv_dispatch_default_register_6_8_8();
     375             :    /* LDV {"action": "DEFAULT_REGISTER_6", "type": "DISPATCH_END"} */
     376             : 
     377             :    /* LDV {"action": "DEFAULT_REGISTER_7", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_HC_DRIVER' callbacks with unknown registration function."} */
     378           2 :    ldv_dispatch_default_register_7_8_7();
     379             :    /* LDV {"action": "DEFAULT_REGISTER_7", "type": "DISPATCH_END"} */
     380             : 
     381             :    /* LDV {"action": "DEFAULT_DEREGISTER_7", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_HC_DRIVER' callbacks with unknown deregistration function."} */
     382           2 :    ldv_dispatch_default_deregister_7_8_6();
     383             :    /* LDV {"action": "DEFAULT_DEREGISTER_7", "type": "DISPATCH_END"} */
     384             : 
     385             :    /* LDV {"action": "DEFAULT_DEREGISTER_6", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_DEVICE_ATTRIBUTE' callbacks with unknown deregistration function."} */
     386           2 :    ldv_dispatch_default_deregister_6_8_5();
     387             :    /* LDV {"action": "DEFAULT_DEREGISTER_6", "type": "DISPATCH_END"} */
     388             : 
     389             :    /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_KERNEL_PARAM' callbacks with unknown deregistration function."} */
     390           2 :    ldv_dispatch_default_deregister_8_8_4();
     391             :    /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "DISPATCH_END"} */
     392             : 
     393             :   }
     394             :   else {
     395             :    /* LDV {"action": "NONE", "type": "CONDITION_BEGIN", "comment": "Skip default callbacks registrations and deregistrations."} */
     396             :    /* LDV {"action": "NONE", "type": "CONDITION_END"} */
     397             : 
     398             :   }
     399             :   /* LDV {"action": "EHCI_HCD_CLEANUP", "type": "CALL_BEGIN", "callback": true, "comment": "Exit the module before its unloading with 'ehci_hcd_cleanup' function. Invoke callback ehci_hcd_cleanup from ARTIFICIAL."} */
     400             :   /* LDV {"type": "CALLBACK", "call": "(ehci_hcd_cleanup)();", "comment": "ehci_hcd_cleanup"} */
     401           4 :   ldv_insmod_ehci_hcd_cleanup_8_2(ldv_8_ehci_hcd_cleanup_default);
     402             :   /* LDV {"action": "EHCI_HCD_CLEANUP", "type": "CALL_END"} */
     403             : 
     404             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
     405             :   /* Skip a non-replicative signal receiving */
     406             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
     407             : 
     408             :   /* Exit function at a terminal state */
     409           1 :   return;
     410             :  }
     411             :  /* End of the process */
     412             :  return;
     413             :  /* LDV {"comment": "End of control function based on process 'insmod(artificial)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_insmod_8"} */
     414             : }
     415             : 
     416             : /* AUX_FUNC_CALLBACK ldv_insmod_ehci_hcd_cleanup_8_2 */
     417             : void ldv_insmod_ehci_hcd_cleanup_8_2(void (*arg0)(void)) {
     418           4 :  (ehci_hcd_cleanup)();
     419           2 : }
     420             : 
     421             : /* AUX_FUNC_CALLBACK ldv_insmod_ehci_hcd_init_8_13 */
     422             : int ldv_insmod_ehci_hcd_init_8_13(int (*arg0)(void)) {
     423           5 :  return (ehci_hcd_init)();
     424           1 : }
     425             : 
     426             : /* AUX_FUNC ldv_main_13 */
     427             : void ldv_main_13(void *arg0) {
     428             :  /* LDV {"thread": 13, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'main(main)'", "function": "ldv_main_13"} */
     429             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     430             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     431             :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Initialize rule models."} */
     432           1 :  ldv_initialize();
     433             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
     434             : 
     435             :  /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Start environment model scenarios."} */
     436           2 :  ldv_dispatch_insmod_register_13_3();
     437             :  /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_END"} */
     438             : 
     439             :  /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Stop environment model scenarios."} */
     440           2 :  ldv_dispatch_insmod_deregister_13_2();
     441             :  /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_END"} */
     442             : 
     443             :  /* LDV {"action": "FINAL", "type": "CONDITION_BEGIN", "comment": "Check rule model state at the exit."} */
     444           1 :  ldv_check_final_state();
     445           1 :  ldv_stop();
     446             :  /* LDV {"action": "FINAL", "type": "CONDITION_END"} */
     447             : 
     448             :  /* Exit function at a terminal state */
     449           0 :  return;
     450             :  /* End of the process */
     451             :  return;
     452             :  /* LDV {"comment": "End of control function based on process 'main(main)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_main_13"} */
     453             : }
     454             : 
     455             : /* AUX_FUNC ldv_partially_ordered_scenario_3 */
     456             : void ldv_partially_ordered_scenario_3(void *arg0) {
     457             :  /* LDV {"thread": 3, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'partially_ordered_scenario(struct_hc_driver)'", "function": "ldv_partially_ordered_scenario_3"} */
     458           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     459           1 :  void (*ldv_3_callback_clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *);
     460           1 :  void (*ldv_3_callback_endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *);
     461           1 :  void (*ldv_3_callback_endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *);
     462           1 :  int (*ldv_3_callback_get_frame_number)(struct usb_hcd *);
     463             :  int (*ldv_3_callback_hub_control)(struct usb_hcd *, u16 , u16 , u16 , char *, u16 );
     464           1 :  int (*ldv_3_callback_hub_status_data)(struct usb_hcd *, char *);
     465           1 :  irqreturn_t (*ldv_3_callback_irq)(struct usb_hcd *);
     466           1 :  int (*ldv_3_callback_port_handed_over)(struct usb_hcd *, int);
     467           1 :  void (*ldv_3_callback_relinquish_port)(struct usb_hcd *, int);
     468           1 :  int (*ldv_3_callback_reset)(struct usb_hcd *);
     469           1 :  void (*ldv_3_callback_shutdown)(struct usb_hcd *);
     470           1 :  int (*ldv_3_callback_urb_dequeue)(struct usb_hcd *, struct urb *, int);
     471           1 :  int (*ldv_3_callback_urb_enqueue)(struct usb_hcd *, struct urb *, unsigned int);
     472           1 :  struct hc_driver *ldv_3_container_struct_hc_driver;
     473           1 :  short unsigned int ldv_3_ldv_param_20_1_default;
     474           1 :  short unsigned int ldv_3_ldv_param_20_2_default;
     475           1 :  short unsigned int ldv_3_ldv_param_20_3_default;
     476           1 :  char *ldv_3_ldv_param_20_4_default;
     477           1 :  short unsigned int ldv_3_ldv_param_20_5_default;
     478           1 :  char *ldv_3_ldv_param_23_1_default;
     479           1 :  int ldv_3_ldv_param_27_1_default;
     480           1 :  int ldv_3_ldv_param_30_1_default;
     481           1 :  int ldv_3_ldv_param_35_2_default;
     482           1 :  unsigned int ldv_3_ldv_param_38_2_default;
     483           1 :  struct urb *ldv_3_resource_struct_urb_ptr;
     484           1 :  struct usb_hcd *ldv_3_resource_struct_usb_hcd_ptr;
     485           1 :  struct usb_host_endpoint *ldv_3_resource_struct_usb_host_endpoint_ptr;
     486           1 :  int ldv_3_ret_default;
     487           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     488           1 :  /* Initialize automaton variables */
     489           2 :  ldv_3_ret_default = 1;
     490           1 :  /* LDV {"action": "DEFAULT_REGISTER_7", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_HC_DRIVER callbacks invocations scenario."} */
     491           3 :  ldv_free(arg0);
     492           1 :  /* LDV {"action": "DEFAULT_REGISTER_7", "type": "RECEIVE_END"} */
     493           1 : 
     494           1 :  /* LDV {"action": "DEFAULT_ALLOC_7", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
     495           4 :  ldv_3_container_struct_hc_driver = ldv_xmalloc_unknown_size(0);
     496             :  /* LDV {"action": "DEFAULT_ALLOC_7", "type": "CONDITION_END"} */
     497             : 
     498             :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Alloc memory for common callback arguments."} */
     499           3 :  ldv_3_resource_struct_urb_ptr = ldv_xmalloc_unknown_size(0);
     500           3 :  ldv_3_resource_struct_usb_hcd_ptr = ldv_xmalloc_unknown_size(0);
     501           3 :  ldv_3_resource_struct_usb_host_endpoint_ptr = ldv_xmalloc_unknown_size(0);
     502             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
     503             : 
     504             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Start with an initialization callback."} */
     505             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     506             : 
     507             :  /* Jump to a subprocess 'main' initial state */
     508           1 :  goto ldv_main_3;
     509             :  /* End of the process */
     510             :  return;
     511           1 : 
     512             :  /* Sbprocess main */
     513             :  ldv_main_3:
     514             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     515             : 
     516           4 :  if (ldv_undef_int()) {
     517             :   /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Call an initialization callback. Invoke callback start from hc_driver."} */
     518             :   /* LDV {"type": "CALLBACK", "call": "ldv_3_ret_default = ((& ehci_run))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "probe"} */
     519           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);
     520             :   /* Callback post-call */
     521           2 :   ldv_3_ret_default = ldv_filter_err_code(ldv_3_ret_default);
     522             :   /* LDV {"action": "PROBE", "type": "CALL_END"} */
     523             : 
     524           4 :   if (ldv_undef_int()) {
     525             :    /* LDV {"action": "Y_RET", "type": "CONDITION_BEGIN", "comment": "Initialization has been successful."} */
     526           2 :    ldv_assume(ldv_3_ret_default == 0);
     527             :    /* LDV {"action": "Y_RET", "type": "CONDITION_END"} */
     528             : 
     529             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     530             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     531             : 
     532             :    /* Jump to a subprocess 'call' initial state */
     533           1 :    goto ldv_call_3;
     534             :   }
     535             :   else {
     536             :    /* LDV {"action": "N_RET", "type": "CONDITION_BEGIN", "comment": "Initialization has failed."} */
     537           2 :    ldv_assume(ldv_3_ret_default != 0);
     538             :    /* LDV {"action": "N_RET", "type": "CONDITION_END"} */
     539             : 
     540             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Start with an initialization callback."} */
     541             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     542             : 
     543             :    /* Jump to a subprocess 'main' initial state */
     544           1 :    goto ldv_main_3;
     545             :   }
     546             :  }
     547             :  else {
     548             :   /* LDV {"action": "FREE", "type": "CONDITION_BEGIN", "comment": "Free memory for common callback arguments."} */
     549           2 :   ldv_free(ldv_3_resource_struct_urb_ptr);
     550           2 :   ldv_free(ldv_3_resource_struct_usb_hcd_ptr);
     551           2 :   ldv_free(ldv_3_resource_struct_usb_host_endpoint_ptr);
     552             :   /* LDV {"action": "FREE", "type": "CONDITION_END"} */
     553             : 
     554             :   /* LDV {"action": "DEFAULT_FREE_7", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
     555           2 :   ldv_free(ldv_3_container_struct_hc_driver);
     556             :   /* LDV {"action": "DEFAULT_FREE_7", "type": "CONDITION_END"} */
     557             : 
     558             :   /* LDV {"action": "DEFAULT_DEREGISTER_7", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_HC_DRIVER callbacks invocations scenario."} */
     559             :   /* Skip a non-replicative signal receiving */
     560             :   /* LDV {"action": "DEFAULT_DEREGISTER_7", "type": "RECEIVE_END"} */
     561             : 
     562             :   /* Exit function at a terminal state */
     563           1 :   return;
     564             :  }
     565             :  /* End of the subprocess 'main' */
     566             :  return;
     567           1 : 
     568             :  /* Sbprocess call */
     569             :  ldv_call_3:
     570             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     571             : 
     572           2 :  switch (ldv_undef_int()) {
     573           3 :   case 1: {
     574             :    /* LDV {"action": "PRE_CALL_38", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     575             :    /* LDV {"action": "PRE_CALL_38", "type": "CONDITION_END"} */
     576             : 
     577             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback urb_enqueue from hc_driver."} */
     578             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_urb_enqueue))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_urb_ptr, ldv_3_ldv_param_38_2_default);", "comment": "callback"} */
     579           2 :    ldv_partially_ordered_scenario_callback_3_38(ldv_3_callback_urb_enqueue, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_urb_ptr, ldv_3_ldv_param_38_2_default);
     580             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     581             : 
     582             :    /* LDV {"action": "POST_CALL_38", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     583             :    /* LDV {"action": "POST_CALL_38", "type": "CONDITION_END"} */
     584             : 
     585             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     586             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     587             : 
     588             :    /* Jump to a subprocess 'call' initial state */
     589           1 :    goto ldv_call_3;
     590           1 :    break;
     591             :   }
     592           3 :   case 2: {
     593             :    /* LDV {"action": "PRE_CALL_35", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     594             :    /* LDV {"action": "PRE_CALL_35", "type": "CONDITION_END"} */
     595             : 
     596             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback urb_dequeue from hc_driver."} */
     597             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_urb_dequeue))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_urb_ptr, ldv_3_ldv_param_35_2_default);", "comment": "callback"} */
     598           2 :    ldv_partially_ordered_scenario_callback_3_35(ldv_3_callback_urb_dequeue, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_urb_ptr, ldv_3_ldv_param_35_2_default);
     599             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     600             : 
     601             :    /* LDV {"action": "POST_CALL_35", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     602             :    /* LDV {"action": "POST_CALL_35", "type": "CONDITION_END"} */
     603             : 
     604             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     605             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     606             : 
     607             :    /* Jump to a subprocess 'call' initial state */
     608           1 :    goto ldv_call_3;
     609             :    /* Jump to a subprocess 'call' initial state */
     610             :    goto ldv_call_3;
     611           1 :    break;
     612             :   }
     613           3 :   case 3: {
     614             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback shutdown from hc_driver."} */
     615             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_shutdown))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "callback"} */
     616           2 :    ldv_partially_ordered_scenario_callback_3_34(ldv_3_callback_shutdown, ldv_3_resource_struct_usb_hcd_ptr);
     617             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     618             : 
     619             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     620             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     621             : 
     622             :    /* Jump to a subprocess 'call' initial state */
     623           1 :    goto ldv_call_3;
     624             :    /* Jump to a subprocess 'call' initial state */
     625             :    goto ldv_call_3;
     626             :    /* Jump to a subprocess 'call' initial state */
     627             :    goto ldv_call_3;
     628           1 :    break;
     629             :   }
     630           3 :   case 4: {
     631             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback reset from hc_driver."} */
     632             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_pci_setup))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "callback"} */
     633           2 :    ldv_partially_ordered_scenario_callback_3_33(ldv_3_callback_reset, ldv_3_resource_struct_usb_hcd_ptr);
     634             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     635             : 
     636             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     637             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     638             : 
     639             :    /* Jump to a subprocess 'call' initial state */
     640           1 :    goto ldv_call_3;
     641             :    /* Jump to a subprocess 'call' initial state */
     642             :    goto ldv_call_3;
     643             :    /* Jump to a subprocess 'call' initial state */
     644             :    goto ldv_call_3;
     645             :    /* Jump to a subprocess 'call' initial state */
     646             :    goto ldv_call_3;
     647           1 :    break;
     648             :   }
     649           3 :   case 5: {
     650             :    /* LDV {"action": "PRE_CALL_30", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     651             :    /* LDV {"action": "PRE_CALL_30", "type": "CONDITION_END"} */
     652             : 
     653             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback relinquish_port from hc_driver."} */
     654             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_relinquish_port))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_30_1_default);", "comment": "callback"} */
     655           2 :    ldv_partially_ordered_scenario_callback_3_30(ldv_3_callback_relinquish_port, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_30_1_default);
     656             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     657             : 
     658             :    /* LDV {"action": "POST_CALL_30", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     659             :    /* LDV {"action": "POST_CALL_30", "type": "CONDITION_END"} */
     660             : 
     661             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     662             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     663             : 
     664             :    /* Jump to a subprocess 'call' initial state */
     665           1 :    goto ldv_call_3;
     666             :    /* Jump to a subprocess 'call' initial state */
     667             :    goto ldv_call_3;
     668             :    /* Jump to a subprocess 'call' initial state */
     669             :    goto ldv_call_3;
     670             :    /* Jump to a subprocess 'call' initial state */
     671             :    goto ldv_call_3;
     672             :    /* Jump to a subprocess 'call' initial state */
     673             :    goto ldv_call_3;
     674           1 :    break;
     675             :   }
     676           3 :   case 6: {
     677             :    /* LDV {"action": "PRE_CALL_27", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     678             :    /* LDV {"action": "PRE_CALL_27", "type": "CONDITION_END"} */
     679             : 
     680             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback port_handed_over from hc_driver."} */
     681             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_port_handed_over))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_27_1_default);", "comment": "callback"} */
     682           2 :    ldv_partially_ordered_scenario_callback_3_27(ldv_3_callback_port_handed_over, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_27_1_default);
     683             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     684             : 
     685             :    /* LDV {"action": "POST_CALL_27", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     686             :    /* LDV {"action": "POST_CALL_27", "type": "CONDITION_END"} */
     687             : 
     688             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     689             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     690             : 
     691             :    /* Jump to a subprocess 'call' initial state */
     692           1 :    goto ldv_call_3;
     693             :    /* Jump to a subprocess 'call' initial state */
     694             :    goto ldv_call_3;
     695             :    /* Jump to a subprocess 'call' initial state */
     696             :    goto ldv_call_3;
     697             :    /* Jump to a subprocess 'call' initial state */
     698             :    goto ldv_call_3;
     699             :    /* Jump to a subprocess 'call' initial state */
     700             :    goto ldv_call_3;
     701             :    /* Jump to a subprocess 'call' initial state */
     702             :    goto ldv_call_3;
     703           1 :    break;
     704             :   }
     705           3 :   case 7: {
     706             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback irq from hc_driver."} */
     707             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_irq))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "callback"} */
     708           2 :    ldv_partially_ordered_scenario_callback_3_26(ldv_3_callback_irq, ldv_3_resource_struct_usb_hcd_ptr);
     709             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     710             : 
     711             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     712             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     713             : 
     714             :    /* Jump to a subprocess 'call' initial state */
     715           1 :    goto ldv_call_3;
     716             :    /* Jump to a subprocess 'call' initial state */
     717             :    goto ldv_call_3;
     718             :    /* Jump to a subprocess 'call' initial state */
     719             :    goto ldv_call_3;
     720             :    /* Jump to a subprocess 'call' initial state */
     721             :    goto ldv_call_3;
     722             :    /* Jump to a subprocess 'call' initial state */
     723             :    goto ldv_call_3;
     724             :    /* Jump to a subprocess 'call' initial state */
     725             :    goto ldv_call_3;
     726             :    /* Jump to a subprocess 'call' initial state */
     727             :    goto ldv_call_3;
     728           1 :    break;
     729             :   }
     730           3 :   case 8: {
     731             :    /* LDV {"action": "PRE_CALL_23", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     732           3 :    ldv_3_ldv_param_23_1_default = ldv_xmalloc_unknown_size(0);
     733             :    /* LDV {"action": "PRE_CALL_23", "type": "CONDITION_END"} */
     734             : 
     735             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback hub_status_data from hc_driver."} */
     736             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_hub_status_data))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_23_1_default);", "comment": "callback"} */
     737           2 :    ldv_partially_ordered_scenario_callback_3_23(ldv_3_callback_hub_status_data, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_23_1_default);
     738             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     739             : 
     740             :    /* LDV {"action": "POST_CALL_23", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     741           2 :    ldv_free(ldv_3_ldv_param_23_1_default);
     742             :    /* LDV {"action": "POST_CALL_23", "type": "CONDITION_END"} */
     743             : 
     744             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     745             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     746             : 
     747             :    /* Jump to a subprocess 'call' initial state */
     748           1 :    goto ldv_call_3;
     749             :    /* Jump to a subprocess 'call' initial state */
     750             :    goto ldv_call_3;
     751             :    /* Jump to a subprocess 'call' initial state */
     752             :    goto ldv_call_3;
     753             :    /* Jump to a subprocess 'call' initial state */
     754             :    goto ldv_call_3;
     755             :    /* Jump to a subprocess 'call' initial state */
     756             :    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           1 :    break;
     764             :   }
     765           3 :   case 9: {
     766             :    /* LDV {"action": "PRE_CALL_20", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     767           3 :    ldv_3_ldv_param_20_4_default = ldv_xmalloc_unknown_size(0);
     768             :    /* LDV {"action": "PRE_CALL_20", "type": "CONDITION_END"} */
     769             : 
     770             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback hub_control from hc_driver."} */
     771             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_hub_control))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_20_1_default, ldv_3_ldv_param_20_2_default, ldv_3_ldv_param_20_3_default, ldv_3_ldv_param_20_4_default, ldv_3_ldv_param_20_5_default);", "comment": "callback"} */
     772           2 :    ldv_partially_ordered_scenario_callback_3_20(ldv_3_callback_hub_control, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_ldv_param_20_1_default, ldv_3_ldv_param_20_2_default, ldv_3_ldv_param_20_3_default, ldv_3_ldv_param_20_4_default, ldv_3_ldv_param_20_5_default);
     773             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     774             : 
     775             :    /* LDV {"action": "POST_CALL_20", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     776           2 :    ldv_free(ldv_3_ldv_param_20_4_default);
     777             :    /* LDV {"action": "POST_CALL_20", "type": "CONDITION_END"} */
     778             : 
     779             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     780             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     781             : 
     782             :    /* Jump to a subprocess 'call' initial state */
     783           1 :    goto ldv_call_3;
     784             :    /* Jump to a subprocess 'call' initial state */
     785             :    goto ldv_call_3;
     786             :    /* Jump to a subprocess 'call' initial state */
     787             :    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 10: {
     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": "((& ehci_get_frame))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "callback"} */
     805           2 :    ldv_partially_ordered_scenario_callback_3_19(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             :    /* Jump to a subprocess 'call' initial state */
     828             :    goto ldv_call_3;
     829             :    /* Jump to a subprocess 'call' initial state */
     830             :    goto ldv_call_3;
     831           1 :    break;
     832             :   }
     833           3 :   case 11: {
     834             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback endpoint_reset from hc_driver."} */
     835             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_endpoint_reset))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);", "comment": "callback"} */
     836           2 :    ldv_partially_ordered_scenario_callback_3_18(ldv_3_callback_endpoint_reset, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);
     837             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     838             : 
     839             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     840             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     841             : 
     842             :    /* Jump to a subprocess 'call' initial state */
     843           1 :    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             :    /* Jump to a subprocess 'call' initial state */
     857             :    goto ldv_call_3;
     858             :    /* Jump to a subprocess 'call' initial state */
     859             :    goto ldv_call_3;
     860             :    /* Jump to a subprocess 'call' initial state */
     861             :    goto ldv_call_3;
     862             :    /* Jump to a subprocess 'call' initial state */
     863             :    goto ldv_call_3;
     864           1 :    break;
     865             :   }
     866           3 :   case 12: {
     867             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback endpoint_disable from hc_driver."} */
     868             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_endpoint_disable))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);", "comment": "callback"} */
     869           2 :    ldv_partially_ordered_scenario_callback_3_17(ldv_3_callback_endpoint_disable, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);
     870             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     871             : 
     872             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     873             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     874             : 
     875             :    /* Jump to a subprocess 'call' initial state */
     876           1 :    goto ldv_call_3;
     877             :    /* Jump to a subprocess 'call' initial state */
     878             :    goto ldv_call_3;
     879             :    /* Jump to a subprocess 'call' initial state */
     880             :    goto ldv_call_3;
     881             :    /* Jump to a subprocess 'call' initial state */
     882             :    goto ldv_call_3;
     883             :    /* Jump to a subprocess 'call' initial state */
     884             :    goto ldv_call_3;
     885             :    /* Jump to a subprocess 'call' initial state */
     886             :    goto ldv_call_3;
     887             :    /* Jump to a subprocess 'call' initial state */
     888             :    goto ldv_call_3;
     889             :    /* Jump to a subprocess 'call' initial state */
     890             :    goto ldv_call_3;
     891             :    /* Jump to a subprocess 'call' initial state */
     892             :    goto ldv_call_3;
     893             :    /* Jump to a subprocess 'call' initial state */
     894             :    goto ldv_call_3;
     895             :    /* Jump to a subprocess 'call' initial state */
     896             :    goto ldv_call_3;
     897             :    /* Jump to a subprocess 'call' initial state */
     898             :    goto ldv_call_3;
     899           1 :    break;
     900             :   }
     901           3 :   case 13: {
     902             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback clear_tt_buffer_complete from hc_driver."} */
     903             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_clear_tt_buffer_complete))(ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);", "comment": "callback"} */
     904           2 :    ldv_partially_ordered_scenario_callback_3_4(ldv_3_callback_clear_tt_buffer_complete, ldv_3_resource_struct_usb_hcd_ptr, ldv_3_resource_struct_usb_host_endpoint_ptr);
     905             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     906             : 
     907             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Initializations are done, proceed to the other callbacks."} */
     908             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     909             : 
     910             :    /* Jump to a subprocess 'call' initial state */
     911           1 :    goto ldv_call_3;
     912             :    /* Jump to a subprocess 'call' initial state */
     913             :    goto ldv_call_3;
     914             :    /* Jump to a subprocess 'call' initial state */
     915             :    goto ldv_call_3;
     916             :    /* Jump to a subprocess 'call' initial state */
     917             :    goto ldv_call_3;
     918             :    /* Jump to a subprocess 'call' initial state */
     919             :    goto ldv_call_3;
     920             :    /* Jump to a subprocess 'call' initial state */
     921             :    goto ldv_call_3;
     922             :    /* Jump to a subprocess 'call' initial state */
     923             :    goto ldv_call_3;
     924             :    /* Jump to a subprocess 'call' initial state */
     925             :    goto ldv_call_3;
     926             :    /* Jump to a subprocess 'call' initial state */
     927             :    goto ldv_call_3;
     928             :    /* Jump to a subprocess 'call' initial state */
     929             :    goto ldv_call_3;
     930             :    /* Jump to a subprocess 'call' initial state */
     931             :    goto ldv_call_3;
     932             :    /* Jump to a subprocess 'call' initial state */
     933             :    goto ldv_call_3;
     934             :    /* Jump to a subprocess 'call' initial state */
     935             :    goto ldv_call_3;
     936           1 :    break;
     937             :   }
     938           3 :   case 14: {
     939             :    /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Do uninitializations before deregistration. Invoke callback stop from hc_driver."} */
     940             :    /* LDV {"type": "CALLBACK", "call": "((& ehci_stop))(ldv_3_resource_struct_usb_hcd_ptr);", "comment": "release"} */
     941           2 :    ldv_partially_ordered_scenario_release_3_2(ldv_3_container_struct_hc_driver->stop, ldv_3_resource_struct_usb_hcd_ptr);
     942             :    /* LDV {"action": "RELEASE", "type": "CALL_END"} */
     943             : 
     944             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Start with an initialization callback."} */
     945             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     946             : 
     947             :    /* Jump to a subprocess 'main' initial state */
     948           1 :    goto ldv_main_3;
     949           1 :    break;
     950             :   }
     951           2 :   default: ldv_stop();
     952           1 :  }
     953           0 :  /* End of the subprocess 'call' */
     954           0 :  return;
     955             :  /* 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"} */
     956             : }
     957             : 
     958             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_17 */
     959             : void ldv_partially_ordered_scenario_callback_3_17(void (*arg0)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *arg1, struct usb_host_endpoint *arg2) {
     960           2 :  ((& ehci_endpoint_disable))(arg1, arg2);
     961           1 : }
     962             : 
     963             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_18 */
     964             : void ldv_partially_ordered_scenario_callback_3_18(void (*arg0)(struct usb_hcd *, struct usb_host_endpoint *), struct usb_hcd *arg1, struct usb_host_endpoint *arg2) {
     965           3 :  ((& ehci_endpoint_reset))(arg1, arg2);
     966           1 : }
     967             : 
     968             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_19 */
     969             : void ldv_partially_ordered_scenario_callback_3_19(int (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
     970           2 :  ((& ehci_get_frame))(arg1);
     971           1 : }
     972             : 
     973             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_20 */
     974             : void ldv_partially_ordered_scenario_callback_3_20(int (*arg0)(struct usb_hcd *, u16 , u16 , u16 , char *, u16 ), struct usb_hcd *arg1, short unsigned int arg2, short unsigned int arg3, short unsigned int arg4, char *arg5, short unsigned int arg6) {
     975           2 :  ((& ehci_hub_control))(arg1, arg2, arg3, arg4, arg5, arg6);
     976           1 : }
     977             : 
     978             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_23 */
     979             : void ldv_partially_ordered_scenario_callback_3_23(int (*arg0)(struct usb_hcd *, char *), struct usb_hcd *arg1, char *arg2) {
     980           3 :  ((& ehci_hub_status_data))(arg1, arg2);
     981           1 : }
     982             : 
     983             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_26 */
     984             : void ldv_partially_ordered_scenario_callback_3_26(irqreturn_t (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
     985           3 :  ((& ehci_irq))(arg1);
     986           1 : }
     987             : 
     988             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_27 */
     989             : void ldv_partially_ordered_scenario_callback_3_27(int (*arg0)(struct usb_hcd *, int), struct usb_hcd *arg1, int arg2) {
     990           3 :  ((& ehci_port_handed_over))(arg1, arg2);
     991           1 : }
     992             : 
     993             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_30 */
     994             : void ldv_partially_ordered_scenario_callback_3_30(void (*arg0)(struct usb_hcd *, int), struct usb_hcd *arg1, int arg2) {
     995           3 :  ((& ehci_relinquish_port))(arg1, arg2);
     996           1 : }
     997             : 
     998             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_33 */
     999             : void ldv_partially_ordered_scenario_callback_3_33(int (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
    1000           5 :  ((& ehci_pci_setup))(arg1);
    1001           1 : }
    1002             : 
    1003             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_34 */
    1004             : void ldv_partially_ordered_scenario_callback_3_34(void (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
    1005           2 :  ((& ehci_shutdown))(arg1);
    1006           1 : }
    1007             : 
    1008             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_35 */
    1009             : void ldv_partially_ordered_scenario_callback_3_35(int (*arg0)(struct usb_hcd *, struct urb *, int), struct usb_hcd *arg1, struct urb *arg2, int arg3) {
    1010           2 :  ((& ehci_urb_dequeue))(arg1, arg2, arg3);
    1011           1 : }
    1012             : 
    1013             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_38 */
    1014             : void ldv_partially_ordered_scenario_callback_3_38(int (*arg0)(struct usb_hcd *, struct urb *, unsigned int), struct usb_hcd *arg1, struct urb *arg2, unsigned int arg3) {
    1015           8 :  ((& ehci_urb_enqueue))(arg1, arg2, arg3);
    1016           1 : }
    1017             : 
    1018             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_callback_3_4 */
    1019             : 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) {
    1020           2 :  ((& ehci_clear_tt_buffer_complete))(arg1, arg2);
    1021           1 : }
    1022             : 
    1023             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_probe_3_12 */
    1024             : int ldv_partially_ordered_scenario_probe_3_12(int (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
    1025           4 :  return ((& ehci_run))(arg1);
    1026           1 : }
    1027             : 
    1028             : /* AUX_FUNC_CALLBACK ldv_partially_ordered_scenario_release_3_2 */
    1029             : void ldv_partially_ordered_scenario_release_3_2(void (*arg0)(struct usb_hcd *), struct usb_hcd *arg1) {
    1030           2 :  ((& ehci_stop))(arg1);
    1031           1 : }
    1032             : 
    1033             : /* AUX_FUNC ldv_pci_scenario_1 */
    1034             : void ldv_pci_scenario_1(void *arg0) {
    1035             :  /* LDV {"thread": 1, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'pci_scenario(pci)'", "function": "ldv_pci_scenario_1"} */
    1036           2 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1037           2 :  struct pci_driver *ldv_1_container_pci_driver;
    1038           2 :  struct pci_dev *ldv_1_resource_dev;
    1039           2 :  struct pm_message ldv_1_resource_pm_message;
    1040           2 :  struct pci_device_id *ldv_1_resource_struct_pci_device_id_ptr;
    1041           2 :  int ldv_1_ret_default;
    1042           2 :  /* Received labels */
    1043           4 :  struct ldv_struct_pci_scenario_1 *data = (struct ldv_struct_pci_scenario_1*) arg0;
    1044           2 : 
    1045           2 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1046           2 :  /* Initialize automaton variables */
    1047           2 :  ldv_1_ret_default = 1;
    1048             :  /* LDV {"action": "REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin PCI callbacks invocating."} */
    1049             :  /* Assign recieved labels */
    1050           4 :  if (data) {
    1051           2 :   ldv_1_container_pci_driver = data->arg0;
    1052           4 :   ldv_free(data);
    1053             :  }
    1054             :  /* LDV {"action": "REGISTER", "type": "RECEIVE_END"} */
    1055             : 
    1056             :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Allocate memory for pci_dev structure."} */
    1057          10 :  ldv_1_resource_dev = ldv_xmalloc(sizeof(struct pci_dev));
    1058           6 :  ldv_1_resource_struct_pci_device_id_ptr = ldv_xmalloc_unknown_size(0);
    1059             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
    1060             : 
    1061             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "New device is inserted, probe it."} */
    1062             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
    1063             : 
    1064             :  /* Jump to a subprocess 'main' initial state */
    1065           2 :  goto ldv_main_1;
    1066             :  /* End of the process */
    1067             :  return;
    1068           2 : 
    1069             :  /* Sbprocess main */
    1070             :  ldv_main_1:
    1071             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1072             : 
    1073           8 :  if (ldv_undef_int()) {
    1074             :   /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Probe new PCI driver. Invoke callback probe from pci_driver."} */
    1075             :   /* Callback pre-call */
    1076           2 :   ldv_pre_probe();
    1077             :   /* LDV {"type": "CALLBACK", "call": "ldv_1_ret_default = ((& usb_hcd_pci_probe))(ldv_1_resource_dev, ldv_1_resource_struct_pci_device_id_ptr);", "comment": "probe"} */
    1078           6 :   ldv_1_ret_default = ldv_pci_scenario_probe_1_17(ldv_1_container_pci_driver->probe, ldv_1_resource_dev, ldv_1_resource_struct_pci_device_id_ptr);
    1079             :   /* Callback post-call */
    1080           4 :   ldv_1_ret_default = ldv_post_probe(ldv_1_ret_default);
    1081             :   /* LDV {"action": "PROBE", "type": "CALL_END"} */
    1082             : 
    1083           8 :   if (ldv_undef_int()) {
    1084             :    /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Probing of PCI driver has been successfull."} */
    1085           4 :    ldv_assume(ldv_1_ret_default == 0);
    1086             :    /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
    1087             : 
    1088             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call rest callbacks."} */
    1089             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1090             : 
    1091             :    /* Jump to a subprocess 'call' initial state */
    1092           2 :    goto ldv_call_1;
    1093             :   }
    1094             :   else {
    1095             :    /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to probe PCI driver."} */
    1096           4 :    ldv_assume(ldv_1_ret_default != 0);
    1097             :    /* LDV {"action": "PROBE_FAILED", "type": "CONDITION_END"} */
    1098             : 
    1099             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "New device is inserted, probe it."} */
    1100             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
    1101             : 
    1102             :    /* Jump to a subprocess 'main' initial state */
    1103           2 :    goto ldv_main_1;
    1104             :   }
    1105             :  }
    1106             :  else {
    1107             :   /* LDV {"action": "FREE", "type": "CONDITION_BEGIN", "comment": "Free memory of pci_dev structure."} */
    1108           4 :   ldv_free(ldv_1_resource_dev);
    1109           4 :   ldv_free(ldv_1_resource_struct_pci_device_id_ptr);
    1110             :   /* LDV {"action": "FREE", "type": "CONDITION_END"} */
    1111             : 
    1112             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Stop PCI callbacks invocating."} */
    1113             :   /* Skip a non-replicative signal receiving */
    1114             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_END"} */
    1115             : 
    1116             :   /* Exit function at a terminal state */
    1117           2 :   return;
    1118             :  }
    1119             :  /* End of the subprocess 'main' */
    1120             :  return;
    1121           2 : 
    1122             :  /* Sbprocess call */
    1123             :  ldv_call_1:
    1124             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1125             : 
    1126           4 :  switch (ldv_undef_int()) {
    1127           6 :   case 1: {
    1128             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "comment": "Call callback 'callback' of a process 'pci_scenario' of an interface category 'pci'"} */
    1129             :    /* Skip callback without implementations */
    1130             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1131             : 
    1132             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call rest callbacks."} */
    1133             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1134             : 
    1135             :    /* Jump to a subprocess 'call' initial state */
    1136           2 :    goto ldv_call_1;
    1137           2 :    break;
    1138             :   }
    1139           6 :   case 2: {
    1140             :    /* LDV {"action": "SUSPEND", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend from PCI."} */
    1141           6 :    if (ldv_1_container_pci_driver->suspend) {
    1142             :    /* LDV {"type": "CALLBACK", "call": "ldv_1_ret_default = (ldv_1_container_pci_driver->suspend)(ldv_1_resource_dev, ldv_1_resource_pm_message);", "comment": "suspend"} */
    1143           4 :     ldv_1_ret_default = ldv_pci_scenario_suspend_1_8(ldv_1_container_pci_driver->suspend, ldv_1_resource_dev, ldv_1_resource_pm_message);
    1144             :    }
    1145             :    /* Callback post-call */
    1146           8 :    ldv_1_ret_default = ldv_filter_err_code(ldv_1_ret_default);
    1147             :    /* LDV {"action": "SUSPEND", "type": "CALL_END"} */
    1148             : 
    1149             :    /* LDV {"action": "SUSPEND_LATE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback suspend_late from PCI."} */
    1150           6 :    if (ldv_1_container_pci_driver->suspend_late) {
    1151             :    /* LDV {"type": "CALLBACK", "call": "ldv_1_ret_default = (ldv_1_container_pci_driver->suspend_late)(ldv_1_resource_dev, ldv_1_resource_pm_message);", "comment": "suspend_late"} */
    1152           4 :     ldv_1_ret_default = ldv_pci_scenario_suspend_late_1_7(ldv_1_container_pci_driver->suspend_late, ldv_1_resource_dev, ldv_1_resource_pm_message);
    1153             :    }
    1154             :    /* Callback post-call */
    1155           8 :    ldv_1_ret_default = ldv_filter_err_code(ldv_1_ret_default);
    1156             :    /* LDV {"action": "SUSPEND_LATE", "type": "CALL_END"} */
    1157             : 
    1158             :    /* LDV {"action": "RESUME_EARLY", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume_early from PCI."} */
    1159           6 :    if (ldv_1_container_pci_driver->resume_early) {
    1160             :    /* LDV {"type": "CALLBACK", "call": "(ldv_1_container_pci_driver->resume_early)(ldv_1_resource_dev);", "comment": "resume_early"} */
    1161           4 :     ldv_pci_scenario_resume_early_1_6(ldv_1_container_pci_driver->resume_early, ldv_1_resource_dev);
    1162             :    }
    1163             :    /* LDV {"action": "RESUME_EARLY", "type": "CALL_END"} */
    1164             : 
    1165             :    /* LDV {"action": "RESUME", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback resume from PCI."} */
    1166          12 :    if (ldv_1_container_pci_driver->resume) {
    1167             :    /* LDV {"type": "CALLBACK", "call": "(ldv_1_container_pci_driver->resume)(ldv_1_resource_dev);", "comment": "resume"} */
    1168           8 :     ldv_pci_scenario_resume_1_5(ldv_1_container_pci_driver->resume, ldv_1_resource_dev);
    1169             :    }
    1170             :    /* LDV {"action": "RESUME", "type": "CALL_END"} */
    1171             : 
    1172             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Driver is probed, call rest callbacks."} */
    1173             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1174             : 
    1175             :    /* Jump to a subprocess 'call' initial state */
    1176           6 :    goto ldv_call_1;
    1177           2 :    break;
    1178             :   }
    1179           6 :   case 3: {
    1180             :    /* LDV {"action": "SHUTDOWN", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback shutdown from pci_driver."} */
    1181             :    /* LDV {"type": "CALLBACK", "call": "((& usb_hcd_pci_shutdown))(ldv_1_resource_dev);", "comment": "shutdown"} */
    1182           4 :    ldv_pci_scenario_shutdown_1_3(ldv_1_container_pci_driver->shutdown, ldv_1_resource_dev);
    1183             :    /* LDV {"action": "SHUTDOWN", "type": "CALL_END"} */
    1184             : 
    1185             :    /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback remove from pci_driver."} */
    1186             :    /* LDV {"type": "CALLBACK", "call": "((& usb_hcd_pci_remove))(ldv_1_resource_dev);", "comment": "release"} */
    1187           4 :    ldv_pci_scenario_release_1_2(ldv_1_container_pci_driver->remove, ldv_1_resource_dev);
    1188             :    /* LDV {"action": "RELEASE", "type": "CALL_END"} */
    1189             : 
    1190             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "New device is inserted, probe it."} */
    1191             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
    1192             : 
    1193             :    /* Jump to a subprocess 'main' initial state */
    1194           2 :    goto ldv_main_1;
    1195           2 :    break;
    1196             :   }
    1197           4 :   default: ldv_stop();
    1198           2 :  }
    1199           0 :  /* End of the subprocess 'call' */
    1200           0 :  return;
    1201             :  /* LDV {"comment": "End of control function based on process 'pci_scenario(pci)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_pci_scenario_1"} */
    1202             : }
    1203             : 
    1204             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_probe_1_17 */
    1205             : int ldv_pci_scenario_probe_1_17(int (*arg0)(struct pci_dev *, struct pci_device_id *), struct pci_dev *arg1, struct pci_device_id *arg2) {
    1206           4 :  return ((& usb_hcd_pci_probe))(arg1, arg2);
    1207             : }
    1208           2 : 
    1209             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_release_1_2 */
    1210             : void ldv_pci_scenario_release_1_2(void (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
    1211           2 :  ((& usb_hcd_pci_remove))(arg1);
    1212           2 : }
    1213             : 
    1214             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_resume_1_5 */
    1215             : void ldv_pci_scenario_resume_1_5(int (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
    1216           4 :  (*arg0)(arg1);
    1217           4 : }
    1218             : 
    1219             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_resume_early_1_6 */
    1220             : void ldv_pci_scenario_resume_early_1_6(int (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
    1221           2 :  (*arg0)(arg1);
    1222           2 : }
    1223             : 
    1224             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_shutdown_1_3 */
    1225             : void ldv_pci_scenario_shutdown_1_3(void (*arg0)(struct pci_dev *), struct pci_dev *arg1) {
    1226           2 :  ((& usb_hcd_pci_shutdown))(arg1);
    1227           2 : }
    1228             : 
    1229             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_suspend_1_8 */
    1230             : int ldv_pci_scenario_suspend_1_8(int (*arg0)(struct pci_dev *, struct pm_message), struct pci_dev *arg1, struct pm_message arg2) {
    1231           4 :  return (*arg0)(arg1, arg2);
    1232             : }
    1233           2 : 
    1234             : /* AUX_FUNC_CALLBACK ldv_pci_scenario_suspend_late_1_7 */
    1235             : int ldv_pci_scenario_suspend_late_1_7(int (*arg0)(struct pci_dev *, struct pm_message), struct pci_dev *arg1, struct pm_message arg2) {
    1236           4 :  return (*arg0)(arg1, arg2);
    1237             : }
    1238           2 : 
    1239             : /* AUX_FUNC ldv_random_containerless_scenario_2 */
    1240             : void ldv_random_containerless_scenario_2(void *arg0) {
    1241             :  /* LDV {"thread": 2, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_device_attribute)'", "function": "ldv_random_containerless_scenario_2"} */
    1242           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1243           1 :  ssize_t (*ldv_2_callback_show)(struct device *, struct device_attribute *, char *);
    1244             :  ssize_t (*ldv_2_callback_store)(struct device *, struct device_attribute *, char *, size_t );
    1245           1 :  struct device_attribute *ldv_2_container_struct_device_attribute;
    1246           1 :  struct device *ldv_2_container_struct_device_ptr;
    1247           1 :  char *ldv_2_ldv_param_10_2_default;
    1248           1 :  long unsigned int ldv_2_ldv_param_10_3_default;
    1249           1 :  char *ldv_2_ldv_param_4_2_default;
    1250           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1251           1 :  /* LDV {"action": "DEFAULT_REGISTER_6", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_DEVICE_ATTRIBUTE callbacks invocations scenario."} */
    1252           3 :  ldv_free(arg0);
    1253           1 :  /* LDV {"action": "DEFAULT_REGISTER_6", "type": "RECEIVE_END"} */
    1254           1 : 
    1255           1 :  /* LDV {"action": "DEFAULT_ALLOC_6", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
    1256           3 :  ldv_2_container_struct_device_attribute = ldv_xmalloc_unknown_size(0);
    1257           3 :  ldv_2_container_struct_device_ptr = ldv_xmalloc_unknown_size(0);
    1258             :  /* LDV {"action": "DEFAULT_ALLOC_6", "type": "CONDITION_END"} */
    1259             : 
    1260             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1261             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1262             : 
    1263             :  /* Jump to a subprocess 'call' initial state */
    1264           1 :  goto ldv_call_2;
    1265             :  /* End of the process */
    1266             :  return;
    1267           1 : 
    1268             :  /* Sbprocess call */
    1269             :  ldv_call_2:
    1270             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1271             : 
    1272           4 :  if (ldv_undef_int()) {
    1273             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1274           3 :   ldv_2_ldv_param_4_2_default = ldv_xmalloc_unknown_size(0);
    1275             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
    1276             : 
    1277           4 :   if (ldv_undef_int()) {
    1278             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1279           3 :    ldv_2_ldv_param_10_2_default = ldv_xmalloc_unknown_size(0);
    1280             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
    1281             : 
    1282             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback store from device_attribute."} */
    1283             :    /* LDV {"type": "CALLBACK", "call": "((& store_companion))(ldv_2_container_struct_device_ptr, ldv_2_container_struct_device_attribute, ldv_2_ldv_param_10_2_default, ldv_2_ldv_param_10_3_default);", "comment": "callback"} */
    1284           2 :    ldv_random_containerless_scenario_callback_2_10(ldv_2_callback_store, ldv_2_container_struct_device_ptr, ldv_2_container_struct_device_attribute, ldv_2_ldv_param_10_2_default, ldv_2_ldv_param_10_3_default);
    1285             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1286             : 
    1287             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1288           2 :    ldv_free(ldv_2_ldv_param_10_2_default);
    1289             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
    1290             : 
    1291             :   }
    1292             :   else {
    1293             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback show from device_attribute."} */
    1294             :    /* LDV {"type": "CALLBACK", "call": "((& show_companion))(ldv_2_container_struct_device_ptr, ldv_2_container_struct_device_attribute, ldv_2_ldv_param_4_2_default);", "comment": "callback"} */
    1295           2 :    ldv_random_containerless_scenario_callback_2_4(ldv_2_callback_show, ldv_2_container_struct_device_ptr, ldv_2_container_struct_device_attribute, ldv_2_ldv_param_4_2_default);
    1296             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1297             : 
    1298             :   }
    1299             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1300           4 :   ldv_free(ldv_2_ldv_param_4_2_default);
    1301             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
    1302             : 
    1303             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1304             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1305             : 
    1306             :   /* Jump to a subprocess 'call' initial state */
    1307           1 :   goto ldv_call_2;
    1308             :  }
    1309             :  else {
    1310             :   /* LDV {"action": "DEFAULT_FREE_6", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
    1311           2 :   ldv_free(ldv_2_container_struct_device_attribute);
    1312           2 :   ldv_free(ldv_2_container_struct_device_ptr);
    1313             :   /* LDV {"action": "DEFAULT_FREE_6", "type": "CONDITION_END"} */
    1314             : 
    1315             :   /* LDV {"action": "DEFAULT_DEREGISTER_6", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_DEVICE_ATTRIBUTE callbacks invocations scenario."} */
    1316             :   /* Skip a non-replicative signal receiving */
    1317             :   /* LDV {"action": "DEFAULT_DEREGISTER_6", "type": "RECEIVE_END"} */
    1318             : 
    1319             :   /* Exit function at a terminal state */
    1320           1 :   return;
    1321             :  }
    1322             :  /* End of the subprocess 'call' */
    1323             :  return;
    1324             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_device_attribute)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_2"} */
    1325             : }
    1326             : 
    1327             : /* AUX_FUNC ldv_random_containerless_scenario_4 */
    1328             : void ldv_random_containerless_scenario_4(void *arg0) {
    1329             :  /* LDV {"thread": 4, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_kernel_param)'", "function": "ldv_random_containerless_scenario_4"} */
    1330           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1331           1 :  int (*ldv_4_callback_get)(char *, struct kernel_param *);
    1332           1 :  int (*ldv_4_callback_set)(char *, struct kernel_param *);
    1333           1 :  struct kernel_param *ldv_4_container_struct_kernel_param;
    1334           1 :  char *ldv_4_ldv_param_10_0_default;
    1335           1 :  char *ldv_4_ldv_param_4_0_default;
    1336           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1337           1 :  /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
    1338           3 :  ldv_free(arg0);
    1339           1 :  /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_END"} */
    1340             : 
    1341             :  /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
    1342           3 :  ldv_4_container_struct_kernel_param = ldv_xmalloc_unknown_size(0);
    1343             :  /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_END"} */
    1344             : 
    1345             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1346             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1347             : 
    1348             :  /* Jump to a subprocess 'call' initial state */
    1349           1 :  goto ldv_call_4;
    1350             :  /* End of the process */
    1351             :  return;
    1352           1 : 
    1353             :  /* Sbprocess call */
    1354             :  ldv_call_4:
    1355             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1356             : 
    1357           4 :  if (ldv_undef_int()) {
    1358             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1359           3 :   ldv_4_ldv_param_4_0_default = ldv_xmalloc_unknown_size(0);
    1360             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
    1361             : 
    1362           4 :   if (ldv_undef_int()) {
    1363             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1364           3 :    ldv_4_ldv_param_10_0_default = ldv_xmalloc_unknown_size(0);
    1365             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
    1366             : 
    1367             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback set from kernel_param."} */
    1368             :    /* LDV {"type": "CALLBACK", "call": "((& param_set_bool))(ldv_4_ldv_param_10_0_default, ldv_4_container_struct_kernel_param);", "comment": "callback"} */
    1369           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);
    1370             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1371             : 
    1372             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1373           2 :    ldv_free(ldv_4_ldv_param_10_0_default);
    1374             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
    1375             : 
    1376             :   }
    1377             :   else {
    1378             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get from kernel_param."} */
    1379             :    /* LDV {"type": "CALLBACK", "call": "((& param_get_bool))(ldv_4_ldv_param_4_0_default, ldv_4_container_struct_kernel_param);", "comment": "callback"} */
    1380           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);
    1381             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1382             : 
    1383             :   }
    1384             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1385           4 :   ldv_free(ldv_4_ldv_param_4_0_default);
    1386             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
    1387             : 
    1388             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1389             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1390             : 
    1391             :   /* Jump to a subprocess 'call' initial state */
    1392           1 :   goto ldv_call_4;
    1393             :  }
    1394             :  else {
    1395             :   /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
    1396           2 :   ldv_free(ldv_4_container_struct_kernel_param);
    1397             :   /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_END"} */
    1398             : 
    1399             :   /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
    1400             :   /* Skip a non-replicative signal receiving */
    1401             :   /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_END"} */
    1402             : 
    1403             :   /* Exit function at a terminal state */
    1404           1 :   return;
    1405             :  }
    1406             :  /* End of the subprocess 'call' */
    1407             :  return;
    1408             :  /* 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"} */
    1409             : }
    1410             : 
    1411             : /* AUX_FUNC ldv_random_containerless_scenario_5 */
    1412             : void ldv_random_containerless_scenario_5(void *arg0) {
    1413             :  /* LDV {"thread": 5, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_kernel_param)'", "function": "ldv_random_containerless_scenario_5"} */
    1414           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1415           1 :  int (*ldv_5_callback_get)(char *, struct kernel_param *);
    1416           1 :  int (*ldv_5_callback_set)(char *, struct kernel_param *);
    1417           1 :  struct kernel_param *ldv_5_container_struct_kernel_param;
    1418           1 :  char *ldv_5_ldv_param_10_0_default;
    1419           1 :  char *ldv_5_ldv_param_4_0_default;
    1420           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1421           1 :  /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
    1422           3 :  ldv_free(arg0);
    1423           1 :  /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_END"} */
    1424             : 
    1425             :  /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
    1426           3 :  ldv_5_container_struct_kernel_param = ldv_xmalloc_unknown_size(0);
    1427             :  /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_END"} */
    1428             : 
    1429             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1430             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1431             : 
    1432             :  /* Jump to a subprocess 'call' initial state */
    1433           1 :  goto ldv_call_5;
    1434             :  /* End of the process */
    1435             :  return;
    1436           1 : 
    1437             :  /* Sbprocess call */
    1438             :  ldv_call_5:
    1439             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1440             : 
    1441           4 :  if (ldv_undef_int()) {
    1442             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1443           3 :   ldv_5_ldv_param_4_0_default = ldv_xmalloc_unknown_size(0);
    1444             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
    1445             : 
    1446           4 :   if (ldv_undef_int()) {
    1447             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1448           3 :    ldv_5_ldv_param_10_0_default = ldv_xmalloc_unknown_size(0);
    1449             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
    1450             : 
    1451             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback set from kernel_param."} */
    1452             :    /* LDV {"type": "CALLBACK", "call": "((& param_set_int))(ldv_5_ldv_param_10_0_default, ldv_5_container_struct_kernel_param);", "comment": "callback"} */
    1453           2 :    ldv_random_containerless_scenario_callback_5_10(ldv_5_callback_set, ldv_5_ldv_param_10_0_default, ldv_5_container_struct_kernel_param);
    1454             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1455             : 
    1456             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1457           2 :    ldv_free(ldv_5_ldv_param_10_0_default);
    1458             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
    1459             : 
    1460             :   }
    1461             :   else {
    1462             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get from kernel_param."} */
    1463             :    /* LDV {"type": "CALLBACK", "call": "((& param_get_int))(ldv_5_ldv_param_4_0_default, ldv_5_container_struct_kernel_param);", "comment": "callback"} */
    1464           2 :    ldv_random_containerless_scenario_callback_5_4(ldv_5_callback_get, ldv_5_ldv_param_4_0_default, ldv_5_container_struct_kernel_param);
    1465             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1466             : 
    1467             :   }
    1468             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1469           4 :   ldv_free(ldv_5_ldv_param_4_0_default);
    1470             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
    1471             : 
    1472             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1473             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1474             : 
    1475             :   /* Jump to a subprocess 'call' initial state */
    1476           1 :   goto ldv_call_5;
    1477             :  }
    1478             :  else {
    1479             :   /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
    1480           2 :   ldv_free(ldv_5_container_struct_kernel_param);
    1481             :   /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_END"} */
    1482             : 
    1483             :   /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
    1484             :   /* Skip a non-replicative signal receiving */
    1485             :   /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_END"} */
    1486             : 
    1487             :   /* Exit function at a terminal state */
    1488           1 :   return;
    1489             :  }
    1490             :  /* End of the subprocess 'call' */
    1491             :  return;
    1492             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_kernel_param)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_5"} */
    1493             : }
    1494             : 
    1495             : /* AUX_FUNC ldv_random_containerless_scenario_6 */
    1496             : void ldv_random_containerless_scenario_6(void *arg0) {
    1497             :  /* LDV {"thread": 6, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_kernel_param)'", "function": "ldv_random_containerless_scenario_6"} */
    1498           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1499           1 :  int (*ldv_6_callback_get)(char *, struct kernel_param *);
    1500           1 :  int (*ldv_6_callback_set)(char *, struct kernel_param *);
    1501           1 :  struct kernel_param *ldv_6_container_struct_kernel_param;
    1502           1 :  char *ldv_6_ldv_param_10_0_default;
    1503           1 :  char *ldv_6_ldv_param_4_0_default;
    1504           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1505           1 :  /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
    1506           3 :  ldv_free(arg0);
    1507           1 :  /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_END"} */
    1508             : 
    1509             :  /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
    1510           3 :  ldv_6_container_struct_kernel_param = ldv_xmalloc_unknown_size(0);
    1511             :  /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_END"} */
    1512             : 
    1513             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1514             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1515             : 
    1516             :  /* Jump to a subprocess 'call' initial state */
    1517           1 :  goto ldv_call_6;
    1518             :  /* End of the process */
    1519             :  return;
    1520           1 : 
    1521             :  /* Sbprocess call */
    1522             :  ldv_call_6:
    1523             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1524             : 
    1525           4 :  if (ldv_undef_int()) {
    1526             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1527           3 :   ldv_6_ldv_param_4_0_default = ldv_xmalloc_unknown_size(0);
    1528             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
    1529             : 
    1530           4 :   if (ldv_undef_int()) {
    1531             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1532           3 :    ldv_6_ldv_param_10_0_default = ldv_xmalloc_unknown_size(0);
    1533             :    /* LDV {"action": "PRE_CALL_10", "type": "CONDITION_END"} */
    1534             : 
    1535             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback set from kernel_param."} */
    1536             :    /* LDV {"type": "CALLBACK", "call": "((& param_set_uint))(ldv_6_ldv_param_10_0_default, ldv_6_container_struct_kernel_param);", "comment": "callback"} */
    1537           2 :    ldv_random_containerless_scenario_callback_6_10(ldv_6_callback_set, ldv_6_ldv_param_10_0_default, ldv_6_container_struct_kernel_param);
    1538             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1539             : 
    1540             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1541           2 :    ldv_free(ldv_6_ldv_param_10_0_default);
    1542             :    /* LDV {"action": "POST_CALL_10", "type": "CONDITION_END"} */
    1543             : 
    1544             :   }
    1545             :   else {
    1546             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get from kernel_param."} */
    1547             :    /* LDV {"type": "CALLBACK", "call": "((& param_get_uint))(ldv_6_ldv_param_4_0_default, ldv_6_container_struct_kernel_param);", "comment": "callback"} */
    1548           2 :    ldv_random_containerless_scenario_callback_6_4(ldv_6_callback_get, ldv_6_ldv_param_4_0_default, ldv_6_container_struct_kernel_param);
    1549             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1550             : 
    1551             :   }
    1552             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1553           4 :   ldv_free(ldv_6_ldv_param_4_0_default);
    1554             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
    1555             : 
    1556             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1557             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1558             : 
    1559             :   /* Jump to a subprocess 'call' initial state */
    1560           1 :   goto ldv_call_6;
    1561             :  }
    1562             :  else {
    1563             :   /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
    1564           2 :   ldv_free(ldv_6_container_struct_kernel_param);
    1565             :   /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_END"} */
    1566             : 
    1567             :   /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_KERNEL_PARAM callbacks invocations scenario."} */
    1568             :   /* Skip a non-replicative signal receiving */
    1569             :   /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_END"} */
    1570             : 
    1571             :   /* Exit function at a terminal state */
    1572           1 :   return;
    1573             :  }
    1574             :  /* End of the subprocess 'call' */
    1575             :  return;
    1576             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_kernel_param)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_6"} */
    1577             : }
    1578             : 
    1579             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_10 */
    1580             : void ldv_random_containerless_scenario_callback_2_10(ssize_t (*arg0)(struct device *, struct device_attribute *, char *, size_t ), struct device *arg1, struct device_attribute *arg2, char *arg3, long unsigned int arg4) {
    1581           3 :  ((& store_companion))(arg1, arg2, arg3, arg4);
    1582           1 : }
    1583             : 
    1584             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_4 */
    1585             : void ldv_random_containerless_scenario_callback_2_4(ssize_t (*arg0)(struct device *, struct device_attribute *, char *), struct device *arg1, struct device_attribute *arg2, char *arg3) {
    1586           2 :  ((& show_companion))(arg1, arg2, arg3);
    1587           1 : }
    1588             : 
    1589             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_10 */
    1590             : void ldv_random_containerless_scenario_callback_4_10(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
    1591           1 :  ((& param_set_bool))(arg1, arg2);
    1592           1 : }
    1593             : 
    1594             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_4 */
    1595             : void ldv_random_containerless_scenario_callback_4_4(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
    1596           1 :  ((& param_get_bool))(arg1, arg2);
    1597           1 : }
    1598             : 
    1599             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_5_10 */
    1600             : void ldv_random_containerless_scenario_callback_5_10(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
    1601           1 :  ((& param_set_int))(arg1, arg2);
    1602           1 : }
    1603             : 
    1604             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_5_4 */
    1605             : void ldv_random_containerless_scenario_callback_5_4(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
    1606           1 :  ((& param_get_int))(arg1, arg2);
    1607           1 : }
    1608             : 
    1609             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_6_10 */
    1610             : void ldv_random_containerless_scenario_callback_6_10(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
    1611           1 :  ((& param_set_uint))(arg1, arg2);
    1612           1 : }
    1613             : 
    1614             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_6_4 */
    1615             : void ldv_random_containerless_scenario_callback_6_4(int (*arg0)(char *, struct kernel_param *), char *arg1, struct kernel_param *arg2) {
    1616           1 :  ((& param_get_uint))(arg1, arg2);
    1617           1 : }
    1618             : 
    1619             : /* AUX_FUNC ldv_timer_scenario_7 */
    1620             : void ldv_timer_scenario_7(void *arg0) {
    1621             :  /* LDV {"thread": 7, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'timer_scenario(timer)'", "function": "ldv_timer_scenario_7"} */
    1622          67 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1623          67 :  struct timer_list *ldv_7_container_timer_list;
    1624             :  /* Received labels */
    1625          67 :  struct ldv_struct_timer_scenario_7 *data = (struct ldv_struct_timer_scenario_7*) arg0;
    1626             : 
    1627             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1628             :  /* LDV {"action": "INSTANCE_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin TIMER callbacks invocations scenario."} */
    1629             :  /* Assign recieved labels */
    1630         134 :  if (data) {
    1631          67 :   ldv_7_container_timer_list = data->arg0;
    1632         134 :   ldv_free(data);
    1633             :  }
    1634             :  /* LDV {"action": "INSTANCE_REGISTER", "type": "RECEIVE_END"} */
    1635             : 
    1636             :  /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Time has come: call the timer callback. Invoke callback callback from TIMER."} */
    1637             :  /* Callback pre-call */
    1638         134 :  ldv_switch_to_interrupt_context();
    1639         402 :  if (ldv_7_container_timer_list->function) {
    1640             :  /* LDV {"type": "CALLBACK", "call": "(ldv_7_container_timer_list->function)(ldv_7_container_timer_list->data);", "comment": "callback"} */
    1641         268 :   ldv_timer_scenario_callback_7_2(ldv_7_container_timer_list->function, ldv_7_container_timer_list->data);
    1642             :  }
    1643             :  /* Callback post-call */
    1644         201 :  ldv_switch_to_process_context();
    1645             :  /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1646             : 
    1647             :  /* LDV {"action": "INSTANCE_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Finish TIMER callbacks invocations scenario."} */
    1648             :  /* Skip a non-replicative signal receiving */
    1649             :  /* LDV {"action": "INSTANCE_DEREGISTER", "type": "RECEIVE_END"} */
    1650             : 
    1651             :  /* Exit function at a terminal state */
    1652         201 :  return;
    1653             :  /* End of the process */
    1654             :  return;
    1655             :  /* LDV {"comment": "End of control function based on process 'timer_scenario(timer)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_timer_scenario_7"} */
    1656             : }
    1657             : 
    1658             : /* AUX_FUNC_CALLBACK ldv_timer_scenario_callback_7_2 */
    1659             : void ldv_timer_scenario_callback_7_2(void (*arg0)(unsigned long), unsigned long arg1) {
    1660         402 :  (*arg0)(arg1);
    1661         134 : }
    1662             : 
    1663             : /* AUX_FUNC main */
    1664             : int main() {
    1665           1 :  ldv_main_13(0);
    1666           0 :  return 0;
    1667             : }
    1668             : 
    1669             : 
    1670             : /* AUX_FUNC  ERR_PTR */
    1671             : static inline void *ERR_PTR (long int error)
    1672             : {
    1673             : 
    1674             :  return ldv_err_ptr(error);
    1675             : }
    1676             : 
    1677             : /* AUX_FUNC  PTR_ERR */
    1678             : static inline long int PTR_ERR (void const *ptr)
    1679             : {
    1680             : 
    1681             :  return ldv_ptr_err(ptr);
    1682             : }
    1683             : 
    1684             : /* AUX_FUNC  IS_ERR */
    1685             : static inline long int IS_ERR (void const *ptr)
    1686             : {
    1687             : 
    1688             :  return ldv_is_err(ptr);
    1689             : }
    1690             : 
    1691             : /* AUX_FUNC  IS_ERR_OR_NULL */
    1692             : static inline long int IS_ERR_OR_NULL (void const *ptr)
    1693             : {
    1694             : 
    1695             :  return ldv_is_err_or_null(ptr);
    1696             : }
    1697             : 
    1698             : /* AUX_FUNC  ldv_del_timer_sync_5 */
    1699             : int ldv_del_timer_sync_5 (struct timer_list *ldv_func_arg1)
    1700             : {
    1701             : 
    1702             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
    1703             :  return ldv_emg_del_timer_sync(ldv_func_arg1);
    1704             : }
    1705             : 
    1706             : /* AUX_FUNC  kzalloc */
    1707             : static inline void *kzalloc (size_t size, gfp_t flags)
    1708             : {
    1709           9 : 
    1710          27 :  return ldv_kzalloc(size, flags);
    1711             : }
    1712             : 
    1713             : /* AUX_FUNC  ldv_dev_get_drvdata_7 */
    1714             : void *ldv_dev_get_drvdata_7 (struct device const *dev)
    1715             : {
    1716             : 
    1717             :  return ldv_dev_get_drvdata(dev);
    1718             : }
    1719             : 
    1720             : /* AUX_FUNC  ldv_dev_get_drvdata_8 */
    1721             : void *ldv_dev_get_drvdata_8 (struct device const *dev)
    1722             : {
    1723             : 
    1724             :  return ldv_dev_get_drvdata(dev);
    1725             : }
    1726             : 
    1727             : /* AUX_FUNC  ldv_mod_timer_9 */
    1728             : int ldv_mod_timer_9 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
    1729             : {
    1730          24 : 
    1731             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
    1732          96 :  return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
    1733             : }
    1734             : 
    1735             : /* AUX_FUNC  ldv_mod_timer_10 */
    1736             : int ldv_mod_timer_10 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
    1737             : {
    1738          38 : 
    1739             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
    1740         152 :  return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
    1741             : }
    1742             : 
    1743             : /* AUX_FUNC  ldv_dev_get_drvdata_11 */
    1744             : void *ldv_dev_get_drvdata_11 (struct device const *dev)
    1745             : {
    1746           1 : 
    1747           3 :  return ldv_dev_get_drvdata(dev);
    1748             : }
    1749             : 
    1750             : /* AUX_FUNC  ldv_dev_get_drvdata_12 */
    1751             : void *ldv_dev_get_drvdata_12 (struct device const *dev)
    1752             : {
    1753           1 : 
    1754           3 :  return ldv_dev_get_drvdata(dev);
    1755             : }
    1756             : 
    1757             : /* AUX_FUNC  ldv_mod_timer_13 */
    1758             : int ldv_mod_timer_13 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
    1759             : {
    1760           4 : 
    1761             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
    1762          16 :  return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
    1763             : }
    1764             : 
    1765             : /* AUX_FUNC  ldv_del_timer_sync_14 */
    1766             : int ldv_del_timer_sync_14 (struct timer_list *ldv_func_arg1)
    1767             : {
    1768           1 : 
    1769             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
    1770           3 :  return ldv_emg_del_timer_sync(ldv_func_arg1);
    1771             : }
    1772             : 
    1773             : /* AUX_FUNC  ldv_del_timer_sync_15 */
    1774             : int ldv_del_timer_sync_15 (struct timer_list *ldv_func_arg1)
    1775             : {
    1776           1 : 
    1777             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
    1778           3 :  return ldv_emg_del_timer_sync(ldv_func_arg1);
    1779             : }
    1780             : 
    1781             : /* AUX_FUNC  ldv_del_timer_sync_16 */
    1782             : int ldv_del_timer_sync_16 (struct timer_list *ldv_func_arg1)
    1783             : {
    1784           1 : 
    1785             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
    1786           3 :  return ldv_emg_del_timer_sync(ldv_func_arg1);
    1787             : }
    1788             : 
    1789             : /* AUX_FUNC  ldv_del_timer_sync_17 */
    1790             : int ldv_del_timer_sync_17 (struct timer_list *ldv_func_arg1)
    1791             : {
    1792           1 : 
    1793             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'del_timer_sync'"} */
    1794           3 :  return ldv_emg_del_timer_sync(ldv_func_arg1);
    1795             : }
    1796             : 
    1797             : /* AUX_FUNC  ldv_mod_timer_18 */
    1798             : int ldv_mod_timer_18 (struct timer_list *ldv_func_arg1, long unsigned int ldv_func_arg2)
    1799             : {
    1800           1 : 
    1801             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'mod_timer'"} */
    1802           4 :  return ldv_emg_mod_timer(ldv_func_arg1, ldv_func_arg2);
    1803             : }
    1804             : 
    1805             : /* AUX_FUNC  ldv___pci_register_driver_19 */
    1806             : int ldv___pci_register_driver_19 (struct pci_driver *ldv_func_arg1, struct module *ldv_func_arg2, char const *ldv_func_arg3)
    1807             : {
    1808             : 
    1809           2 :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function '__pci_register_driver'"} */
    1810           8 :  return ldv_emg___pci_register_driver(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3);
    1811             : }
    1812             : 
    1813             : /* AUX_FUNC  ldv_pci_unregister_driver_20 */
    1814             : void ldv_pci_unregister_driver_20 (struct pci_driver *ldv_func_arg1)
    1815             : {
    1816             : 
    1817             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'pci_unregister_driver'"} */
    1818           0 :  ldv_emg_pci_unregister_driver(ldv_func_arg1);
    1819           0 : }
    1820             : 
    1821             : /* AUX_FUNC  ldv_pci_unregister_driver_21 */
    1822             : void ldv_pci_unregister_driver_21 (struct pci_driver *ldv_func_arg1)
    1823             : {
    1824             : 
    1825             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'pci_unregister_driver'"} */
    1826           4 :  ldv_emg_pci_unregister_driver(ldv_func_arg1);
    1827           2 : }

Generated by: LCOV version 1.10