LCOV - code coverage report
Current view: top level - avtg/fs/autofs4/autofs4.ko/linux:drivers:clk2/weaver - init.c.aux (source / functions) Hit Total Coverage
Test: coverage.info Lines: 479 491 97.6 %
Date: 2017-01-25 Functions: 38 38 100.0 %

          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/cdev.h>
      29             : #include <linux/fs.h>
      30             : #include <linux/pagemap.h>
      31             : 
      32             : 
      33             : struct ldv_struct_character_driver_scenario_1 {
      34             :  struct file_operations *arg0;
      35             :  int signal_pending;
      36             : };
      37           1 : 
      38             : struct ldv_struct_insmod_7 {
      39             :  int signal_pending;
      40             : };
      41             : 
      42             : /* EMG Function declarations */
      43             : extern void ldv_character_driver_scenario_1(void *);
      44             : void ldv_character_driver_scenario_2(void *);
      45             : void ldv_character_driver_scenario_3(void *);
      46             : void ldv_character_driver_scenario_callback_1_20(int (*)(struct file_system_type *, int, char *, void *, struct vfsmount *), struct file_system_type *, int, char *, void *, struct vfsmount *);
      47             : void ldv_character_driver_scenario_callback_1_23(int (*)(struct inode *, struct file *, unsigned int, long unsigned int), struct inode *, struct file *, unsigned int, long unsigned int);
      48             : void ldv_character_driver_scenario_callback_1_26(void (*)(struct super_block *), struct super_block *);
      49             : void ldv_character_driver_scenario_callback_1_29(loff_t (*)(struct file *, loff_t , int), struct file *, long long int, int);
      50             : void ldv_character_driver_scenario_callback_1_32(ssize_t (*)(struct file *, char *, size_t , loff_t *), struct file *, char *, long unsigned int, loff_t *);
      51             : void ldv_character_driver_scenario_callback_1_35(int (*)(struct file *, void *, filldir_t ), struct file *, void *, int (*)(void *, char *, int, loff_t , u64 , unsigned int));
      52             : void ldv_character_driver_scenario_callback_2_20(int (*)(struct file_system_type *, int, char *, void *, struct vfsmount *), struct file_system_type *, int, char *, void *, struct vfsmount *);
      53             : void ldv_character_driver_scenario_callback_2_23(int (*)(struct inode *, struct file *, unsigned int, long unsigned int), struct inode *, struct file *, unsigned int, long unsigned int);
      54             : void ldv_character_driver_scenario_callback_2_26(void (*)(struct super_block *), struct super_block *);
      55             : extern void ldv_character_driver_scenario_callback_2_29(loff_t (*)(struct file *, loff_t , int), struct file *, long long int, int);
      56             : extern void ldv_character_driver_scenario_callback_2_32(ssize_t (*)(struct file *, char *, size_t , loff_t *), struct file *, char *, long unsigned int, loff_t *);
      57             : extern void ldv_character_driver_scenario_callback_2_35(int (*)(struct file *, void *, filldir_t ), struct file *, void *, int (*)(void *, char *, int, loff_t , u64 , unsigned int));
      58             : void ldv_character_driver_scenario_callback_2_36(long int (*)(struct file *, unsigned int, long unsigned int), struct file *, unsigned int, long unsigned int);
      59             : void ldv_character_driver_scenario_callback_2_5(long int (*)(struct file *, unsigned int, long unsigned int), struct file *, unsigned int, long unsigned int);
      60             : void ldv_character_driver_scenario_callback_3_20(int (*)(struct file_system_type *, int, char *, void *, struct vfsmount *), struct file_system_type *, int, char *, void *, struct vfsmount *);
      61             : extern void ldv_character_driver_scenario_callback_3_23(int (*)(struct inode *, struct file *, unsigned int, long unsigned int), struct inode *, struct file *, unsigned int, long unsigned int);
      62             : void ldv_character_driver_scenario_callback_3_26(void (*)(struct super_block *), struct super_block *);
      63             : extern void ldv_character_driver_scenario_callback_3_29(loff_t (*)(struct file *, loff_t , int), struct file *, long long int, int);
      64             : extern void ldv_character_driver_scenario_callback_3_32(ssize_t (*)(struct file *, char *, size_t , loff_t *), struct file *, char *, long unsigned int, loff_t *);
      65             : extern void ldv_character_driver_scenario_callback_3_35(int (*)(struct file *, void *, filldir_t ), struct file *, void *, int (*)(void *, char *, int, loff_t , u64 , unsigned int));
      66             : void ldv_character_driver_scenario_callback_3_36(long int (*)(struct file *, unsigned int, long unsigned int), struct file *, unsigned int, long unsigned int);
      67             : void ldv_character_driver_scenario_callback_3_5(long int (*)(struct file *, unsigned int, long unsigned int), struct file *, unsigned int, long unsigned int);
      68             : int ldv_character_driver_scenario_probe_1_12(int (*)(struct inode *, struct file *), struct inode *, struct file *);
      69             : extern int ldv_character_driver_scenario_probe_2_12(int (*)(struct inode *, struct file *), struct inode *, struct file *);
      70             : extern int ldv_character_driver_scenario_probe_3_12(int (*)(struct inode *, struct file *), struct inode *, struct file *);
      71             : void ldv_character_driver_scenario_release_1_2(int (*)(struct inode *, struct file *), struct inode *, struct file *);
      72             : extern void ldv_character_driver_scenario_release_2_2(int (*)(struct inode *, struct file *), struct inode *, struct file *);
      73             : extern void ldv_character_driver_scenario_release_3_2(int (*)(struct inode *, struct file *), struct inode *, struct file *);
      74             : void ldv_character_driver_scenario_write_1_4(ssize_t (*)(struct file *, char *, size_t , loff_t *), struct file *, char *, long unsigned int, loff_t *);
      75             : void ldv_character_driver_scenario_write_2_4(ssize_t (*)(struct file *, char *, size_t , loff_t *), struct file *, char *, long unsigned int, loff_t *);
      76             : void ldv_character_driver_scenario_write_3_4(ssize_t (*)(struct file *, char *, size_t , loff_t *), struct file *, char *, long unsigned int, loff_t *);
      77             : void ldv_dispatch_default_deregister_4_7_4(void);
      78             : void ldv_dispatch_default_deregister_5_7_5(void);
      79             : void ldv_dispatch_default_deregister_6_7_6(void);
      80             : void ldv_dispatch_default_register_4_7_9(void);
      81             : void ldv_dispatch_default_register_5_7_8(void);
      82             : void ldv_dispatch_default_register_6_7_7(void);
      83             : void ldv_dispatch_insmod_deregister_10_2(void);
      84             : void ldv_dispatch_insmod_register_10_3(void);
      85             : extern void ldv_emg_misc_deregister(struct miscdevice *);
      86             : extern int ldv_emg_misc_register(struct miscdevice *);
      87             : void ldv_insmod_7(void *);
      88             : void ldv_insmod_exit_autofs4_fs_7_2(void (*)(void));
      89             : int ldv_insmod_init_autofs4_fs_7_13(int (*)(void));
      90             : void ldv_main_10(void *);
      91             : void ldv_random_containerless_scenario_4(void *);
      92             : void ldv_random_containerless_scenario_5(void *);
      93             : void ldv_random_containerless_scenario_6(void *);
      94             : extern void ldv_random_containerless_scenario_callback_4_4(void (*)(struct dentry *), struct dentry *);
      95             : extern void ldv_random_containerless_scenario_callback_4_8(int (*)(struct dentry *, struct nameidata *), struct dentry *, struct nameidata *);
      96             : extern void ldv_random_containerless_scenario_callback_5_12(int (*)(struct dentry *, char *, int), struct dentry *, char *, int);
      97             : extern void ldv_random_containerless_scenario_callback_5_15(int (*)(struct inode *, struct dentry *), struct inode *, struct dentry *);
      98             : extern void ldv_random_containerless_scenario_callback_5_16(int (*)(struct inode *, struct dentry *, char *), struct inode *, struct dentry *, char *);
      99             : extern void ldv_random_containerless_scenario_callback_5_19(int (*)(struct inode *, struct dentry *), struct inode *, struct dentry *);
     100             : extern void ldv_random_containerless_scenario_callback_5_4(void *(*)(struct dentry *, struct nameidata *), struct dentry *, struct nameidata *);
     101             : extern void ldv_random_containerless_scenario_callback_5_8(struct dentry *(*)(struct inode *, struct dentry *, struct nameidata *), struct inode *, struct dentry *, struct nameidata *);
     102             : extern void ldv_random_containerless_scenario_callback_5_9(int (*)(struct inode *, struct dentry *, int), struct inode *, struct dentry *, int);
     103             : extern void ldv_random_containerless_scenario_callback_6_4(int (*)(struct seq_file *, struct vfsmount *), struct seq_file *, struct vfsmount *);
     104             : extern void ldv_random_containerless_scenario_callback_6_8(int (*)(struct dentry *, struct kstatfs *), struct dentry *, struct kstatfs *);
     105             : int main(void);
     106             : 
     107             : /* EMG variable declarations */
     108           1 : struct ldv_thread ldv_thread_10;
     109           1 : struct ldv_thread ldv_thread_2;
     110           1 : struct ldv_thread ldv_thread_3;
     111           1 : struct ldv_thread ldv_thread_4;
     112           1 : struct ldv_thread ldv_thread_5;
     113           1 : struct ldv_thread ldv_thread_6;
     114           1 : struct ldv_thread ldv_thread_7;
     115             : 
     116             : /* EMG variable initialization */
     117             : 
     118             : /* EMG function definitions */
     119             : /* AUX_FUNC ldv_character_driver_scenario_2 */
     120             : void ldv_character_driver_scenario_2(void *arg0) {
     121             :  /* LDV {"thread": 2, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'character_driver_scenario(file_operations)'", "function": "ldv_character_driver_scenario_2"} */
     122           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     123           1 :  long int (*ldv_2_callback_compat_ioctl)(struct file *, unsigned int, long unsigned int);
     124             :  int (*ldv_2_callback_get_sb)(struct file_system_type *, int, char *, void *, struct vfsmount *);
     125           1 :  int (*ldv_2_callback_ioctl)(struct inode *, struct file *, unsigned int, long unsigned int);
     126           1 :  void (*ldv_2_callback_kill_sb)(struct super_block *);
     127           1 :  loff_t (*ldv_2_callback_llseek)(struct file *, loff_t , int);
     128           1 :  ssize_t (*ldv_2_callback_read)(struct file *, char *, size_t , loff_t *);
     129           1 :  int (*ldv_2_callback_readdir)(struct file *, void *, filldir_t );
     130             :  long int (*ldv_2_callback_unlocked_ioctl)(struct file *, unsigned int, long unsigned int);
     131             :  struct file_operations *ldv_2_container_file_operations;
     132           1 :  int ldv_2_ldv_param_20_1_default;
     133           1 :  char *ldv_2_ldv_param_20_2_default;
     134           1 :  unsigned int ldv_2_ldv_param_23_2_default;
     135           1 :  struct super_block *ldv_2_ldv_param_26_0_default;
     136           1 :  long long int ldv_2_ldv_param_29_1_default;
     137           1 :  int ldv_2_ldv_param_29_2_default;
     138           1 :  char *ldv_2_ldv_param_32_1_default;
     139           1 :  long long int *ldv_2_ldv_param_32_3_default;
     140           1 :  unsigned int ldv_2_ldv_param_36_1_default;
     141           1 :  char *ldv_2_ldv_param_4_1_default;
     142           1 :  long long int *ldv_2_ldv_param_4_3_default;
     143           1 :  unsigned int ldv_2_ldv_param_5_1_default;
     144           1 :  struct file *ldv_2_resource_file;
     145           1 :  struct inode *ldv_2_resource_inode;
     146           1 :  struct file_system_type *ldv_2_resource_struct_file_system_type;
     147           1 :  int ldv_2_ret_default;
     148           1 :  int (*ldv_2_size_cnt_func_1_ptr)(void *, char *, int, loff_t , u64 , unsigned int);
     149           1 :  struct super_block *ldv_2_size_cnt_struct_super_block_ptr;
     150           1 :  struct vfsmount *ldv_2_size_cnt_struct_vfsmount_ptr;
     151           1 :  long unsigned int ldv_2_size_cnt_write_size;
     152           1 :  /* Received labels */
     153           2 :  struct ldv_struct_character_driver_scenario_1 *data = (struct ldv_struct_character_driver_scenario_1*) arg0;
     154           1 : 
     155           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     156           1 :  /* Initialize automaton variables */
     157           2 :  ldv_2_ret_default = 1;
     158           1 :  /* LDV {"action": "REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin FILE_OPERATIONS callbacks invocations scenario."} */
     159           1 :  /* Assign recieved labels */
     160           3 :  if (data) {
     161           2 :   ldv_2_container_file_operations = data->arg0;
     162           3 :   ldv_free(data);
     163           1 :  }
     164           1 :  /* LDV {"action": "REGISTER", "type": "RECEIVE_END"} */
     165           1 : 
     166           1 :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Allocate memory for file and inode structures."} */
     167           6 :  ldv_2_resource_file = ldv_xmalloc(sizeof(struct file));
     168           3 :  ldv_2_resource_inode = ldv_xmalloc(sizeof(struct inode));
     169           3 :  ldv_2_resource_struct_file_system_type = ldv_xmalloc_unknown_size(0);
     170           3 :  ldv_2_size_cnt_func_1_ptr = ldv_undef_int();
     171             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
     172             : 
     173             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Device appeared in the system."} */
     174             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     175             : 
     176             :  /* Jump to a subprocess 'main' initial state */
     177           1 :  goto ldv_main_2;
     178             :  /* End of the process */
     179             :  return;
     180           1 : 
     181             :  /* Sbprocess main */
     182             :  ldv_main_2:
     183             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     184             : 
     185           4 :  if (ldv_undef_int()) {
     186             :   /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Open the device file. Invoke callback open from file_operations."} */
     187             :   /* LDV {"type": "CALLBACK", "call": "ldv_2_ret_default = ((& autofs4_dir_open))(ldv_2_resource_inode, ldv_2_resource_file);", "comment": "probe"} */
     188           2 :   ldv_2_ret_default = ldv_character_driver_scenario_probe_2_12(ldv_2_container_file_operations->open, ldv_2_resource_inode, ldv_2_resource_file);
     189             :   /* Callback post-call */
     190           2 :   ldv_2_ret_default = ldv_filter_err_code(ldv_2_ret_default);
     191             :   /* LDV {"action": "PROBE", "type": "CALL_END"} */
     192             : 
     193           4 :   if (ldv_undef_int()) {
     194             :    /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Device file is opened successfully."} */
     195           2 :    ldv_assume(ldv_2_ret_default == 0);
     196             :    /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
     197             : 
     198             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Device file is opened, ready to read and write."} */
     199             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     200             : 
     201             :    /* Jump to a subprocess 'call' initial state */
     202           1 :    goto ldv_call_2;
     203             :   }
     204             :   else {
     205             :    /* LDV {"action": "PROBE_FAIL", "type": "CONDITION_BEGIN", "comment": "Failed to open devices file."} */
     206           2 :    ldv_assume(ldv_2_ret_default != 0);
     207             :    /* LDV {"action": "PROBE_FAIL", "type": "CONDITION_END"} */
     208             : 
     209             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Device appeared in the system."} */
     210             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     211             : 
     212             :    /* Jump to a subprocess 'main' initial state */
     213           1 :    goto ldv_main_2;
     214             :   }
     215             :  }
     216             :  else {
     217             :   /* LDV {"action": "FREE", "type": "CONDITION_BEGIN", "comment": "Free memory of file and inode structures."} */
     218           2 :   ldv_free(ldv_2_resource_file);
     219           2 :   ldv_free(ldv_2_resource_inode);
     220           2 :   ldv_free(ldv_2_resource_struct_file_system_type);
     221             :   /* LDV {"action": "FREE", "type": "CONDITION_END"} */
     222             : 
     223             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Finish FILE_OPERATIONS callbacks invocations scenario."} */
     224             :   /* Skip a non-replicative signal receiving */
     225             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_END"} */
     226             : 
     227             :   /* Exit function at a terminal state */
     228           1 :   return;
     229             :  }
     230             :  /* End of the subprocess 'main' */
     231             :  return;
     232           1 : 
     233             :  /* Sbprocess call */
     234             :  ldv_call_2:
     235             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     236             : 
     237           2 :  switch (ldv_undef_int()) {
     238           3 :   case 1: {
     239             :    /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     240           3 :    ldv_2_ldv_param_4_1_default = ldv_xmalloc_unknown_size(0);
     241           3 :    ldv_2_ldv_param_4_3_default = ldv_xmalloc_unknown_size(0);
     242             :    /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
     243             : 
     244             :    /* LDV {"action": "WRITE", "type": "CALL_BEGIN", "callback": true, "comment": "Write data to the device. Invoke callback write from FILE_OPERATIONS."} */
     245             :    /* Callback pre-call */
     246           2 :    ldv_assume(ldv_2_size_cnt_func_1_ptr <= (INT_MAX & PAGE_CACHE_MASK));
     247           3 :    if (ldv_2_container_file_operations->write) {
     248             :    /* LDV {"type": "CALLBACK", "call": "(ldv_2_container_file_operations->write)(ldv_2_resource_file, ldv_2_ldv_param_4_1_default, ldv_2_size_cnt_write_size, ldv_2_ldv_param_4_3_default);", "comment": "write"} */
     249           3 :     ldv_character_driver_scenario_write_2_4(ldv_2_container_file_operations->write, ldv_2_resource_file, ldv_2_ldv_param_4_1_default, ldv_2_size_cnt_write_size, ldv_2_ldv_param_4_3_default);
     250             :    }
     251             :    /* LDV {"action": "WRITE", "type": "CALL_END"} */
     252             : 
     253             :    /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     254           4 :    ldv_free(ldv_2_ldv_param_4_1_default);
     255           2 :    ldv_free(ldv_2_ldv_param_4_3_default);
     256             :    /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
     257             : 
     258             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Device file is opened, ready to read and write."} */
     259             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     260             : 
     261             :    /* Jump to a subprocess 'call' initial state */
     262           1 :    goto ldv_call_2;
     263           1 :    break;
     264             :   }
     265           3 :   case 2: {
     266             :    /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "File structure is released. Invoke callback release from file_operations."} */
     267             :    /* LDV {"type": "CALLBACK", "call": "((& dcache_dir_close))(ldv_2_resource_inode, ldv_2_resource_file);", "comment": "release"} */
     268           2 :    ldv_character_driver_scenario_release_2_2(ldv_2_container_file_operations->release, ldv_2_resource_inode, ldv_2_resource_file);
     269             :    /* LDV {"action": "RELEASE", "type": "CALL_END"} */
     270             : 
     271             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Device appeared in the system."} */
     272             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     273             : 
     274             :    /* Jump to a subprocess 'main' initial state */
     275           1 :    goto ldv_main_2;
     276           1 :    break;
     277             :   }
     278           3 :   case 3: {
     279             :    /* LDV {"action": "PRE_CALL_5", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     280             :    /* LDV {"action": "PRE_CALL_5", "type": "CONDITION_END"} */
     281             : 
     282           2 :    switch (ldv_undef_int()) {
     283           3 :     case 1: {
     284             :      /* LDV {"action": "PRE_CALL_36", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     285             :      /* LDV {"action": "PRE_CALL_36", "type": "CONDITION_END"} */
     286             : 
     287             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback callback from FILE_OPERATIONS."} */
     288           2 :      if (ldv_2_callback_unlocked_ioctl) {
     289             :      /* LDV {"type": "CALLBACK", "call": "(ldv_2_callback_unlocked_ioctl)(ldv_2_resource_file, ldv_2_ldv_param_36_1_default, ldv_2_size_cnt_write_size);", "comment": "callback"} */
     290           2 :       ldv_character_driver_scenario_callback_2_36(ldv_2_callback_unlocked_ioctl, ldv_2_resource_file, ldv_2_ldv_param_36_1_default, ldv_2_size_cnt_write_size);
     291             :      }
     292             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     293             : 
     294             :      /* LDV {"action": "POST_CALL_36", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     295             :      /* LDV {"action": "POST_CALL_36", "type": "CONDITION_END"} */
     296             : 
     297           2 :      break;
     298           1 :     }
     299           3 :     case 2: {
     300             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback readdir from file_operations."} */
     301             :      /* LDV {"type": "CALLBACK", "call": "((& dcache_readdir))(ldv_2_resource_file, ldv_2_resource_inode, ldv_2_size_cnt_func_1_ptr);", "comment": "callback"} */
     302           2 :      ldv_character_driver_scenario_callback_2_35(ldv_2_callback_readdir, ldv_2_resource_file, ldv_2_resource_inode, ldv_2_size_cnt_func_1_ptr);
     303             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     304             : 
     305           1 :      break;
     306           1 :     }
     307           3 :     case 3: {
     308             :      /* LDV {"action": "PRE_CALL_32", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     309           3 :      ldv_2_ldv_param_32_1_default = ldv_xmalloc_unknown_size(0);
     310           3 :      ldv_2_ldv_param_32_3_default = ldv_xmalloc_unknown_size(0);
     311             :      /* LDV {"action": "PRE_CALL_32", "type": "CONDITION_END"} */
     312             : 
     313             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback read from file_operations."} */
     314             :      /* LDV {"type": "CALLBACK", "call": "((& generic_read_dir))(ldv_2_resource_file, ldv_2_ldv_param_32_1_default, ldv_2_size_cnt_write_size, ldv_2_ldv_param_32_3_default);", "comment": "callback"} */
     315           2 :      ldv_character_driver_scenario_callback_2_32(ldv_2_callback_read, ldv_2_resource_file, ldv_2_ldv_param_32_1_default, ldv_2_size_cnt_write_size, ldv_2_ldv_param_32_3_default);
     316             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     317             : 
     318             :      /* LDV {"action": "POST_CALL_32", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     319           2 :      ldv_free(ldv_2_ldv_param_32_1_default);
     320           2 :      ldv_free(ldv_2_ldv_param_32_3_default);
     321             :      /* LDV {"action": "POST_CALL_32", "type": "CONDITION_END"} */
     322             : 
     323           1 :      break;
     324           1 :     }
     325           3 :     case 4: {
     326             :      /* LDV {"action": "PRE_CALL_29", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     327             :      /* LDV {"action": "PRE_CALL_29", "type": "CONDITION_END"} */
     328             : 
     329             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback llseek from file_operations."} */
     330             :      /* LDV {"type": "CALLBACK", "call": "((& dcache_dir_lseek))(ldv_2_resource_file, ldv_2_ldv_param_29_1_default, ldv_2_ldv_param_29_2_default);", "comment": "callback"} */
     331           2 :      ldv_character_driver_scenario_callback_2_29(ldv_2_callback_llseek, ldv_2_resource_file, ldv_2_ldv_param_29_1_default, ldv_2_ldv_param_29_2_default);
     332             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     333             : 
     334             :      /* LDV {"action": "POST_CALL_29", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     335             :      /* LDV {"action": "POST_CALL_29", "type": "CONDITION_END"} */
     336             : 
     337           1 :      break;
     338           1 :     }
     339           3 :     case 5: {
     340             :      /* LDV {"action": "PRE_CALL_26", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     341           3 :      ldv_2_ldv_param_26_0_default = ldv_xmalloc_unknown_size(0);
     342             :      /* LDV {"action": "PRE_CALL_26", "type": "CONDITION_END"} */
     343             : 
     344             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback kill_sb from file_system_type."} */
     345             :      /* LDV {"type": "CALLBACK", "call": "((& autofs4_kill_sb))(ldv_2_ldv_param_26_0_default);", "comment": "callback"} */
     346           2 :      ldv_character_driver_scenario_callback_2_26(ldv_2_callback_kill_sb, ldv_2_ldv_param_26_0_default);
     347             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     348             : 
     349             :      /* LDV {"action": "POST_CALL_26", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     350           2 :      ldv_free(ldv_2_ldv_param_26_0_default);
     351             :      /* LDV {"action": "POST_CALL_26", "type": "CONDITION_END"} */
     352             : 
     353           1 :      break;
     354           1 :     }
     355           3 :     case 6: {
     356             :      /* LDV {"action": "PRE_CALL_23", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     357             :      /* LDV {"action": "PRE_CALL_23", "type": "CONDITION_END"} */
     358             : 
     359             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback callback from FILE_OPERATIONS."} */
     360           2 :      if (ldv_2_callback_ioctl) {
     361             :      /* LDV {"type": "CALLBACK", "call": "(ldv_2_callback_ioctl)(ldv_2_resource_inode, ldv_2_resource_file, ldv_2_ldv_param_23_2_default, ldv_2_size_cnt_write_size);", "comment": "callback"} */
     362           2 :       ldv_character_driver_scenario_callback_2_23(ldv_2_callback_ioctl, ldv_2_resource_inode, ldv_2_resource_file, ldv_2_ldv_param_23_2_default, ldv_2_size_cnt_write_size);
     363             :      }
     364             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     365             : 
     366             :      /* LDV {"action": "POST_CALL_23", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     367             :      /* LDV {"action": "POST_CALL_23", "type": "CONDITION_END"} */
     368             : 
     369           2 :      break;
     370           1 :     }
     371           3 :     case 7: {
     372             :      /* LDV {"action": "PRE_CALL_20", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     373           3 :      ldv_2_ldv_param_20_2_default = ldv_xmalloc_unknown_size(0);
     374             :      /* LDV {"action": "PRE_CALL_20", "type": "CONDITION_END"} */
     375             : 
     376             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback get_sb from file_system_type."} */
     377             :      /* LDV {"type": "CALLBACK", "call": "((& autofs_get_sb))(ldv_2_resource_struct_file_system_type, ldv_2_ldv_param_20_1_default, ldv_2_ldv_param_20_2_default, ldv_2_resource_file, ldv_2_size_cnt_struct_vfsmount_ptr);", "comment": "callback"} */
     378           2 :      ldv_character_driver_scenario_callback_2_20(ldv_2_callback_get_sb, ldv_2_resource_struct_file_system_type, ldv_2_ldv_param_20_1_default, ldv_2_ldv_param_20_2_default, ldv_2_resource_file, ldv_2_size_cnt_struct_vfsmount_ptr);
     379             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     380             : 
     381             :      /* LDV {"action": "POST_CALL_20", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     382           2 :      ldv_free(ldv_2_ldv_param_20_2_default);
     383             :      /* LDV {"action": "POST_CALL_20", "type": "CONDITION_END"} */
     384             : 
     385           1 :      break;
     386           1 :     }
     387           3 :     case 8: {
     388             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback callback from FILE_OPERATIONS."} */
     389           2 :      if (ldv_2_callback_compat_ioctl) {
     390             :      /* LDV {"type": "CALLBACK", "call": "(ldv_2_callback_compat_ioctl)(ldv_2_resource_file, ldv_2_ldv_param_5_1_default, ldv_2_size_cnt_write_size);", "comment": "callback"} */
     391           2 :       ldv_character_driver_scenario_callback_2_5(ldv_2_callback_compat_ioctl, ldv_2_resource_file, ldv_2_ldv_param_5_1_default, ldv_2_size_cnt_write_size);
     392             :      }
     393             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     394             : 
     395           2 :      break;
     396           1 :     }
     397           2 :     default: ldv_stop();
     398           1 :    }
     399           9 :    break;
     400           1 :   }
     401           2 :   default: ldv_stop();
     402           1 :  }
     403           0 :  /* LDV {"action": "POST_CALL_5", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     404             :  /* LDV {"action": "POST_CALL_5", "type": "CONDITION_END"} */
     405           0 : 
     406             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Device file is opened, ready to read and write."} */
     407             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     408             : 
     409             :  /* Jump to a subprocess 'call' initial state */
     410           9 :  goto ldv_call_2;
     411             :  /* Jump to a subprocess 'call' initial state */
     412             :  goto ldv_call_2;
     413             :  /* End of the subprocess 'call' */
     414             :  return;
     415             :  /* LDV {"comment": "End of control function based on process 'character_driver_scenario(file_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_character_driver_scenario_2"} */
     416             : }
     417             : 
     418             : /* AUX_FUNC ldv_character_driver_scenario_3 */
     419             : void ldv_character_driver_scenario_3(void *arg0) {
     420             :  /* LDV {"thread": 3, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'character_driver_scenario(file_operations)'", "function": "ldv_character_driver_scenario_3"} */
     421           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     422           1 :  long int (*ldv_3_callback_compat_ioctl)(struct file *, unsigned int, long unsigned int);
     423             :  int (*ldv_3_callback_get_sb)(struct file_system_type *, int, char *, void *, struct vfsmount *);
     424           1 :  int (*ldv_3_callback_ioctl)(struct inode *, struct file *, unsigned int, long unsigned int);
     425           1 :  void (*ldv_3_callback_kill_sb)(struct super_block *);
     426           1 :  loff_t (*ldv_3_callback_llseek)(struct file *, loff_t , int);
     427           1 :  ssize_t (*ldv_3_callback_read)(struct file *, char *, size_t , loff_t *);
     428           1 :  int (*ldv_3_callback_readdir)(struct file *, void *, filldir_t );
     429             :  long int (*ldv_3_callback_unlocked_ioctl)(struct file *, unsigned int, long unsigned int);
     430             :  struct file_operations *ldv_3_container_file_operations;
     431           1 :  int ldv_3_ldv_param_20_1_default;
     432           1 :  char *ldv_3_ldv_param_20_2_default;
     433           1 :  unsigned int ldv_3_ldv_param_23_2_default;
     434           1 :  struct super_block *ldv_3_ldv_param_26_0_default;
     435           1 :  long long int ldv_3_ldv_param_29_1_default;
     436           1 :  int ldv_3_ldv_param_29_2_default;
     437           1 :  char *ldv_3_ldv_param_32_1_default;
     438           1 :  long long int *ldv_3_ldv_param_32_3_default;
     439           1 :  unsigned int ldv_3_ldv_param_36_1_default;
     440           1 :  char *ldv_3_ldv_param_4_1_default;
     441           1 :  long long int *ldv_3_ldv_param_4_3_default;
     442           1 :  unsigned int ldv_3_ldv_param_5_1_default;
     443           1 :  struct file *ldv_3_resource_file;
     444           1 :  struct inode *ldv_3_resource_inode;
     445           1 :  struct file_system_type *ldv_3_resource_struct_file_system_type;
     446           1 :  int ldv_3_ret_default;
     447           1 :  int (*ldv_3_size_cnt_func_1_ptr)(void *, char *, int, loff_t , u64 , unsigned int);
     448           1 :  struct super_block *ldv_3_size_cnt_struct_super_block_ptr;
     449           1 :  struct vfsmount *ldv_3_size_cnt_struct_vfsmount_ptr;
     450           1 :  long unsigned int ldv_3_size_cnt_write_size;
     451           1 :  /* Received labels */
     452           2 :  struct ldv_struct_character_driver_scenario_1 *data = (struct ldv_struct_character_driver_scenario_1*) arg0;
     453           1 : 
     454           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     455           1 :  /* Initialize automaton variables */
     456           2 :  ldv_3_ret_default = 1;
     457           1 :  /* LDV {"action": "REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin FILE_OPERATIONS callbacks invocations scenario."} */
     458           1 :  /* Assign recieved labels */
     459           3 :  if (data) {
     460           2 :   ldv_3_container_file_operations = data->arg0;
     461           3 :   ldv_free(data);
     462           1 :  }
     463           1 :  /* LDV {"action": "REGISTER", "type": "RECEIVE_END"} */
     464           1 : 
     465           1 :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Allocate memory for file and inode structures."} */
     466           6 :  ldv_3_resource_file = ldv_xmalloc(sizeof(struct file));
     467           3 :  ldv_3_resource_inode = ldv_xmalloc(sizeof(struct inode));
     468           3 :  ldv_3_resource_struct_file_system_type = ldv_xmalloc_unknown_size(0);
     469           3 :  ldv_3_size_cnt_func_1_ptr = ldv_undef_int();
     470             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
     471             : 
     472             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Device appeared in the system."} */
     473             :  /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     474             : 
     475             :  /* Jump to a subprocess 'main' initial state */
     476           1 :  goto ldv_main_3;
     477             :  /* End of the process */
     478             :  return;
     479           1 : 
     480             :  /* Sbprocess main */
     481             :  ldv_main_3:
     482             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     483             : 
     484           4 :  if (ldv_undef_int()) {
     485             :   /* LDV {"action": "PROBE", "type": "CALL_BEGIN", "callback": true, "comment": "Open the device file. Invoke callback open from file_operations."} */
     486             :   /* LDV {"type": "CALLBACK", "call": "ldv_3_ret_default = ((& dcache_dir_open))(ldv_3_resource_inode, ldv_3_resource_file);", "comment": "probe"} */
     487           2 :   ldv_3_ret_default = ldv_character_driver_scenario_probe_3_12(ldv_3_container_file_operations->open, ldv_3_resource_inode, ldv_3_resource_file);
     488             :   /* Callback post-call */
     489           2 :   ldv_3_ret_default = ldv_filter_err_code(ldv_3_ret_default);
     490             :   /* LDV {"action": "PROBE", "type": "CALL_END"} */
     491             : 
     492           4 :   if (ldv_undef_int()) {
     493             :    /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Device file is opened successfully."} */
     494           2 :    ldv_assume(ldv_3_ret_default == 0);
     495             :    /* LDV {"action": "PROBE_SUCCESS", "type": "CONDITION_END"} */
     496             : 
     497             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Device file is opened, ready to read and write."} */
     498             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     499             : 
     500             :    /* Jump to a subprocess 'call' initial state */
     501           1 :    goto ldv_call_3;
     502             :   }
     503             :   else {
     504             :    /* LDV {"action": "PROBE_FAIL", "type": "CONDITION_BEGIN", "comment": "Failed to open devices file."} */
     505           2 :    ldv_assume(ldv_3_ret_default != 0);
     506             :    /* LDV {"action": "PROBE_FAIL", "type": "CONDITION_END"} */
     507             : 
     508             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Device appeared in the system."} */
     509             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     510             : 
     511             :    /* Jump to a subprocess 'main' initial state */
     512           1 :    goto ldv_main_3;
     513             :   }
     514             :  }
     515             :  else {
     516             :   /* LDV {"action": "FREE", "type": "CONDITION_BEGIN", "comment": "Free memory of file and inode structures."} */
     517           2 :   ldv_free(ldv_3_resource_file);
     518           2 :   ldv_free(ldv_3_resource_inode);
     519           2 :   ldv_free(ldv_3_resource_struct_file_system_type);
     520             :   /* LDV {"action": "FREE", "type": "CONDITION_END"} */
     521             : 
     522             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Finish FILE_OPERATIONS callbacks invocations scenario."} */
     523             :   /* Skip a non-replicative signal receiving */
     524             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_END"} */
     525             : 
     526             :   /* Exit function at a terminal state */
     527           1 :   return;
     528             :  }
     529             :  /* End of the subprocess 'main' */
     530             :  return;
     531           1 : 
     532             :  /* Sbprocess call */
     533             :  ldv_call_3:
     534             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     535             : 
     536           2 :  switch (ldv_undef_int()) {
     537           3 :   case 1: {
     538             :    /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     539           3 :    ldv_3_ldv_param_4_1_default = ldv_xmalloc_unknown_size(0);
     540           3 :    ldv_3_ldv_param_4_3_default = ldv_xmalloc_unknown_size(0);
     541             :    /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
     542             : 
     543             :    /* LDV {"action": "WRITE", "type": "CALL_BEGIN", "callback": true, "comment": "Write data to the device. Invoke callback write from FILE_OPERATIONS."} */
     544             :    /* Callback pre-call */
     545           2 :    ldv_assume(ldv_3_size_cnt_func_1_ptr <= (INT_MAX & PAGE_CACHE_MASK));
     546           3 :    if (ldv_3_container_file_operations->write) {
     547             :    /* LDV {"type": "CALLBACK", "call": "(ldv_3_container_file_operations->write)(ldv_3_resource_file, ldv_3_ldv_param_4_1_default, ldv_3_size_cnt_write_size, ldv_3_ldv_param_4_3_default);", "comment": "write"} */
     548           3 :     ldv_character_driver_scenario_write_3_4(ldv_3_container_file_operations->write, ldv_3_resource_file, ldv_3_ldv_param_4_1_default, ldv_3_size_cnt_write_size, ldv_3_ldv_param_4_3_default);
     549             :    }
     550             :    /* LDV {"action": "WRITE", "type": "CALL_END"} */
     551             : 
     552             :    /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     553           4 :    ldv_free(ldv_3_ldv_param_4_1_default);
     554           2 :    ldv_free(ldv_3_ldv_param_4_3_default);
     555             :    /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
     556             : 
     557             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Device file is opened, ready to read and write."} */
     558             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     559             : 
     560             :    /* Jump to a subprocess 'call' initial state */
     561           1 :    goto ldv_call_3;
     562           1 :    break;
     563             :   }
     564           3 :   case 2: {
     565             :    /* LDV {"action": "RELEASE", "type": "CALL_BEGIN", "callback": true, "comment": "File structure is released. Invoke callback release from file_operations."} */
     566             :    /* LDV {"type": "CALLBACK", "call": "((& dcache_dir_close))(ldv_3_resource_inode, ldv_3_resource_file);", "comment": "release"} */
     567           2 :    ldv_character_driver_scenario_release_3_2(ldv_3_container_file_operations->release, ldv_3_resource_inode, ldv_3_resource_file);
     568             :    /* LDV {"action": "RELEASE", "type": "CALL_END"} */
     569             : 
     570             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_BEGIN", "comment": "Device appeared in the system."} */
     571             :    /* LDV {"action": "MAIN", "type": "SUBPROCESS_END"} */
     572             : 
     573             :    /* Jump to a subprocess 'main' initial state */
     574           1 :    goto ldv_main_3;
     575           1 :    break;
     576             :   }
     577           3 :   case 3: {
     578             :    /* LDV {"action": "PRE_CALL_5", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     579             :    /* LDV {"action": "PRE_CALL_5", "type": "CONDITION_END"} */
     580             : 
     581           2 :    switch (ldv_undef_int()) {
     582           3 :     case 1: {
     583             :      /* LDV {"action": "PRE_CALL_36", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     584             :      /* LDV {"action": "PRE_CALL_36", "type": "CONDITION_END"} */
     585             : 
     586             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback callback from FILE_OPERATIONS."} */
     587           2 :      if (ldv_3_callback_unlocked_ioctl) {
     588             :      /* LDV {"type": "CALLBACK", "call": "(ldv_3_callback_unlocked_ioctl)(ldv_3_resource_file, ldv_3_ldv_param_36_1_default, ldv_3_size_cnt_write_size);", "comment": "callback"} */
     589           2 :       ldv_character_driver_scenario_callback_3_36(ldv_3_callback_unlocked_ioctl, ldv_3_resource_file, ldv_3_ldv_param_36_1_default, ldv_3_size_cnt_write_size);
     590             :      }
     591             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     592             : 
     593             :      /* LDV {"action": "POST_CALL_36", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     594             :      /* LDV {"action": "POST_CALL_36", "type": "CONDITION_END"} */
     595             : 
     596           2 :      break;
     597           1 :     }
     598           3 :     case 2: {
     599             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback readdir from file_operations."} */
     600             :      /* LDV {"type": "CALLBACK", "call": "((& dcache_readdir))(ldv_3_resource_file, ldv_3_resource_inode, ldv_3_size_cnt_func_1_ptr);", "comment": "callback"} */
     601           2 :      ldv_character_driver_scenario_callback_3_35(ldv_3_callback_readdir, ldv_3_resource_file, ldv_3_resource_inode, ldv_3_size_cnt_func_1_ptr);
     602             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     603             : 
     604           1 :      break;
     605           1 :     }
     606           3 :     case 3: {
     607             :      /* LDV {"action": "PRE_CALL_32", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     608           3 :      ldv_3_ldv_param_32_1_default = ldv_xmalloc_unknown_size(0);
     609           3 :      ldv_3_ldv_param_32_3_default = ldv_xmalloc_unknown_size(0);
     610             :      /* LDV {"action": "PRE_CALL_32", "type": "CONDITION_END"} */
     611             : 
     612             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback read from file_operations."} */
     613             :      /* LDV {"type": "CALLBACK", "call": "((& generic_read_dir))(ldv_3_resource_file, ldv_3_ldv_param_32_1_default, ldv_3_size_cnt_write_size, ldv_3_ldv_param_32_3_default);", "comment": "callback"} */
     614           2 :      ldv_character_driver_scenario_callback_3_32(ldv_3_callback_read, ldv_3_resource_file, ldv_3_ldv_param_32_1_default, ldv_3_size_cnt_write_size, ldv_3_ldv_param_32_3_default);
     615             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     616             : 
     617             :      /* LDV {"action": "POST_CALL_32", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     618           2 :      ldv_free(ldv_3_ldv_param_32_1_default);
     619           2 :      ldv_free(ldv_3_ldv_param_32_3_default);
     620             :      /* LDV {"action": "POST_CALL_32", "type": "CONDITION_END"} */
     621             : 
     622           1 :      break;
     623           1 :     }
     624           3 :     case 4: {
     625             :      /* LDV {"action": "PRE_CALL_29", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     626             :      /* LDV {"action": "PRE_CALL_29", "type": "CONDITION_END"} */
     627             : 
     628             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback llseek from file_operations."} */
     629             :      /* LDV {"type": "CALLBACK", "call": "((& dcache_dir_lseek))(ldv_3_resource_file, ldv_3_ldv_param_29_1_default, ldv_3_ldv_param_29_2_default);", "comment": "callback"} */
     630           2 :      ldv_character_driver_scenario_callback_3_29(ldv_3_callback_llseek, ldv_3_resource_file, ldv_3_ldv_param_29_1_default, ldv_3_ldv_param_29_2_default);
     631             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     632             : 
     633             :      /* LDV {"action": "POST_CALL_29", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     634             :      /* LDV {"action": "POST_CALL_29", "type": "CONDITION_END"} */
     635             : 
     636           1 :      break;
     637           1 :     }
     638           3 :     case 5: {
     639             :      /* LDV {"action": "PRE_CALL_26", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     640           3 :      ldv_3_ldv_param_26_0_default = ldv_xmalloc_unknown_size(0);
     641             :      /* LDV {"action": "PRE_CALL_26", "type": "CONDITION_END"} */
     642             : 
     643             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback kill_sb from file_system_type."} */
     644             :      /* LDV {"type": "CALLBACK", "call": "((& autofs4_kill_sb))(ldv_3_ldv_param_26_0_default);", "comment": "callback"} */
     645           2 :      ldv_character_driver_scenario_callback_3_26(ldv_3_callback_kill_sb, ldv_3_ldv_param_26_0_default);
     646             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     647             : 
     648             :      /* LDV {"action": "POST_CALL_26", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     649           2 :      ldv_free(ldv_3_ldv_param_26_0_default);
     650             :      /* LDV {"action": "POST_CALL_26", "type": "CONDITION_END"} */
     651             : 
     652           1 :      break;
     653           1 :     }
     654           3 :     case 6: {
     655             :      /* LDV {"action": "PRE_CALL_23", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     656             :      /* LDV {"action": "PRE_CALL_23", "type": "CONDITION_END"} */
     657             : 
     658             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback ioctl from file_operations."} */
     659             :      /* LDV {"type": "CALLBACK", "call": "((& autofs4_root_ioctl))(ldv_3_resource_inode, ldv_3_resource_file, ldv_3_ldv_param_23_2_default, ldv_3_size_cnt_write_size);", "comment": "callback"} */
     660           2 :      ldv_character_driver_scenario_callback_3_23(ldv_3_callback_ioctl, ldv_3_resource_inode, ldv_3_resource_file, ldv_3_ldv_param_23_2_default, ldv_3_size_cnt_write_size);
     661             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     662             : 
     663             :      /* LDV {"action": "POST_CALL_23", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     664             :      /* LDV {"action": "POST_CALL_23", "type": "CONDITION_END"} */
     665             : 
     666           1 :      break;
     667           1 :     }
     668           3 :     case 7: {
     669             :      /* LDV {"action": "PRE_CALL_20", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     670           3 :      ldv_3_ldv_param_20_2_default = ldv_xmalloc_unknown_size(0);
     671             :      /* LDV {"action": "PRE_CALL_20", "type": "CONDITION_END"} */
     672             : 
     673             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback get_sb from file_system_type."} */
     674             :      /* LDV {"type": "CALLBACK", "call": "((& autofs_get_sb))(ldv_3_resource_struct_file_system_type, ldv_3_ldv_param_20_1_default, ldv_3_ldv_param_20_2_default, ldv_3_resource_file, ldv_3_size_cnt_struct_vfsmount_ptr);", "comment": "callback"} */
     675           2 :      ldv_character_driver_scenario_callback_3_20(ldv_3_callback_get_sb, ldv_3_resource_struct_file_system_type, ldv_3_ldv_param_20_1_default, ldv_3_ldv_param_20_2_default, ldv_3_resource_file, ldv_3_size_cnt_struct_vfsmount_ptr);
     676             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     677             : 
     678             :      /* LDV {"action": "POST_CALL_20", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     679           2 :      ldv_free(ldv_3_ldv_param_20_2_default);
     680             :      /* LDV {"action": "POST_CALL_20", "type": "CONDITION_END"} */
     681             : 
     682           1 :      break;
     683           1 :     }
     684           3 :     case 8: {
     685             :      /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Invoke callback callback from FILE_OPERATIONS."} */
     686           2 :      if (ldv_3_callback_compat_ioctl) {
     687             :      /* LDV {"type": "CALLBACK", "call": "(ldv_3_callback_compat_ioctl)(ldv_3_resource_file, ldv_3_ldv_param_5_1_default, ldv_3_size_cnt_write_size);", "comment": "callback"} */
     688           2 :       ldv_character_driver_scenario_callback_3_5(ldv_3_callback_compat_ioctl, ldv_3_resource_file, ldv_3_ldv_param_5_1_default, ldv_3_size_cnt_write_size);
     689             :      }
     690             :      /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     691             : 
     692           2 :      break;
     693           1 :     }
     694           2 :     default: ldv_stop();
     695           1 :    }
     696           9 :    break;
     697           1 :   }
     698           2 :   default: ldv_stop();
     699           1 :  }
     700           0 :  /* LDV {"action": "POST_CALL_5", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     701             :  /* LDV {"action": "POST_CALL_5", "type": "CONDITION_END"} */
     702           0 : 
     703             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Device file is opened, ready to read and write."} */
     704             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     705             : 
     706             :  /* Jump to a subprocess 'call' initial state */
     707           9 :  goto ldv_call_3;
     708             :  /* Jump to a subprocess 'call' initial state */
     709             :  goto ldv_call_3;
     710             :  /* End of the subprocess 'call' */
     711             :  return;
     712             :  /* LDV {"comment": "End of control function based on process 'character_driver_scenario(file_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_character_driver_scenario_3"} */
     713             : }
     714             : 
     715             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_1_20 */
     716             : void ldv_character_driver_scenario_callback_1_20(int (*arg0)(struct file_system_type *, int, char *, void *, struct vfsmount *), struct file_system_type *arg1, int arg2, char *arg3, void *arg4, struct vfsmount *arg5) {
     717           2 :  ((& autofs_get_sb))(arg1, arg2, arg3, arg4, arg5);
     718           1 : }
     719             : 
     720             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_1_23 */
     721             : void ldv_character_driver_scenario_callback_1_23(int (*arg0)(struct inode *, struct file *, unsigned int, long unsigned int), struct inode *arg1, struct file *arg2, unsigned int arg3, long unsigned int arg4) {
     722           2 :  (*arg0)(arg1, arg2, arg3, arg4);
     723           1 : }
     724             : 
     725             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_1_26 */
     726             : void ldv_character_driver_scenario_callback_1_26(void (*arg0)(struct super_block *), struct super_block *arg1) {
     727           3 :  ((& autofs4_kill_sb))(arg1);
     728           1 : }
     729             : 
     730             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_1_29 */
     731             : void ldv_character_driver_scenario_callback_1_29(loff_t (*arg0)(struct file *, loff_t , int), struct file *arg1, long long int arg2, int arg3) {
     732           3 :  (*arg0)(arg1, arg2, arg3);
     733           1 : }
     734             : 
     735             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_1_32 */
     736             : void ldv_character_driver_scenario_callback_1_32(ssize_t (*arg0)(struct file *, char *, size_t , loff_t *), struct file *arg1, char *arg2, long unsigned int arg3, long long int *arg4) {
     737           1 :  (*arg0)(arg1, arg2, arg3, arg4);
     738           1 : }
     739             : 
     740             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_1_35 */
     741             : void ldv_character_driver_scenario_callback_1_35(int (*arg0)(struct file *, void *, filldir_t ), struct file *arg1, void *arg2, int (*arg3)(void *, char *, int, loff_t , u64 , unsigned int)) {
     742           1 :  (*arg0)(arg1, arg2, arg3);
     743           1 : }
     744             : 
     745             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_2_20 */
     746             : void ldv_character_driver_scenario_callback_2_20(int (*arg0)(struct file_system_type *, int, char *, void *, struct vfsmount *), struct file_system_type *arg1, int arg2, char *arg3, void *arg4, struct vfsmount *arg5) {
     747           2 :  ((& autofs_get_sb))(arg1, arg2, arg3, arg4, arg5);
     748           1 : }
     749             : 
     750             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_2_23 */
     751             : void ldv_character_driver_scenario_callback_2_23(int (*arg0)(struct inode *, struct file *, unsigned int, long unsigned int), struct inode *arg1, struct file *arg2, unsigned int arg3, long unsigned int arg4) {
     752           2 :  (*arg0)(arg1, arg2, arg3, arg4);
     753           1 : }
     754             : 
     755             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_2_26 */
     756             : void ldv_character_driver_scenario_callback_2_26(void (*arg0)(struct super_block *), struct super_block *arg1) {
     757           3 :  ((& autofs4_kill_sb))(arg1);
     758           1 : }
     759             : 
     760             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_2_36 */
     761             : void ldv_character_driver_scenario_callback_2_36(long int (*arg0)(struct file *, unsigned int, long unsigned int), struct file *arg1, unsigned int arg2, long unsigned int arg3) {
     762           3 :  (*arg0)(arg1, arg2, arg3);
     763           1 : }
     764             : 
     765             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_2_5 */
     766             : void ldv_character_driver_scenario_callback_2_5(long int (*arg0)(struct file *, unsigned int, long unsigned int), struct file *arg1, unsigned int arg2, long unsigned int arg3) {
     767           3 :  (*arg0)(arg1, arg2, arg3);
     768           1 : }
     769             : 
     770             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_3_20 */
     771             : void ldv_character_driver_scenario_callback_3_20(int (*arg0)(struct file_system_type *, int, char *, void *, struct vfsmount *), struct file_system_type *arg1, int arg2, char *arg3, void *arg4, struct vfsmount *arg5) {
     772           2 :  ((& autofs_get_sb))(arg1, arg2, arg3, arg4, arg5);
     773           1 : }
     774             : 
     775             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_3_26 */
     776             : void ldv_character_driver_scenario_callback_3_26(void (*arg0)(struct super_block *), struct super_block *arg1) {
     777           3 :  ((& autofs4_kill_sb))(arg1);
     778           1 : }
     779             : 
     780             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_3_36 */
     781             : void ldv_character_driver_scenario_callback_3_36(long int (*arg0)(struct file *, unsigned int, long unsigned int), struct file *arg1, unsigned int arg2, long unsigned int arg3) {
     782           3 :  (*arg0)(arg1, arg2, arg3);
     783           1 : }
     784             : 
     785             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_3_5 */
     786             : void ldv_character_driver_scenario_callback_3_5(long int (*arg0)(struct file *, unsigned int, long unsigned int), struct file *arg1, unsigned int arg2, long unsigned int arg3) {
     787           3 :  (*arg0)(arg1, arg2, arg3);
     788           1 : }
     789             : 
     790             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_probe_1_12 */
     791             : int ldv_character_driver_scenario_probe_1_12(int (*arg0)(struct inode *, struct file *), struct inode *arg1, struct file *arg2) {
     792           3 :  return (*arg0)(arg1, arg2);
     793             : }
     794           1 : 
     795             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_release_1_2 */
     796             : void ldv_character_driver_scenario_release_1_2(int (*arg0)(struct inode *, struct file *), struct inode *arg1, struct file *arg2) {
     797           2 :  (*arg0)(arg1, arg2);
     798           1 : }
     799             : 
     800             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_write_1_4 */
     801             : void ldv_character_driver_scenario_write_1_4(ssize_t (*arg0)(struct file *, char *, size_t , loff_t *), struct file *arg1, char *arg2, long unsigned int arg3, long long int *arg4) {
     802           1 :  (*arg0)(arg1, arg2, arg3, arg4);
     803           1 : }
     804             : 
     805             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_write_2_4 */
     806             : void ldv_character_driver_scenario_write_2_4(ssize_t (*arg0)(struct file *, char *, size_t , loff_t *), struct file *arg1, char *arg2, long unsigned int arg3, long long int *arg4) {
     807           1 :  (*arg0)(arg1, arg2, arg3, arg4);
     808           1 : }
     809             : 
     810             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_write_3_4 */
     811             : void ldv_character_driver_scenario_write_3_4(ssize_t (*arg0)(struct file *, char *, size_t , loff_t *), struct file *arg1, char *arg2, long unsigned int arg3, long long int *arg4) {
     812           1 :  (*arg0)(arg1, arg2, arg3, arg4);
     813           1 : }
     814             : 
     815             : /* AUX_FUNC ldv_dispatch_default_deregister_4_7_4 */
     816             : void ldv_dispatch_default_deregister_4_7_4() {
     817             :  struct ldv_struct_insmod_7 *cf_arg_4;
     818             :  /* Skip thread join call */
     819           1 :  return;
     820             : }
     821             : 
     822             : /* AUX_FUNC ldv_dispatch_default_deregister_5_7_5 */
     823             : void ldv_dispatch_default_deregister_5_7_5() {
     824             :  struct ldv_struct_insmod_7 *cf_arg_5;
     825             :  /* Skip thread join call */
     826           1 :  return;
     827             : }
     828             : 
     829             : /* AUX_FUNC ldv_dispatch_default_deregister_6_7_6 */
     830             : void ldv_dispatch_default_deregister_6_7_6() {
     831             :  struct ldv_struct_insmod_7 *cf_arg_6;
     832             :  /* Skip thread join call */
     833           1 :  return;
     834             : }
     835             : 
     836             : /* AUX_FUNC ldv_dispatch_default_register_4_7_9 */
     837             : void ldv_dispatch_default_register_4_7_9() {
     838             :  struct ldv_struct_insmod_7 *cf_arg_4;
     839           4 :  cf_arg_4 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_7));
     840           3 :  ldv_random_containerless_scenario_4(cf_arg_4);
     841           1 :  return;
     842             : }
     843             : 
     844             : /* AUX_FUNC ldv_dispatch_default_register_5_7_8 */
     845             : void ldv_dispatch_default_register_5_7_8() {
     846             :  struct ldv_struct_insmod_7 *cf_arg_5;
     847           4 :  cf_arg_5 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_7));
     848           3 :  ldv_random_containerless_scenario_5(cf_arg_5);
     849           1 :  return;
     850             : }
     851             : 
     852             : /* AUX_FUNC ldv_dispatch_default_register_6_7_7 */
     853             : void ldv_dispatch_default_register_6_7_7() {
     854             :  struct ldv_struct_insmod_7 *cf_arg_6;
     855           4 :  cf_arg_6 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_7));
     856           3 :  ldv_random_containerless_scenario_6(cf_arg_6);
     857           1 :  return;
     858             : }
     859             : 
     860             : /* AUX_FUNC ldv_dispatch_insmod_deregister_10_2 */
     861             : void ldv_dispatch_insmod_deregister_10_2() {
     862             :  struct ldv_struct_insmod_7 *cf_arg_7;
     863             :  /* Skip thread join call */
     864           1 :  return;
     865             : }
     866             : 
     867             : /* AUX_FUNC ldv_dispatch_insmod_register_10_3 */
     868             : void ldv_dispatch_insmod_register_10_3() {
     869             :  struct ldv_struct_insmod_7 *cf_arg_7;
     870           4 :  cf_arg_7 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_7));
     871           4 :  ldv_insmod_7(cf_arg_7);
     872           1 :  return;
     873             : }
     874             : 
     875             : /* AUX_FUNC ldv_insmod_7 */
     876             : void ldv_insmod_7(void *arg0) {
     877             :  /* LDV {"thread": 7, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'insmod(artificial)'", "function": "ldv_insmod_7"} */
     878           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     879           1 :  void (*ldv_7_exit_autofs4_fs_default)(void);
     880           1 :  int (*ldv_7_init_autofs4_fs_default)(void);
     881           1 :  int ldv_7_ret_default;
     882           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     883             :  /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module initialization."} */
     884           2 :  ldv_free(arg0);
     885             :  /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_END"} */
     886             : 
     887             :  /* LDV {"action": "INIT_AUTOFS4_FS", "type": "CALL_BEGIN", "callback": true, "comment": "Initialize the module after insmod with 'init_autofs4_fs' function. Invoke callback init_autofs4_fs from ARTIFICIAL."} */
     888             :  /* LDV {"type": "CALLBACK", "call": "ldv_7_ret_default = (init_autofs4_fs)();", "comment": "init_autofs4_fs"} */
     889           2 :  ldv_7_ret_default = ldv_insmod_init_autofs4_fs_7_13(ldv_7_init_autofs4_fs_default);
     890             :  /* Callback post-call */
     891           2 :  ldv_7_ret_default = ldv_post_init(ldv_7_ret_default);
     892             :  /* LDV {"action": "INIT_AUTOFS4_FS", "type": "CALL_END"} */
     893             : 
     894           4 :  if (ldv_undef_int()) {
     895             :   /* LDV {"action": "INIT_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to initialize the module."} */
     896           2 :   ldv_assume(ldv_7_ret_default != 0);
     897             :   /* LDV {"action": "INIT_FAILED", "type": "CONDITION_END"} */
     898             : 
     899             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
     900             :   /* Skip a non-replicative signal receiving */
     901             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
     902             : 
     903             :   /* Exit function at a terminal state */
     904           1 :   return;
     905             :  }
     906             :  else {
     907             :   /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Module has been initialized."} */
     908           2 :   ldv_assume(ldv_7_ret_default == 0);
     909             :   /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_END"} */
     910             : 
     911           4 :   if (ldv_undef_int()) {
     912             :    /* LDV {"action": "DEFAULT_REGISTER_4", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_DENTRY_OPERATIONS' callbacks with unknown registration function."} */
     913           2 :    ldv_dispatch_default_register_4_7_9();
     914             :    /* LDV {"action": "DEFAULT_REGISTER_4", "type": "DISPATCH_END"} */
     915             : 
     916             :    /* LDV {"action": "DEFAULT_REGISTER_5", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_INODE_OPERATIONS' callbacks with unknown registration function."} */
     917           2 :    ldv_dispatch_default_register_5_7_8();
     918             :    /* LDV {"action": "DEFAULT_REGISTER_5", "type": "DISPATCH_END"} */
     919             : 
     920             :    /* LDV {"action": "DEFAULT_REGISTER_6", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_SUPER_OPERATIONS' callbacks with unknown registration function."} */
     921           2 :    ldv_dispatch_default_register_6_7_7();
     922             :    /* LDV {"action": "DEFAULT_REGISTER_6", "type": "DISPATCH_END"} */
     923             : 
     924             :    /* LDV {"action": "DEFAULT_DEREGISTER_6", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_SUPER_OPERATIONS' callbacks with unknown deregistration function."} */
     925           2 :    ldv_dispatch_default_deregister_6_7_6();
     926             :    /* LDV {"action": "DEFAULT_DEREGISTER_6", "type": "DISPATCH_END"} */
     927             : 
     928             :    /* LDV {"action": "DEFAULT_DEREGISTER_5", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_INODE_OPERATIONS' callbacks with unknown deregistration function."} */
     929           2 :    ldv_dispatch_default_deregister_5_7_5();
     930             :    /* LDV {"action": "DEFAULT_DEREGISTER_5", "type": "DISPATCH_END"} */
     931             : 
     932             :    /* LDV {"action": "DEFAULT_DEREGISTER_4", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_DENTRY_OPERATIONS' callbacks with unknown deregistration function."} */
     933           2 :    ldv_dispatch_default_deregister_4_7_4();
     934             :    /* LDV {"action": "DEFAULT_DEREGISTER_4", "type": "DISPATCH_END"} */
     935             : 
     936             :   }
     937             :   else {
     938             :    /* LDV {"action": "NONE", "type": "CONDITION_BEGIN", "comment": "Skip default callbacks registrations and deregistrations."} */
     939             :    /* LDV {"action": "NONE", "type": "CONDITION_END"} */
     940             : 
     941             :   }
     942             :   /* LDV {"action": "EXIT_AUTOFS4_FS", "type": "CALL_BEGIN", "callback": true, "comment": "Exit the module before its unloading with 'exit_autofs4_fs' function. Invoke callback exit_autofs4_fs from ARTIFICIAL."} */
     943             :   /* LDV {"type": "CALLBACK", "call": "(exit_autofs4_fs)();", "comment": "exit_autofs4_fs"} */
     944           4 :   ldv_insmod_exit_autofs4_fs_7_2(ldv_7_exit_autofs4_fs_default);
     945             :   /* LDV {"action": "EXIT_AUTOFS4_FS", "type": "CALL_END"} */
     946             : 
     947             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
     948             :   /* Skip a non-replicative signal receiving */
     949             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
     950             : 
     951             :   /* Exit function at a terminal state */
     952           1 :   return;
     953             :  }
     954             :  /* End of the process */
     955             :  return;
     956             :  /* LDV {"comment": "End of control function based on process 'insmod(artificial)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_insmod_7"} */
     957             : }
     958             : 
     959             : /* AUX_FUNC_CALLBACK ldv_insmod_exit_autofs4_fs_7_2 */
     960             : void ldv_insmod_exit_autofs4_fs_7_2(void (*arg0)(void)) {
     961           4 :  (exit_autofs4_fs)();
     962           2 : }
     963             : 
     964             : /* AUX_FUNC_CALLBACK ldv_insmod_init_autofs4_fs_7_13 */
     965             : int ldv_insmod_init_autofs4_fs_7_13(int (*arg0)(void)) {
     966           4 :  return (init_autofs4_fs)();
     967           1 : }
     968             : 
     969             : /* AUX_FUNC ldv_main_10 */
     970             : void ldv_main_10(void *arg0) {
     971             :  /* LDV {"thread": 10, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'main(main)'", "function": "ldv_main_10"} */
     972             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     973             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     974             :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Initialize rule models."} */
     975           1 :  ldv_initialize();
     976             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
     977             : 
     978             :  /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Start environment model scenarios."} */
     979           2 :  ldv_dispatch_insmod_register_10_3();
     980             :  /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_END"} */
     981             : 
     982             :  /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Stop environment model scenarios."} */
     983           2 :  ldv_dispatch_insmod_deregister_10_2();
     984             :  /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_END"} */
     985             : 
     986             :  /* LDV {"action": "FINAL", "type": "CONDITION_BEGIN", "comment": "Check rule model state at the exit."} */
     987           1 :  ldv_check_final_state();
     988           1 :  ldv_stop();
     989             :  /* LDV {"action": "FINAL", "type": "CONDITION_END"} */
     990             : 
     991             :  /* Exit function at a terminal state */
     992           0 :  return;
     993             :  /* End of the process */
     994             :  return;
     995             :  /* LDV {"comment": "End of control function based on process 'main(main)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_main_10"} */
     996             : }
     997             : 
     998             : /* AUX_FUNC ldv_random_containerless_scenario_4 */
     999             : void ldv_random_containerless_scenario_4(void *arg0) {
    1000             :  /* LDV {"thread": 4, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_dentry_operations)'", "function": "ldv_random_containerless_scenario_4"} */
    1001           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1002           1 :  void (*ldv_4_callback_d_release)(struct dentry *);
    1003           1 :  int (*ldv_4_callback_d_revalidate)(struct dentry *, struct nameidata *);
    1004           1 :  struct dentry *ldv_4_container_struct_dentry_ptr;
    1005           1 :  struct nameidata *ldv_4_container_struct_nameidata_ptr;
    1006           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1007           1 :  /* LDV {"action": "DEFAULT_REGISTER_4", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_DENTRY_OPERATIONS callbacks invocations scenario."} */
    1008           2 :  ldv_free(arg0);
    1009             :  /* LDV {"action": "DEFAULT_REGISTER_4", "type": "RECEIVE_END"} */
    1010             : 
    1011             :  /* LDV {"action": "DEFAULT_ALLOC_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
    1012           3 :  ldv_4_container_struct_dentry_ptr = ldv_xmalloc_unknown_size(0);
    1013           3 :  ldv_4_container_struct_nameidata_ptr = ldv_xmalloc_unknown_size(0);
    1014             :  /* LDV {"action": "DEFAULT_ALLOC_4", "type": "CONDITION_END"} */
    1015             : 
    1016             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1017             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1018             : 
    1019             :  /* Jump to a subprocess 'call' initial state */
    1020           1 :  goto ldv_call_4;
    1021             :  /* End of the process */
    1022             :  return;
    1023           1 : 
    1024             :  /* Sbprocess call */
    1025             :  ldv_call_4:
    1026             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1027             : 
    1028           2 :  switch (ldv_undef_int()) {
    1029           3 :   case 1: {
    1030             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback d_revalidate from dentry_operations."} */
    1031             :    /* LDV {"type": "CALLBACK", "call": "((& autofs4_revalidate))(ldv_4_container_struct_dentry_ptr, ldv_4_container_struct_nameidata_ptr);", "comment": "callback"} */
    1032           2 :    ldv_random_containerless_scenario_callback_4_8(ldv_4_callback_d_revalidate, ldv_4_container_struct_dentry_ptr, ldv_4_container_struct_nameidata_ptr);
    1033             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1034             : 
    1035             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1036             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1037             : 
    1038             :    /* Jump to a subprocess 'call' initial state */
    1039           1 :    goto ldv_call_4;
    1040           1 :    break;
    1041             :   }
    1042           3 :   case 2: {
    1043             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback d_release from dentry_operations."} */
    1044             :    /* LDV {"type": "CALLBACK", "call": "((& autofs4_dentry_release))(ldv_4_container_struct_dentry_ptr);", "comment": "callback"} */
    1045           2 :    ldv_random_containerless_scenario_callback_4_4(ldv_4_callback_d_release, ldv_4_container_struct_dentry_ptr);
    1046             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1047             : 
    1048             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1049             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1050             : 
    1051             :    /* Jump to a subprocess 'call' initial state */
    1052           1 :    goto ldv_call_4;
    1053             :    /* Jump to a subprocess 'call' initial state */
    1054             :    goto ldv_call_4;
    1055           1 :    break;
    1056             :   }
    1057           3 :   case 3: {
    1058             :    /* LDV {"action": "DEFAULT_FREE_4", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
    1059           2 :    ldv_free(ldv_4_container_struct_dentry_ptr);
    1060           2 :    ldv_free(ldv_4_container_struct_nameidata_ptr);
    1061             :    /* LDV {"action": "DEFAULT_FREE_4", "type": "CONDITION_END"} */
    1062             : 
    1063             :    /* LDV {"action": "DEFAULT_DEREGISTER_4", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_DENTRY_OPERATIONS callbacks invocations scenario."} */
    1064             :    /* Skip a non-replicative signal receiving */
    1065             :    /* LDV {"action": "DEFAULT_DEREGISTER_4", "type": "RECEIVE_END"} */
    1066             : 
    1067             :    /* Exit function at a terminal state */
    1068           1 :    return;
    1069           1 :    break;
    1070             :   }
    1071           2 :   default: ldv_stop();
    1072           1 :  }
    1073           0 :  /* End of the subprocess 'call' */
    1074           0 :  return;
    1075             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_dentry_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_4"} */
    1076             : }
    1077             : 
    1078             : /* AUX_FUNC ldv_random_containerless_scenario_5 */
    1079             : void ldv_random_containerless_scenario_5(void *arg0) {
    1080             :  /* LDV {"thread": 5, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_inode_operations)'", "function": "ldv_random_containerless_scenario_5"} */
    1081           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1082           1 :  void *(*ldv_5_callback_follow_link)(struct dentry *, struct nameidata *);
    1083           1 :  struct dentry *(*ldv_5_callback_lookup)(struct inode *, struct dentry *, struct nameidata *);
    1084           1 :  int (*ldv_5_callback_mkdir)(struct inode *, struct dentry *, int);
    1085           1 :  int (*ldv_5_callback_readlink)(struct dentry *, char *, int);
    1086           1 :  int (*ldv_5_callback_rmdir)(struct inode *, struct dentry *);
    1087           1 :  int (*ldv_5_callback_symlink)(struct inode *, struct dentry *, char *);
    1088           1 :  int (*ldv_5_callback_unlink)(struct inode *, struct dentry *);
    1089           1 :  struct dentry *ldv_5_container_struct_dentry_ptr;
    1090           1 :  struct inode *ldv_5_container_struct_inode_ptr;
    1091           1 :  struct nameidata *ldv_5_container_struct_nameidata_ptr;
    1092           1 :  char *ldv_5_ldv_param_12_1_default;
    1093           1 :  int ldv_5_ldv_param_12_2_default;
    1094           1 :  char *ldv_5_ldv_param_16_2_default;
    1095           1 :  int ldv_5_ldv_param_9_2_default;
    1096           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1097           1 :  /* LDV {"action": "DEFAULT_REGISTER_5", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_INODE_OPERATIONS callbacks invocations scenario."} */
    1098           3 :  ldv_free(arg0);
    1099           1 :  /* LDV {"action": "DEFAULT_REGISTER_5", "type": "RECEIVE_END"} */
    1100           1 : 
    1101             :  /* LDV {"action": "DEFAULT_ALLOC_5", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
    1102           3 :  ldv_5_container_struct_dentry_ptr = ldv_xmalloc_unknown_size(0);
    1103           3 :  ldv_5_container_struct_inode_ptr = ldv_xmalloc_unknown_size(0);
    1104           3 :  ldv_5_container_struct_nameidata_ptr = ldv_xmalloc_unknown_size(0);
    1105             :  /* LDV {"action": "DEFAULT_ALLOC_5", "type": "CONDITION_END"} */
    1106             : 
    1107             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1108             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1109             : 
    1110             :  /* Jump to a subprocess 'call' initial state */
    1111           1 :  goto ldv_call_5;
    1112             :  /* End of the process */
    1113             :  return;
    1114           1 : 
    1115             :  /* Sbprocess call */
    1116             :  ldv_call_5:
    1117             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1118             : 
    1119           2 :  switch (ldv_undef_int()) {
    1120           3 :   case 1: {
    1121             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback unlink from inode_operations."} */
    1122             :    /* LDV {"type": "CALLBACK", "call": "((& autofs4_dir_unlink))(ldv_5_container_struct_inode_ptr, ldv_5_container_struct_dentry_ptr);", "comment": "callback"} */
    1123           2 :    ldv_random_containerless_scenario_callback_5_19(ldv_5_callback_unlink, ldv_5_container_struct_inode_ptr, ldv_5_container_struct_dentry_ptr);
    1124             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1125             : 
    1126             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1127             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1128             : 
    1129             :    /* Jump to a subprocess 'call' initial state */
    1130           1 :    goto ldv_call_5;
    1131           1 :    break;
    1132             :   }
    1133           3 :   case 2: {
    1134             :    /* LDV {"action": "PRE_CALL_16", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1135           3 :    ldv_5_ldv_param_16_2_default = ldv_xmalloc_unknown_size(0);
    1136             :    /* LDV {"action": "PRE_CALL_16", "type": "CONDITION_END"} */
    1137             : 
    1138             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback symlink from inode_operations."} */
    1139             :    /* LDV {"type": "CALLBACK", "call": "((& autofs4_dir_symlink))(ldv_5_container_struct_inode_ptr, ldv_5_container_struct_dentry_ptr, ldv_5_ldv_param_16_2_default);", "comment": "callback"} */
    1140           2 :    ldv_random_containerless_scenario_callback_5_16(ldv_5_callback_symlink, ldv_5_container_struct_inode_ptr, ldv_5_container_struct_dentry_ptr, ldv_5_ldv_param_16_2_default);
    1141             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1142             : 
    1143             :    /* LDV {"action": "POST_CALL_16", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1144           2 :    ldv_free(ldv_5_ldv_param_16_2_default);
    1145             :    /* LDV {"action": "POST_CALL_16", "type": "CONDITION_END"} */
    1146             : 
    1147             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1148             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1149             : 
    1150             :    /* Jump to a subprocess 'call' initial state */
    1151           1 :    goto ldv_call_5;
    1152             :    /* Jump to a subprocess 'call' initial state */
    1153             :    goto ldv_call_5;
    1154           1 :    break;
    1155             :   }
    1156           3 :   case 3: {
    1157             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback rmdir from inode_operations."} */
    1158             :    /* LDV {"type": "CALLBACK", "call": "((& autofs4_dir_rmdir))(ldv_5_container_struct_inode_ptr, ldv_5_container_struct_dentry_ptr);", "comment": "callback"} */
    1159           2 :    ldv_random_containerless_scenario_callback_5_15(ldv_5_callback_rmdir, ldv_5_container_struct_inode_ptr, ldv_5_container_struct_dentry_ptr);
    1160             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1161             : 
    1162             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1163             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1164             : 
    1165             :    /* Jump to a subprocess 'call' initial state */
    1166           1 :    goto ldv_call_5;
    1167             :    /* Jump to a subprocess 'call' initial state */
    1168             :    goto ldv_call_5;
    1169             :    /* Jump to a subprocess 'call' initial state */
    1170             :    goto ldv_call_5;
    1171           1 :    break;
    1172             :   }
    1173           3 :   case 4: {
    1174             :    /* LDV {"action": "PRE_CALL_12", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1175           3 :    ldv_5_ldv_param_12_1_default = ldv_xmalloc_unknown_size(0);
    1176             :    /* LDV {"action": "PRE_CALL_12", "type": "CONDITION_END"} */
    1177             : 
    1178             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback readlink from inode_operations."} */
    1179             :    /* LDV {"type": "CALLBACK", "call": "((& generic_readlink))(ldv_5_container_struct_dentry_ptr, ldv_5_ldv_param_12_1_default, ldv_5_ldv_param_12_2_default);", "comment": "callback"} */
    1180           2 :    ldv_random_containerless_scenario_callback_5_12(ldv_5_callback_readlink, ldv_5_container_struct_dentry_ptr, ldv_5_ldv_param_12_1_default, ldv_5_ldv_param_12_2_default);
    1181             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1182             : 
    1183             :    /* LDV {"action": "POST_CALL_12", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1184           2 :    ldv_free(ldv_5_ldv_param_12_1_default);
    1185             :    /* LDV {"action": "POST_CALL_12", "type": "CONDITION_END"} */
    1186             : 
    1187             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1188             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1189             : 
    1190             :    /* Jump to a subprocess 'call' initial state */
    1191           1 :    goto ldv_call_5;
    1192             :    /* Jump to a subprocess 'call' initial state */
    1193             :    goto ldv_call_5;
    1194             :    /* Jump to a subprocess 'call' initial state */
    1195             :    goto ldv_call_5;
    1196             :    /* Jump to a subprocess 'call' initial state */
    1197             :    goto ldv_call_5;
    1198           1 :    break;
    1199             :   }
    1200           3 :   case 5: {
    1201             :    /* LDV {"action": "PRE_CALL_9", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
    1202             :    /* LDV {"action": "PRE_CALL_9", "type": "CONDITION_END"} */
    1203             : 
    1204             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback mkdir from inode_operations."} */
    1205             :    /* LDV {"type": "CALLBACK", "call": "((& autofs4_dir_mkdir))(ldv_5_container_struct_inode_ptr, ldv_5_container_struct_dentry_ptr, ldv_5_ldv_param_9_2_default);", "comment": "callback"} */
    1206           2 :    ldv_random_containerless_scenario_callback_5_9(ldv_5_callback_mkdir, ldv_5_container_struct_inode_ptr, ldv_5_container_struct_dentry_ptr, ldv_5_ldv_param_9_2_default);
    1207             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1208             : 
    1209             :    /* LDV {"action": "POST_CALL_9", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
    1210             :    /* LDV {"action": "POST_CALL_9", "type": "CONDITION_END"} */
    1211             : 
    1212             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1213             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1214             : 
    1215             :    /* Jump to a subprocess 'call' initial state */
    1216           1 :    goto ldv_call_5;
    1217             :    /* Jump to a subprocess 'call' initial state */
    1218             :    goto ldv_call_5;
    1219             :    /* Jump to a subprocess 'call' initial state */
    1220             :    goto ldv_call_5;
    1221             :    /* Jump to a subprocess 'call' initial state */
    1222             :    goto ldv_call_5;
    1223             :    /* Jump to a subprocess 'call' initial state */
    1224             :    goto ldv_call_5;
    1225           1 :    break;
    1226             :   }
    1227           3 :   case 6: {
    1228             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback lookup from inode_operations."} */
    1229             :    /* LDV {"type": "CALLBACK", "call": "((& autofs4_lookup))(ldv_5_container_struct_inode_ptr, ldv_5_container_struct_dentry_ptr, ldv_5_container_struct_nameidata_ptr);", "comment": "callback"} */
    1230           2 :    ldv_random_containerless_scenario_callback_5_8(ldv_5_callback_lookup, ldv_5_container_struct_inode_ptr, ldv_5_container_struct_dentry_ptr, ldv_5_container_struct_nameidata_ptr);
    1231             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1232             : 
    1233             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1234             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1235             : 
    1236             :    /* Jump to a subprocess 'call' initial state */
    1237           1 :    goto ldv_call_5;
    1238             :    /* Jump to a subprocess 'call' initial state */
    1239             :    goto ldv_call_5;
    1240             :    /* Jump to a subprocess 'call' initial state */
    1241             :    goto ldv_call_5;
    1242             :    /* Jump to a subprocess 'call' initial state */
    1243             :    goto ldv_call_5;
    1244             :    /* Jump to a subprocess 'call' initial state */
    1245             :    goto ldv_call_5;
    1246             :    /* Jump to a subprocess 'call' initial state */
    1247             :    goto ldv_call_5;
    1248           1 :    break;
    1249             :   }
    1250           3 :   case 7: {
    1251             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback follow_link from inode_operations."} */
    1252             :    /* LDV {"type": "CALLBACK", "call": "((& autofs4_follow_link))(ldv_5_container_struct_dentry_ptr, ldv_5_container_struct_nameidata_ptr);", "comment": "callback"} */
    1253           2 :    ldv_random_containerless_scenario_callback_5_4(ldv_5_callback_follow_link, ldv_5_container_struct_dentry_ptr, ldv_5_container_struct_nameidata_ptr);
    1254             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1255             : 
    1256             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1257             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1258             : 
    1259             :    /* Jump to a subprocess 'call' initial state */
    1260           1 :    goto ldv_call_5;
    1261             :    /* Jump to a subprocess 'call' initial state */
    1262             :    goto ldv_call_5;
    1263             :    /* Jump to a subprocess 'call' initial state */
    1264             :    goto ldv_call_5;
    1265             :    /* Jump to a subprocess 'call' initial state */
    1266             :    goto ldv_call_5;
    1267             :    /* Jump to a subprocess 'call' initial state */
    1268             :    goto ldv_call_5;
    1269             :    /* Jump to a subprocess 'call' initial state */
    1270             :    goto ldv_call_5;
    1271             :    /* Jump to a subprocess 'call' initial state */
    1272             :    goto ldv_call_5;
    1273           1 :    break;
    1274             :   }
    1275           3 :   case 8: {
    1276             :    /* LDV {"action": "DEFAULT_FREE_5", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
    1277           2 :    ldv_free(ldv_5_container_struct_dentry_ptr);
    1278           2 :    ldv_free(ldv_5_container_struct_inode_ptr);
    1279           2 :    ldv_free(ldv_5_container_struct_nameidata_ptr);
    1280             :    /* LDV {"action": "DEFAULT_FREE_5", "type": "CONDITION_END"} */
    1281             : 
    1282             :    /* LDV {"action": "DEFAULT_DEREGISTER_5", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_INODE_OPERATIONS callbacks invocations scenario."} */
    1283             :    /* Skip a non-replicative signal receiving */
    1284             :    /* LDV {"action": "DEFAULT_DEREGISTER_5", "type": "RECEIVE_END"} */
    1285             : 
    1286             :    /* Exit function at a terminal state */
    1287           1 :    return;
    1288           1 :    break;
    1289             :   }
    1290           2 :   default: ldv_stop();
    1291           1 :  }
    1292           0 :  /* End of the subprocess 'call' */
    1293           0 :  return;
    1294             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_inode_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_5"} */
    1295             : }
    1296             : 
    1297             : /* AUX_FUNC ldv_random_containerless_scenario_6 */
    1298             : void ldv_random_containerless_scenario_6(void *arg0) {
    1299             :  /* LDV {"thread": 6, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_super_operations)'", "function": "ldv_random_containerless_scenario_6"} */
    1300           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
    1301           1 :  int (*ldv_6_callback_show_options)(struct seq_file *, struct vfsmount *);
    1302           1 :  int (*ldv_6_callback_statfs)(struct dentry *, struct kstatfs *);
    1303           1 :  struct dentry *ldv_6_container_struct_dentry_ptr;
    1304           1 :  struct kstatfs *ldv_6_container_struct_kstatfs_ptr;
    1305           1 :  struct seq_file *ldv_6_container_struct_seq_file_ptr;
    1306           1 :  struct vfsmount *ldv_6_container_struct_vfsmount_ptr;
    1307           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
    1308           1 :  /* LDV {"action": "DEFAULT_REGISTER_6", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_SUPER_OPERATIONS callbacks invocations scenario."} */
    1309           3 :  ldv_free(arg0);
    1310           1 :  /* LDV {"action": "DEFAULT_REGISTER_6", "type": "RECEIVE_END"} */
    1311             : 
    1312             :  /* LDV {"action": "DEFAULT_ALLOC_6", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
    1313           3 :  ldv_6_container_struct_dentry_ptr = ldv_xmalloc_unknown_size(0);
    1314           3 :  ldv_6_container_struct_kstatfs_ptr = ldv_xmalloc_unknown_size(0);
    1315           3 :  ldv_6_container_struct_seq_file_ptr = ldv_xmalloc_unknown_size(0);
    1316           3 :  ldv_6_container_struct_vfsmount_ptr = ldv_xmalloc_unknown_size(0);
    1317             :  /* LDV {"action": "DEFAULT_ALLOC_6", "type": "CONDITION_END"} */
    1318             : 
    1319             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1320             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1321             : 
    1322             :  /* Jump to a subprocess 'call' initial state */
    1323           1 :  goto ldv_call_6;
    1324             :  /* End of the process */
    1325             :  return;
    1326           1 : 
    1327             :  /* Sbprocess call */
    1328             :  ldv_call_6:
    1329             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1330             : 
    1331           2 :  switch (ldv_undef_int()) {
    1332           3 :   case 1: {
    1333             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback statfs from super_operations."} */
    1334             :    /* LDV {"type": "CALLBACK", "call": "((& simple_statfs))(ldv_6_container_struct_dentry_ptr, ldv_6_container_struct_kstatfs_ptr);", "comment": "callback"} */
    1335           2 :    ldv_random_containerless_scenario_callback_6_8(ldv_6_callback_statfs, ldv_6_container_struct_dentry_ptr, ldv_6_container_struct_kstatfs_ptr);
    1336             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1337             : 
    1338             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1339             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1340             : 
    1341             :    /* Jump to a subprocess 'call' initial state */
    1342           1 :    goto ldv_call_6;
    1343           1 :    break;
    1344             :   }
    1345           3 :   case 2: {
    1346             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback show_options from super_operations."} */
    1347             :    /* LDV {"type": "CALLBACK", "call": "((& autofs4_show_options))(ldv_6_container_struct_seq_file_ptr, ldv_6_container_struct_vfsmount_ptr);", "comment": "callback"} */
    1348           2 :    ldv_random_containerless_scenario_callback_6_4(ldv_6_callback_show_options, ldv_6_container_struct_seq_file_ptr, ldv_6_container_struct_vfsmount_ptr);
    1349             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1350             : 
    1351             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1352             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1353             : 
    1354             :    /* Jump to a subprocess 'call' initial state */
    1355           1 :    goto ldv_call_6;
    1356             :    /* Jump to a subprocess 'call' initial state */
    1357             :    goto ldv_call_6;
    1358           1 :    break;
    1359             :   }
    1360           3 :   case 3: {
    1361             :    /* LDV {"action": "DEFAULT_FREE_6", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
    1362           2 :    ldv_free(ldv_6_container_struct_dentry_ptr);
    1363           2 :    ldv_free(ldv_6_container_struct_kstatfs_ptr);
    1364           2 :    ldv_free(ldv_6_container_struct_seq_file_ptr);
    1365           2 :    ldv_free(ldv_6_container_struct_vfsmount_ptr);
    1366             :    /* LDV {"action": "DEFAULT_FREE_6", "type": "CONDITION_END"} */
    1367             : 
    1368             :    /* LDV {"action": "DEFAULT_DEREGISTER_6", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_SUPER_OPERATIONS callbacks invocations scenario."} */
    1369             :    /* Skip a non-replicative signal receiving */
    1370             :    /* LDV {"action": "DEFAULT_DEREGISTER_6", "type": "RECEIVE_END"} */
    1371             : 
    1372             :    /* Exit function at a terminal state */
    1373           1 :    return;
    1374           1 :    break;
    1375             :   }
    1376           2 :   default: ldv_stop();
    1377           1 :  }
    1378           0 :  /* End of the subprocess 'call' */
    1379           0 :  return;
    1380             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_super_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_6"} */
    1381             : }
    1382             : 
    1383             : /* AUX_FUNC main */
    1384             : int main() {
    1385           1 :  ldv_main_10(0);
    1386           0 :  return 0;
    1387             : }
    1388             : 
    1389             : 
    1390             : /* AUX_FUNC  ERR_PTR */
    1391             : static inline void *ERR_PTR (long int error)
    1392             : {
    1393             : 
    1394             :  return ldv_err_ptr(error);
    1395             : }
    1396             : 
    1397             : /* AUX_FUNC  PTR_ERR */
    1398             : static inline long int PTR_ERR (void const *ptr)
    1399             : {
    1400             : 
    1401             :  return ldv_ptr_err(ptr);
    1402             : }
    1403             : 
    1404             : /* AUX_FUNC  IS_ERR */
    1405             : static inline long int IS_ERR (void const *ptr)
    1406             : {
    1407             : 
    1408             :  return ldv_is_err(ptr);
    1409             : }
    1410             : 
    1411             : /* AUX_FUNC  IS_ERR_OR_NULL */
    1412             : static inline long int IS_ERR_OR_NULL (void const *ptr)
    1413             : {
    1414             : 
    1415             :  return ldv_is_err_or_null(ptr);
    1416             : }
    1417             : 
    1418             : /* AUX_FUNC  kzalloc */
    1419             : static inline void *kzalloc (size_t size, gfp_t flags)
    1420             : {
    1421             : 
    1422             :  return ldv_kzalloc(size, flags);
    1423             : }

Generated by: LCOV version 1.10