-File::File(const char*fullpath, void *userdata) {
- // this cannot fail because we get a xbt_die if the mountpoint does not exist
- p_inferior = simcall_file_open(fullpath, Host::current()->inferior());
- p_path = fullpath;
+File::File(const char* fullpath, void* userdata) : path_(fullpath), userdata_(userdata)
+{
+ // this cannot fail because we get a xbt_die if the mountpoint does not exist
+ pimpl_ = simcall_file_open(fullpath, Host::current());
+ xbt_dynar_t info = simcall_file_get_info(pimpl_);
+ storage_type = xbt_dynar_pop_as(info, char*);
+ storageId = xbt_dynar_pop_as(info, char*);
+ mount_point = xbt_dynar_pop_as(info, char*);