fDeviceData
disk_device_data fDeviceData;
user_disk_device_data* fDeviceData;
return fDeviceData
&& (fDeviceData->device_flags & B_DISK_DEVICE_WRITE_ONCE) != 0;
if (fDeviceData == NULL)
int fd = open(fDeviceData->path, O_RDONLY);
free(fDeviceData);
fDeviceData = NULL;
return fDeviceData ? B_OK : B_NO_INIT;
if (!path || !fDeviceData)
return path->SetTo(fDeviceData->path);
return fDeviceData
&& (fDeviceData->device_flags & B_DISK_DEVICE_IS_FILE) != 0;
fDeviceData->device_partition_data.id, pathBuffer, sizeof(pathBuffer));
fDeviceData = data;
&fDeviceData->device_partition_data);
fDeviceData = NULL;
if (!data || !fDeviceData || ID() != data->device_partition_data.id)
fDeviceData(NULL)
user_disk_device_data* oldData = fDeviceData;
fDeviceData = data;
return fDeviceData
&& (fDeviceData->device_flags & B_DISK_DEVICE_HAS_MEDIA) != 0;
return fDeviceData
&& (fDeviceData->device_flags & B_DISK_DEVICE_REMOVABLE) != 0;
return fDeviceData
&& (fDeviceData->device_flags & B_DISK_DEVICE_READ_ONLY) != 0;
void* Data() const { return fDeviceData; }
void* fDeviceData;
status = Module()->init_device(fNode->DriverData(), &fDeviceData);
fDeviceData = NULL;
Module()->uninit_device(fDeviceData);
fDeviceData = NULL;
fDeviceData = this;
free(fDeviceData.path);
fDeviceData.path = NULL;
fDeviceData.id = id;
fDeviceData.flags = flags;
return fDeviceData.flags;
return fDeviceData.geometry.read_only;
return fDeviceData.geometry.write_once;
return fDeviceData.geometry.removable;
if (GetGeometry(&fDeviceData.geometry) != B_OK)
return fDeviceData.path;
if (!fDeviceData.path)
return path->SetPath(fDeviceData.path);
return &fDeviceData;
return &fDeviceData;
fDeviceData(),
fDeviceData.id = fPartitionData.id;
fPartitionData.block_size = fDeviceData.geometry.bytes_per_sector;
fPartitionData.physical_block_size = fDeviceData.geometry.bytes_per_physical_sector;
* fDeviceData.geometry.sectors_per_track
* fDeviceData.geometry.cylinder_count
* fDeviceData.geometry.head_count;
fDeviceData.geometry.bytes_per_sector = 0;
fDeviceData.geometry.sectors_per_track = 0;
fDeviceData.geometry.cylinder_count = 0;
fDeviceData.geometry.head_count = 0;
fDeviceData.geometry.device_type = B_DISK;
fDeviceData.geometry.removable = true;
fDeviceData.geometry.read_only = true;
fDeviceData.geometry.write_once = false;
if (fDeviceData.geometry.removable)
if (fDeviceData.geometry.read_only)
if (fDeviceData.geometry.write_once)
status_t error = set_string(fDeviceData.path, path);
error = GetGeometry(&fDeviceData.geometry);
fDeviceData.id = -1;
fDeviceData.flags = 0;
if (fDeviceData.path) {
void* DeviceData() const { return fDeviceData; }
status = fDeviceModule->init_device(fNode->DriverData(), &fDeviceData);
fDeviceData = NULL;
fDeviceModule->uninit_device(fDeviceData);
fDeviceData = NULL;
void* fDeviceData;