Changeset 3950 in vbox for trunk/src/VBox
- Timestamp:
- Jul 31, 2007 6:23:45 PM (18 years ago)
- Location:
- trunk/src/VBox/Main
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/HostImpl.cpp
r3934 r3950 1531 1531 bool halSuccess = false; 1532 1532 DBusError dbusError; 1533 if (! LibHalCheckPresence())1533 if (!gLibHalCheckPresence()) 1534 1534 return false; 1535 DBusErrorInit (&dbusError);1536 DBusConnection *dbusConnection = DBusBusGet(DBUS_BUS_SYSTEM, &dbusError);1535 gDBusErrorInit (&dbusError); 1536 DBusConnection *dbusConnection = gDBusBusGet(DBUS_BUS_SYSTEM, &dbusError); 1537 1537 if (dbusConnection != 0) 1538 1538 { 1539 LibHalContext *halContext = LibHalCtxNew();1539 LibHalContext *halContext = gLibHalCtxNew(); 1540 1540 if (halContext != 0) 1541 1541 { 1542 if ( LibHalCtxSetDBusConnection (halContext, dbusConnection))1542 if (gLibHalCtxSetDBusConnection (halContext, dbusConnection)) 1543 1543 { 1544 if ( LibHalCtxInit(halContext, &dbusError))1544 if (gLibHalCtxInit(halContext, &dbusError)) 1545 1545 { 1546 1546 int numDevices; 1547 char **halDevices = LibHalFindDeviceByCapability(halContext,1547 char **halDevices = gLibHalFindDeviceByCapability(halContext, 1548 1548 "storage.cdrom", &numDevices, &dbusError); 1549 1549 if (halDevices != 0) … … 1554 1554 for (int i = 0; i < numDevices; i++) 1555 1555 { 1556 char *devNode = LibHalDeviceGetPropertyString(halContext,1556 char *devNode = gLibHalDeviceGetPropertyString(halContext, 1557 1557 halDevices[i], "block.device", &dbusError); 1558 1558 if (devNode != 0) … … 1564 1564 /* We do not check the error here, as this field may 1565 1565 not even exist. */ 1566 vendor = LibHalDeviceGetPropertyString(halContext,1566 vendor = gLibHalDeviceGetPropertyString(halContext, 1567 1567 halDevices[i], "info.vendor", 0); 1568 product = LibHalDeviceGetPropertyString(halContext,1568 product = gLibHalDeviceGetPropertyString(halContext, 1569 1569 halDevices[i], "info.product", &dbusError); 1570 1570 if ((product != 0 && product[0] != 0)) … … 1592 1592 LogRel(("Host::COMGETTER(DVDDrives): failed to get property \"info.product\" for device %s. dbus error: %s (%s)\n", 1593 1593 halDevices[i], dbusError.name, dbusError.message)); 1594 DBusErrorFree(&dbusError);1594 gDBusErrorFree(&dbusError); 1595 1595 } 1596 1596 ComObjPtr <HostDVDDrive> hostDVDDriveObj; … … 1602 1602 if (vendor != 0) 1603 1603 { 1604 LibHalFreeString(vendor);1604 gLibHalFreeString(vendor); 1605 1605 } 1606 1606 if (product != 0) 1607 1607 { 1608 LibHalFreeString(product);1608 gLibHalFreeString(product); 1609 1609 } 1610 1610 } … … 1613 1613 LogRel(("Host::COMGETTER(DVDDrives): failed to validate the block device %s as a DVD drive\n")); 1614 1614 } 1615 LibHalFreeString(devNode);1615 gLibHalFreeString(devNode); 1616 1616 } 1617 1617 else … … 1619 1619 LogRel(("Host::COMGETTER(DVDDrives): failed to get property \"block.device\" for device %s. dbus error: %s (%s)\n", 1620 1620 halDevices[i], dbusError.name, dbusError.message)); 1621 DBusErrorFree(&dbusError);1621 gDBusErrorFree(&dbusError); 1622 1622 } 1623 1623 } 1624 LibHalFreeStringArray(halDevices);1624 gLibHalFreeStringArray(halDevices); 1625 1625 } 1626 1626 else 1627 1627 { 1628 1628 LogRel(("Host::COMGETTER(DVDDrives): failed to get devices with capability \"storage.cdrom\". dbus error: %s (%s)\n", dbusError.name, dbusError.message)); 1629 DBusErrorFree(&dbusError);1629 gDBusErrorFree(&dbusError); 1630 1630 } 1631 if (! LibHalCtxShutdown(halContext, &dbusError)) /* what now? */1631 if (!gLibHalCtxShutdown(halContext, &dbusError)) /* what now? */ 1632 1632 { 1633 1633 LogRel(("Host::COMGETTER(DVDDrives): failed to shutdown the libhal context. dbus error: %s (%s)\n", dbusError.name, dbusError.message)); 1634 DBusErrorFree(&dbusError);1634 gDBusErrorFree(&dbusError); 1635 1635 } 1636 1636 } … … 1638 1638 { 1639 1639 LogRel(("Host::COMGETTER(DVDDrives): failed to initialise libhal context. dbus error: %s (%s)\n", dbusError.name, dbusError.message)); 1640 DBusErrorFree(&dbusError);1640 gDBusErrorFree(&dbusError); 1641 1641 } 1642 LibHalCtxFree(halContext);1642 gLibHalCtxFree(halContext); 1643 1643 } 1644 1644 else … … 1651 1651 LogRel(("Host::COMGETTER(DVDDrives): failed to get a libhal context - out of memory?\n")); 1652 1652 } 1653 DBusConnectionUnref(dbusConnection);1653 gDBusConnectionUnref(dbusConnection); 1654 1654 } 1655 1655 else 1656 1656 { 1657 1657 LogRel(("Host::COMGETTER(DVDDrives): failed to connect to dbus. dbus error: %s (%s)\n", dbusError.name, dbusError.message)); 1658 DBusErrorFree(&dbusError);1658 gDBusErrorFree(&dbusError); 1659 1659 } 1660 1660 return halSuccess; … … 1673 1673 bool halSuccess = false; 1674 1674 DBusError dbusError; 1675 if (! LibHalCheckPresence())1675 if (!gLibHalCheckPresence()) 1676 1676 return false; 1677 DBusErrorInit (&dbusError);1678 DBusConnection *dbusConnection = DBusBusGet(DBUS_BUS_SYSTEM, &dbusError);1677 gDBusErrorInit (&dbusError); 1678 DBusConnection *dbusConnection = gDBusBusGet(DBUS_BUS_SYSTEM, &dbusError); 1679 1679 if (dbusConnection != 0) 1680 1680 { 1681 LibHalContext *halContext = LibHalCtxNew();1681 LibHalContext *halContext = gLibHalCtxNew(); 1682 1682 if (halContext != 0) 1683 1683 { 1684 if ( LibHalCtxSetDBusConnection (halContext, dbusConnection))1684 if (gLibHalCtxSetDBusConnection (halContext, dbusConnection)) 1685 1685 { 1686 if ( LibHalCtxInit(halContext, &dbusError))1686 if (gLibHalCtxInit(halContext, &dbusError)) 1687 1687 { 1688 1688 int numDevices; 1689 char **halDevices = LibHalFindDeviceByCapability(halContext,1689 char **halDevices = gLibHalFindDeviceByCapability(halContext, 1690 1690 "storage", &numDevices, &dbusError); 1691 1691 if (halDevices != 0) … … 1696 1696 for (int i = 0; i < numDevices; i++) 1697 1697 { 1698 char *driveType = LibHalDeviceGetPropertyString(halContext,1698 char *driveType = gLibHalDeviceGetPropertyString(halContext, 1699 1699 halDevices[i], "storage.drive_type", 0); 1700 1700 if (driveType != 0) … … 1702 1702 if (strcmp(driveType, "floppy") != 0) 1703 1703 { 1704 LibHalFreeString(driveType);1704 gLibHalFreeString(driveType); 1705 1705 continue; 1706 1706 } 1707 LibHalFreeString(driveType);1707 gLibHalFreeString(driveType); 1708 1708 } 1709 1709 else … … 1713 1713 continue; 1714 1714 } 1715 char *devNode = LibHalDeviceGetPropertyString(halContext,1715 char *devNode = gLibHalDeviceGetPropertyString(halContext, 1716 1716 halDevices[i], "block.device", &dbusError); 1717 1717 if (devNode != 0) … … 1723 1723 /* We do not check the error here, as this field may 1724 1724 not even exist. */ 1725 vendor = LibHalDeviceGetPropertyString(halContext,1725 vendor = gLibHalDeviceGetPropertyString(halContext, 1726 1726 halDevices[i], "info.vendor", 0); 1727 product = LibHalDeviceGetPropertyString(halContext,1727 product = gLibHalDeviceGetPropertyString(halContext, 1728 1728 halDevices[i], "info.product", &dbusError); 1729 1729 if ((product != 0) && (product[0] != 0)) … … 1751 1751 LogRel(("Host::COMGETTER(FloppyDrives): failed to get property \"info.product\" for device %s. dbus error: %s (%s)\n", 1752 1752 halDevices[i], dbusError.name, dbusError.message)); 1753 DBusErrorFree(&dbusError);1753 gDBusErrorFree(&dbusError); 1754 1754 } 1755 1755 ComObjPtr <HostFloppyDrive> hostFloppyDrive; … … 1761 1761 if (vendor != 0) 1762 1762 { 1763 LibHalFreeString(vendor);1763 gLibHalFreeString(vendor); 1764 1764 } 1765 1765 if (product != 0) 1766 1766 { 1767 LibHalFreeString(product);1767 gLibHalFreeString(product); 1768 1768 } 1769 1769 } … … 1772 1772 LogRel(("Host::COMGETTER(FloppyDrives): failed to validate the block device %s as a floppy drive\n")); 1773 1773 } 1774 LibHalFreeString(devNode);1774 gLibHalFreeString(devNode); 1775 1775 } 1776 1776 else … … 1778 1778 LogRel(("Host::COMGETTER(FloppyDrives): failed to get property \"block.device\" for device %s. dbus error: %s (%s)\n", 1779 1779 halDevices[i], dbusError.name, dbusError.message)); 1780 DBusErrorFree(&dbusError);1780 gDBusErrorFree(&dbusError); 1781 1781 } 1782 1782 } 1783 LibHalFreeStringArray(halDevices);1783 gLibHalFreeStringArray(halDevices); 1784 1784 } 1785 1785 else 1786 1786 { 1787 1787 LogRel(("Host::COMGETTER(FloppyDrives): failed to get devices with capability \"storage.cdrom\". dbus error: %s (%s)\n", dbusError.name, dbusError.message)); 1788 DBusErrorFree(&dbusError);1788 gDBusErrorFree(&dbusError); 1789 1789 } 1790 if (! LibHalCtxShutdown(halContext, &dbusError)) /* what now? */1790 if (!gLibHalCtxShutdown(halContext, &dbusError)) /* what now? */ 1791 1791 { 1792 1792 LogRel(("Host::COMGETTER(FloppyDrives): failed to shutdown the libhal context. dbus error: %s (%s)\n", dbusError.name, dbusError.message)); 1793 DBusErrorFree(&dbusError);1793 gDBusErrorFree(&dbusError); 1794 1794 } 1795 1795 } … … 1797 1797 { 1798 1798 LogRel(("Host::COMGETTER(FloppyDrives): failed to initialise libhal context. dbus error: %s (%s)\n", dbusError.name, dbusError.message)); 1799 DBusErrorFree(&dbusError);1799 gDBusErrorFree(&dbusError); 1800 1800 } 1801 LibHalCtxFree(halContext);1801 gLibHalCtxFree(halContext); 1802 1802 } 1803 1803 else … … 1810 1810 LogRel(("Host::COMGETTER(FloppyDrives): failed to get a libhal context - out of memory?\n")); 1811 1811 } 1812 DBusConnectionUnref(dbusConnection);1812 gDBusConnectionUnref(dbusConnection); 1813 1813 } 1814 1814 else 1815 1815 { 1816 1816 LogRel(("Host::COMGETTER(FloppyDrives): failed to connect to dbus. dbus error: %s (%s)\n", dbusError.name, dbusError.message)); 1817 DBusErrorFree(&dbusError);1817 gDBusErrorFree(&dbusError); 1818 1818 } 1819 1819 return halSuccess; -
trunk/src/VBox/Main/include/vbox-libhal.h
r3939 r3950 50 50 51 51 /** The following are the symbols which we need from libdbus and libhal. */ 52 extern void (* DBusErrorInit)(DBusError *);53 extern DBusConnection *(* DBusBusGet)(DBusBusType, DBusError *);54 extern void (* DBusErrorFree)(DBusError *);55 extern void (* DBusConnectionUnref)(DBusConnection *);56 extern LibHalContext *(* LibHalCtxNew)(void);57 extern dbus_bool_t (* LibHalCtxSetDBusConnection)(LibHalContext *, DBusConnection *);58 extern dbus_bool_t (* LibHalCtxInit)(LibHalContext *, DBusError *);59 extern char **(* LibHalFindDeviceByCapability)(LibHalContext *, const char *, int *, DBusError *);60 extern char *(* LibHalDeviceGetPropertyString)(LibHalContext *, const char *, const char *,52 extern void (*gDBusErrorInit)(DBusError *); 53 extern DBusConnection *(*gDBusBusGet)(DBusBusType, DBusError *); 54 extern void (*gDBusErrorFree)(DBusError *); 55 extern void (*gDBusConnectionUnref)(DBusConnection *); 56 extern LibHalContext *(*gLibHalCtxNew)(void); 57 extern dbus_bool_t (*gLibHalCtxSetDBusConnection)(LibHalContext *, DBusConnection *); 58 extern dbus_bool_t (*gLibHalCtxInit)(LibHalContext *, DBusError *); 59 extern char **(*gLibHalFindDeviceByCapability)(LibHalContext *, const char *, int *, DBusError *); 60 extern char *(*gLibHalDeviceGetPropertyString)(LibHalContext *, const char *, const char *, 61 61 DBusError *); 62 extern void (* LibHalFreeString)(char *);63 extern void (* LibHalFreeStringArray)(char **);64 extern dbus_bool_t (* LibHalCtxShutdown)(LibHalContext *, DBusError *);65 extern dbus_bool_t (* LibHalCtxFree)(LibHalContext *);62 extern void (*gLibHalFreeString)(char *); 63 extern void (*gLibHalFreeStringArray)(char **); 64 extern dbus_bool_t (*gLibHalCtxShutdown)(LibHalContext *, DBusError *); 65 extern dbus_bool_t (*gLibHalCtxFree)(LibHalContext *); 66 66 67 extern bool LibHalCheckPresence(void);67 extern bool gLibHalCheckPresence(void); 68 68 69 69 #endif /* ____H_VBOX_LIBHAL not defined */ -
trunk/src/VBox/Main/linux/vbox-libhal.cpp
r3940 r3950 44 44 45 45 /** The following are the symbols which we need from libdbus and libhal. */ 46 void (* DBusErrorInit)(DBusError *);47 DBusConnection *(* DBusBusGet)(DBusBusType, DBusError *);48 void (* DBusErrorFree)(DBusError *);49 void (* DBusConnectionUnref)(DBusConnection *);50 LibHalContext *(* LibHalCtxNew)(void);51 dbus_bool_t (* LibHalCtxSetDBusConnection)(LibHalContext *, DBusConnection *);52 dbus_bool_t (* LibHalCtxInit)(LibHalContext *, DBusError *);53 char **(* LibHalFindDeviceByCapability)(LibHalContext *, const char *, int *, DBusError *);54 char *(* LibHalDeviceGetPropertyString)(LibHalContext *, const char *, const char *, DBusError *);55 void (* LibHalFreeString)(char *);56 void (* LibHalFreeStringArray)(char **);57 dbus_bool_t (* LibHalCtxShutdown)(LibHalContext *, DBusError *);58 dbus_bool_t (* LibHalCtxFree)(LibHalContext *);46 void (*gDBusErrorInit)(DBusError *); 47 DBusConnection *(*gDBusBusGet)(DBusBusType, DBusError *); 48 void (*gDBusErrorFree)(DBusError *); 49 void (*gDBusConnectionUnref)(DBusConnection *); 50 LibHalContext *(*gLibHalCtxNew)(void); 51 dbus_bool_t (*gLibHalCtxSetDBusConnection)(LibHalContext *, DBusConnection *); 52 dbus_bool_t (*gLibHalCtxInit)(LibHalContext *, DBusError *); 53 char **(*gLibHalFindDeviceByCapability)(LibHalContext *, const char *, int *, DBusError *); 54 char *(*gLibHalDeviceGetPropertyString)(LibHalContext *, const char *, const char *, DBusError *); 55 void (*gLibHalFreeString)(char *); 56 void (*gLibHalFreeStringArray)(char **); 57 dbus_bool_t (*gLibHalCtxShutdown)(LibHalContext *, DBusError *); 58 dbus_bool_t (*gLibHalCtxFree)(LibHalContext *); 59 59 60 bool LibHalCheckPresence(void)60 bool gLibHalCheckPresence(void) 61 61 { 62 62 RTLDRMOD hLibDBus; … … 74 74 return false; 75 75 } 76 if ( RT_SUCCESS(RTLdrGetSymbol(hLibDBus, "dbus_error_init", (void **) & DBusErrorInit))77 && RT_SUCCESS(RTLdrGetSymbol(hLibDBus, "dbus_bus_get", (void **) & DBusBusGet))78 && RT_SUCCESS(RTLdrGetSymbol(hLibDBus, "dbus_error_free", (void **) & DBusErrorFree))76 if ( RT_SUCCESS(RTLdrGetSymbol(hLibDBus, "dbus_error_init", (void **) &gDBusErrorInit)) 77 && RT_SUCCESS(RTLdrGetSymbol(hLibDBus, "dbus_bus_get", (void **) &gDBusBusGet)) 78 && RT_SUCCESS(RTLdrGetSymbol(hLibDBus, "dbus_error_free", (void **) &gDBusErrorFree)) 79 79 && RT_SUCCESS(RTLdrGetSymbol(hLibDBus, "dbus_connection_unref", 80 (void **) & DBusConnectionUnref))81 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_ctx_new", (void **) & LibHalCtxNew))80 (void **) &gDBusConnectionUnref)) 81 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_ctx_new", (void **) &gLibHalCtxNew)) 82 82 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_ctx_set_dbus_connection", 83 (void **) & LibHalCtxSetDBusConnection))84 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_ctx_init", (void **) & LibHalCtxInit))83 (void **) &gLibHalCtxSetDBusConnection)) 84 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_ctx_init", (void **) &gLibHalCtxInit)) 85 85 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_find_device_by_capability", 86 (void **) & LibHalFindDeviceByCapability))86 (void **) &gLibHalFindDeviceByCapability)) 87 87 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_device_get_property_string", 88 (void **) & LibHalDeviceGetPropertyString))89 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_free_string", (void **) & LibHalFreeString))88 (void **) &gLibHalDeviceGetPropertyString)) 89 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_free_string", (void **) &gLibHalFreeString)) 90 90 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_free_string_array", 91 (void **) & LibHalFreeStringArray))92 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_ctx_shutdown", (void **) & LibHalCtxShutdown))93 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_ctx_free", (void **) & LibHalCtxFree))91 (void **) &gLibHalFreeStringArray)) 92 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_ctx_shutdown", (void **) &gLibHalCtxShutdown)) 93 && RT_SUCCESS(RTLdrGetSymbol(hLibHal, "libhal_ctx_free", (void **) &gLibHalCtxFree)) 94 94 ) 95 95 {
Note:
See TracChangeset
for help on using the changeset viewer.