static int host(int argc, char *argv[]){ const char* host_name = MSG_host_get_name(MSG_host_self()); /* - Display information on the disks mounted by the current host */ XBT_INFO("*** Storage info on %s ***", host_name); xbt_dict_cursor_t cursor = NULL; char* mount_name; char* storage_name; msg_storage_t storage = NULL; /* - Retrieve all mount points of current host */ xbt_dict_t storage_list = MSG_host_get_mounted_storage_list(MSG_host_self()); xbt_dict_foreach(storage_list,cursor,mount_name,storage_name) { /* - For each disk mounted on host: - Retrieve disk's information */ XBT_INFO("Storage name: %s, mount name: %s", storage_name, mount_name); storage = MSG_storage_get_by_name(storage_name); sg_size_t free_size = MSG_storage_get_free_size(storage); sg_size_t used_size = MSG_storage_get_used_size(storage); sg_size_t size = MSG_storage_get_size(storage); XBT_INFO("Total size: %llu bytes", size); XBT_INFO("Free size: %llu bytes", free_size); XBT_INFO("Used size: %llu bytes", used_size); }
void storage_info(msg_host_t host) { const char* host_name = MSG_host_get_name(host); XBT_INFO("*** Storage info on %s ***", host_name); xbt_dict_cursor_t cursor = NULL; char* mount_name; char* storage_name; msg_storage_t storage; xbt_dict_t storage_list = MSG_host_get_mounted_storage_list(MSG_host_self()); xbt_dict_foreach(storage_list,cursor,mount_name,storage_name) { XBT_INFO("\tStorage name: %s, mount name: %s", storage_name, mount_name); storage = MSG_storage_get_by_name(storage_name); sg_size_t free_size = MSG_storage_get_free_size(storage); sg_size_t used_size = MSG_storage_get_used_size(storage); XBT_INFO("\t\tFree size: %llu bytes", free_size); XBT_INFO("\t\tUsed size: %llu bytes", used_size); display_storage_properties(storage); dump_storage_by_name(storage_name); }
JNIEXPORT jlong JNICALL Java_org_simgrid_msg_Storage_getFreeSize(JNIEnv * env,jobject jstorage) { msg_storage_t storage = jstorage_get_native(env, jstorage); if (!storage) { jxbt_throw_notbound(env, "storage", jstorage); return -1; } return (jlong) MSG_storage_get_free_size(storage); }
} xbt_dict_free(&storage_list); /* - Create a 200,000 bytes file named './tmp/data.txt' on /sd1 */ char* file_name = xbt_strdup("/home/tmp/data.txt"); msg_file_t file = NULL; sg_size_t write, read, file_size; /* - Open an non-existing file which amounts to create it. */ file = MSG_file_open(file_name, NULL); write = MSG_file_write(file, 200000); // Write 200,000 bytes XBT_INFO("Create a %llu bytes file named '%s' on /sd1", write, file_name); MSG_file_dump(file); /* - Check that sizes have changed */ XBT_INFO("Free size: %llu bytes", MSG_storage_get_free_size(storage)); XBT_INFO("Used size: %llu bytes", MSG_storage_get_used_size(storage)); /* - Retrieve the size of created file and read it completely */ file_size = MSG_file_get_size(file); MSG_file_seek(file, 0, SEEK_SET); read = MSG_file_read(file, file_size); XBT_INFO("Read %llu bytes on %s", read, file_name); /* - Then write 100,000 bytes in tmp/data.txt */ write = MSG_file_write(file, 100000); // Write 100,000 bytes XBT_INFO("Write %llu bytes on %s", write, file_name); MSG_file_dump(file); storage_name = xbt_strdup("Disk4"); storage = MSG_storage_get_by_name(storage_name);