LCOV - code coverage report
Current view: top level - avtg/fs/configfs/configfs.ko/linux:drivers:clk2/weaver - mount.c.aux (source / functions) Hit Total Coverage
Test: coverage.info Lines: 315 325 96.9 %
Date: 2017-01-25 Functions: 35 35 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/miscdevice.h>
      30             : #include <linux/fs.h>
      31             : #include <linux/pagemap.h>
      32             : 
      33             : 
      34             : struct ldv_struct_insmod_8 {
      35             :  int signal_pending;
      36             : };
      37           1 : 
      38             : struct ldv_struct_random_containerless_scenario_5 {
      39             :  struct file_system_type *arg0;
      40             :  int signal_pending;
      41             : };
      42             : 
      43             : /* EMG Function declarations */
      44             : extern void ldv_character_driver_scenario_1(void *);
      45             : extern void ldv_character_driver_scenario_2(void *);
      46             : void ldv_character_driver_scenario_callback_2_25(int (*)(struct file *, void *, filldir_t ), struct file *, void *, int (*)(void *, char *, int, loff_t , u64 , unsigned int));
      47             : 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 *);
      48             : void ldv_dispatch_default_deregister_1_8_5(void);
      49             : void ldv_dispatch_default_deregister_2_8_6(void);
      50             : void ldv_dispatch_default_deregister_3_8_7(void);
      51             : void ldv_dispatch_default_deregister_7_8_8(void);
      52             : void ldv_dispatch_default_deregister_8_8_4(void);
      53             : void ldv_dispatch_default_register_1_8_12(void);
      54             : void ldv_dispatch_default_register_2_8_11(void);
      55             : void ldv_dispatch_default_register_3_8_10(void);
      56             : void ldv_dispatch_default_register_7_8_9(void);
      57             : void ldv_dispatch_default_register_8_8_13(void);
      58             : void ldv_dispatch_deregister_9_1(struct file_system_type *);
      59             : void ldv_dispatch_insmod_deregister_11_2(void);
      60             : void ldv_dispatch_insmod_register_11_3(void);
      61             : void ldv_dispatch_register_10_3(struct file_system_type *);
      62             : int ldv_emg_register_filesystem(struct file_system_type *);
      63             : int ldv_emg_unregister_filesystem(struct file_system_type *);
      64             : void ldv_insmod_8(void *);
      65             : void ldv_insmod_configfs_exit_8_2(void (*)(void));
      66             : int ldv_insmod_configfs_init_8_17(int (*)(void));
      67             : void ldv_main_11(void *);
      68             : void ldv_random_containerless_scenario_3(void *);
      69             : void ldv_random_containerless_scenario_4(void *);
      70             : void ldv_random_containerless_scenario_5(void *);
      71             : void ldv_random_containerless_scenario_6(void *);
      72             : void ldv_random_containerless_scenario_7(void *);
      73             : extern void ldv_random_containerless_scenario_callback_3_11(int (*)(struct file *, struct address_space *, loff_t , unsigned int, unsigned int, struct page *, void *), struct file *, struct address_space *, long long int, unsigned int, unsigned int, struct page *, void *);
      74             : extern void ldv_random_containerless_scenario_callback_3_4(int (*)(struct file *, struct page *), struct file *, struct page *);
      75             : extern void ldv_random_containerless_scenario_callback_3_8(int (*)(struct file *, struct address_space *, loff_t , unsigned int, unsigned int, struct page **, void **), struct file *, struct address_space *, long long int, unsigned int, unsigned int, struct page **, void **);
      76             : extern void ldv_random_containerless_scenario_callback_4_4(int (*)(struct dentry *), struct dentry *);
      77             : extern void ldv_random_containerless_scenario_callback_4_8(void (*)(struct dentry *, struct inode *), struct dentry *, struct inode *);
      78             : void ldv_random_containerless_scenario_callback_5_3(int (*)(struct file_system_type *, int, char *, void *, struct vfsmount *), struct file_system_type *, int, char *, void *, struct vfsmount *);
      79             : void ldv_random_containerless_scenario_callback_5_8(void (*)(struct super_block *), struct super_block *);
      80             : extern void ldv_random_containerless_scenario_callback_6_12(void (*)(struct dentry *, struct nameidata *, void *), struct dentry *, struct nameidata *, void *);
      81             : extern void ldv_random_containerless_scenario_callback_6_13(int (*)(struct dentry *, char *, int), struct dentry *, char *, int);
      82             : extern void ldv_random_containerless_scenario_callback_6_16(int (*)(struct inode *, struct dentry *), struct inode *, struct dentry *);
      83             : extern void ldv_random_containerless_scenario_callback_6_17(int (*)(struct dentry *, struct iattr *), struct dentry *, struct iattr *);
      84             : extern void ldv_random_containerless_scenario_callback_6_18(int (*)(struct inode *, struct dentry *, char *), struct inode *, struct dentry *, char *);
      85             : extern void ldv_random_containerless_scenario_callback_6_21(int (*)(struct inode *, struct dentry *), struct inode *, struct dentry *);
      86             : extern void ldv_random_containerless_scenario_callback_6_4(void *(*)(struct dentry *, struct nameidata *), struct dentry *, struct nameidata *);
      87             : extern void ldv_random_containerless_scenario_callback_6_8(struct dentry *(*)(struct inode *, struct dentry *, struct nameidata *), struct inode *, struct dentry *, struct nameidata *);
      88             : extern void ldv_random_containerless_scenario_callback_6_9(int (*)(struct inode *, struct dentry *, int), struct inode *, struct dentry *, int);
      89             : void ldv_random_containerless_scenario_callback_7_4(void (*)(struct inode *), struct inode *);
      90             : void ldv_random_containerless_scenario_callback_7_8(int (*)(struct dentry *, struct kstatfs *), struct dentry *, struct kstatfs *);
      91             : int main(void);
      92             : 
      93             : /* EMG variable declarations */
      94           1 : struct ldv_thread ldv_thread_11;
      95           1 : struct ldv_thread ldv_thread_3;
      96           1 : struct ldv_thread ldv_thread_4;
      97           1 : struct ldv_thread ldv_thread_5;
      98           1 : struct ldv_thread ldv_thread_6;
      99           1 : struct ldv_thread ldv_thread_7;
     100           1 : struct ldv_thread ldv_thread_8;
     101             : 
     102             : /* EMG variable initialization */
     103             : 
     104             : /* EMG function definitions */
     105             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_callback_2_25 */
     106             : void ldv_character_driver_scenario_callback_2_25(int (*arg0)(struct file *, void *, filldir_t ), struct file *arg1, void *arg2, int (*arg3)(void *, char *, int, loff_t , u64 , unsigned int)) {
     107           2 :  (*arg0)(arg1, arg2, arg3);
     108           1 : }
     109             : 
     110             : /* AUX_FUNC_CALLBACK ldv_character_driver_scenario_write_1_4 */
     111             : 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) {
     112           3 :  (*arg0)(arg1, arg2, arg3, arg4);
     113           1 : }
     114             : 
     115             : /* AUX_FUNC ldv_dispatch_default_deregister_1_8_5 */
     116             : void ldv_dispatch_default_deregister_1_8_5() {
     117             :  struct ldv_struct_insmod_8 *cf_arg_1;
     118             :  struct ldv_struct_insmod_8 *cf_arg_2;
     119             :  /* Skip thread join call */
     120             :  /* Skip thread join call */
     121           1 :  return;
     122             : }
     123             : 
     124             : /* AUX_FUNC ldv_dispatch_default_deregister_2_8_6 */
     125             : void ldv_dispatch_default_deregister_2_8_6() {
     126             :  struct ldv_struct_insmod_8 *cf_arg_3;
     127             :  /* Skip thread join call */
     128           1 :  return;
     129             : }
     130             : 
     131             : /* AUX_FUNC ldv_dispatch_default_deregister_3_8_7 */
     132             : void ldv_dispatch_default_deregister_3_8_7() {
     133             :  struct ldv_struct_insmod_8 *cf_arg_4;
     134             :  /* Skip thread join call */
     135           1 :  return;
     136             : }
     137             : 
     138             : /* AUX_FUNC ldv_dispatch_default_deregister_7_8_8 */
     139             : void ldv_dispatch_default_deregister_7_8_8() {
     140             :  struct ldv_struct_insmod_8 *cf_arg_6;
     141             :  /* Skip thread join call */
     142           1 :  return;
     143             : }
     144             : 
     145             : /* AUX_FUNC ldv_dispatch_default_deregister_8_8_4 */
     146             : void ldv_dispatch_default_deregister_8_8_4() {
     147             :  struct ldv_struct_insmod_8 *cf_arg_7;
     148             :  /* Skip thread join call */
     149           1 :  return;
     150             : }
     151             : 
     152             : /* AUX_FUNC ldv_dispatch_default_register_1_8_12 */
     153             : void ldv_dispatch_default_register_1_8_12() {
     154             :  struct ldv_struct_insmod_8 *cf_arg_1;
     155           1 :  struct ldv_struct_insmod_8 *cf_arg_2;
     156           4 :  cf_arg_1 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     157           3 :  ldv_character_driver_scenario_1(cf_arg_1);
     158           4 :  cf_arg_2 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     159           2 :  ldv_character_driver_scenario_2(cf_arg_2);
     160           1 :  return;
     161             : }
     162             : 
     163             : /* AUX_FUNC ldv_dispatch_default_register_2_8_11 */
     164             : void ldv_dispatch_default_register_2_8_11() {
     165             :  struct ldv_struct_insmod_8 *cf_arg_3;
     166           4 :  cf_arg_3 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     167           3 :  ldv_random_containerless_scenario_3(cf_arg_3);
     168           1 :  return;
     169             : }
     170             : 
     171             : /* AUX_FUNC ldv_dispatch_default_register_3_8_10 */
     172             : void ldv_dispatch_default_register_3_8_10() {
     173             :  struct ldv_struct_insmod_8 *cf_arg_4;
     174           4 :  cf_arg_4 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     175           3 :  ldv_random_containerless_scenario_4(cf_arg_4);
     176           1 :  return;
     177             : }
     178             : 
     179             : /* AUX_FUNC ldv_dispatch_default_register_7_8_9 */
     180             : void ldv_dispatch_default_register_7_8_9() {
     181             :  struct ldv_struct_insmod_8 *cf_arg_6;
     182           4 :  cf_arg_6 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     183           3 :  ldv_random_containerless_scenario_6(cf_arg_6);
     184           1 :  return;
     185             : }
     186             : 
     187             : /* AUX_FUNC ldv_dispatch_default_register_8_8_13 */
     188             : void ldv_dispatch_default_register_8_8_13() {
     189             :  struct ldv_struct_insmod_8 *cf_arg_7;
     190           4 :  cf_arg_7 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     191           3 :  ldv_random_containerless_scenario_7(cf_arg_7);
     192           1 :  return;
     193             : }
     194             : 
     195             : /* AUX_FUNC ldv_dispatch_deregister_9_1 */
     196             : void ldv_dispatch_deregister_9_1(struct file_system_type *arg0) {
     197             :  struct ldv_struct_random_containerless_scenario_5 *cf_arg_5;
     198             :  /* Skip thread join call */
     199           3 :  return;
     200             : }
     201             : 
     202             : /* AUX_FUNC ldv_dispatch_insmod_deregister_11_2 */
     203             : void ldv_dispatch_insmod_deregister_11_2() {
     204             :  struct ldv_struct_insmod_8 *cf_arg_8;
     205             :  /* Skip thread join call */
     206           1 :  return;
     207             : }
     208             : 
     209             : /* AUX_FUNC ldv_dispatch_insmod_register_11_3 */
     210             : void ldv_dispatch_insmod_register_11_3() {
     211             :  struct ldv_struct_insmod_8 *cf_arg_8;
     212           4 :  cf_arg_8 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_8));
     213           4 :  ldv_insmod_8(cf_arg_8);
     214           1 :  return;
     215             : }
     216             : 
     217             : /* AUX_FUNC ldv_dispatch_register_10_3 */
     218             : void ldv_dispatch_register_10_3(struct file_system_type *arg0) {
     219             :  struct ldv_struct_random_containerless_scenario_5 *cf_arg_5;
     220           4 :  cf_arg_5 = ldv_xmalloc(sizeof(struct ldv_struct_random_containerless_scenario_5));
     221           2 :  cf_arg_5->arg0 = arg0;
     222           2 :  ldv_random_containerless_scenario_5(cf_arg_5);
     223           1 :  return;
     224             : }
     225             : 
     226             : /* AUX_FUNC ldv_emg_register_filesystem */
     227             : int ldv_emg_register_filesystem(struct file_system_type *arg0) {
     228             :  /* LDV {"comment": "Control function 'register_filesystem'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_register_filesystem"} */
     229           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     230           1 :  struct file_system_type *ldv_10_struct_file_system_type_struct_file_system_type;
     231           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     232             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     233             : 
     234           4 :  if (ldv_undef_int()) {
     235             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get 'struct_file_system_type' callbacks to register."} */
     236           1 :   ldv_10_struct_file_system_type_struct_file_system_type = arg0;
     237             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     238             : 
     239             :   /* LDV {"action": "REGISTER", "type": "DISPATCH_BEGIN", "comment": "Register STRUCT_FILE_SYSTEM_TYPE callbacks."} */
     240           2 :   ldv_dispatch_register_10_3(ldv_10_struct_file_system_type_struct_file_system_type);
     241             :   /* LDV {"action": "REGISTER", "type": "DISPATCH_END"} */
     242             : 
     243             :   /* LDV {"action": "FAIL", "type": "CONDITION_BEGIN", "comment": "Fail registration of 'struct_file_system_type' callbacks."} */
     244           3 :   return ldv_undef_int_negative();
     245             :   /* LDV {"action": "FAIL", "type": "CONDITION_END"} */
     246             : 
     247             :   /* Exit function at a terminal state */
     248             :  }
     249             :  else {
     250             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_BEGIN", "comment": "Registration of 'struct_file_system_type' callbacks has been successful."} */
     251           1 :   return 0;
     252             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_END"} */
     253             : 
     254             :   /* Exit function at a terminal state */
     255             :  }
     256             :  /* End of the process */
     257             :  /* LDV {"comment": "End of control function based on process 'register_filesystem'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_register_filesystem"} */
     258             : }
     259             : 
     260             : /* AUX_FUNC ldv_emg_unregister_filesystem */
     261             : int ldv_emg_unregister_filesystem(struct file_system_type *arg0) {
     262             :  /* LDV {"comment": "Control function 'unregister_filesystem'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_unregister_filesystem"} */
     263           3 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     264             :  struct file_system_type *ldv_9_struct_file_system_type_struct_file_system_type;
     265             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     266             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get 'struct_file_system_type' callbacks to deregister."} */
     267           3 :  ldv_9_struct_file_system_type_struct_file_system_type = arg0;
     268             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     269             : 
     270             :  /* LDV {"action": "DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Deregister STRUCT_FILE_SYSTEM_TYPE callbacks."} */
     271           6 :  ldv_dispatch_deregister_9_1(ldv_9_struct_file_system_type_struct_file_system_type);
     272           3 :  /* LDV {"action": "DEREGISTER", "type": "DISPATCH_END"} */
     273             : 
     274             :  /* Exit function at a terminal state */
     275             :  /* End of the process */
     276             :  /* LDV {"comment": "End of control function based on process 'unregister_filesystem'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_unregister_filesystem"} */
     277             : }
     278             : 
     279             : /* AUX_FUNC ldv_insmod_8 */
     280             : void ldv_insmod_8(void *arg0) {
     281             :  /* LDV {"thread": 8, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'insmod(artificial)'", "function": "ldv_insmod_8"} */
     282           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     283           1 :  void (*ldv_8_configfs_exit_default)(void);
     284           1 :  int (*ldv_8_configfs_init_default)(void);
     285           1 :  int ldv_8_ret_default;
     286           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     287             :  /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module initialization."} */
     288           2 :  ldv_free(arg0);
     289             :  /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_END"} */
     290             : 
     291             :  /* LDV {"action": "CONFIGFS_INIT", "type": "CALL_BEGIN", "callback": true, "comment": "Initialize the module after insmod with 'configfs_init' function. Invoke callback configfs_init from ARTIFICIAL."} */
     292             :  /* LDV {"type": "CALLBACK", "call": "ldv_8_ret_default = (configfs_init)();", "comment": "configfs_init"} */
     293           2 :  ldv_8_ret_default = ldv_insmod_configfs_init_8_17(ldv_8_configfs_init_default);
     294             :  /* Callback post-call */
     295           2 :  ldv_8_ret_default = ldv_post_init(ldv_8_ret_default);
     296             :  /* LDV {"action": "CONFIGFS_INIT", "type": "CALL_END"} */
     297             : 
     298           4 :  if (ldv_undef_int()) {
     299             :   /* LDV {"action": "INIT_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to initialize the module."} */
     300           2 :   ldv_assume(ldv_8_ret_default != 0);
     301             :   /* LDV {"action": "INIT_FAILED", "type": "CONDITION_END"} */
     302             : 
     303             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
     304             :   /* Skip a non-replicative signal receiving */
     305             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
     306             : 
     307             :   /* Exit function at a terminal state */
     308           1 :   return;
     309             :  }
     310             :  else {
     311             :   /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Module has been initialized."} */
     312           2 :   ldv_assume(ldv_8_ret_default == 0);
     313             :   /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_END"} */
     314             : 
     315           4 :   if (ldv_undef_int()) {
     316             :    /* LDV {"action": "DEFAULT_REGISTER_8", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_SUPER_OPERATIONS' callbacks with unknown registration function."} */
     317           2 :    ldv_dispatch_default_register_8_8_13();
     318             :    /* LDV {"action": "DEFAULT_REGISTER_8", "type": "DISPATCH_END"} */
     319             : 
     320             :    /* LDV {"action": "DEFAULT_REGISTER_1", "type": "DISPATCH_BEGIN", "comment": "Register 'FILE_OPERATIONS' callbacks with unknown registration function."} */
     321           2 :    ldv_dispatch_default_register_1_8_12();
     322             :    /* LDV {"action": "DEFAULT_REGISTER_1", "type": "DISPATCH_END"} */
     323             : 
     324             :    /* LDV {"action": "DEFAULT_REGISTER_2", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_ADDRESS_SPACE_OPERATIONS' callbacks with unknown registration function."} */
     325           2 :    ldv_dispatch_default_register_2_8_11();
     326             :    /* LDV {"action": "DEFAULT_REGISTER_2", "type": "DISPATCH_END"} */
     327             : 
     328             :    /* LDV {"action": "DEFAULT_REGISTER_3", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_DENTRY_OPERATIONS' callbacks with unknown registration function."} */
     329           2 :    ldv_dispatch_default_register_3_8_10();
     330             :    /* LDV {"action": "DEFAULT_REGISTER_3", "type": "DISPATCH_END"} */
     331             : 
     332             :    /* LDV {"action": "DEFAULT_REGISTER_7", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_INODE_OPERATIONS' callbacks with unknown registration function."} */
     333           2 :    ldv_dispatch_default_register_7_8_9();
     334             :    /* LDV {"action": "DEFAULT_REGISTER_7", "type": "DISPATCH_END"} */
     335             : 
     336             :    /* LDV {"action": "DEFAULT_DEREGISTER_7", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_INODE_OPERATIONS' callbacks with unknown deregistration function."} */
     337           2 :    ldv_dispatch_default_deregister_7_8_8();
     338             :    /* LDV {"action": "DEFAULT_DEREGISTER_7", "type": "DISPATCH_END"} */
     339             : 
     340             :    /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_DENTRY_OPERATIONS' callbacks with unknown deregistration function."} */
     341           2 :    ldv_dispatch_default_deregister_3_8_7();
     342             :    /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "DISPATCH_END"} */
     343             : 
     344             :    /* LDV {"action": "DEFAULT_DEREGISTER_2", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_ADDRESS_SPACE_OPERATIONS' callbacks with unknown deregistration function."} */
     345           2 :    ldv_dispatch_default_deregister_2_8_6();
     346             :    /* LDV {"action": "DEFAULT_DEREGISTER_2", "type": "DISPATCH_END"} */
     347             : 
     348             :    /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "DISPATCH_BEGIN", "comment": "Deregister 'FILE_OPERATIONS' callbacks with unknown deregistration function."} */
     349           2 :    ldv_dispatch_default_deregister_1_8_5();
     350             :    /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "DISPATCH_END"} */
     351             : 
     352             :    /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_SUPER_OPERATIONS' callbacks with unknown deregistration function."} */
     353           2 :    ldv_dispatch_default_deregister_8_8_4();
     354             :    /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "DISPATCH_END"} */
     355             : 
     356             :   }
     357             :   else {
     358             :    /* LDV {"action": "NONE", "type": "CONDITION_BEGIN", "comment": "Skip default callbacks registrations and deregistrations."} */
     359             :    /* LDV {"action": "NONE", "type": "CONDITION_END"} */
     360             : 
     361             :   }
     362             :   /* LDV {"action": "CONFIGFS_EXIT", "type": "CALL_BEGIN", "callback": true, "comment": "Exit the module before its unloading with 'configfs_exit' function. Invoke callback configfs_exit from ARTIFICIAL."} */
     363             :   /* LDV {"type": "CALLBACK", "call": "(configfs_exit)();", "comment": "configfs_exit"} */
     364           4 :   ldv_insmod_configfs_exit_8_2(ldv_8_configfs_exit_default);
     365             :   /* LDV {"action": "CONFIGFS_EXIT", "type": "CALL_END"} */
     366             : 
     367             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
     368             :   /* Skip a non-replicative signal receiving */
     369             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
     370             : 
     371             :   /* Exit function at a terminal state */
     372           1 :   return;
     373             :  }
     374             :  /* End of the process */
     375             :  return;
     376             :  /* LDV {"comment": "End of control function based on process 'insmod(artificial)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_insmod_8"} */
     377             : }
     378             : 
     379             : /* AUX_FUNC_CALLBACK ldv_insmod_configfs_exit_8_2 */
     380             : void ldv_insmod_configfs_exit_8_2(void (*arg0)(void)) {
     381           4 :  (configfs_exit)();
     382           2 : }
     383             : 
     384             : /* AUX_FUNC_CALLBACK ldv_insmod_configfs_init_8_17 */
     385             : int ldv_insmod_configfs_init_8_17(int (*arg0)(void)) {
     386           6 :  return (configfs_init)();
     387           1 : }
     388             : 
     389             : /* AUX_FUNC ldv_main_11 */
     390             : void ldv_main_11(void *arg0) {
     391             :  /* LDV {"thread": 11, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'main(main)'", "function": "ldv_main_11"} */
     392             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     393             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     394             :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Initialize rule models."} */
     395           1 :  ldv_initialize();
     396             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
     397             : 
     398             :  /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Start environment model scenarios."} */
     399           2 :  ldv_dispatch_insmod_register_11_3();
     400             :  /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_END"} */
     401             : 
     402             :  /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Stop environment model scenarios."} */
     403           2 :  ldv_dispatch_insmod_deregister_11_2();
     404             :  /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_END"} */
     405             : 
     406             :  /* LDV {"action": "FINAL", "type": "CONDITION_BEGIN", "comment": "Check rule model state at the exit."} */
     407           1 :  ldv_check_final_state();
     408           1 :  ldv_stop();
     409             :  /* LDV {"action": "FINAL", "type": "CONDITION_END"} */
     410             : 
     411             :  /* Exit function at a terminal state */
     412           0 :  return;
     413             :  /* End of the process */
     414             :  return;
     415             :  /* LDV {"comment": "End of control function based on process 'main(main)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_main_11"} */
     416             : }
     417             : 
     418             : /* AUX_FUNC ldv_random_containerless_scenario_3 */
     419             : void ldv_random_containerless_scenario_3(void *arg0) {
     420             :  /* LDV {"thread": 3, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_address_space_operations)'", "function": "ldv_random_containerless_scenario_3"} */
     421           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     422           1 :  int (*ldv_3_callback_readpage)(struct file *, struct page *);
     423             :  int (*ldv_3_callback_write_begin)(struct file *, struct address_space *, loff_t , unsigned int, unsigned int, struct page **, void **);
     424             :  int (*ldv_3_callback_write_end)(struct file *, struct address_space *, loff_t , unsigned int, unsigned int, struct page *, void *);
     425           1 :  struct address_space *ldv_3_container_struct_address_space_ptr;
     426             :  struct file *ldv_3_container_struct_file_ptr;
     427             :  struct page *ldv_3_container_struct_page_ptr;
     428           1 :  long long int ldv_3_ldv_param_11_2_default;
     429           1 :  unsigned int ldv_3_ldv_param_11_3_default;
     430           1 :  unsigned int ldv_3_ldv_param_11_4_default;
     431           1 :  void *ldv_3_ldv_param_11_6_default;
     432           1 :  long long int ldv_3_ldv_param_8_2_default;
     433           1 :  unsigned int ldv_3_ldv_param_8_3_default;
     434           1 :  unsigned int ldv_3_ldv_param_8_4_default;
     435           1 :  void **ldv_3_ldv_param_8_6_default;
     436           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     437           1 :  /* LDV {"action": "DEFAULT_REGISTER_2", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_ADDRESS_SPACE_OPERATIONS callbacks invocations scenario."} */
     438           3 :  ldv_free(arg0);
     439           1 :  /* LDV {"action": "DEFAULT_REGISTER_2", "type": "RECEIVE_END"} */
     440           1 : 
     441           1 :  /* LDV {"action": "DEFAULT_ALLOC_2", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
     442           4 :  ldv_3_container_struct_address_space_ptr = ldv_xmalloc_unknown_size(0);
     443           4 :  ldv_3_container_struct_file_ptr = ldv_xmalloc_unknown_size(0);
     444           3 :  ldv_3_container_struct_page_ptr = ldv_xmalloc_unknown_size(0);
     445             :  /* LDV {"action": "DEFAULT_ALLOC_2", "type": "CONDITION_END"} */
     446             : 
     447             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     448             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     449             : 
     450             :  /* Jump to a subprocess 'call' initial state */
     451           1 :  goto ldv_call_3;
     452             :  /* End of the process */
     453             :  return;
     454           1 : 
     455             :  /* Sbprocess call */
     456             :  ldv_call_3:
     457             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     458             : 
     459           2 :  switch (ldv_undef_int()) {
     460           3 :   case 1: {
     461             :    /* LDV {"action": "PRE_CALL_11", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     462           2 :    ldv_3_ldv_param_11_6_default = ldv_xmalloc_unknown_size(0);
     463             :    /* LDV {"action": "PRE_CALL_11", "type": "CONDITION_END"} */
     464             : 
     465             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback write_end from address_space_operations."} */
     466             :    /* LDV {"type": "CALLBACK", "call": "((& simple_write_end))(ldv_3_container_struct_file_ptr, ldv_3_container_struct_address_space_ptr, ldv_3_ldv_param_11_2_default, ldv_3_ldv_param_11_3_default, ldv_3_ldv_param_11_4_default, ldv_3_container_struct_page_ptr, ldv_3_ldv_param_11_6_default);", "comment": "callback"} */
     467           2 :    ldv_random_containerless_scenario_callback_3_11(ldv_3_callback_write_end, ldv_3_container_struct_file_ptr, ldv_3_container_struct_address_space_ptr, ldv_3_ldv_param_11_2_default, ldv_3_ldv_param_11_3_default, ldv_3_ldv_param_11_4_default, ldv_3_container_struct_page_ptr, ldv_3_ldv_param_11_6_default);
     468             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     469             : 
     470             :    /* LDV {"action": "POST_CALL_11", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     471           2 :    ldv_free(ldv_3_ldv_param_11_6_default);
     472             :    /* LDV {"action": "POST_CALL_11", "type": "CONDITION_END"} */
     473             : 
     474             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     475             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     476             : 
     477             :    /* Jump to a subprocess 'call' initial state */
     478           1 :    goto ldv_call_3;
     479           1 :    break;
     480             :   }
     481           3 :   case 2: {
     482             :    /* LDV {"action": "PRE_CALL_8", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     483           3 :    ldv_3_ldv_param_8_6_default = ldv_xmalloc_unknown_size(0);
     484             :    /* LDV {"action": "PRE_CALL_8", "type": "CONDITION_END"} */
     485             : 
     486             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback write_begin from address_space_operations."} */
     487             :    /* LDV {"type": "CALLBACK", "call": "((& simple_write_begin))(ldv_3_container_struct_file_ptr, ldv_3_container_struct_address_space_ptr, ldv_3_ldv_param_8_2_default, ldv_3_ldv_param_8_3_default, ldv_3_ldv_param_8_4_default, ldv_3_container_struct_page_ptr, ldv_3_ldv_param_8_6_default);", "comment": "callback"} */
     488           2 :    ldv_random_containerless_scenario_callback_3_8(ldv_3_callback_write_begin, ldv_3_container_struct_file_ptr, ldv_3_container_struct_address_space_ptr, ldv_3_ldv_param_8_2_default, ldv_3_ldv_param_8_3_default, ldv_3_ldv_param_8_4_default, ldv_3_container_struct_page_ptr, ldv_3_ldv_param_8_6_default);
     489             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     490             : 
     491             :    /* LDV {"action": "POST_CALL_8", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     492           2 :    ldv_free(ldv_3_ldv_param_8_6_default);
     493             :    /* LDV {"action": "POST_CALL_8", "type": "CONDITION_END"} */
     494             : 
     495             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     496             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     497             : 
     498             :    /* Jump to a subprocess 'call' initial state */
     499           1 :    goto ldv_call_3;
     500             :    /* Jump to a subprocess 'call' initial state */
     501             :    goto ldv_call_3;
     502           1 :    break;
     503             :   }
     504           3 :   case 3: {
     505             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback readpage from address_space_operations."} */
     506             :    /* LDV {"type": "CALLBACK", "call": "((& simple_readpage))(ldv_3_container_struct_file_ptr, ldv_3_container_struct_page_ptr);", "comment": "callback"} */
     507           2 :    ldv_random_containerless_scenario_callback_3_4(ldv_3_callback_readpage, ldv_3_container_struct_file_ptr, ldv_3_container_struct_page_ptr);
     508             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     509             : 
     510             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     511             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     512             : 
     513             :    /* Jump to a subprocess 'call' initial state */
     514           1 :    goto ldv_call_3;
     515             :    /* Jump to a subprocess 'call' initial state */
     516             :    goto ldv_call_3;
     517             :    /* Jump to a subprocess 'call' initial state */
     518             :    goto ldv_call_3;
     519           1 :    break;
     520             :   }
     521           3 :   case 4: {
     522             :    /* LDV {"action": "DEFAULT_FREE_2", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
     523           2 :    ldv_free(ldv_3_container_struct_address_space_ptr);
     524           2 :    ldv_free(ldv_3_container_struct_file_ptr);
     525           2 :    ldv_free(ldv_3_container_struct_page_ptr);
     526             :    /* LDV {"action": "DEFAULT_FREE_2", "type": "CONDITION_END"} */
     527             : 
     528             :    /* LDV {"action": "DEFAULT_DEREGISTER_2", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_ADDRESS_SPACE_OPERATIONS callbacks invocations scenario."} */
     529             :    /* Skip a non-replicative signal receiving */
     530             :    /* LDV {"action": "DEFAULT_DEREGISTER_2", "type": "RECEIVE_END"} */
     531             : 
     532             :    /* Exit function at a terminal state */
     533           1 :    return;
     534           1 :    break;
     535             :   }
     536           2 :   default: ldv_stop();
     537           1 :  }
     538           0 :  /* End of the subprocess 'call' */
     539           0 :  return;
     540             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_address_space_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_3"} */
     541             : }
     542             : 
     543             : /* AUX_FUNC ldv_random_containerless_scenario_4 */
     544             : void ldv_random_containerless_scenario_4(void *arg0) {
     545             :  /* LDV {"thread": 4, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_dentry_operations)'", "function": "ldv_random_containerless_scenario_4"} */
     546           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     547           1 :  int (*ldv_4_callback_d_delete)(struct dentry *);
     548           1 :  void (*ldv_4_callback_d_iput)(struct dentry *, struct inode *);
     549           1 :  struct dentry *ldv_4_container_struct_dentry_ptr;
     550           1 :  struct inode *ldv_4_container_struct_inode_ptr;
     551           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     552           1 :  /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_DENTRY_OPERATIONS callbacks invocations scenario."} */
     553           2 :  ldv_free(arg0);
     554             :  /* LDV {"action": "DEFAULT_REGISTER_3", "type": "RECEIVE_END"} */
     555             : 
     556             :  /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
     557           3 :  ldv_4_container_struct_dentry_ptr = ldv_xmalloc_unknown_size(0);
     558           3 :  ldv_4_container_struct_inode_ptr = ldv_xmalloc_unknown_size(0);
     559             :  /* LDV {"action": "DEFAULT_ALLOC_3", "type": "CONDITION_END"} */
     560             : 
     561             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     562             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     563             : 
     564             :  /* Jump to a subprocess 'call' initial state */
     565           1 :  goto ldv_call_4;
     566             :  /* End of the process */
     567             :  return;
     568           1 : 
     569             :  /* Sbprocess call */
     570             :  ldv_call_4:
     571             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     572             : 
     573           2 :  switch (ldv_undef_int()) {
     574           3 :   case 1: {
     575             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback d_iput from dentry_operations."} */
     576             :    /* LDV {"type": "CALLBACK", "call": "((& configfs_d_iput))(ldv_4_container_struct_dentry_ptr, ldv_4_container_struct_inode_ptr);", "comment": "callback"} */
     577           2 :    ldv_random_containerless_scenario_callback_4_8(ldv_4_callback_d_iput, ldv_4_container_struct_dentry_ptr, ldv_4_container_struct_inode_ptr);
     578             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     579             : 
     580             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     581             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     582             : 
     583             :    /* Jump to a subprocess 'call' initial state */
     584           1 :    goto ldv_call_4;
     585           1 :    break;
     586             :   }
     587           3 :   case 2: {
     588             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback d_delete from dentry_operations."} */
     589             :    /* LDV {"type": "CALLBACK", "call": "((& configfs_d_delete))(ldv_4_container_struct_dentry_ptr);", "comment": "callback"} */
     590           2 :    ldv_random_containerless_scenario_callback_4_4(ldv_4_callback_d_delete, ldv_4_container_struct_dentry_ptr);
     591             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     592             : 
     593             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     594             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     595             : 
     596             :    /* Jump to a subprocess 'call' initial state */
     597           1 :    goto ldv_call_4;
     598             :    /* Jump to a subprocess 'call' initial state */
     599             :    goto ldv_call_4;
     600           1 :    break;
     601             :   }
     602           3 :   case 3: {
     603             :    /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
     604           2 :    ldv_free(ldv_4_container_struct_dentry_ptr);
     605           2 :    ldv_free(ldv_4_container_struct_inode_ptr);
     606             :    /* LDV {"action": "DEFAULT_FREE_3", "type": "CONDITION_END"} */
     607             : 
     608             :    /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_DENTRY_OPERATIONS callbacks invocations scenario."} */
     609             :    /* Skip a non-replicative signal receiving */
     610             :    /* LDV {"action": "DEFAULT_DEREGISTER_3", "type": "RECEIVE_END"} */
     611             : 
     612             :    /* Exit function at a terminal state */
     613           1 :    return;
     614           1 :    break;
     615             :   }
     616           2 :   default: ldv_stop();
     617           1 :  }
     618           0 :  /* End of the subprocess 'call' */
     619           0 :  return;
     620             :  /* 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"} */
     621             : }
     622             : 
     623             : /* AUX_FUNC ldv_random_containerless_scenario_5 */
     624             : void ldv_random_containerless_scenario_5(void *arg0) {
     625             :  /* LDV {"thread": 5, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_file_system_type)'", "function": "ldv_random_containerless_scenario_5"} */
     626           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     627             :  int (*ldv_5_callback_get_sb)(struct file_system_type *, int, char *, void *, struct vfsmount *);
     628           1 :  void (*ldv_5_callback_kill_sb)(struct super_block *);
     629           1 :  struct file_system_type *ldv_5_container_struct_file_system_type;
     630           1 :  struct super_block *ldv_5_container_struct_super_block_ptr;
     631           1 :  struct vfsmount *ldv_5_container_struct_vfsmount_ptr;
     632           1 :  int ldv_5_ldv_param_3_1_default;
     633           1 :  char *ldv_5_ldv_param_3_2_default;
     634           1 :  /* Received labels */
     635           2 :  struct ldv_struct_random_containerless_scenario_5 *data = (struct ldv_struct_random_containerless_scenario_5*) arg0;
     636           1 : 
     637           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     638             :  /* LDV {"action": "REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_FILE_SYSTEM_TYPE callbacks invocations scenario."} */
     639             :  /* Assign recieved labels */
     640           2 :  if (data) {
     641           1 :   ldv_5_container_struct_file_system_type = data->arg0;
     642           2 :   ldv_free(data);
     643             :  }
     644             :  /* LDV {"action": "REGISTER", "type": "RECEIVE_END"} */
     645             : 
     646             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     647             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     648             : 
     649             :  /* Jump to a subprocess 'call' initial state */
     650           2 :  goto ldv_call_5;
     651             :  /* End of the process */
     652             :  return;
     653           1 : 
     654             :  /* Sbprocess call */
     655             :  ldv_call_5:
     656             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     657             : 
     658           4 :  if (ldv_undef_int()) {
     659             :   /* LDV {"action": "PRE_CALL_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     660           3 :   ldv_5_ldv_param_3_2_default = ldv_xmalloc_unknown_size(0);
     661             :   /* LDV {"action": "PRE_CALL_3", "type": "CONDITION_END"} */
     662             : 
     663           4 :   if (ldv_undef_int()) {
     664             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback kill_sb from file_system_type."} */
     665             :    /* LDV {"type": "CALLBACK", "call": "((& kill_litter_super))(ldv_5_container_struct_super_block_ptr);", "comment": "callback"} */
     666           2 :    ldv_random_containerless_scenario_callback_5_8(ldv_5_callback_kill_sb, ldv_5_container_struct_super_block_ptr);
     667             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     668             : 
     669             :   }
     670             :   else {
     671             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get_sb from file_system_type."} */
     672             :    /* LDV {"type": "CALLBACK", "call": "((& configfs_get_sb))(ldv_5_container_struct_file_system_type, ldv_5_ldv_param_3_1_default, ldv_5_ldv_param_3_2_default, ldv_5_container_struct_super_block_ptr, ldv_5_container_struct_vfsmount_ptr);", "comment": "callback"} */
     673           2 :    ldv_random_containerless_scenario_callback_5_3(ldv_5_callback_get_sb, ldv_5_container_struct_file_system_type, ldv_5_ldv_param_3_1_default, ldv_5_ldv_param_3_2_default, ldv_5_container_struct_super_block_ptr, ldv_5_container_struct_vfsmount_ptr);
     674             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     675             : 
     676             :   }
     677             :   /* LDV {"action": "POST_CALL_3", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     678           4 :   ldv_free(ldv_5_ldv_param_3_2_default);
     679             :   /* LDV {"action": "POST_CALL_3", "type": "CONDITION_END"} */
     680             : 
     681             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     682             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     683             : 
     684             :   /* Jump to a subprocess 'call' initial state */
     685           1 :   goto ldv_call_5;
     686             :  }
     687             :  else {
     688             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_FILE_SYSTEM_TYPE callbacks invocations scenario."} */
     689             :   /* Skip a non-replicative signal receiving */
     690             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_END"} */
     691             : 
     692             :   /* Exit function at a terminal state */
     693           1 :   return;
     694             :  }
     695             :  /* End of the subprocess 'call' */
     696             :  return;
     697             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_file_system_type)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_5"} */
     698             : }
     699             : 
     700             : /* AUX_FUNC ldv_random_containerless_scenario_6 */
     701             : void ldv_random_containerless_scenario_6(void *arg0) {
     702             :  /* LDV {"thread": 6, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_inode_operations)'", "function": "ldv_random_containerless_scenario_6"} */
     703           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     704           1 :  void *(*ldv_6_callback_follow_link)(struct dentry *, struct nameidata *);
     705           1 :  struct dentry *(*ldv_6_callback_lookup)(struct inode *, struct dentry *, struct nameidata *);
     706           1 :  int (*ldv_6_callback_mkdir)(struct inode *, struct dentry *, int);
     707           1 :  void (*ldv_6_callback_put_link)(struct dentry *, struct nameidata *, void *);
     708           1 :  int (*ldv_6_callback_readlink)(struct dentry *, char *, int);
     709           1 :  int (*ldv_6_callback_rmdir)(struct inode *, struct dentry *);
     710           1 :  int (*ldv_6_callback_setattr)(struct dentry *, struct iattr *);
     711           1 :  int (*ldv_6_callback_symlink)(struct inode *, struct dentry *, char *);
     712           1 :  int (*ldv_6_callback_unlink)(struct inode *, struct dentry *);
     713           1 :  struct dentry *ldv_6_container_struct_dentry_ptr;
     714           1 :  struct iattr *ldv_6_container_struct_iattr_ptr;
     715           1 :  struct inode *ldv_6_container_struct_inode_ptr;
     716           1 :  struct nameidata *ldv_6_container_struct_nameidata_ptr;
     717           1 :  char *ldv_6_ldv_param_13_1_default;
     718           1 :  int ldv_6_ldv_param_13_2_default;
     719           1 :  char *ldv_6_ldv_param_18_2_default;
     720           1 :  int ldv_6_ldv_param_9_2_default;
     721           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     722           1 :  /* LDV {"action": "DEFAULT_REGISTER_7", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_INODE_OPERATIONS callbacks invocations scenario."} */
     723           3 :  ldv_free(arg0);
     724           1 :  /* LDV {"action": "DEFAULT_REGISTER_7", "type": "RECEIVE_END"} */
     725           1 : 
     726           1 :  /* LDV {"action": "DEFAULT_ALLOC_7", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
     727           3 :  ldv_6_container_struct_dentry_ptr = ldv_xmalloc_unknown_size(0);
     728           3 :  ldv_6_container_struct_iattr_ptr = ldv_xmalloc_unknown_size(0);
     729           3 :  ldv_6_container_struct_inode_ptr = ldv_xmalloc_unknown_size(0);
     730           3 :  ldv_6_container_struct_nameidata_ptr = ldv_xmalloc_unknown_size(0);
     731             :  /* LDV {"action": "DEFAULT_ALLOC_7", "type": "CONDITION_END"} */
     732             : 
     733             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     734             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     735             : 
     736             :  /* Jump to a subprocess 'call' initial state */
     737           1 :  goto ldv_call_6;
     738             :  /* End of the process */
     739             :  return;
     740           1 : 
     741             :  /* Sbprocess call */
     742             :  ldv_call_6:
     743             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     744             : 
     745           2 :  switch (ldv_undef_int()) {
     746           3 :   case 1: {
     747             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback unlink from inode_operations."} */
     748             :    /* LDV {"type": "CALLBACK", "call": "((& configfs_unlink))(ldv_6_container_struct_inode_ptr, ldv_6_container_struct_dentry_ptr);", "comment": "callback"} */
     749           2 :    ldv_random_containerless_scenario_callback_6_21(ldv_6_callback_unlink, ldv_6_container_struct_inode_ptr, ldv_6_container_struct_dentry_ptr);
     750             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     751             : 
     752             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     753             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     754             : 
     755             :    /* Jump to a subprocess 'call' initial state */
     756           1 :    goto ldv_call_6;
     757           1 :    break;
     758             :   }
     759           3 :   case 2: {
     760             :    /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     761           3 :    ldv_6_ldv_param_18_2_default = ldv_xmalloc_unknown_size(0);
     762             :    /* LDV {"action": "PRE_CALL_18", "type": "CONDITION_END"} */
     763             : 
     764             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback symlink from inode_operations."} */
     765             :    /* LDV {"type": "CALLBACK", "call": "((& configfs_symlink))(ldv_6_container_struct_inode_ptr, ldv_6_container_struct_dentry_ptr, ldv_6_ldv_param_18_2_default);", "comment": "callback"} */
     766           2 :    ldv_random_containerless_scenario_callback_6_18(ldv_6_callback_symlink, ldv_6_container_struct_inode_ptr, ldv_6_container_struct_dentry_ptr, ldv_6_ldv_param_18_2_default);
     767             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     768             : 
     769             :    /* LDV {"action": "POST_CALL_18", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     770           2 :    ldv_free(ldv_6_ldv_param_18_2_default);
     771             :    /* LDV {"action": "POST_CALL_18", "type": "CONDITION_END"} */
     772             : 
     773             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     774             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     775             : 
     776             :    /* Jump to a subprocess 'call' initial state */
     777           1 :    goto ldv_call_6;
     778             :    /* Jump to a subprocess 'call' initial state */
     779             :    goto ldv_call_6;
     780           1 :    break;
     781             :   }
     782           3 :   case 3: {
     783             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback setattr from inode_operations."} */
     784             :    /* LDV {"type": "CALLBACK", "call": "((& configfs_setattr))(ldv_6_container_struct_dentry_ptr, ldv_6_container_struct_iattr_ptr);", "comment": "callback"} */
     785           2 :    ldv_random_containerless_scenario_callback_6_17(ldv_6_callback_setattr, ldv_6_container_struct_dentry_ptr, ldv_6_container_struct_iattr_ptr);
     786             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     787             : 
     788             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     789             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     790             : 
     791             :    /* Jump to a subprocess 'call' initial state */
     792           1 :    goto ldv_call_6;
     793             :    /* Jump to a subprocess 'call' initial state */
     794             :    goto ldv_call_6;
     795             :    /* Jump to a subprocess 'call' initial state */
     796             :    goto ldv_call_6;
     797           1 :    break;
     798             :   }
     799           3 :   case 4: {
     800             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback rmdir from inode_operations."} */
     801             :    /* LDV {"type": "CALLBACK", "call": "((& configfs_rmdir))(ldv_6_container_struct_inode_ptr, ldv_6_container_struct_dentry_ptr);", "comment": "callback"} */
     802           2 :    ldv_random_containerless_scenario_callback_6_16(ldv_6_callback_rmdir, ldv_6_container_struct_inode_ptr, ldv_6_container_struct_dentry_ptr);
     803             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     804             : 
     805             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     806             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     807             : 
     808             :    /* Jump to a subprocess 'call' initial state */
     809           1 :    goto ldv_call_6;
     810             :    /* Jump to a subprocess 'call' initial state */
     811             :    goto ldv_call_6;
     812             :    /* Jump to a subprocess 'call' initial state */
     813             :    goto ldv_call_6;
     814             :    /* Jump to a subprocess 'call' initial state */
     815             :    goto ldv_call_6;
     816           1 :    break;
     817             :   }
     818           3 :   case 5: {
     819             :    /* LDV {"action": "PRE_CALL_13", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     820           3 :    ldv_6_ldv_param_13_1_default = ldv_xmalloc_unknown_size(0);
     821             :    /* LDV {"action": "PRE_CALL_13", "type": "CONDITION_END"} */
     822             : 
     823             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback readlink from inode_operations."} */
     824             :    /* LDV {"type": "CALLBACK", "call": "((& generic_readlink))(ldv_6_container_struct_dentry_ptr, ldv_6_ldv_param_13_1_default, ldv_6_ldv_param_13_2_default);", "comment": "callback"} */
     825           2 :    ldv_random_containerless_scenario_callback_6_13(ldv_6_callback_readlink, ldv_6_container_struct_dentry_ptr, ldv_6_ldv_param_13_1_default, ldv_6_ldv_param_13_2_default);
     826             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     827             : 
     828             :    /* LDV {"action": "POST_CALL_13", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     829           2 :    ldv_free(ldv_6_ldv_param_13_1_default);
     830             :    /* LDV {"action": "POST_CALL_13", "type": "CONDITION_END"} */
     831             : 
     832             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     833             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     834             : 
     835             :    /* Jump to a subprocess 'call' initial state */
     836           1 :    goto ldv_call_6;
     837             :    /* Jump to a subprocess 'call' initial state */
     838             :    goto ldv_call_6;
     839             :    /* Jump to a subprocess 'call' initial state */
     840             :    goto ldv_call_6;
     841             :    /* Jump to a subprocess 'call' initial state */
     842             :    goto ldv_call_6;
     843             :    /* Jump to a subprocess 'call' initial state */
     844             :    goto ldv_call_6;
     845           1 :    break;
     846             :   }
     847           3 :   case 6: {
     848             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback put_link from inode_operations."} */
     849             :    /* LDV {"type": "CALLBACK", "call": "((& configfs_put_link))(ldv_6_container_struct_dentry_ptr, ldv_6_container_struct_nameidata_ptr, ldv_6_container_struct_iattr_ptr);", "comment": "callback"} */
     850           2 :    ldv_random_containerless_scenario_callback_6_12(ldv_6_callback_put_link, ldv_6_container_struct_dentry_ptr, ldv_6_container_struct_nameidata_ptr, ldv_6_container_struct_iattr_ptr);
     851             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     852             : 
     853             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     854             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     855             : 
     856             :    /* Jump to a subprocess 'call' initial state */
     857           1 :    goto ldv_call_6;
     858             :    /* Jump to a subprocess 'call' initial state */
     859             :    goto ldv_call_6;
     860             :    /* Jump to a subprocess 'call' initial state */
     861             :    goto ldv_call_6;
     862             :    /* Jump to a subprocess 'call' initial state */
     863             :    goto ldv_call_6;
     864             :    /* Jump to a subprocess 'call' initial state */
     865             :    goto ldv_call_6;
     866             :    /* Jump to a subprocess 'call' initial state */
     867             :    goto ldv_call_6;
     868           1 :    break;
     869             :   }
     870           3 :   case 7: {
     871             :    /* LDV {"action": "PRE_CALL_9", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     872             :    /* LDV {"action": "PRE_CALL_9", "type": "CONDITION_END"} */
     873             : 
     874             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback mkdir from inode_operations."} */
     875             :    /* LDV {"type": "CALLBACK", "call": "((& configfs_mkdir))(ldv_6_container_struct_inode_ptr, ldv_6_container_struct_dentry_ptr, ldv_6_ldv_param_9_2_default);", "comment": "callback"} */
     876           2 :    ldv_random_containerless_scenario_callback_6_9(ldv_6_callback_mkdir, ldv_6_container_struct_inode_ptr, ldv_6_container_struct_dentry_ptr, ldv_6_ldv_param_9_2_default);
     877             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     878             : 
     879             :    /* LDV {"action": "POST_CALL_9", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     880             :    /* LDV {"action": "POST_CALL_9", "type": "CONDITION_END"} */
     881             : 
     882             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     883             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     884             : 
     885             :    /* Jump to a subprocess 'call' initial state */
     886           1 :    goto ldv_call_6;
     887             :    /* Jump to a subprocess 'call' initial state */
     888             :    goto ldv_call_6;
     889             :    /* Jump to a subprocess 'call' initial state */
     890             :    goto ldv_call_6;
     891             :    /* Jump to a subprocess 'call' initial state */
     892             :    goto ldv_call_6;
     893             :    /* Jump to a subprocess 'call' initial state */
     894             :    goto ldv_call_6;
     895             :    /* Jump to a subprocess 'call' initial state */
     896             :    goto ldv_call_6;
     897             :    /* Jump to a subprocess 'call' initial state */
     898             :    goto ldv_call_6;
     899           1 :    break;
     900             :   }
     901           3 :   case 8: {
     902             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback lookup from inode_operations."} */
     903             :    /* LDV {"type": "CALLBACK", "call": "((& configfs_lookup))(ldv_6_container_struct_inode_ptr, ldv_6_container_struct_dentry_ptr, ldv_6_container_struct_nameidata_ptr);", "comment": "callback"} */
     904           2 :    ldv_random_containerless_scenario_callback_6_8(ldv_6_callback_lookup, ldv_6_container_struct_inode_ptr, ldv_6_container_struct_dentry_ptr, ldv_6_container_struct_nameidata_ptr);
     905             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     906             : 
     907             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     908             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     909             : 
     910             :    /* Jump to a subprocess 'call' initial state */
     911           1 :    goto ldv_call_6;
     912             :    /* Jump to a subprocess 'call' initial state */
     913             :    goto ldv_call_6;
     914             :    /* Jump to a subprocess 'call' initial state */
     915             :    goto ldv_call_6;
     916             :    /* Jump to a subprocess 'call' initial state */
     917             :    goto ldv_call_6;
     918             :    /* Jump to a subprocess 'call' initial state */
     919             :    goto ldv_call_6;
     920             :    /* Jump to a subprocess 'call' initial state */
     921             :    goto ldv_call_6;
     922             :    /* Jump to a subprocess 'call' initial state */
     923             :    goto ldv_call_6;
     924             :    /* Jump to a subprocess 'call' initial state */
     925             :    goto ldv_call_6;
     926           1 :    break;
     927             :   }
     928           3 :   case 9: {
     929             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback follow_link from inode_operations."} */
     930             :    /* LDV {"type": "CALLBACK", "call": "((& configfs_follow_link))(ldv_6_container_struct_dentry_ptr, ldv_6_container_struct_nameidata_ptr);", "comment": "callback"} */
     931           2 :    ldv_random_containerless_scenario_callback_6_4(ldv_6_callback_follow_link, ldv_6_container_struct_dentry_ptr, ldv_6_container_struct_nameidata_ptr);
     932             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     933             : 
     934             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     935             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     936             : 
     937             :    /* Jump to a subprocess 'call' initial state */
     938           1 :    goto ldv_call_6;
     939             :    /* Jump to a subprocess 'call' initial state */
     940             :    goto ldv_call_6;
     941             :    /* Jump to a subprocess 'call' initial state */
     942             :    goto ldv_call_6;
     943             :    /* Jump to a subprocess 'call' initial state */
     944             :    goto ldv_call_6;
     945             :    /* Jump to a subprocess 'call' initial state */
     946             :    goto ldv_call_6;
     947             :    /* Jump to a subprocess 'call' initial state */
     948             :    goto ldv_call_6;
     949             :    /* Jump to a subprocess 'call' initial state */
     950             :    goto ldv_call_6;
     951             :    /* Jump to a subprocess 'call' initial state */
     952             :    goto ldv_call_6;
     953             :    /* Jump to a subprocess 'call' initial state */
     954             :    goto ldv_call_6;
     955           1 :    break;
     956             :   }
     957           3 :   case 10: {
     958             :    /* LDV {"action": "DEFAULT_FREE_7", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
     959           2 :    ldv_free(ldv_6_container_struct_dentry_ptr);
     960           2 :    ldv_free(ldv_6_container_struct_iattr_ptr);
     961           2 :    ldv_free(ldv_6_container_struct_inode_ptr);
     962           2 :    ldv_free(ldv_6_container_struct_nameidata_ptr);
     963             :    /* LDV {"action": "DEFAULT_FREE_7", "type": "CONDITION_END"} */
     964             : 
     965             :    /* LDV {"action": "DEFAULT_DEREGISTER_7", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_INODE_OPERATIONS callbacks invocations scenario."} */
     966             :    /* Skip a non-replicative signal receiving */
     967             :    /* LDV {"action": "DEFAULT_DEREGISTER_7", "type": "RECEIVE_END"} */
     968             : 
     969             :    /* Exit function at a terminal state */
     970           1 :    return;
     971           1 :    break;
     972             :   }
     973           2 :   default: ldv_stop();
     974           1 :  }
     975           0 :  /* End of the subprocess 'call' */
     976           0 :  return;
     977             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_inode_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_6"} */
     978             : }
     979             : 
     980             : /* AUX_FUNC ldv_random_containerless_scenario_7 */
     981             : void ldv_random_containerless_scenario_7(void *arg0) {
     982             :  /* LDV {"thread": 7, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_super_operations)'", "function": "ldv_random_containerless_scenario_7"} */
     983           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     984           1 :  void (*ldv_7_callback_drop_inode)(struct inode *);
     985           1 :  int (*ldv_7_callback_statfs)(struct dentry *, struct kstatfs *);
     986           1 :  struct dentry *ldv_7_container_struct_dentry_ptr;
     987           1 :  struct inode *ldv_7_container_struct_inode_ptr;
     988           1 :  struct kstatfs *ldv_7_container_struct_kstatfs_ptr;
     989           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     990           1 :  /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_SUPER_OPERATIONS callbacks invocations scenario."} */
     991           3 :  ldv_free(arg0);
     992             :  /* LDV {"action": "DEFAULT_REGISTER_8", "type": "RECEIVE_END"} */
     993             : 
     994             :  /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
     995           3 :  ldv_7_container_struct_dentry_ptr = ldv_xmalloc_unknown_size(0);
     996           3 :  ldv_7_container_struct_inode_ptr = ldv_xmalloc_unknown_size(0);
     997           3 :  ldv_7_container_struct_kstatfs_ptr = ldv_xmalloc_unknown_size(0);
     998             :  /* LDV {"action": "DEFAULT_ALLOC_8", "type": "CONDITION_END"} */
     999             : 
    1000             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1001             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1002             : 
    1003             :  /* Jump to a subprocess 'call' initial state */
    1004           1 :  goto ldv_call_7;
    1005             :  /* End of the process */
    1006             :  return;
    1007           1 : 
    1008             :  /* Sbprocess call */
    1009             :  ldv_call_7:
    1010             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
    1011             : 
    1012           2 :  switch (ldv_undef_int()) {
    1013           3 :   case 1: {
    1014             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback statfs from super_operations."} */
    1015             :    /* LDV {"type": "CALLBACK", "call": "((& simple_statfs))(ldv_7_container_struct_dentry_ptr, ldv_7_container_struct_kstatfs_ptr);", "comment": "callback"} */
    1016           2 :    ldv_random_containerless_scenario_callback_7_8(ldv_7_callback_statfs, ldv_7_container_struct_dentry_ptr, ldv_7_container_struct_kstatfs_ptr);
    1017             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1018             : 
    1019             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1020             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1021             : 
    1022             :    /* Jump to a subprocess 'call' initial state */
    1023           1 :    goto ldv_call_7;
    1024           1 :    break;
    1025             :   }
    1026           3 :   case 2: {
    1027             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback drop_inode from super_operations."} */
    1028             :    /* LDV {"type": "CALLBACK", "call": "((& generic_delete_inode))(ldv_7_container_struct_inode_ptr);", "comment": "callback"} */
    1029           2 :    ldv_random_containerless_scenario_callback_7_4(ldv_7_callback_drop_inode, ldv_7_container_struct_inode_ptr);
    1030             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
    1031             : 
    1032             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
    1033             :    /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
    1034             : 
    1035             :    /* Jump to a subprocess 'call' initial state */
    1036           1 :    goto ldv_call_7;
    1037             :    /* Jump to a subprocess 'call' initial state */
    1038             :    goto ldv_call_7;
    1039           1 :    break;
    1040             :   }
    1041           3 :   case 3: {
    1042             :    /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
    1043           2 :    ldv_free(ldv_7_container_struct_dentry_ptr);
    1044           2 :    ldv_free(ldv_7_container_struct_inode_ptr);
    1045           2 :    ldv_free(ldv_7_container_struct_kstatfs_ptr);
    1046             :    /* LDV {"action": "DEFAULT_FREE_8", "type": "CONDITION_END"} */
    1047             : 
    1048             :    /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_SUPER_OPERATIONS callbacks invocations scenario."} */
    1049             :    /* Skip a non-replicative signal receiving */
    1050             :    /* LDV {"action": "DEFAULT_DEREGISTER_8", "type": "RECEIVE_END"} */
    1051             : 
    1052             :    /* Exit function at a terminal state */
    1053           1 :    return;
    1054           1 :    break;
    1055             :   }
    1056           2 :   default: ldv_stop();
    1057           1 :  }
    1058           0 :  /* End of the subprocess 'call' */
    1059           0 :  return;
    1060             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_super_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_7"} */
    1061             : }
    1062             : 
    1063             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_5_3 */
    1064             : void ldv_random_containerless_scenario_callback_5_3(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) {
    1065           2 :  ((& configfs_get_sb))(arg1, arg2, arg3, arg4, arg5);
    1066           1 : }
    1067             : 
    1068             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_5_8 */
    1069             : void ldv_random_containerless_scenario_callback_5_8(void (*arg0)(struct super_block *), struct super_block *arg1) {
    1070           1 :  ((& kill_litter_super))(arg1);
    1071           1 : }
    1072             : 
    1073             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_4 */
    1074             : void ldv_random_containerless_scenario_callback_7_4(void (*arg0)(struct inode *), struct inode *arg1) {
    1075           1 :  ((& generic_delete_inode))(arg1);
    1076           1 : }
    1077             : 
    1078             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_7_8 */
    1079             : void ldv_random_containerless_scenario_callback_7_8(int (*arg0)(struct dentry *, struct kstatfs *), struct dentry *arg1, struct kstatfs *arg2) {
    1080           1 :  ((& simple_statfs))(arg1, arg2);
    1081           1 : }
    1082             : 
    1083             : /* AUX_FUNC main */
    1084             : int main() {
    1085           1 :  ldv_main_11(0);
    1086           0 :  return 0;
    1087             : }
    1088             : 
    1089             : 
    1090             : /* AUX_FUNC  ERR_PTR */
    1091             : static inline void *ERR_PTR (long int error)
    1092             : {
    1093             : 
    1094             :  return ldv_err_ptr(error);
    1095             : }
    1096             : 
    1097             : /* AUX_FUNC  PTR_ERR */
    1098             : static inline long int PTR_ERR (void const *ptr)
    1099             : {
    1100             : 
    1101             :  return ldv_ptr_err(ptr);
    1102             : }
    1103             : 
    1104             : /* AUX_FUNC  IS_ERR */
    1105             : static inline long int IS_ERR (void const *ptr)
    1106             : {
    1107             : 
    1108             :  return ldv_is_err(ptr);
    1109             : }
    1110             : 
    1111             : /* AUX_FUNC  IS_ERR_OR_NULL */
    1112             : static inline long int IS_ERR_OR_NULL (void const *ptr)
    1113             : {
    1114             : 
    1115             :  return ldv_is_err_or_null(ptr);
    1116             : }
    1117             : 
    1118             : /* AUX_FUNC  kzalloc */
    1119             : static inline void *kzalloc (size_t size, gfp_t flags)
    1120             : {
    1121             : 
    1122             :  return ldv_kzalloc(size, flags);
    1123             : }
    1124             : 
    1125             : /* AUX_FUNC  ldv_register_filesystem_6 */
    1126             : int ldv_register_filesystem_6 (struct file_system_type *ldv_func_arg1)
    1127             : {
    1128           1 : 
    1129             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'register_filesystem'"} */
    1130           4 :  return ldv_emg_register_filesystem(ldv_func_arg1);
    1131             : }
    1132             : 
    1133             : /* AUX_FUNC  ldv_unregister_filesystem_7 */
    1134             : int ldv_unregister_filesystem_7 (struct file_system_type *ldv_func_arg1)
    1135             : {
    1136           1 : 
    1137             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'unregister_filesystem'"} */
    1138           3 :  return ldv_emg_unregister_filesystem(ldv_func_arg1);
    1139             : }
    1140             : 
    1141             : /* AUX_FUNC  ldv_unregister_filesystem_8 */
    1142             : int ldv_unregister_filesystem_8 (struct file_system_type *ldv_func_arg1)
    1143             : {
    1144           2 : 
    1145             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'unregister_filesystem'"} */
    1146           6 :  return ldv_emg_unregister_filesystem(ldv_func_arg1);
    1147             : }

Generated by: LCOV version 1.10