#include #include int main(int argc, char **argv) { int i, num_udis; char **udis; LibHalContext *hal_ctx; DBusError error; char *parent_udi; dbus_error_init (&error); hal_ctx = libhal_ctx_new (); libhal_ctx_set_dbus_connection (hal_ctx, dbus_bus_get (DBUS_BUS_SYSTEM, &error)); libhal_ctx_init (hal_ctx, &error); udis = libhal_find_device_by_capability (hal_ctx, "volume", &num_udis, &error); for (i = 0; i < num_udis; i++) { //g_printf ("%s\n", udis[i]); parent_udi = libhal_device_get_property_string (hal_ctx, udis[i], "info.parent", &error); //g_printf ("%s is the parent of %s\n", parent_udi, udis[i]); if (libhal_device_get_property_bool(hal_ctx, parent_udi, "storage.removable", &error) || libhal_device_get_property_bool(hal_ctx, parent_udi, "storage.hotpluggable", &error)) { g_printf ("%s\n", libhal_device_get_property_string (hal_ctx, udis[i], "volume.mount_point", &error)); } } libhal_free_string_array (udis); return 0; }