From 2d350d3dba4726da9eec205914238888b850a005 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 24 Feb 2003 00:47:25 +0000 Subject: [PATCH] The hack needed to be able to communicate with our registrar though not linking against libopenbeos has been moved to BDiskDeviceRoster. Link against libdiskdevice now, instead of compiling the sources in. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2824 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../storage/disk_device/DiskDeviceTest.cpp | 93 +++++++------------ src/tests/kits/storage/disk_device/Jamfile | 26 ++---- 2 files changed, 42 insertions(+), 77 deletions(-) diff --git a/src/tests/kits/storage/disk_device/DiskDeviceTest.cpp b/src/tests/kits/storage/disk_device/DiskDeviceTest.cpp index ba779d115b..2eccf674b7 100644 --- a/src/tests/kits/storage/disk_device/DiskDeviceTest.cpp +++ b/src/tests/kits/storage/disk_device/DiskDeviceTest.cpp @@ -18,62 +18,6 @@ #include #include -// needed only until we can link against libopenbeos -#include -#include -#include - -// Hack to make BDiskDeviceRoster communicate with our registrar. - -BRoster _be_roster; -const BRoster *be_roster = &_be_roster; - -// init_roster -void -init_roster() -{ - bool initialized = false; - // find the registrar port - port_id rosterPort = find_port(kRosterPortName); - port_info info; - if (rosterPort >= 0 && get_port_info(rosterPort, &info) == B_OK) { - // construct the roster messenger - struct { - port_id fPort; - int32 fHandlerToken; - team_id fTeam; - int32 extra0; - int32 extra1; - bool fPreferredTarget; - bool extra2; - bool extra3; - bool extra4; - } fakeMessenger; - fakeMessenger.fPort = rosterPort; - fakeMessenger.fHandlerToken = 0; - fakeMessenger.fTeam = info.team; - fakeMessenger.fPreferredTarget = true; - BMessenger mainMessenger = *(BMessenger*)&fakeMessenger; - // ask for the MIME messenger - BMessage reply; - status_t error = mainMessenger.SendMessage(B_REG_GET_MIME_MESSENGER, - &reply); - if (error == B_OK && reply.what == B_REG_SUCCESS) { - BMessenger mimeMessenger; - reply.FindMessenger("messenger", &mimeMessenger); - BRoster::Private(_be_roster).SetTo(mainMessenger, mimeMessenger); - initialized = true; - } else { - } - } - if (!initialized) { - printf("initializing be_roster failed!\n"); - exit(1); - } -} - -//---------------------------------------------------------------------------- - // DumpVisitor class DumpVisitor : public BDiskDeviceVisitor { public: @@ -485,6 +429,41 @@ public: Unlock(); } + virtual void ReadyToRun() + { + // list the available partition add-ons + BDiskDeviceRoster roster; + char shortName[B_FILE_NAME_LENGTH]; + char longName[B_FILE_NAME_LENGTH]; + printf("partition add-ons:\n"); + while (roster.GetNextPartitioningSystem(shortName, longName) == B_OK) { + printf(" `%s' (`%s')\n", shortName, longName); + } + fDeviceList.Lock(); + for (int32 i = 0; BDiskDevice *device = fDeviceList.DeviceAt(i); i++) { +printf("device: `%s'\n", device->Path()); + if (!strcmp(device->Path(), "/dev/disk/virtual/0/raw")) { + if (BSession *session = device->SessionAt(0)) { + BString parameters; + bool cancelled = false; + status_t error = session->GetPartitioningParameters( + "intel", ¶meters, BRect(), &cancelled); + if (error == B_OK) { + printf("partitioning parameters: `%s'\n", + parameters.String()); + } else if (error == B_ERROR && cancelled) { + printf("partitioning dialog cancelled\n"); + } else { + printf("error getting partitioning parameters: %s\n", + strerror(error)); + } + } + break; + } + } + fDeviceList.Unlock(); + } + private: MyDeviceList fDeviceList; }; @@ -493,8 +472,6 @@ private: int main() { - init_roster(); - // ----------- /* TestApp app("application/x-vnd.obos-disk-device-test"); BDiskDeviceRoster roster; diff --git a/src/tests/kits/storage/disk_device/Jamfile b/src/tests/kits/storage/disk_device/Jamfile index 763883eaf8..6547656d1a 100644 --- a/src/tests/kits/storage/disk_device/Jamfile +++ b/src/tests/kits/storage/disk_device/Jamfile @@ -1,6 +1,6 @@ SubDir OBOS_TOP src tests kits storage disk_device ; -UsePrivateHeaders $(DOT) ; +#UsePrivateHeaders $(DOT) ; UsePrivateHeaders app ; UsePrivateHeaders shared ; UsePrivateHeaders storage ; @@ -15,24 +15,12 @@ SimpleTest DiskDeviceTest # We compile these classes in. If we would link against libopenbeos # instead, we couldn't use any GUI. At least not at this time. # - AddOnImage.cpp - DiskDevice.cpp - DiskDeviceList.cpp - DiskDevicePrivate.cpp - DiskDeviceRoster.cpp - DiskDeviceVisitor.cpp - Mime.cpp - Partition.cpp - PartitioningDialog.cpp - RegistrarDefs.cpp - RosterPrivate.cpp - Session.cpp +# Mime.cpp +# RegistrarDefs.cpp +# RosterPrivate.cpp - # from libroot - # - disk_scanner.cpp - - : libkernelland_emu.so be + : libdiskdevice.so be ; -Depends DiskDeviceTest : userland_disk_scanner_modules ; +Depends DiskDeviceTest : userland_disk_scanner_modules + gui_disk_scanner_add_ons ;