LCOV - code coverage report
Current view: top level - avtg/fs/fat/vfat.ko/linux:drivers:clk2/weaver - namei_vfat.c.aux (source / functions) Hit Total Coverage
Test: coverage.info Lines: 296 304 97.4 %
Date: 2017-01-25 Functions: 40 40 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             : 
      29             : 
      30             : struct ldv_struct_insmod_5 {
      31             :  int signal_pending;
      32             : };
      33           1 : 
      34             : struct ldv_struct_random_containerless_scenario_3 {
      35             :  struct file_system_type *arg0;
      36             :  int signal_pending;
      37             : };
      38             : 
      39             : /* EMG Function declarations */
      40             : void ldv_dispatch_default_deregister_1_5_4(void);
      41             : void ldv_dispatch_default_deregister_5_5_5(void);
      42             : void ldv_dispatch_default_register_1_5_7(void);
      43             : void ldv_dispatch_default_register_5_5_6(void);
      44             : void ldv_dispatch_deregister_6_1(struct file_system_type *);
      45             : void ldv_dispatch_insmod_deregister_8_2(void);
      46             : void ldv_dispatch_insmod_register_8_3(void);
      47             : void ldv_dispatch_register_7_3(struct file_system_type *);
      48             : int ldv_emg_register_filesystem(struct file_system_type *);
      49             : int ldv_emg_unregister_filesystem(struct file_system_type *);
      50             : void ldv_insmod_5(void *);
      51             : void ldv_insmod_exit_vfat_fs_5_2(void (*)(void));
      52             : int ldv_insmod_init_vfat_fs_5_11(int (*)(void));
      53             : void ldv_main_8(void *);
      54             : void ldv_random_containerless_scenario_1(void *);
      55             : void ldv_random_containerless_scenario_2(void *);
      56             : void ldv_random_containerless_scenario_3(void *);
      57             : void ldv_random_containerless_scenario_4(void *);
      58             : void ldv_random_containerless_scenario_callback_1_10(int (*)(struct dentry *, struct qstr *), struct dentry *, struct qstr *);
      59             : void ldv_random_containerless_scenario_callback_1_11(int (*)(struct dentry *, struct nameidata *), struct dentry *, struct nameidata *);
      60             : void ldv_random_containerless_scenario_callback_1_4(int (*)(struct dentry *, struct qstr *, struct qstr *), struct dentry *, struct qstr *, struct qstr *);
      61             : void ldv_random_containerless_scenario_callback_2_10(int (*)(struct dentry *, struct qstr *), struct dentry *, struct qstr *);
      62             : void ldv_random_containerless_scenario_callback_2_11(int (*)(struct dentry *, struct nameidata *), struct dentry *, struct nameidata *);
      63             : void ldv_random_containerless_scenario_callback_2_4(int (*)(struct dentry *, struct qstr *, struct qstr *), struct dentry *, struct qstr *, struct qstr *);
      64             : void ldv_random_containerless_scenario_callback_3_3(int (*)(struct file_system_type *, int, char *, void *, struct vfsmount *), struct file_system_type *, int, char *, void *, struct vfsmount *);
      65             : void ldv_random_containerless_scenario_callback_3_8(void (*)(struct super_block *), struct super_block *);
      66             : void ldv_random_containerless_scenario_callback_4_10(int (*)(struct vfsmount *, struct dentry *, struct kstat *), struct vfsmount *, struct dentry *, struct kstat *);
      67             : void ldv_random_containerless_scenario_callback_4_11(struct dentry *(*)(struct inode *, struct dentry *, struct nameidata *), struct inode *, struct dentry *, struct nameidata *);
      68             : void ldv_random_containerless_scenario_callback_4_12(int (*)(struct inode *, struct dentry *, int), struct inode *, struct dentry *, int);
      69             : void ldv_random_containerless_scenario_callback_4_15(int (*)(struct inode *, struct dentry *, struct inode *, struct dentry *), struct inode *, struct dentry *, struct inode *, struct dentry *);
      70             : void ldv_random_containerless_scenario_callback_4_18(int (*)(struct inode *, struct dentry *), struct inode *, struct dentry *);
      71             : void ldv_random_containerless_scenario_callback_4_19(int (*)(struct dentry *, struct iattr *), struct dentry *, struct iattr *);
      72             : void ldv_random_containerless_scenario_callback_4_20(int (*)(struct inode *, struct dentry *), struct inode *, struct dentry *);
      73             : void ldv_random_containerless_scenario_callback_4_4(int (*)(struct inode *, struct dentry *, int, struct nameidata *), struct inode *, struct dentry *, int, struct nameidata *);
      74             : int main(void);
      75             : 
      76             : /* EMG variable declarations */
      77           1 : struct ldv_thread ldv_thread_1;
      78           1 : struct ldv_thread ldv_thread_2;
      79           1 : struct ldv_thread ldv_thread_3;
      80           1 : struct ldv_thread ldv_thread_4;
      81           1 : struct ldv_thread ldv_thread_5;
      82           1 : struct ldv_thread ldv_thread_8;
      83             : 
      84             : /* EMG variable initialization */
      85             : 
      86             : /* EMG function definitions */
      87             : /* AUX_FUNC ldv_dispatch_default_deregister_1_5_4 */
      88             : void ldv_dispatch_default_deregister_1_5_4() {
      89             :  struct ldv_struct_insmod_5 *cf_arg_1;
      90             :  struct ldv_struct_insmod_5 *cf_arg_2;
      91             :  /* Skip thread join call */
      92             :  /* Skip thread join call */
      93           1 :  return;
      94             : }
      95             : 
      96             : /* AUX_FUNC ldv_dispatch_default_deregister_5_5_5 */
      97             : void ldv_dispatch_default_deregister_5_5_5() {
      98             :  struct ldv_struct_insmod_5 *cf_arg_4;
      99             :  /* Skip thread join call */
     100           1 :  return;
     101             : }
     102             : 
     103             : /* AUX_FUNC ldv_dispatch_default_register_1_5_7 */
     104             : void ldv_dispatch_default_register_1_5_7() {
     105             :  struct ldv_struct_insmod_5 *cf_arg_1;
     106           1 :  struct ldv_struct_insmod_5 *cf_arg_2;
     107           4 :  cf_arg_1 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_5));
     108           3 :  ldv_random_containerless_scenario_1(cf_arg_1);
     109           4 :  cf_arg_2 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_5));
     110           2 :  ldv_random_containerless_scenario_2(cf_arg_2);
     111           1 :  return;
     112             : }
     113             : 
     114             : /* AUX_FUNC ldv_dispatch_default_register_5_5_6 */
     115             : void ldv_dispatch_default_register_5_5_6() {
     116             :  struct ldv_struct_insmod_5 *cf_arg_4;
     117           4 :  cf_arg_4 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_5));
     118           3 :  ldv_random_containerless_scenario_4(cf_arg_4);
     119           1 :  return;
     120             : }
     121             : 
     122             : /* AUX_FUNC ldv_dispatch_deregister_6_1 */
     123             : void ldv_dispatch_deregister_6_1(struct file_system_type *arg0) {
     124             :  struct ldv_struct_random_containerless_scenario_3 *cf_arg_3;
     125             :  /* Skip thread join call */
     126           2 :  return;
     127             : }
     128             : 
     129             : /* AUX_FUNC ldv_dispatch_insmod_deregister_8_2 */
     130             : void ldv_dispatch_insmod_deregister_8_2() {
     131             :  struct ldv_struct_insmod_5 *cf_arg_5;
     132             :  /* Skip thread join call */
     133           1 :  return;
     134             : }
     135             : 
     136             : /* AUX_FUNC ldv_dispatch_insmod_register_8_3 */
     137             : void ldv_dispatch_insmod_register_8_3() {
     138             :  struct ldv_struct_insmod_5 *cf_arg_5;
     139           4 :  cf_arg_5 = ldv_xmalloc(sizeof(struct ldv_struct_insmod_5));
     140           4 :  ldv_insmod_5(cf_arg_5);
     141           1 :  return;
     142             : }
     143             : 
     144             : /* AUX_FUNC ldv_dispatch_register_7_3 */
     145             : void ldv_dispatch_register_7_3(struct file_system_type *arg0) {
     146             :  struct ldv_struct_random_containerless_scenario_3 *cf_arg_3;
     147           4 :  cf_arg_3 = ldv_xmalloc(sizeof(struct ldv_struct_random_containerless_scenario_3));
     148           2 :  cf_arg_3->arg0 = arg0;
     149           2 :  ldv_random_containerless_scenario_3(cf_arg_3);
     150           1 :  return;
     151             : }
     152             : 
     153             : /* AUX_FUNC ldv_emg_register_filesystem */
     154             : int ldv_emg_register_filesystem(struct file_system_type *arg0) {
     155             :  /* LDV {"comment": "Control function 'register_filesystem'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_register_filesystem"} */
     156           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     157           1 :  struct file_system_type *ldv_7_struct_file_system_type_struct_file_system_type;
     158           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     159             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     160             : 
     161           4 :  if (ldv_undef_int()) {
     162             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get 'struct_file_system_type' callbacks to register."} */
     163           1 :   ldv_7_struct_file_system_type_struct_file_system_type = arg0;
     164             :   /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     165             : 
     166             :   /* LDV {"action": "REGISTER", "type": "DISPATCH_BEGIN", "comment": "Register STRUCT_FILE_SYSTEM_TYPE callbacks."} */
     167           2 :   ldv_dispatch_register_7_3(ldv_7_struct_file_system_type_struct_file_system_type);
     168             :   /* LDV {"action": "REGISTER", "type": "DISPATCH_END"} */
     169             : 
     170             :   /* LDV {"action": "FAIL", "type": "CONDITION_BEGIN", "comment": "Fail registration of 'struct_file_system_type' callbacks."} */
     171           3 :   return ldv_undef_int_negative();
     172             :   /* LDV {"action": "FAIL", "type": "CONDITION_END"} */
     173             : 
     174             :   /* Exit function at a terminal state */
     175             :  }
     176             :  else {
     177             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_BEGIN", "comment": "Registration of 'struct_file_system_type' callbacks has been successful."} */
     178           1 :   return 0;
     179             :   /* LDV {"action": "SUCCESS", "type": "CONDITION_END"} */
     180             : 
     181             :   /* Exit function at a terminal state */
     182             :  }
     183             :  /* End of the process */
     184             :  /* LDV {"comment": "End of control function based on process 'register_filesystem'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_register_filesystem"} */
     185             : }
     186             : 
     187             : /* AUX_FUNC ldv_emg_unregister_filesystem */
     188             : int ldv_emg_unregister_filesystem(struct file_system_type *arg0) {
     189             :  /* LDV {"comment": "Control function 'unregister_filesystem'", "type": "CONTROL_FUNCTION_BEGIN", "function": "ldv_emg_unregister_filesystem"} */
     190           2 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     191             :  struct file_system_type *ldv_6_struct_file_system_type_struct_file_system_type;
     192             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     193             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_BEGIN", "comment": "Get 'struct_file_system_type' callbacks to deregister."} */
     194           2 :  ldv_6_struct_file_system_type_struct_file_system_type = arg0;
     195             :  /* LDV {"action": "ASSIGN", "type": "CONDITION_END"} */
     196             : 
     197             :  /* LDV {"action": "DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Deregister STRUCT_FILE_SYSTEM_TYPE callbacks."} */
     198           4 :  ldv_dispatch_deregister_6_1(ldv_6_struct_file_system_type_struct_file_system_type);
     199           2 :  /* LDV {"action": "DEREGISTER", "type": "DISPATCH_END"} */
     200             : 
     201             :  /* Exit function at a terminal state */
     202             :  /* End of the process */
     203             :  /* LDV {"comment": "End of control function based on process 'unregister_filesystem'", "type": "CONTROL_FUNCTION_END", "function": "ldv_emg_unregister_filesystem"} */
     204             : }
     205             : 
     206             : /* AUX_FUNC ldv_insmod_5 */
     207             : void ldv_insmod_5(void *arg0) {
     208             :  /* LDV {"thread": 5, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'insmod(artificial)'", "function": "ldv_insmod_5"} */
     209           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     210           1 :  void (*ldv_5_exit_vfat_fs_default)(void);
     211           1 :  int (*ldv_5_init_vfat_fs_default)(void);
     212           1 :  int ldv_5_ret_default;
     213           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     214             :  /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module initialization."} */
     215           2 :  ldv_free(arg0);
     216             :  /* LDV {"action": "INSMOD_REGISTER", "type": "RECEIVE_END"} */
     217             : 
     218             :  /* LDV {"action": "INIT_VFAT_FS", "type": "CALL_BEGIN", "callback": true, "comment": "Initialize the module after insmod with 'init_vfat_fs' function. Invoke callback init_vfat_fs from ARTIFICIAL."} */
     219             :  /* LDV {"type": "CALLBACK", "call": "ldv_5_ret_default = (init_vfat_fs)();", "comment": "init_vfat_fs"} */
     220           2 :  ldv_5_ret_default = ldv_insmod_init_vfat_fs_5_11(ldv_5_init_vfat_fs_default);
     221             :  /* Callback post-call */
     222           2 :  ldv_5_ret_default = ldv_post_init(ldv_5_ret_default);
     223             :  /* LDV {"action": "INIT_VFAT_FS", "type": "CALL_END"} */
     224             : 
     225           4 :  if (ldv_undef_int()) {
     226             :   /* LDV {"action": "INIT_FAILED", "type": "CONDITION_BEGIN", "comment": "Failed to initialize the module."} */
     227           2 :   ldv_assume(ldv_5_ret_default != 0);
     228             :   /* LDV {"action": "INIT_FAILED", "type": "CONDITION_END"} */
     229             : 
     230             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
     231             :   /* Skip a non-replicative signal receiving */
     232             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
     233             : 
     234             :   /* Exit function at a terminal state */
     235           1 :   return;
     236             :  }
     237             :  else {
     238             :   /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_BEGIN", "comment": "Module has been initialized."} */
     239           2 :   ldv_assume(ldv_5_ret_default == 0);
     240             :   /* LDV {"action": "INIT_SUCCESS", "type": "CONDITION_END"} */
     241             : 
     242           4 :   if (ldv_undef_int()) {
     243             :    /* LDV {"action": "DEFAULT_REGISTER_1", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_DENTRY_OPERATIONS' callbacks with unknown registration function."} */
     244           2 :    ldv_dispatch_default_register_1_5_7();
     245             :    /* LDV {"action": "DEFAULT_REGISTER_1", "type": "DISPATCH_END"} */
     246             : 
     247             :    /* LDV {"action": "DEFAULT_REGISTER_5", "type": "DISPATCH_BEGIN", "comment": "Register 'STRUCT_INODE_OPERATIONS' callbacks with unknown registration function."} */
     248           2 :    ldv_dispatch_default_register_5_5_6();
     249             :    /* LDV {"action": "DEFAULT_REGISTER_5", "type": "DISPATCH_END"} */
     250             : 
     251             :    /* LDV {"action": "DEFAULT_DEREGISTER_5", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_INODE_OPERATIONS' callbacks with unknown deregistration function."} */
     252           2 :    ldv_dispatch_default_deregister_5_5_5();
     253             :    /* LDV {"action": "DEFAULT_DEREGISTER_5", "type": "DISPATCH_END"} */
     254             : 
     255             :    /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "DISPATCH_BEGIN", "comment": "Deregister 'STRUCT_DENTRY_OPERATIONS' callbacks with unknown deregistration function."} */
     256           2 :    ldv_dispatch_default_deregister_1_5_4();
     257             :    /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "DISPATCH_END"} */
     258             : 
     259             :   }
     260             :   else {
     261             :    /* LDV {"action": "NONE", "type": "CONDITION_BEGIN", "comment": "Skip default callbacks registrations and deregistrations."} */
     262             :    /* LDV {"action": "NONE", "type": "CONDITION_END"} */
     263             : 
     264             :   }
     265             :   /* LDV {"action": "EXIT_VFAT_FS", "type": "CALL_BEGIN", "callback": true, "comment": "Exit the module before its unloading with 'exit_vfat_fs' function. Invoke callback exit_vfat_fs from ARTIFICIAL."} */
     266             :   /* LDV {"type": "CALLBACK", "call": "(exit_vfat_fs)();", "comment": "exit_vfat_fs"} */
     267           4 :   ldv_insmod_exit_vfat_fs_5_2(ldv_5_exit_vfat_fs_default);
     268             :   /* LDV {"action": "EXIT_VFAT_FS", "type": "CALL_END"} */
     269             : 
     270             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Trigger module exit."} */
     271             :   /* Skip a non-replicative signal receiving */
     272             :   /* LDV {"action": "INSMOD_DEREGISTER", "type": "RECEIVE_END"} */
     273             : 
     274             :   /* Exit function at a terminal state */
     275           1 :   return;
     276             :  }
     277             :  /* End of the process */
     278             :  return;
     279             :  /* LDV {"comment": "End of control function based on process 'insmod(artificial)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_insmod_5"} */
     280             : }
     281             : 
     282             : /* AUX_FUNC_CALLBACK ldv_insmod_exit_vfat_fs_5_2 */
     283             : void ldv_insmod_exit_vfat_fs_5_2(void (*arg0)(void)) {
     284           4 :  (exit_vfat_fs)();
     285           2 : }
     286             : 
     287             : /* AUX_FUNC_CALLBACK ldv_insmod_init_vfat_fs_5_11 */
     288             : int ldv_insmod_init_vfat_fs_5_11(int (*arg0)(void)) {
     289           3 :  return (init_vfat_fs)();
     290           1 : }
     291             : 
     292             : /* AUX_FUNC ldv_main_8 */
     293             : void ldv_main_8(void *arg0) {
     294             :  /* LDV {"thread": 8, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'main(main)'", "function": "ldv_main_8"} */
     295             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     296             :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     297             :  /* LDV {"action": "INIT", "type": "CONDITION_BEGIN", "comment": "Initialize rule models."} */
     298           1 :  ldv_initialize();
     299             :  /* LDV {"action": "INIT", "type": "CONDITION_END"} */
     300             : 
     301             :  /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_BEGIN", "comment": "Start environment model scenarios."} */
     302           2 :  ldv_dispatch_insmod_register_8_3();
     303             :  /* LDV {"action": "INSMOD_REGISTER", "type": "DISPATCH_END"} */
     304             : 
     305             :  /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_BEGIN", "comment": "Stop environment model scenarios."} */
     306           2 :  ldv_dispatch_insmod_deregister_8_2();
     307             :  /* LDV {"action": "INSMOD_DEREGISTER", "type": "DISPATCH_END"} */
     308             : 
     309             :  /* LDV {"action": "FINAL", "type": "CONDITION_BEGIN", "comment": "Check rule model state at the exit."} */
     310           1 :  ldv_check_final_state();
     311           1 :  ldv_stop();
     312             :  /* LDV {"action": "FINAL", "type": "CONDITION_END"} */
     313             : 
     314             :  /* Exit function at a terminal state */
     315           0 :  return;
     316             :  /* End of the process */
     317             :  return;
     318             :  /* LDV {"comment": "End of control function based on process 'main(main)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_main_8"} */
     319             : }
     320             : 
     321             : /* AUX_FUNC ldv_random_containerless_scenario_1 */
     322             : void ldv_random_containerless_scenario_1(void *arg0) {
     323             :  /* LDV {"thread": 1, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_dentry_operations)'", "function": "ldv_random_containerless_scenario_1"} */
     324           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     325           1 :  int (*ldv_1_callback_d_compare)(struct dentry *, struct qstr *, struct qstr *);
     326           1 :  int (*ldv_1_callback_d_hash)(struct dentry *, struct qstr *);
     327           1 :  int (*ldv_1_callback_d_revalidate)(struct dentry *, struct nameidata *);
     328           1 :  struct dentry *ldv_1_container_struct_dentry_ptr;
     329           1 :  struct nameidata *ldv_1_container_struct_nameidata_ptr;
     330           1 :  struct qstr *ldv_1_container_struct_qstr_ptr;
     331           1 :  struct qstr *ldv_1_ldv_param_4_2_default;
     332           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     333           1 :  /* LDV {"action": "DEFAULT_REGISTER_1", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_DENTRY_OPERATIONS callbacks invocations scenario."} */
     334           3 :  ldv_free(arg0);
     335           1 :  /* LDV {"action": "DEFAULT_REGISTER_1", "type": "RECEIVE_END"} */
     336           1 : 
     337             :  /* LDV {"action": "DEFAULT_ALLOC_1", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
     338           3 :  ldv_1_container_struct_dentry_ptr = ldv_xmalloc_unknown_size(0);
     339           3 :  ldv_1_container_struct_nameidata_ptr = ldv_xmalloc_unknown_size(0);
     340           3 :  ldv_1_container_struct_qstr_ptr = ldv_xmalloc_unknown_size(0);
     341             :  /* LDV {"action": "DEFAULT_ALLOC_1", "type": "CONDITION_END"} */
     342             : 
     343             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     344             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     345             : 
     346             :  /* Jump to a subprocess 'call' initial state */
     347           1 :  goto ldv_call_1;
     348             :  /* End of the process */
     349             :  return;
     350           1 : 
     351             :  /* Sbprocess call */
     352             :  ldv_call_1:
     353             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     354             : 
     355           4 :  if (ldv_undef_int()) {
     356             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     357           3 :   ldv_1_ldv_param_4_2_default = ldv_xmalloc_unknown_size(0);
     358             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
     359             : 
     360           2 :   switch (ldv_undef_int()) {
     361           3 :    case 1: {
     362             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback d_revalidate from dentry_operations."} */
     363             :     /* LDV {"type": "CALLBACK", "call": "((& vfat_revalidate))(ldv_1_container_struct_dentry_ptr, ldv_1_container_struct_nameidata_ptr);", "comment": "callback"} */
     364           2 :     ldv_random_containerless_scenario_callback_1_11(ldv_1_callback_d_revalidate, ldv_1_container_struct_dentry_ptr, ldv_1_container_struct_nameidata_ptr);
     365             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     366             : 
     367           1 :     break;
     368           1 :    }
     369           3 :    case 2: {
     370             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback d_hash from dentry_operations."} */
     371             :     /* LDV {"type": "CALLBACK", "call": "((& vfat_hash))(ldv_1_container_struct_dentry_ptr, ldv_1_container_struct_qstr_ptr);", "comment": "callback"} */
     372           2 :     ldv_random_containerless_scenario_callback_1_10(ldv_1_callback_d_hash, ldv_1_container_struct_dentry_ptr, ldv_1_container_struct_qstr_ptr);
     373             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     374             : 
     375           1 :     break;
     376           1 :    }
     377           3 :    case 3: {
     378             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback d_compare from dentry_operations."} */
     379             :     /* LDV {"type": "CALLBACK", "call": "((& vfat_cmp))(ldv_1_container_struct_dentry_ptr, ldv_1_container_struct_qstr_ptr, ldv_1_ldv_param_4_2_default);", "comment": "callback"} */
     380           2 :     ldv_random_containerless_scenario_callback_1_4(ldv_1_callback_d_compare, ldv_1_container_struct_dentry_ptr, ldv_1_container_struct_qstr_ptr, ldv_1_ldv_param_4_2_default);
     381             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     382             : 
     383           1 :     break;
     384           1 :    }
     385           2 :    default: ldv_stop();
     386           1 :   }
     387           0 :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     388           6 :   ldv_free(ldv_1_ldv_param_4_2_default);
     389           0 :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
     390             : 
     391             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     392             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     393             : 
     394             :   /* Jump to a subprocess 'call' initial state */
     395           1 :   goto ldv_call_1;
     396             :  }
     397             :  else {
     398             :   /* LDV {"action": "DEFAULT_FREE_1", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
     399           2 :   ldv_free(ldv_1_container_struct_dentry_ptr);
     400           2 :   ldv_free(ldv_1_container_struct_nameidata_ptr);
     401           2 :   ldv_free(ldv_1_container_struct_qstr_ptr);
     402             :   /* LDV {"action": "DEFAULT_FREE_1", "type": "CONDITION_END"} */
     403             : 
     404             :   /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_DENTRY_OPERATIONS callbacks invocations scenario."} */
     405             :   /* Skip a non-replicative signal receiving */
     406             :   /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "RECEIVE_END"} */
     407             : 
     408             :   /* Exit function at a terminal state */
     409           1 :   return;
     410             :  }
     411             :  /* End of the subprocess 'call' */
     412             :  return;
     413             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_dentry_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_1"} */
     414             : }
     415             : 
     416             : /* AUX_FUNC ldv_random_containerless_scenario_2 */
     417             : void ldv_random_containerless_scenario_2(void *arg0) {
     418             :  /* LDV {"thread": 2, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_dentry_operations)'", "function": "ldv_random_containerless_scenario_2"} */
     419           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     420           1 :  int (*ldv_2_callback_d_compare)(struct dentry *, struct qstr *, struct qstr *);
     421           1 :  int (*ldv_2_callback_d_hash)(struct dentry *, struct qstr *);
     422           1 :  int (*ldv_2_callback_d_revalidate)(struct dentry *, struct nameidata *);
     423           1 :  struct dentry *ldv_2_container_struct_dentry_ptr;
     424           1 :  struct nameidata *ldv_2_container_struct_nameidata_ptr;
     425           1 :  struct qstr *ldv_2_container_struct_qstr_ptr;
     426           1 :  struct qstr *ldv_2_ldv_param_4_2_default;
     427           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     428           1 :  /* LDV {"action": "DEFAULT_REGISTER_1", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_DENTRY_OPERATIONS callbacks invocations scenario."} */
     429           3 :  ldv_free(arg0);
     430           1 :  /* LDV {"action": "DEFAULT_REGISTER_1", "type": "RECEIVE_END"} */
     431           1 : 
     432             :  /* LDV {"action": "DEFAULT_ALLOC_1", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
     433           3 :  ldv_2_container_struct_dentry_ptr = ldv_xmalloc_unknown_size(0);
     434           3 :  ldv_2_container_struct_nameidata_ptr = ldv_xmalloc_unknown_size(0);
     435           3 :  ldv_2_container_struct_qstr_ptr = ldv_xmalloc_unknown_size(0);
     436             :  /* LDV {"action": "DEFAULT_ALLOC_1", "type": "CONDITION_END"} */
     437             : 
     438             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     439             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     440             : 
     441             :  /* Jump to a subprocess 'call' initial state */
     442           1 :  goto ldv_call_2;
     443             :  /* End of the process */
     444             :  return;
     445           1 : 
     446             :  /* Sbprocess call */
     447             :  ldv_call_2:
     448             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     449             : 
     450           4 :  if (ldv_undef_int()) {
     451             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     452           3 :   ldv_2_ldv_param_4_2_default = ldv_xmalloc_unknown_size(0);
     453             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
     454             : 
     455           2 :   switch (ldv_undef_int()) {
     456           3 :    case 1: {
     457             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback d_revalidate from dentry_operations."} */
     458             :     /* LDV {"type": "CALLBACK", "call": "((& vfat_revalidate_ci))(ldv_2_container_struct_dentry_ptr, ldv_2_container_struct_nameidata_ptr);", "comment": "callback"} */
     459           2 :     ldv_random_containerless_scenario_callback_2_11(ldv_2_callback_d_revalidate, ldv_2_container_struct_dentry_ptr, ldv_2_container_struct_nameidata_ptr);
     460             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     461             : 
     462           1 :     break;
     463           1 :    }
     464           3 :    case 2: {
     465             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback d_hash from dentry_operations."} */
     466             :     /* LDV {"type": "CALLBACK", "call": "((& vfat_hashi))(ldv_2_container_struct_dentry_ptr, ldv_2_container_struct_qstr_ptr);", "comment": "callback"} */
     467           2 :     ldv_random_containerless_scenario_callback_2_10(ldv_2_callback_d_hash, ldv_2_container_struct_dentry_ptr, ldv_2_container_struct_qstr_ptr);
     468             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     469             : 
     470           1 :     break;
     471           1 :    }
     472           3 :    case 3: {
     473             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback d_compare from dentry_operations."} */
     474             :     /* LDV {"type": "CALLBACK", "call": "((& vfat_cmpi))(ldv_2_container_struct_dentry_ptr, ldv_2_container_struct_qstr_ptr, ldv_2_ldv_param_4_2_default);", "comment": "callback"} */
     475           2 :     ldv_random_containerless_scenario_callback_2_4(ldv_2_callback_d_compare, ldv_2_container_struct_dentry_ptr, ldv_2_container_struct_qstr_ptr, ldv_2_ldv_param_4_2_default);
     476             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     477             : 
     478           1 :     break;
     479           1 :    }
     480           2 :    default: ldv_stop();
     481           1 :   }
     482           0 :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     483           6 :   ldv_free(ldv_2_ldv_param_4_2_default);
     484           0 :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
     485             : 
     486             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     487             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     488             : 
     489             :   /* Jump to a subprocess 'call' initial state */
     490           1 :   goto ldv_call_2;
     491             :  }
     492             :  else {
     493             :   /* LDV {"action": "DEFAULT_FREE_1", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
     494           2 :   ldv_free(ldv_2_container_struct_dentry_ptr);
     495           2 :   ldv_free(ldv_2_container_struct_nameidata_ptr);
     496           2 :   ldv_free(ldv_2_container_struct_qstr_ptr);
     497             :   /* LDV {"action": "DEFAULT_FREE_1", "type": "CONDITION_END"} */
     498             : 
     499             :   /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_DENTRY_OPERATIONS callbacks invocations scenario."} */
     500             :   /* Skip a non-replicative signal receiving */
     501             :   /* LDV {"action": "DEFAULT_DEREGISTER_1", "type": "RECEIVE_END"} */
     502             : 
     503             :   /* Exit function at a terminal state */
     504           1 :   return;
     505             :  }
     506             :  /* End of the subprocess 'call' */
     507             :  return;
     508             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_dentry_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_2"} */
     509             : }
     510             : 
     511             : /* AUX_FUNC ldv_random_containerless_scenario_3 */
     512             : void ldv_random_containerless_scenario_3(void *arg0) {
     513             :  /* LDV {"thread": 3, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_file_system_type)'", "function": "ldv_random_containerless_scenario_3"} */
     514           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     515             :  int (*ldv_3_callback_get_sb)(struct file_system_type *, int, char *, void *, struct vfsmount *);
     516           1 :  void (*ldv_3_callback_kill_sb)(struct super_block *);
     517           1 :  struct file_system_type *ldv_3_container_struct_file_system_type;
     518           1 :  struct super_block *ldv_3_container_struct_super_block_ptr;
     519           1 :  struct vfsmount *ldv_3_container_struct_vfsmount_ptr;
     520           1 :  int ldv_3_ldv_param_3_1_default;
     521           1 :  char *ldv_3_ldv_param_3_2_default;
     522           1 :  /* Received labels */
     523           2 :  struct ldv_struct_random_containerless_scenario_3 *data = (struct ldv_struct_random_containerless_scenario_3*) arg0;
     524           1 : 
     525           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     526             :  /* LDV {"action": "REGISTER", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_FILE_SYSTEM_TYPE callbacks invocations scenario."} */
     527             :  /* Assign recieved labels */
     528           2 :  if (data) {
     529           1 :   ldv_3_container_struct_file_system_type = data->arg0;
     530           2 :   ldv_free(data);
     531             :  }
     532             :  /* LDV {"action": "REGISTER", "type": "RECEIVE_END"} */
     533             : 
     534             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     535             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     536             : 
     537             :  /* Jump to a subprocess 'call' initial state */
     538           2 :  goto ldv_call_3;
     539             :  /* End of the process */
     540             :  return;
     541           1 : 
     542             :  /* Sbprocess call */
     543             :  ldv_call_3:
     544             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     545             : 
     546           4 :  if (ldv_undef_int()) {
     547             :   /* LDV {"action": "PRE_CALL_3", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     548           3 :   ldv_3_ldv_param_3_2_default = ldv_xmalloc_unknown_size(0);
     549             :   /* LDV {"action": "PRE_CALL_3", "type": "CONDITION_END"} */
     550             : 
     551           4 :   if (ldv_undef_int()) {
     552             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback kill_sb from file_system_type."} */
     553             :    /* LDV {"type": "CALLBACK", "call": "((& kill_block_super))(ldv_3_container_struct_super_block_ptr);", "comment": "callback"} */
     554           2 :    ldv_random_containerless_scenario_callback_3_8(ldv_3_callback_kill_sb, ldv_3_container_struct_super_block_ptr);
     555             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     556             : 
     557             :   }
     558             :   else {
     559             :    /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback get_sb from file_system_type."} */
     560             :    /* LDV {"type": "CALLBACK", "call": "((& vfat_get_sb))(ldv_3_container_struct_file_system_type, ldv_3_ldv_param_3_1_default, ldv_3_ldv_param_3_2_default, ldv_3_container_struct_super_block_ptr, ldv_3_container_struct_vfsmount_ptr);", "comment": "callback"} */
     561           2 :    ldv_random_containerless_scenario_callback_3_3(ldv_3_callback_get_sb, ldv_3_container_struct_file_system_type, ldv_3_ldv_param_3_1_default, ldv_3_ldv_param_3_2_default, ldv_3_container_struct_super_block_ptr, ldv_3_container_struct_vfsmount_ptr);
     562             :    /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     563             : 
     564             :   }
     565             :   /* LDV {"action": "POST_CALL_3", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     566           4 :   ldv_free(ldv_3_ldv_param_3_2_default);
     567             :   /* LDV {"action": "POST_CALL_3", "type": "CONDITION_END"} */
     568             : 
     569             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     570             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     571             : 
     572             :   /* Jump to a subprocess 'call' initial state */
     573           1 :   goto ldv_call_3;
     574             :  }
     575             :  else {
     576             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_FILE_SYSTEM_TYPE callbacks invocations scenario."} */
     577             :   /* Skip a non-replicative signal receiving */
     578             :   /* LDV {"action": "DEREGISTER", "type": "RECEIVE_END"} */
     579             : 
     580             :   /* Exit function at a terminal state */
     581           1 :   return;
     582             :  }
     583             :  /* End of the subprocess 'call' */
     584             :  return;
     585             :  /* 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_3"} */
     586             : }
     587             : 
     588             : /* AUX_FUNC ldv_random_containerless_scenario_4 */
     589             : void ldv_random_containerless_scenario_4(void *arg0) {
     590             :  /* LDV {"thread": 4, "type": "CONTROL_FUNCTION_BEGIN", "comment": "Control function 'random_containerless_scenario(struct_inode_operations)'", "function": "ldv_random_containerless_scenario_4"} */
     591           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_BEGIN", "comment": "Declare auxiliary variables."} */
     592           1 :  int (*ldv_4_callback_create)(struct inode *, struct dentry *, int, struct nameidata *);
     593           1 :  int (*ldv_4_callback_getattr)(struct vfsmount *, struct dentry *, struct kstat *);
     594           1 :  struct dentry *(*ldv_4_callback_lookup)(struct inode *, struct dentry *, struct nameidata *);
     595           1 :  int (*ldv_4_callback_mkdir)(struct inode *, struct dentry *, int);
     596             :  int (*ldv_4_callback_rename)(struct inode *, struct dentry *, struct inode *, struct dentry *);
     597           1 :  int (*ldv_4_callback_rmdir)(struct inode *, struct dentry *);
     598           1 :  int (*ldv_4_callback_setattr)(struct dentry *, struct iattr *);
     599           1 :  int (*ldv_4_callback_unlink)(struct inode *, struct dentry *);
     600           1 :  struct dentry *ldv_4_container_struct_dentry_ptr;
     601           1 :  struct iattr *ldv_4_container_struct_iattr_ptr;
     602           1 :  struct inode *ldv_4_container_struct_inode_ptr;
     603           1 :  struct kstat *ldv_4_container_struct_kstat_ptr;
     604           1 :  struct nameidata *ldv_4_container_struct_nameidata_ptr;
     605           1 :  struct vfsmount *ldv_4_container_struct_vfsmount_ptr;
     606           1 :  int ldv_4_ldv_param_12_2_default;
     607           1 :  struct inode *ldv_4_ldv_param_15_2_default;
     608           1 :  struct dentry *ldv_4_ldv_param_15_3_default;
     609           1 :  int ldv_4_ldv_param_4_2_default;
     610           1 :  /* LDV {"type": "CONTROL_FUNCTION_INIT_END", "comment": "Declare auxiliary variables."} */
     611           1 :  /* LDV {"action": "DEFAULT_REGISTER_5", "type": "RECEIVE_BEGIN", "comment": "Begin STRUCT_INODE_OPERATIONS callbacks invocations scenario."} */
     612           3 :  ldv_free(arg0);
     613           1 :  /* LDV {"action": "DEFAULT_REGISTER_5", "type": "RECEIVE_END"} */
     614           1 : 
     615           1 :  /* LDV {"action": "DEFAULT_ALLOC_5", "type": "CONDITION_BEGIN", "comment": "Allocate memory after default registration."} */
     616           4 :  ldv_4_container_struct_dentry_ptr = ldv_xmalloc_unknown_size(0);
     617           4 :  ldv_4_container_struct_iattr_ptr = ldv_xmalloc_unknown_size(0);
     618           4 :  ldv_4_container_struct_inode_ptr = ldv_xmalloc_unknown_size(0);
     619           4 :  ldv_4_container_struct_kstat_ptr = ldv_xmalloc_unknown_size(0);
     620           3 :  ldv_4_container_struct_nameidata_ptr = ldv_xmalloc_unknown_size(0);
     621           3 :  ldv_4_container_struct_vfsmount_ptr = ldv_xmalloc_unknown_size(0);
     622             :  /* LDV {"action": "DEFAULT_ALLOC_5", "type": "CONDITION_END"} */
     623             : 
     624             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     625             :  /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     626             : 
     627             :  /* Jump to a subprocess 'call' initial state */
     628           1 :  goto ldv_call_4;
     629             :  /* End of the process */
     630             :  return;
     631           1 : 
     632             :  /* Sbprocess call */
     633             :  ldv_call_4:
     634             :  /* LDV {"action": null, "type": "ARTIFICIAL", "comment": "Artificial state in scenario"} */
     635             : 
     636           4 :  if (ldv_undef_int()) {
     637             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     638             :   /* LDV {"action": "PRE_CALL_4", "type": "CONDITION_END"} */
     639             : 
     640           2 :   switch (ldv_undef_int()) {
     641           3 :    case 1: {
     642             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback unlink from inode_operations."} */
     643             :     /* LDV {"type": "CALLBACK", "call": "((& vfat_unlink))(ldv_4_container_struct_inode_ptr, ldv_4_container_struct_dentry_ptr);", "comment": "callback"} */
     644           2 :     ldv_random_containerless_scenario_callback_4_20(ldv_4_callback_unlink, ldv_4_container_struct_inode_ptr, ldv_4_container_struct_dentry_ptr);
     645             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     646             : 
     647           1 :     break;
     648           1 :    }
     649           3 :    case 2: {
     650             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback setattr from inode_operations."} */
     651             :     /* LDV {"type": "CALLBACK", "call": "((& fat_setattr))(ldv_4_container_struct_dentry_ptr, ldv_4_container_struct_iattr_ptr);", "comment": "callback"} */
     652           2 :     ldv_random_containerless_scenario_callback_4_19(ldv_4_callback_setattr, ldv_4_container_struct_dentry_ptr, ldv_4_container_struct_iattr_ptr);
     653             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     654             : 
     655           1 :     break;
     656           1 :    }
     657           3 :    case 3: {
     658             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback rmdir from inode_operations."} */
     659             :     /* LDV {"type": "CALLBACK", "call": "((& vfat_rmdir))(ldv_4_container_struct_inode_ptr, ldv_4_container_struct_dentry_ptr);", "comment": "callback"} */
     660           2 :     ldv_random_containerless_scenario_callback_4_18(ldv_4_callback_rmdir, ldv_4_container_struct_inode_ptr, ldv_4_container_struct_dentry_ptr);
     661             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     662             : 
     663           1 :     break;
     664           1 :    }
     665           3 :    case 4: {
     666             :     /* LDV {"action": "PRE_CALL_15", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     667           3 :     ldv_4_ldv_param_15_2_default = ldv_xmalloc_unknown_size(0);
     668           3 :     ldv_4_ldv_param_15_3_default = ldv_xmalloc_unknown_size(0);
     669             :     /* LDV {"action": "PRE_CALL_15", "type": "CONDITION_END"} */
     670             : 
     671             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback rename from inode_operations."} */
     672             :     /* LDV {"type": "CALLBACK", "call": "((& vfat_rename))(ldv_4_container_struct_inode_ptr, ldv_4_container_struct_dentry_ptr, ldv_4_ldv_param_15_2_default, ldv_4_ldv_param_15_3_default);", "comment": "callback"} */
     673           2 :     ldv_random_containerless_scenario_callback_4_15(ldv_4_callback_rename, ldv_4_container_struct_inode_ptr, ldv_4_container_struct_dentry_ptr, ldv_4_ldv_param_15_2_default, ldv_4_ldv_param_15_3_default);
     674             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     675             : 
     676             :     /* LDV {"action": "POST_CALL_15", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     677           2 :     ldv_free(ldv_4_ldv_param_15_2_default);
     678           2 :     ldv_free(ldv_4_ldv_param_15_3_default);
     679             :     /* LDV {"action": "POST_CALL_15", "type": "CONDITION_END"} */
     680             : 
     681           1 :     break;
     682           1 :    }
     683           3 :    case 5: {
     684             :     /* LDV {"action": "PRE_CALL_12", "type": "CONDITION_BEGIN", "comment": "Allocate memory for adhoc callback parameters."} */
     685             :     /* LDV {"action": "PRE_CALL_12", "type": "CONDITION_END"} */
     686             : 
     687             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback mkdir from inode_operations."} */
     688             :     /* LDV {"type": "CALLBACK", "call": "((& vfat_mkdir))(ldv_4_container_struct_inode_ptr, ldv_4_container_struct_dentry_ptr, ldv_4_ldv_param_12_2_default);", "comment": "callback"} */
     689           2 :     ldv_random_containerless_scenario_callback_4_12(ldv_4_callback_mkdir, ldv_4_container_struct_inode_ptr, ldv_4_container_struct_dentry_ptr, ldv_4_ldv_param_12_2_default);
     690             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     691             : 
     692             :     /* LDV {"action": "POST_CALL_12", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     693             :     /* LDV {"action": "POST_CALL_12", "type": "CONDITION_END"} */
     694             : 
     695           1 :     break;
     696           1 :    }
     697           3 :    case 6: {
     698             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback lookup from inode_operations."} */
     699             :     /* LDV {"type": "CALLBACK", "call": "((& vfat_lookup))(ldv_4_container_struct_inode_ptr, ldv_4_container_struct_dentry_ptr, ldv_4_container_struct_nameidata_ptr);", "comment": "callback"} */
     700           2 :     ldv_random_containerless_scenario_callback_4_11(ldv_4_callback_lookup, ldv_4_container_struct_inode_ptr, ldv_4_container_struct_dentry_ptr, ldv_4_container_struct_nameidata_ptr);
     701             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     702             : 
     703           1 :     break;
     704           1 :    }
     705           3 :    case 7: {
     706             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback getattr from inode_operations."} */
     707             :     /* LDV {"type": "CALLBACK", "call": "((& fat_getattr))(ldv_4_container_struct_vfsmount_ptr, ldv_4_container_struct_dentry_ptr, ldv_4_container_struct_kstat_ptr);", "comment": "callback"} */
     708           2 :     ldv_random_containerless_scenario_callback_4_10(ldv_4_callback_getattr, ldv_4_container_struct_vfsmount_ptr, ldv_4_container_struct_dentry_ptr, ldv_4_container_struct_kstat_ptr);
     709             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     710             : 
     711           1 :     break;
     712           1 :    }
     713           3 :    case 8: {
     714             :     /* LDV {"action": "CALLBACK", "type": "CALL_BEGIN", "callback": true, "comment": "Call any random callback. Invoke callback create from inode_operations."} */
     715             :     /* LDV {"type": "CALLBACK", "call": "((& vfat_create))(ldv_4_container_struct_inode_ptr, ldv_4_container_struct_dentry_ptr, ldv_4_ldv_param_4_2_default, ldv_4_container_struct_nameidata_ptr);", "comment": "callback"} */
     716           2 :     ldv_random_containerless_scenario_callback_4_4(ldv_4_callback_create, ldv_4_container_struct_inode_ptr, ldv_4_container_struct_dentry_ptr, ldv_4_ldv_param_4_2_default, ldv_4_container_struct_nameidata_ptr);
     717             :     /* LDV {"action": "CALLBACK", "type": "CALL_END"} */
     718             : 
     719           1 :     break;
     720           1 :    }
     721           2 :    default: ldv_stop();
     722           1 :   }
     723           0 :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_BEGIN", "comment": "Free memory of adhoc callback parameters."} */
     724             :   /* LDV {"action": "POST_CALL_4", "type": "CONDITION_END"} */
     725           0 : 
     726             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_BEGIN", "comment": "Prepare to call a random callback or deregister the callbacks."} */
     727             :   /* LDV {"action": "CALL", "type": "SUBPROCESS_END"} */
     728             : 
     729             :   /* Jump to a subprocess 'call' initial state */
     730           8 :   goto ldv_call_4;
     731             :  }
     732             :  else {
     733             :   /* LDV {"action": "DEFAULT_FREE_5", "type": "CONDITION_BEGIN", "comment": "Free memory before default deregistration."} */
     734           2 :   ldv_free(ldv_4_container_struct_dentry_ptr);
     735           2 :   ldv_free(ldv_4_container_struct_iattr_ptr);
     736           2 :   ldv_free(ldv_4_container_struct_inode_ptr);
     737           2 :   ldv_free(ldv_4_container_struct_kstat_ptr);
     738           2 :   ldv_free(ldv_4_container_struct_nameidata_ptr);
     739           2 :   ldv_free(ldv_4_container_struct_vfsmount_ptr);
     740             :   /* LDV {"action": "DEFAULT_FREE_5", "type": "CONDITION_END"} */
     741             : 
     742             :   /* LDV {"action": "DEFAULT_DEREGISTER_5", "type": "RECEIVE_BEGIN", "comment": "Finish STRUCT_INODE_OPERATIONS callbacks invocations scenario."} */
     743             :   /* Skip a non-replicative signal receiving */
     744             :   /* LDV {"action": "DEFAULT_DEREGISTER_5", "type": "RECEIVE_END"} */
     745             : 
     746             :   /* Exit function at a terminal state */
     747           1 :   return;
     748             :  }
     749             :  /* End of the subprocess 'call' */
     750             :  return;
     751             :  /* LDV {"comment": "End of control function based on process 'random_containerless_scenario(struct_inode_operations)'", "type": "CONTROL_FUNCTION_END", "function": "ldv_random_containerless_scenario_4"} */
     752             : }
     753             : 
     754             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_1_10 */
     755             : void ldv_random_containerless_scenario_callback_1_10(int (*arg0)(struct dentry *, struct qstr *), struct dentry *arg1, struct qstr *arg2) {
     756           2 :  ((& vfat_hash))(arg1, arg2);
     757           1 : }
     758             : 
     759             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_1_11 */
     760             : void ldv_random_containerless_scenario_callback_1_11(int (*arg0)(struct dentry *, struct nameidata *), struct dentry *arg1, struct nameidata *arg2) {
     761           3 :  ((& vfat_revalidate))(arg1, arg2);
     762           1 : }
     763             : 
     764             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_1_4 */
     765             : void ldv_random_containerless_scenario_callback_1_4(int (*arg0)(struct dentry *, struct qstr *, struct qstr *), struct dentry *arg1, struct qstr *arg2, struct qstr *arg3) {
     766           2 :  ((& vfat_cmp))(arg1, arg2, arg3);
     767           1 : }
     768             : 
     769             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_10 */
     770             : void ldv_random_containerless_scenario_callback_2_10(int (*arg0)(struct dentry *, struct qstr *), struct dentry *arg1, struct qstr *arg2) {
     771           2 :  ((& vfat_hashi))(arg1, arg2);
     772           1 : }
     773             : 
     774             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_11 */
     775             : void ldv_random_containerless_scenario_callback_2_11(int (*arg0)(struct dentry *, struct nameidata *), struct dentry *arg1, struct nameidata *arg2) {
     776           3 :  ((& vfat_revalidate_ci))(arg1, arg2);
     777           1 : }
     778             : 
     779             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_2_4 */
     780             : void ldv_random_containerless_scenario_callback_2_4(int (*arg0)(struct dentry *, struct qstr *, struct qstr *), struct dentry *arg1, struct qstr *arg2, struct qstr *arg3) {
     781           3 :  ((& vfat_cmpi))(arg1, arg2, arg3);
     782           1 : }
     783             : 
     784             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_3_3 */
     785             : void ldv_random_containerless_scenario_callback_3_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) {
     786           2 :  ((& vfat_get_sb))(arg1, arg2, arg3, arg4, arg5);
     787           1 : }
     788             : 
     789             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_3_8 */
     790             : void ldv_random_containerless_scenario_callback_3_8(void (*arg0)(struct super_block *), struct super_block *arg1) {
     791           1 :  ((& kill_block_super))(arg1);
     792           1 : }
     793             : 
     794             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_10 */
     795             : void ldv_random_containerless_scenario_callback_4_10(int (*arg0)(struct vfsmount *, struct dentry *, struct kstat *), struct vfsmount *arg1, struct dentry *arg2, struct kstat *arg3) {
     796           1 :  ((& fat_getattr))(arg1, arg2, arg3);
     797           1 : }
     798             : 
     799             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_11 */
     800             : void ldv_random_containerless_scenario_callback_4_11(struct dentry *(*arg0)(struct inode *, struct dentry *, struct nameidata *), struct inode *arg1, struct dentry *arg2, struct nameidata *arg3) {
     801           5 :  ((& vfat_lookup))(arg1, arg2, arg3);
     802           1 : }
     803             : 
     804             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_12 */
     805             : void ldv_random_containerless_scenario_callback_4_12(int (*arg0)(struct inode *, struct dentry *, int), struct inode *arg1, struct dentry *arg2, int arg3) {
     806           5 :  ((& vfat_mkdir))(arg1, arg2, arg3);
     807           1 : }
     808             : 
     809             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_15 */
     810             : void ldv_random_containerless_scenario_callback_4_15(int (*arg0)(struct inode *, struct dentry *, struct inode *, struct dentry *), struct inode *arg1, struct dentry *arg2, struct inode *arg3, struct dentry *arg4) {
     811           2 :  ((& vfat_rename))(arg1, arg2, arg3, arg4);
     812           1 : }
     813             : 
     814             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_18 */
     815             : void ldv_random_containerless_scenario_callback_4_18(int (*arg0)(struct inode *, struct dentry *), struct inode *arg1, struct dentry *arg2) {
     816           4 :  ((& vfat_rmdir))(arg1, arg2);
     817           1 : }
     818             : 
     819             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_19 */
     820             : void ldv_random_containerless_scenario_callback_4_19(int (*arg0)(struct dentry *, struct iattr *), struct dentry *arg1, struct iattr *arg2) {
     821           1 :  ((& fat_setattr))(arg1, arg2);
     822           1 : }
     823             : 
     824             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_20 */
     825             : void ldv_random_containerless_scenario_callback_4_20(int (*arg0)(struct inode *, struct dentry *), struct inode *arg1, struct dentry *arg2) {
     826           3 :  ((& vfat_unlink))(arg1, arg2);
     827           1 : }
     828             : 
     829             : /* AUX_FUNC_CALLBACK ldv_random_containerless_scenario_callback_4_4 */
     830             : void ldv_random_containerless_scenario_callback_4_4(int (*arg0)(struct inode *, struct dentry *, int, struct nameidata *), struct inode *arg1, struct dentry *arg2, int arg3, struct nameidata *arg4) {
     831           4 :  ((& vfat_create))(arg1, arg2, arg3, arg4);
     832           1 : }
     833             : 
     834             : /* AUX_FUNC main */
     835             : int main() {
     836           1 :  ldv_main_8(0);
     837           0 :  return 0;
     838             : }
     839             : 
     840             : 
     841             : /* AUX_FUNC  ERR_PTR */
     842             : static inline void *ERR_PTR (long int error)
     843             : {
     844           2 : 
     845           6 :  return ldv_err_ptr(error);
     846             : }
     847             : 
     848             : /* AUX_FUNC  PTR_ERR */
     849             : static inline long int PTR_ERR (void const *ptr)
     850             : {
     851           3 : 
     852           9 :  return ldv_ptr_err(ptr);
     853             : }
     854             : 
     855             : /* AUX_FUNC  IS_ERR */
     856             : static inline long int IS_ERR (void const *ptr)
     857             : {
     858           3 : 
     859           9 :  return ldv_is_err(ptr);
     860             : }
     861             : 
     862             : /* AUX_FUNC  IS_ERR_OR_NULL */
     863             : static inline long int IS_ERR_OR_NULL (void const *ptr)
     864             : {
     865             : 
     866             :  return ldv_is_err_or_null(ptr);
     867             : }
     868             : 
     869             : /* AUX_FUNC  kzalloc */
     870             : static inline void *kzalloc (size_t size, gfp_t flags)
     871             : {
     872             : 
     873             :  return ldv_kzalloc(size, flags);
     874             : }
     875             : 
     876             : /* AUX_FUNC  ldv_register_filesystem_6 */
     877             : int ldv_register_filesystem_6 (struct file_system_type *ldv_func_arg1)
     878             : {
     879           1 : 
     880             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'register_filesystem'"} */
     881           4 :  return ldv_emg_register_filesystem(ldv_func_arg1);
     882             : }
     883             : 
     884             : /* AUX_FUNC  ldv_unregister_filesystem_7 */
     885             : int ldv_unregister_filesystem_7 (struct file_system_type *ldv_func_arg1)
     886             : {
     887           2 : 
     888             :  /* LDV {"type": "KERNEL_MODEL", "comment": "Perform the model code of the function 'unregister_filesystem'"} */
     889           6 :  return ldv_emg_unregister_filesystem(ldv_func_arg1);
     890             : }

Generated by: LCOV version 1.10