* Fixed gcc 4 warnings.
* Style cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22453 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -34,18 +34,21 @@ using namespace BPrivate::DiskDevice;
|
|||||||
\a from is longer than \to. If \c false, returns \c B_NAME_TOO_LONG
|
\a from is longer than \to. If \c false, returns \c B_NAME_TOO_LONG
|
||||||
if \a from is longer than \to.
|
if \a from is longer than \to.
|
||||||
*/
|
*/
|
||||||
static
|
static status_t
|
||||||
status_t
|
ddm_strlcpy(char *to, const char *from, size_t size,
|
||||||
ddm_strlcpy(char *to, const char *from, size_t size, bool allowTruncation = false) {
|
bool allowTruncation = false)
|
||||||
int error = user_strlcpy(to, from, size);
|
{
|
||||||
error = (0 <= error && size_t(error) < size) ? B_OK
|
ssize_t fromLen = user_strlcpy(to, from, size);
|
||||||
: (error < B_OK ? error : (allowTruncation ? B_OK : B_NAME_TOO_LONG));
|
if (fromLen < 0)
|
||||||
return status_t(error);
|
return fromLen;
|
||||||
|
if ((size_t)fromLen >= size && !allowTruncation)
|
||||||
|
return B_NAME_TOO_LONG;
|
||||||
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// move_descendants
|
// move_descendants
|
||||||
static
|
static void
|
||||||
void
|
|
||||||
move_descendants(KPartition *partition, off_t moveBy)
|
move_descendants(KPartition *partition, off_t moveBy)
|
||||||
{
|
{
|
||||||
if (!partition)
|
if (!partition)
|
||||||
@@ -56,9 +59,9 @@ move_descendants(KPartition *partition, off_t moveBy)
|
|||||||
move_descendants(child, moveBy);
|
move_descendants(child, moveBy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// move_descendants_contents
|
// move_descendants_contents
|
||||||
static
|
static status_t
|
||||||
status_t
|
|
||||||
move_descendants_contents(KPartition *partition)
|
move_descendants_contents(KPartition *partition)
|
||||||
{
|
{
|
||||||
if (!partition)
|
if (!partition)
|
||||||
@@ -80,6 +83,7 @@ move_descendants_contents(KPartition *partition)
|
|||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_get_next_disk_device_id
|
// _user_get_next_disk_device_id
|
||||||
partition_id
|
partition_id
|
||||||
_user_get_next_disk_device_id(int32 *_cookie, size_t *neededSize)
|
_user_get_next_disk_device_id(int32 *_cookie, size_t *neededSize)
|
||||||
@@ -110,6 +114,7 @@ _user_get_next_disk_device_id(int32 *_cookie, size_t *neededSize)
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_find_disk_device
|
// _user_find_disk_device
|
||||||
partition_id
|
partition_id
|
||||||
_user_find_disk_device(const char *_filename, size_t *neededSize)
|
_user_find_disk_device(const char *_filename, size_t *neededSize)
|
||||||
@@ -141,6 +146,7 @@ _user_find_disk_device(const char *_filename, size_t *neededSize)
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_find_partition
|
// _user_find_partition
|
||||||
partition_id
|
partition_id
|
||||||
_user_find_partition(const char *_filename, size_t *neededSize)
|
_user_find_partition(const char *_filename, size_t *neededSize)
|
||||||
@@ -177,6 +183,7 @@ _user_find_partition(const char *_filename, size_t *neededSize)
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_get_disk_device_data
|
// _user_get_disk_device_data
|
||||||
/*! \brief Writes data describing the disk device identified by ID and all
|
/*! \brief Writes data describing the disk device identified by ID and all
|
||||||
its partitions into the supplied buffer.
|
its partitions into the supplied buffer.
|
||||||
@@ -221,8 +228,7 @@ _user_find_partition(const char *_filename, size_t *neededSize)
|
|||||||
*/
|
*/
|
||||||
status_t
|
status_t
|
||||||
_user_get_disk_device_data(partition_id id, bool deviceOnly, bool shadow,
|
_user_get_disk_device_data(partition_id id, bool deviceOnly, bool shadow,
|
||||||
user_disk_device_data *buffer, size_t bufferSize,
|
user_disk_device_data *buffer, size_t bufferSize, size_t *_neededSize)
|
||||||
size_t *_neededSize)
|
|
||||||
{
|
{
|
||||||
if (!buffer && bufferSize > 0)
|
if (!buffer && bufferSize > 0)
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
@@ -272,11 +278,11 @@ _user_get_disk_device_data(partition_id id, bool deviceOnly, bool shadow,
|
|||||||
return B_ENTRY_NOT_FOUND;
|
return B_ENTRY_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_get_partitionable_spaces
|
// _user_get_partitionable_spaces
|
||||||
status_t
|
status_t
|
||||||
_user_get_partitionable_spaces(partition_id partitionID, int32 changeCounter,
|
_user_get_partitionable_spaces(partition_id partitionID, int32 changeCounter,
|
||||||
partitionable_space_data *_buffer,
|
partitionable_space_data *_buffer, int32 count, int32 *_actualCount)
|
||||||
int32 count, int32 *_actualCount)
|
|
||||||
{
|
{
|
||||||
if (!_buffer && count > 0)
|
if (!_buffer && count > 0)
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
@@ -291,23 +297,26 @@ _user_get_partitionable_spaces(partition_id partitionID, int32 changeCounter,
|
|||||||
// get the partition
|
// get the partition
|
||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
KPartition *partition = manager->ReadLockPartition(partitionID);
|
KPartition *partition = manager->ReadLockPartition(partitionID);
|
||||||
error = partition ? B_OK : B_ENTRY_NOT_FOUND;
|
error = partition ? (status_t)B_OK : (status_t)B_ENTRY_NOT_FOUND;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
PartitionRegistrar registrar1(partition, true);
|
PartitionRegistrar registrar1(partition, true);
|
||||||
PartitionRegistrar registrar2(partition->Device(), true);
|
PartitionRegistrar registrar2(partition->Device(), true);
|
||||||
DeviceReadLocker locker(partition->Device(), true);
|
DeviceReadLocker locker(partition->Device(), true);
|
||||||
error = check_shadow_partition(partition, changeCounter) ? B_OK : B_BAD_VALUE;
|
error = check_shadow_partition(partition, changeCounter)
|
||||||
|
? B_OK : B_BAD_VALUE;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
// get the disk system
|
// get the disk system
|
||||||
KDiskSystem *diskSystem = partition->DiskSystem();
|
KDiskSystem *diskSystem = partition->DiskSystem();
|
||||||
error = diskSystem ? B_OK : B_ENTRY_NOT_FOUND;
|
error = diskSystem ? (status_t)B_OK : (status_t)B_ENTRY_NOT_FOUND;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
// get the info
|
// get the info
|
||||||
int32 actualCount;
|
int32 actualCount;
|
||||||
error = diskSystem->GetPartitionableSpaces(partition, buffer,
|
error = diskSystem->GetPartitionableSpaces(partition, buffer,
|
||||||
count, &actualCount);
|
count, &actualCount);
|
||||||
if (!error && _actualCount)
|
if (!error && _actualCount) {
|
||||||
user_memcpy(_actualCount, &actualCount, sizeof(actualCount));
|
user_memcpy(_actualCount, &actualCount,
|
||||||
|
sizeof(actualCount));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -318,6 +327,7 @@ _user_get_partitionable_spaces(partition_id partitionID, int32 changeCounter,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_register_file_device
|
// _user_register_file_device
|
||||||
partition_id
|
partition_id
|
||||||
_user_register_file_device(const char *_filename)
|
_user_register_file_device(const char *_filename)
|
||||||
@@ -337,6 +347,7 @@ _user_register_file_device(const char *_filename)
|
|||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_unregister_file_device
|
// _user_unregister_file_device
|
||||||
status_t
|
status_t
|
||||||
_user_unregister_file_device(partition_id deviceID, const char *_filename)
|
_user_unregister_file_device(partition_id deviceID, const char *_filename)
|
||||||
@@ -355,6 +366,7 @@ _user_unregister_file_device(partition_id deviceID, const char *_filename)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_get_disk_system_info
|
// _user_get_disk_system_info
|
||||||
status_t
|
status_t
|
||||||
_user_get_disk_system_info(disk_system_id id, user_disk_system_info *_info)
|
_user_get_disk_system_info(disk_system_id id, user_disk_system_info *_info)
|
||||||
@@ -374,6 +386,7 @@ _user_get_disk_system_info(disk_system_id id, user_disk_system_info *_info)
|
|||||||
return B_ENTRY_NOT_FOUND;
|
return B_ENTRY_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_get_next_disk_system_info
|
// _user_get_next_disk_system_info
|
||||||
status_t
|
status_t
|
||||||
_user_get_next_disk_system_info(int32 *_cookie, user_disk_system_info *_info)
|
_user_get_next_disk_system_info(int32 *_cookie, user_disk_system_info *_info)
|
||||||
@@ -397,6 +410,7 @@ _user_get_next_disk_system_info(int32 *_cookie, user_disk_system_info *_info)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_find_disk_system
|
// _user_find_disk_system
|
||||||
status_t
|
status_t
|
||||||
_user_find_disk_system(const char *_name, user_disk_system_info *_info)
|
_user_find_disk_system(const char *_name, user_disk_system_info *_info)
|
||||||
@@ -420,6 +434,7 @@ _user_find_disk_system(const char *_name, user_disk_system_info *_info)
|
|||||||
return B_ENTRY_NOT_FOUND;
|
return B_ENTRY_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_supports_defragmenting_partition
|
// _user_supports_defragmenting_partition
|
||||||
bool
|
bool
|
||||||
_user_supports_defragmenting_partition(partition_id partitionID,
|
_user_supports_defragmenting_partition(partition_id partitionID,
|
||||||
@@ -441,11 +456,11 @@ _user_supports_defragmenting_partition(partition_id partitionID,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_supports_repairing_partition
|
// _user_supports_repairing_partition
|
||||||
bool
|
bool
|
||||||
_user_supports_repairing_partition(partition_id partitionID,
|
_user_supports_repairing_partition(partition_id partitionID,
|
||||||
int32 changeCounter, bool checkOnly,
|
int32 changeCounter, bool checkOnly, bool *_whileMounted)
|
||||||
bool *_whileMounted)
|
|
||||||
{
|
{
|
||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
// get the partition
|
// get the partition
|
||||||
@@ -463,11 +478,11 @@ _user_supports_repairing_partition(partition_id partitionID,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_supports_resizing_partition
|
// _user_supports_resizing_partition
|
||||||
bool
|
bool
|
||||||
_user_supports_resizing_partition(partition_id partitionID,
|
_user_supports_resizing_partition(partition_id partitionID, int32 changeCounter,
|
||||||
int32 changeCounter, bool *_canResizeContents,
|
bool *_canResizeContents, bool *_whileMounted)
|
||||||
bool *_whileMounted)
|
|
||||||
{
|
{
|
||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
|
|
||||||
@@ -523,12 +538,11 @@ _user_supports_resizing_partition(partition_id partitionID,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_supports_moving_partition
|
// _user_supports_moving_partition
|
||||||
bool
|
bool
|
||||||
_user_supports_moving_partition(partition_id partitionID, int32 changeCounter,
|
_user_supports_moving_partition(partition_id partitionID, int32 changeCounter,
|
||||||
partition_id *_unmovable,
|
partition_id *_unmovable, partition_id *_needUnmounting, size_t bufferSize)
|
||||||
partition_id *_needUnmounting,
|
|
||||||
size_t bufferSize)
|
|
||||||
{
|
{
|
||||||
if ((!_unmovable || !_needUnmounting) && bufferSize > 0)
|
if ((!_unmovable || !_needUnmounting) && bufferSize > 0)
|
||||||
return false;
|
return false;
|
||||||
@@ -574,8 +588,7 @@ _user_supports_moving_partition(partition_id partitionID, int32 changeCounter,
|
|||||||
size_t unmovableSize = bufferSize;
|
size_t unmovableSize = bufferSize;
|
||||||
size_t needUnmountingSize = bufferSize;
|
size_t needUnmountingSize = bufferSize;
|
||||||
result = get_unmovable_descendants(partition, unmovable,
|
result = get_unmovable_descendants(partition, unmovable,
|
||||||
unmovableSize, needUnmounting,
|
unmovableSize, needUnmounting, needUnmountingSize);
|
||||||
needUnmountingSize);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -588,6 +601,7 @@ _user_supports_moving_partition(partition_id partitionID, int32 changeCounter,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_supports_setting_partition_name
|
// _user_supports_setting_partition_name
|
||||||
bool
|
bool
|
||||||
_user_supports_setting_partition_name(partition_id partitionID,
|
_user_supports_setting_partition_name(partition_id partitionID,
|
||||||
@@ -623,8 +637,7 @@ _user_supports_setting_partition_name(partition_id partitionID,
|
|||||||
// _user_supports_setting_partition_content_name
|
// _user_supports_setting_partition_content_name
|
||||||
bool
|
bool
|
||||||
_user_supports_setting_partition_content_name(partition_id partitionID,
|
_user_supports_setting_partition_content_name(partition_id partitionID,
|
||||||
int32 changeCounter,
|
int32 changeCounter, bool *_whileMounted)
|
||||||
bool *_whileMounted)
|
|
||||||
{
|
{
|
||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
// get the partition
|
// get the partition
|
||||||
@@ -658,6 +671,7 @@ _user_supports_setting_partition_content_name(partition_id partitionID,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_supports_setting_partition_type
|
// _user_supports_setting_partition_type
|
||||||
bool
|
bool
|
||||||
_user_supports_setting_partition_type(partition_id partitionID,
|
_user_supports_setting_partition_type(partition_id partitionID,
|
||||||
@@ -688,6 +702,7 @@ _user_supports_setting_partition_type(partition_id partitionID,
|
|||||||
B_DISK_SYSTEM_SUPPORTS_SETTING_TYPE);
|
B_DISK_SYSTEM_SUPPORTS_SETTING_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_supports_setting_partition_parameters
|
// _user_supports_setting_partition_parameters
|
||||||
bool
|
bool
|
||||||
_user_supports_setting_partition_parameters(partition_id partitionID,
|
_user_supports_setting_partition_parameters(partition_id partitionID,
|
||||||
@@ -718,11 +733,11 @@ _user_supports_setting_partition_parameters(partition_id partitionID,
|
|||||||
B_DISK_SYSTEM_SUPPORTS_SETTING_PARAMETERS);
|
B_DISK_SYSTEM_SUPPORTS_SETTING_PARAMETERS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_supports_setting_partition_content_parameters
|
// _user_supports_setting_partition_content_parameters
|
||||||
bool
|
bool
|
||||||
_user_supports_setting_partition_content_parameters(partition_id partitionID,
|
_user_supports_setting_partition_content_parameters(partition_id partitionID,
|
||||||
int32 changeCounter,
|
int32 changeCounter, bool *_whileMounted)
|
||||||
bool *_whileMounted)
|
|
||||||
{
|
{
|
||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
// get the partition
|
// get the partition
|
||||||
@@ -754,11 +769,11 @@ _user_supports_setting_partition_content_parameters(partition_id partitionID,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_supports_initializing_partition
|
// _user_supports_initializing_partition
|
||||||
bool
|
bool
|
||||||
_user_supports_initializing_partition(partition_id partitionID,
|
_user_supports_initializing_partition(partition_id partitionID,
|
||||||
int32 changeCounter,
|
int32 changeCounter, const char *_diskSystemName)
|
||||||
const char *_diskSystemName)
|
|
||||||
{
|
{
|
||||||
if (!_diskSystemName)
|
if (!_diskSystemName)
|
||||||
return false;
|
return false;
|
||||||
@@ -806,6 +821,7 @@ _user_supports_initializing_partition(partition_id partitionID,
|
|||||||
diskSystemName);
|
diskSystemName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_supports_creating_child_partition
|
// _user_supports_creating_child_partition
|
||||||
bool
|
bool
|
||||||
_user_supports_creating_child_partition(partition_id partitionID,
|
_user_supports_creating_child_partition(partition_id partitionID,
|
||||||
@@ -832,6 +848,7 @@ _user_supports_creating_child_partition(partition_id partitionID,
|
|||||||
B_DISK_SYSTEM_SUPPORTS_CREATING_CHILD);
|
B_DISK_SYSTEM_SUPPORTS_CREATING_CHILD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_supports_deleting_child_partition
|
// _user_supports_deleting_child_partition
|
||||||
bool
|
bool
|
||||||
_user_supports_deleting_child_partition(partition_id partitionID,
|
_user_supports_deleting_child_partition(partition_id partitionID,
|
||||||
@@ -848,6 +865,7 @@ _user_supports_deleting_child_partition(partition_id partitionID,
|
|||||||
return (validate_delete_child_partition(partition, changeCounter) == B_OK);
|
return (validate_delete_child_partition(partition, changeCounter) == B_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_is_sub_disk_system_for
|
// _user_is_sub_disk_system_for
|
||||||
bool
|
bool
|
||||||
_user_is_sub_disk_system_for(disk_system_id diskSystemID,
|
_user_is_sub_disk_system_for(disk_system_id diskSystemID,
|
||||||
@@ -871,6 +889,7 @@ _user_is_sub_disk_system_for(disk_system_id diskSystemID,
|
|||||||
return diskSystem->IsSubSystemFor(partition);
|
return diskSystem->IsSubSystemFor(partition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_validate_resize_partition
|
// _user_validate_resize_partition
|
||||||
status_t
|
status_t
|
||||||
_user_validate_resize_partition(partition_id partitionID, int32 changeCounter,
|
_user_validate_resize_partition(partition_id partitionID, int32 changeCounter,
|
||||||
@@ -896,6 +915,7 @@ _user_validate_resize_partition(partition_id partitionID, int32 changeCounter,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_validate_move_partition
|
// _user_validate_move_partition
|
||||||
status_t
|
status_t
|
||||||
_user_validate_move_partition(partition_id partitionID, int32 changeCounter,
|
_user_validate_move_partition(partition_id partitionID, int32 changeCounter,
|
||||||
@@ -913,12 +933,14 @@ _user_validate_move_partition(partition_id partitionID, int32 changeCounter,
|
|||||||
PartitionRegistrar registrar1(partition, true);
|
PartitionRegistrar registrar1(partition, true);
|
||||||
PartitionRegistrar registrar2(partition->Device(), true);
|
PartitionRegistrar registrar2(partition->Device(), true);
|
||||||
DeviceReadLocker locker(partition->Device(), true);
|
DeviceReadLocker locker(partition->Device(), true);
|
||||||
status_t result = validate_move_partition(partition, changeCounter, &newOffset);
|
status_t result = validate_move_partition(partition, changeCounter,
|
||||||
|
&newOffset);
|
||||||
if (result)
|
if (result)
|
||||||
user_memcpy(_newOffset, &newOffset, sizeof(newOffset));
|
user_memcpy(_newOffset, &newOffset, sizeof(newOffset));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_validate_set_partition_name
|
// _user_validate_set_partition_name
|
||||||
status_t
|
status_t
|
||||||
_user_validate_set_partition_name(partition_id partitionID,
|
_user_validate_set_partition_name(partition_id partitionID,
|
||||||
@@ -944,6 +966,7 @@ _user_validate_set_partition_name(partition_id partitionID,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_validate_set_partition_content_name
|
// _user_validate_set_partition_content_name
|
||||||
status_t
|
status_t
|
||||||
_user_validate_set_partition_content_name(partition_id partitionID,
|
_user_validate_set_partition_content_name(partition_id partitionID,
|
||||||
@@ -969,6 +992,7 @@ _user_validate_set_partition_content_name(partition_id partitionID,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_validate_set_partition_type
|
// _user_validate_set_partition_type
|
||||||
status_t
|
status_t
|
||||||
_user_validate_set_partition_type(partition_id partitionID,
|
_user_validate_set_partition_type(partition_id partitionID,
|
||||||
@@ -991,20 +1015,22 @@ _user_validate_set_partition_type(partition_id partitionID,
|
|||||||
return validate_set_partition_type(partition, changeCounter, type);
|
return validate_set_partition_type(partition, changeCounter, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_validate_initialize_partition
|
// _user_validate_initialize_partition
|
||||||
status_t
|
status_t
|
||||||
_user_validate_initialize_partition(partition_id partitionID,
|
_user_validate_initialize_partition(partition_id partitionID,
|
||||||
int32 changeCounter,
|
int32 changeCounter, const char *_diskSystemName, char *_name,
|
||||||
const char *_diskSystemName, char *_name,
|
const char *_parameters, size_t parametersSize)
|
||||||
const char *_parameters,
|
|
||||||
size_t parametersSize)
|
|
||||||
{
|
{
|
||||||
if (!_diskSystemName || !_name || parametersSize > B_DISK_DEVICE_MAX_PARAMETER_SIZE)
|
if (!_diskSystemName || !_name
|
||||||
|
|| parametersSize > B_DISK_DEVICE_MAX_PARAMETER_SIZE) {
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
|
}
|
||||||
char diskSystemName[B_DISK_SYSTEM_NAME_LENGTH];
|
char diskSystemName[B_DISK_SYSTEM_NAME_LENGTH];
|
||||||
char name[B_DISK_DEVICE_NAME_LENGTH];
|
char name[B_DISK_DEVICE_NAME_LENGTH];
|
||||||
char *parameters = NULL;
|
char *parameters = NULL;
|
||||||
status_t error = ddm_strlcpy(diskSystemName, _diskSystemName, B_DISK_SYSTEM_NAME_LENGTH);
|
status_t error = ddm_strlcpy(diskSystemName, _diskSystemName,
|
||||||
|
B_DISK_SYSTEM_NAME_LENGTH);
|
||||||
if (!error)
|
if (!error)
|
||||||
error = ddm_strlcpy(name, _name, B_DISK_DEVICE_NAME_LENGTH, true);
|
error = ddm_strlcpy(name, _name, B_DISK_DEVICE_NAME_LENGTH, true);
|
||||||
if (error)
|
if (error)
|
||||||
@@ -1019,7 +1045,7 @@ _user_validate_initialize_partition(partition_id partitionID,
|
|||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
// get the partition
|
// get the partition
|
||||||
KPartition *partition = manager->ReadLockPartition(partitionID);
|
KPartition *partition = manager->ReadLockPartition(partitionID);
|
||||||
error = partition ? B_OK : B_ENTRY_NOT_FOUND;
|
error = partition ? (status_t)B_OK : (status_t)B_ENTRY_NOT_FOUND;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
PartitionRegistrar registrar1(partition, true);
|
PartitionRegistrar registrar1(partition, true);
|
||||||
PartitionRegistrar registrar2(partition->Device(), true);
|
PartitionRegistrar registrar2(partition->Device(), true);
|
||||||
@@ -1033,17 +1059,15 @@ _user_validate_initialize_partition(partition_id partitionID,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_validate_create_child_partition
|
// _user_validate_create_child_partition
|
||||||
status_t
|
status_t
|
||||||
_user_validate_create_child_partition(partition_id partitionID,
|
_user_validate_create_child_partition(partition_id partitionID,
|
||||||
int32 changeCounter, off_t *_offset,
|
int32 changeCounter, off_t *_offset, off_t *_size, const char *_type,
|
||||||
off_t *_size, const char *_type,
|
const char *_parameters, size_t parametersSize)
|
||||||
const char *_parameters,
|
|
||||||
size_t parametersSize)
|
|
||||||
{
|
{
|
||||||
if (!_offset || !_size || !_type
|
if (!_offset || !_size || !_type
|
||||||
|| parametersSize > B_DISK_DEVICE_MAX_PARAMETER_SIZE)
|
|| parametersSize > B_DISK_DEVICE_MAX_PARAMETER_SIZE) {
|
||||||
{
|
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
}
|
}
|
||||||
off_t offset;
|
off_t offset;
|
||||||
@@ -1065,13 +1089,13 @@ _user_validate_create_child_partition(partition_id partitionID,
|
|||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
// get the partition
|
// get the partition
|
||||||
KPartition *partition = manager->ReadLockPartition(partitionID);
|
KPartition *partition = manager->ReadLockPartition(partitionID);
|
||||||
error = partition ? B_OK : B_ENTRY_NOT_FOUND;
|
error = partition ? (status_t)B_OK : (status_t)B_ENTRY_NOT_FOUND;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
PartitionRegistrar registrar1(partition, true);
|
PartitionRegistrar registrar1(partition, true);
|
||||||
PartitionRegistrar registrar2(partition->Device(), true);
|
PartitionRegistrar registrar2(partition->Device(), true);
|
||||||
DeviceReadLocker locker(partition->Device(), true);
|
DeviceReadLocker locker(partition->Device(), true);
|
||||||
error = validate_create_child_partition(partition, changeCounter, &offset,
|
error = validate_create_child_partition(partition, changeCounter,
|
||||||
&size, type, parameters);
|
&offset, &size, type, parameters);
|
||||||
}
|
}
|
||||||
if (!error) {
|
if (!error) {
|
||||||
user_memcpy(_offset, &offset, sizeof(offset));
|
user_memcpy(_offset, &offset, sizeof(offset));
|
||||||
@@ -1081,11 +1105,11 @@ _user_validate_create_child_partition(partition_id partitionID,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_get_next_supported_partition_type
|
// _user_get_next_supported_partition_type
|
||||||
status_t
|
status_t
|
||||||
_user_get_next_supported_partition_type(partition_id partitionID,
|
_user_get_next_supported_partition_type(partition_id partitionID,
|
||||||
int32 changeCounter, int32 *_cookie,
|
int32 changeCounter, int32 *_cookie, char *_type)
|
||||||
char *_type)
|
|
||||||
{
|
{
|
||||||
if (!_cookie || !_type)
|
if (!_cookie || !_type)
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
@@ -1094,20 +1118,22 @@ _user_get_next_supported_partition_type(partition_id partitionID,
|
|||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
// get the partition
|
// get the partition
|
||||||
KPartition *partition = manager->ReadLockPartition(partitionID);
|
KPartition *partition = manager->ReadLockPartition(partitionID);
|
||||||
status_t error = partition ? B_OK : B_ENTRY_NOT_FOUND;
|
status_t error = partition ? (status_t)B_OK : (status_t)B_ENTRY_NOT_FOUND;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
PartitionRegistrar registrar1(partition, true);
|
PartitionRegistrar registrar1(partition, true);
|
||||||
PartitionRegistrar registrar2(partition->Device(), true);
|
PartitionRegistrar registrar2(partition->Device(), true);
|
||||||
DeviceReadLocker locker(partition->Device(), true);
|
DeviceReadLocker locker(partition->Device(), true);
|
||||||
error = check_shadow_partition(partition, changeCounter) ? B_OK : B_BAD_VALUE;
|
error = check_shadow_partition(partition, changeCounter)
|
||||||
|
? B_OK : B_BAD_VALUE;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
// get the disk system
|
// get the disk system
|
||||||
KDiskSystem *diskSystem = partition->DiskSystem();
|
KDiskSystem *diskSystem = partition->DiskSystem();
|
||||||
error = diskSystem ? B_OK : B_ENTRY_NOT_FOUND;
|
error = diskSystem ? (status_t)B_OK : (status_t)B_ENTRY_NOT_FOUND;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
// get the info
|
// get the info
|
||||||
char type[B_DISK_DEVICE_TYPE_LENGTH];
|
char type[B_DISK_DEVICE_TYPE_LENGTH];
|
||||||
error = diskSystem->GetNextSupportedType(partition, &cookie, type);
|
error = diskSystem->GetNextSupportedType(partition, &cookie,
|
||||||
|
type);
|
||||||
if (!error) {
|
if (!error) {
|
||||||
error = ddm_strlcpy(_type, type, B_DISK_DEVICE_TYPE_LENGTH);
|
error = ddm_strlcpy(_type, type, B_DISK_DEVICE_TYPE_LENGTH);
|
||||||
}
|
}
|
||||||
@@ -1119,6 +1145,7 @@ _user_get_next_supported_partition_type(partition_id partitionID,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_get_partition_type_for_content_type
|
// _user_get_partition_type_for_content_type
|
||||||
status_t
|
status_t
|
||||||
_user_get_partition_type_for_content_type(disk_system_id diskSystemID,
|
_user_get_partition_type_for_content_type(disk_system_id diskSystemID,
|
||||||
@@ -1127,7 +1154,8 @@ _user_get_partition_type_for_content_type(disk_system_id diskSystemID,
|
|||||||
if (!_contentType || !_type)
|
if (!_contentType || !_type)
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
char contentType[B_DISK_DEVICE_TYPE_LENGTH];
|
char contentType[B_DISK_DEVICE_TYPE_LENGTH];
|
||||||
status_t error = ddm_strlcpy(contentType, _contentType, B_DISK_DEVICE_TYPE_LENGTH);
|
status_t error = ddm_strlcpy(contentType, _contentType,
|
||||||
|
B_DISK_DEVICE_TYPE_LENGTH);
|
||||||
if (error)
|
if (error)
|
||||||
return error;
|
return error;
|
||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
@@ -1138,12 +1166,12 @@ _user_get_partition_type_for_content_type(disk_system_id diskSystemID,
|
|||||||
DiskSystemLoader loader(diskSystem, true);
|
DiskSystemLoader loader(diskSystem, true);
|
||||||
// get the info
|
// get the info
|
||||||
char type[B_DISK_DEVICE_TYPE_LENGTH];
|
char type[B_DISK_DEVICE_TYPE_LENGTH];
|
||||||
if (diskSystem->GetTypeForContentType(contentType, type)) {
|
if (diskSystem->GetTypeForContentType(contentType, type))
|
||||||
return ddm_strlcpy(_type, type, B_DISK_DEVICE_TYPE_LENGTH);
|
return ddm_strlcpy(_type, type, B_DISK_DEVICE_TYPE_LENGTH);
|
||||||
}
|
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_prepare_disk_device_modifications
|
// _user_prepare_disk_device_modifications
|
||||||
status_t
|
status_t
|
||||||
_user_prepare_disk_device_modifications(partition_id deviceID)
|
_user_prepare_disk_device_modifications(partition_id deviceID)
|
||||||
@@ -1195,6 +1223,7 @@ _user_commit_disk_device_modifications(partition_id deviceID, port_id port,
|
|||||||
return B_ENTRY_NOT_FOUND;
|
return B_ENTRY_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_cancel_disk_device_modifications
|
// _user_cancel_disk_device_modifications
|
||||||
status_t
|
status_t
|
||||||
_user_cancel_disk_device_modifications(partition_id deviceID)
|
_user_cancel_disk_device_modifications(partition_id deviceID)
|
||||||
@@ -1213,6 +1242,7 @@ _user_cancel_disk_device_modifications(partition_id deviceID)
|
|||||||
return B_ENTRY_NOT_FOUND;
|
return B_ENTRY_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_is_disk_device_modified
|
// _user_is_disk_device_modified
|
||||||
bool
|
bool
|
||||||
_user_is_disk_device_modified(partition_id deviceID)
|
_user_is_disk_device_modified(partition_id deviceID)
|
||||||
@@ -1231,6 +1261,7 @@ _user_is_disk_device_modified(partition_id deviceID)
|
|||||||
return B_ENTRY_NOT_FOUND;
|
return B_ENTRY_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_defragment_partition
|
// _user_defragment_partition
|
||||||
status_t
|
status_t
|
||||||
_user_defragment_partition(partition_id partitionID, int32 changeCounter)
|
_user_defragment_partition(partition_id partitionID, int32 changeCounter)
|
||||||
@@ -1252,6 +1283,7 @@ _user_defragment_partition(partition_id partitionID, int32 changeCounter)
|
|||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_repair_partition
|
// _user_repair_partition
|
||||||
status_t
|
status_t
|
||||||
_user_repair_partition(partition_id partitionID, int32 changeCounter,
|
_user_repair_partition(partition_id partitionID, int32 changeCounter,
|
||||||
@@ -1278,6 +1310,7 @@ _user_repair_partition(partition_id partitionID, int32 changeCounter,
|
|||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_resize_partition
|
// _user_resize_partition
|
||||||
status_t
|
status_t
|
||||||
_user_resize_partition(partition_id partitionID, int32 changeCounter,
|
_user_resize_partition(partition_id partitionID, int32 changeCounter,
|
||||||
@@ -1318,6 +1351,7 @@ _user_resize_partition(partition_id partitionID, int32 changeCounter,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_move_partition
|
// _user_move_partition
|
||||||
status_t
|
status_t
|
||||||
_user_move_partition(partition_id partitionID, int32 changeCounter,
|
_user_move_partition(partition_id partitionID, int32 changeCounter,
|
||||||
@@ -1354,6 +1388,7 @@ _user_move_partition(partition_id partitionID, int32 changeCounter,
|
|||||||
return move_descendants_contents(partition);
|
return move_descendants_contents(partition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_set_partition_name
|
// _user_set_partition_name
|
||||||
status_t
|
status_t
|
||||||
_user_set_partition_name(partition_id partitionID, int32 changeCounter,
|
_user_set_partition_name(partition_id partitionID, int32 changeCounter,
|
||||||
@@ -1376,8 +1411,7 @@ _user_set_partition_name(partition_id partitionID, int32 changeCounter,
|
|||||||
// check name
|
// check name
|
||||||
char proposedName[B_DISK_DEVICE_NAME_LENGTH];
|
char proposedName[B_DISK_DEVICE_NAME_LENGTH];
|
||||||
strcpy(proposedName, name);
|
strcpy(proposedName, name);
|
||||||
error = validate_set_partition_name(partition, changeCounter,
|
error = validate_set_partition_name(partition, changeCounter, proposedName);
|
||||||
proposedName);
|
|
||||||
if (error != B_OK)
|
if (error != B_OK)
|
||||||
return error;
|
return error;
|
||||||
if (strcmp(name, proposedName))
|
if (strcmp(name, proposedName))
|
||||||
@@ -1392,6 +1426,7 @@ _user_set_partition_name(partition_id partitionID, int32 changeCounter,
|
|||||||
partition, B_PARTITION_SET_NAME);
|
partition, B_PARTITION_SET_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_set_partition_content_name
|
// _user_set_partition_content_name
|
||||||
status_t
|
status_t
|
||||||
_user_set_partition_content_name(partition_id partitionID, int32 changeCounter,
|
_user_set_partition_content_name(partition_id partitionID, int32 changeCounter,
|
||||||
@@ -1430,6 +1465,7 @@ _user_set_partition_content_name(partition_id partitionID, int32 changeCounter,
|
|||||||
partition, B_PARTITION_SET_CONTENT_NAME);
|
partition, B_PARTITION_SET_CONTENT_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_set_partition_type
|
// _user_set_partition_type
|
||||||
status_t
|
status_t
|
||||||
_user_set_partition_type(partition_id partitionID, int32 changeCounter,
|
_user_set_partition_type(partition_id partitionID, int32 changeCounter,
|
||||||
@@ -1450,8 +1486,7 @@ _user_set_partition_type(partition_id partitionID, int32 changeCounter,
|
|||||||
PartitionRegistrar registrar2(partition->Device(), true);
|
PartitionRegistrar registrar2(partition->Device(), true);
|
||||||
DeviceWriteLocker locker(partition->Device(), true);
|
DeviceWriteLocker locker(partition->Device(), true);
|
||||||
// check type
|
// check type
|
||||||
error = validate_set_partition_type(partition, changeCounter,
|
error = validate_set_partition_type(partition, changeCounter, type);
|
||||||
type);
|
|
||||||
if (error != B_OK)
|
if (error != B_OK)
|
||||||
return error;
|
return error;
|
||||||
// set type
|
// set type
|
||||||
@@ -1464,6 +1499,7 @@ _user_set_partition_type(partition_id partitionID, int32 changeCounter,
|
|||||||
partition, B_PARTITION_SET_TYPE);
|
partition, B_PARTITION_SET_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_set_partition_parameters
|
// _user_set_partition_parameters
|
||||||
status_t
|
status_t
|
||||||
_user_set_partition_parameters(partition_id partitionID, int32 changeCounter,
|
_user_set_partition_parameters(partition_id partitionID, int32 changeCounter,
|
||||||
@@ -1482,7 +1518,7 @@ _user_set_partition_parameters(partition_id partitionID, int32 changeCounter,
|
|||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
// get the partition
|
// get the partition
|
||||||
KPartition *partition = manager->WriteLockPartition(partitionID);
|
KPartition *partition = manager->WriteLockPartition(partitionID);
|
||||||
status_t error = partition ? B_OK : B_ENTRY_NOT_FOUND;
|
status_t error = partition ? (status_t)B_OK : (status_t)B_ENTRY_NOT_FOUND;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
PartitionRegistrar registrar1(partition, true);
|
PartitionRegistrar registrar1(partition, true);
|
||||||
PartitionRegistrar registrar2(partition->Device(), true);
|
PartitionRegistrar registrar2(partition->Device(), true);
|
||||||
@@ -1496,8 +1532,9 @@ _user_set_partition_parameters(partition_id partitionID, int32 changeCounter,
|
|||||||
if (!error) {
|
if (!error) {
|
||||||
partition->Changed(B_PARTITION_CHANGED_PARAMETERS);
|
partition->Changed(B_PARTITION_CHANGED_PARAMETERS);
|
||||||
// implicit partitioning system changes
|
// implicit partitioning system changes
|
||||||
error = partition->Parent()->DiskSystem()->ShadowPartitionChanged(
|
error = partition->Parent()->DiskSystem()
|
||||||
partition, B_PARTITION_SET_PARAMETERS);
|
->ShadowPartitionChanged(partition,
|
||||||
|
B_PARTITION_SET_PARAMETERS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1505,12 +1542,11 @@ _user_set_partition_parameters(partition_id partitionID, int32 changeCounter,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_set_partition_content_parameters
|
// _user_set_partition_content_parameters
|
||||||
status_t
|
status_t
|
||||||
_user_set_partition_content_parameters(partition_id partitionID,
|
_user_set_partition_content_parameters(partition_id partitionID,
|
||||||
int32 changeCounter,
|
int32 changeCounter, const char *_parameters, size_t parametersSize)
|
||||||
const char *_parameters,
|
|
||||||
size_t parametersSize)
|
|
||||||
{
|
{
|
||||||
if (!_parameters || parametersSize > B_DISK_DEVICE_MAX_PARAMETER_SIZE)
|
if (!_parameters || parametersSize > B_DISK_DEVICE_MAX_PARAMETER_SIZE)
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
@@ -1525,7 +1561,7 @@ _user_set_partition_content_parameters(partition_id partitionID,
|
|||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
// get the partition
|
// get the partition
|
||||||
KPartition *partition = manager->WriteLockPartition(partitionID);
|
KPartition *partition = manager->WriteLockPartition(partitionID);
|
||||||
status_t error = partition ? B_OK : B_ENTRY_NOT_FOUND;
|
status_t error = partition ? (status_t)B_OK : (status_t)B_ENTRY_NOT_FOUND;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
PartitionRegistrar registrar1(partition, true);
|
PartitionRegistrar registrar1(partition, true);
|
||||||
PartitionRegistrar registrar2(partition->Device(), true);
|
PartitionRegistrar registrar2(partition->Device(), true);
|
||||||
@@ -1548,18 +1584,22 @@ _user_set_partition_content_parameters(partition_id partitionID,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_initialize_partition
|
// _user_initialize_partition
|
||||||
status_t
|
status_t
|
||||||
_user_initialize_partition(partition_id partitionID, int32 changeCounter,
|
_user_initialize_partition(partition_id partitionID, int32 changeCounter,
|
||||||
const char *_diskSystemName, const char *_name,
|
const char *_diskSystemName, const char *_name, const char *_parameters,
|
||||||
const char *_parameters, size_t parametersSize)
|
size_t parametersSize)
|
||||||
{
|
{
|
||||||
if (!_diskSystemName || !_name || parametersSize > B_DISK_DEVICE_MAX_PARAMETER_SIZE)
|
if (!_diskSystemName || !_name
|
||||||
|
|| parametersSize > B_DISK_DEVICE_MAX_PARAMETER_SIZE) {
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
|
}
|
||||||
char diskSystemName[B_DISK_SYSTEM_NAME_LENGTH];
|
char diskSystemName[B_DISK_SYSTEM_NAME_LENGTH];
|
||||||
char name[B_DISK_DEVICE_NAME_LENGTH];
|
char name[B_DISK_DEVICE_NAME_LENGTH];
|
||||||
char *parameters = NULL;
|
char *parameters = NULL;
|
||||||
status_t error = ddm_strlcpy(diskSystemName, _diskSystemName, B_DISK_SYSTEM_NAME_LENGTH);
|
status_t error = ddm_strlcpy(diskSystemName, _diskSystemName,
|
||||||
|
B_DISK_SYSTEM_NAME_LENGTH);
|
||||||
if (!error)
|
if (!error)
|
||||||
error = ddm_strlcpy(name, _name, B_DISK_DEVICE_NAME_LENGTH);
|
error = ddm_strlcpy(name, _name, B_DISK_DEVICE_NAME_LENGTH);
|
||||||
if (error)
|
if (error)
|
||||||
@@ -1574,14 +1614,14 @@ _user_initialize_partition(partition_id partitionID, int32 changeCounter,
|
|||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
// get the partition
|
// get the partition
|
||||||
KPartition *partition = manager->WriteLockPartition(partitionID);
|
KPartition *partition = manager->WriteLockPartition(partitionID);
|
||||||
error = partition ? B_OK : B_ENTRY_NOT_FOUND;
|
error = partition ? (status_t)B_OK : (status_t)B_ENTRY_NOT_FOUND;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
PartitionRegistrar registrar1(partition, true);
|
PartitionRegistrar registrar1(partition, true);
|
||||||
PartitionRegistrar registrar2(partition->Device(), true);
|
PartitionRegistrar registrar2(partition->Device(), true);
|
||||||
DeviceWriteLocker locker(partition->Device(), true);
|
DeviceWriteLocker locker(partition->Device(), true);
|
||||||
// get the disk system
|
// get the disk system
|
||||||
KDiskSystem *diskSystem = manager->LoadDiskSystem(diskSystemName);
|
KDiskSystem *diskSystem = manager->LoadDiskSystem(diskSystemName);
|
||||||
error = diskSystem ? B_OK : B_ENTRY_NOT_FOUND;
|
error = diskSystem ? (status_t)B_OK : (status_t)B_ENTRY_NOT_FOUND;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
DiskSystemLoader loader(diskSystem, true);
|
DiskSystemLoader loader(diskSystem, true);
|
||||||
// check parameters
|
// check parameters
|
||||||
@@ -1593,7 +1633,8 @@ _user_initialize_partition(partition_id partitionID, int32 changeCounter,
|
|||||||
error = !strcmp(name, proposedName) ? B_OK : B_BAD_VALUE;
|
error = !strcmp(name, proposedName) ? B_OK : B_BAD_VALUE;
|
||||||
}
|
}
|
||||||
if (!error) {
|
if (!error) {
|
||||||
// unitialize the partition's contents and set the new parameters
|
// unitialize the partition's contents and set the new
|
||||||
|
// parameters
|
||||||
error = partition->UninitializeContents(true);
|
error = partition->UninitializeContents(true);
|
||||||
}
|
}
|
||||||
if (!error) {
|
if (!error) {
|
||||||
@@ -1617,6 +1658,7 @@ _user_initialize_partition(partition_id partitionID, int32 changeCounter,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_uninitialize_partition
|
// _user_uninitialize_partition
|
||||||
status_t
|
status_t
|
||||||
_user_uninitialize_partition(partition_id partitionID, int32 changeCounter)
|
_user_uninitialize_partition(partition_id partitionID, int32 changeCounter)
|
||||||
@@ -1633,12 +1675,12 @@ _user_uninitialize_partition(partition_id partitionID, int32 changeCounter)
|
|||||||
return partition->UninitializeContents(true);
|
return partition->UninitializeContents(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_create_child_partition
|
// _user_create_child_partition
|
||||||
status_t
|
status_t
|
||||||
_user_create_child_partition(partition_id partitionID, int32 changeCounter,
|
_user_create_child_partition(partition_id partitionID, int32 changeCounter,
|
||||||
off_t offset, off_t size, const char *_type,
|
off_t offset, off_t size, const char *_type, const char *_parameters,
|
||||||
const char *_parameters, size_t parametersSize,
|
size_t parametersSize, partition_id *_childID)
|
||||||
partition_id *_childID)
|
|
||||||
{
|
{
|
||||||
if (!_type || parametersSize > B_DISK_DEVICE_MAX_PARAMETER_SIZE)
|
if (!_type || parametersSize > B_DISK_DEVICE_MAX_PARAMETER_SIZE)
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
@@ -1657,7 +1699,7 @@ _user_create_child_partition(partition_id partitionID, int32 changeCounter,
|
|||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
// get the partition
|
// get the partition
|
||||||
KPartition *partition = manager->WriteLockPartition(partitionID);
|
KPartition *partition = manager->WriteLockPartition(partitionID);
|
||||||
error = partition ? B_OK : B_ENTRY_NOT_FOUND;
|
error = partition ? (status_t)B_OK : (status_t)B_ENTRY_NOT_FOUND;
|
||||||
if (!error) {
|
if (!error) {
|
||||||
PartitionRegistrar registrar1(partition, true);
|
PartitionRegistrar registrar1(partition, true);
|
||||||
PartitionRegistrar registrar2(partition->Device(), true);
|
PartitionRegistrar registrar2(partition->Device(), true);
|
||||||
@@ -1701,6 +1743,7 @@ _user_create_child_partition(partition_id partitionID, int32 changeCounter,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_delete_partition
|
// _user_delete_partition
|
||||||
status_t
|
status_t
|
||||||
_user_delete_partition(partition_id partitionID, int32 changeCounter)
|
_user_delete_partition(partition_id partitionID, int32 changeCounter)
|
||||||
@@ -1725,6 +1768,7 @@ _user_delete_partition(partition_id partitionID, int32 changeCounter)
|
|||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_get_next_disk_device_job_info
|
// _user_get_next_disk_device_job_info
|
||||||
status_t
|
status_t
|
||||||
_user_get_next_disk_device_job_info(int32 *_cookie,
|
_user_get_next_disk_device_job_info(int32 *_cookie,
|
||||||
@@ -1761,6 +1805,7 @@ _user_get_next_disk_device_job_info(int32 *_cookie,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_get_disk_device_job_info
|
// _user_get_disk_device_job_info
|
||||||
status_t
|
status_t
|
||||||
_user_get_disk_device_job_info(disk_job_id id, user_disk_device_job_info *_info)
|
_user_get_disk_device_job_info(disk_job_id id, user_disk_device_job_info *_info)
|
||||||
@@ -1780,6 +1825,7 @@ _user_get_disk_device_job_info(disk_job_id id, user_disk_device_job_info *_info)
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_get_disk_device_job_status
|
// _user_get_disk_device_job_status
|
||||||
status_t
|
status_t
|
||||||
_user_get_disk_device_job_progress_info(disk_job_id id,
|
_user_get_disk_device_job_progress_info(disk_job_id id,
|
||||||
@@ -1800,6 +1846,7 @@ _user_get_disk_device_job_progress_info(disk_job_id id,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_pause_disk_device_job
|
// _user_pause_disk_device_job
|
||||||
status_t
|
status_t
|
||||||
_user_pause_disk_device_job(disk_job_id id)
|
_user_pause_disk_device_job(disk_job_id id)
|
||||||
@@ -1819,6 +1866,7 @@ _user_pause_disk_device_job(disk_job_id id)
|
|||||||
return B_ENTRY_NOT_FOUND;
|
return B_ENTRY_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// _user_cancel_disk_device_job
|
// _user_cancel_disk_device_job
|
||||||
status_t
|
status_t
|
||||||
_user_cancel_disk_device_job(disk_job_id id, bool reverse)
|
_user_cancel_disk_device_job(disk_job_id id, bool reverse)
|
||||||
|
|||||||
Reference in New Issue
Block a user