Improved the test application: it now accepts a test disk image as first
parameter (else it falls back to the old behaviour, trying to open /boot/home/tmp/test-file-device). Also fixed the hackish busy loop to at least snooze() a bit (so that it doesn't use all your CPU energy while debugging a partitioning module :-)). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4475 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
#include <OS.h>
|
#include <OS.h>
|
||||||
|
|
||||||
#include <KDiskDevice.h>
|
#include <KDiskDevice.h>
|
||||||
|
#include <KFileDiskDevice.h>
|
||||||
#include <KDiskDeviceManager.h>
|
#include <KDiskDeviceManager.h>
|
||||||
#include <KDiskDeviceUtils.h>
|
#include <KDiskDeviceUtils.h>
|
||||||
|
|
||||||
@@ -16,21 +17,30 @@ const char *kTestFileDevice = "/boot/home/tmp/test-file-device";
|
|||||||
|
|
||||||
// main
|
// main
|
||||||
int
|
int
|
||||||
main()
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
const char *testFileDevice = kTestFileDevice;
|
||||||
|
|
||||||
|
if (argc > 1)
|
||||||
|
testFileDevice = argv[1];
|
||||||
|
|
||||||
KDiskDeviceManager::CreateDefault();
|
KDiskDeviceManager::CreateDefault();
|
||||||
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
KDiskDeviceManager *manager = KDiskDeviceManager::Default();
|
||||||
manager->InitialDeviceScan();
|
manager->InitialDeviceScan();
|
||||||
partition_id id = manager->CreateFileDevice(kTestFileDevice);
|
partition_id id = manager->CreateFileDevice(testFileDevice);
|
||||||
if (id < B_OK)
|
if (id < B_OK)
|
||||||
printf("creating the file device failed: %s\n", strerror(id));
|
printf("creating the file device failed: %s\n", strerror(id));
|
||||||
|
|
||||||
// wait for scanning jobs to finish
|
// wait for scanning jobs to finish
|
||||||
|
// (that's hopefully a hack :-))
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (ManagerLocker locker = manager) {
|
if (ManagerLocker locker = manager) {
|
||||||
if (manager->CountJobs() == 0)
|
if (manager->CountJobs() == 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
snooze(50000);
|
||||||
}
|
}
|
||||||
|
|
||||||
// print devices
|
// print devices
|
||||||
for (int32 cookie = 0;
|
for (int32 cookie = 0;
|
||||||
KDiskDevice *device = manager->RegisterNextDevice(&cookie); ) {
|
KDiskDevice *device = manager->RegisterNextDevice(&cookie); ) {
|
||||||
|
|||||||
Reference in New Issue
Block a user