Public feed
#600000
#include <glib.h>
#include <libhal.h>
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;
}