status_t
_user_get_disk_system_info(disk_system_id id, user_disk_system_info *_info)
{
	if (_info == NULL)
		return B_BAD_VALUE;
	KDiskDeviceManager *manager = KDiskDeviceManager::Default();
	if (ManagerLocker locker = manager) {
		KDiskSystem *diskSystem = manager->FindDiskSystem(id);
		if (diskSystem != NULL) {
			user_disk_system_info info;
			diskSystem->GetInfo(&info);
			return copy_to_user_value(_info, info);
		}
	}
	return B_ENTRY_NOT_FOUND;
}
Example #2
0
status_t
_user_get_disk_system_info(disk_system_id id, user_disk_system_info *_info)
{
	if (!_info)
		return B_BAD_VALUE;
	KDiskDeviceManager *manager = KDiskDeviceManager::Default();
	if (ManagerLocker locker = manager) {
		if (KDiskSystem *diskSystem = manager->FindDiskSystem(id)) {
			user_disk_system_info info;
			diskSystem->GetInfo(&info);
			user_memcpy(_info, &info, sizeof(info));
			return B_OK;
		}
	}
	return B_ENTRY_NOT_FOUND;
}
Example #3
0
status_t
_user_find_disk_system(const char *_name, user_disk_system_info *_info)
{
	if (!_name || !_info)
		return B_BAD_VALUE;
	char name[B_DISK_SYSTEM_NAME_LENGTH];
	status_t error = ddm_strlcpy(name, _name, B_DISK_SYSTEM_NAME_LENGTH);
	if (error)
		return error;
	KDiskDeviceManager *manager = KDiskDeviceManager::Default();
	if (ManagerLocker locker = manager) {
		if (KDiskSystem *diskSystem = manager->FindDiskSystem(name)) {
			user_disk_system_info info;
			diskSystem->GetInfo(&info);
			user_memcpy(_info, &info, sizeof(info));
			return B_OK;
		}
	}
	return B_ENTRY_NOT_FOUND;
}
status_t
_user_find_disk_system(const char *_name, user_disk_system_info *_info)
{
	if (_name == NULL || _info == NULL)
		return B_BAD_VALUE;
	if (!IS_USER_ADDRESS(_name) || !IS_USER_ADDRESS(_info))
		return B_BAD_ADDRESS;
	char name[B_DISK_SYSTEM_NAME_LENGTH];
	status_t error = ddm_strlcpy(name, _name, B_DISK_SYSTEM_NAME_LENGTH);
	if (error != B_OK)
		return error;
	KDiskDeviceManager *manager = KDiskDeviceManager::Default();
	if (ManagerLocker locker = manager) {
		KDiskSystem *diskSystem = manager->FindDiskSystem(name);
		if (diskSystem != NULL) {
			user_disk_system_info info;
			diskSystem->GetInfo(&info);
			return copy_to_user_value(_info, info);
		}
	}
	return B_ENTRY_NOT_FOUND;
}