let initFile f =
  file:=f ;
  Data_for_aorai.setCData ();
  (* Adding C variables into our hashtable *)
  Globals.Vars.iter (fun vi _ -> set_varinfo vi.vname vi);
  Globals.Functions.iter(fun kf -> 
                           let fname = Kernel_function.get_name kf in
                           List.iter 
                             (fun vi -> 
                                set_paraminfo fname vi.vname vi)
                             (Kernel_function.get_formals kf);
                           
                           if not (Data_for_aorai.isIgnoredFunction fname) then
                             begin
                               let fund = (Kernel_function.get_definition kf) in
                               let bodys = fund.sbody.bstmts in
                               let ret  = List.hd (List.rev bodys) in
                               match ret.skind with
                                 | Return (Some e,_) -> 
                                     let en = e.enode in
                                     begin
                                       match en with 
                                         | Lval (Var vi,NoOffset-> set_returninfo fname vi (* Add the vi of return stmt *)
                                         | _ -> ()(* function without returned value *)
                                     end
                                       
                                 | _ -> () (* function without returned value *)
                             end
                        )