summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormananth <mananth>2003-10-15 12:33:56 +0000
committermananth <mananth>2003-10-15 12:33:56 +0000
commit830c7ab7af0225feb2a49a1e154896bbada39ec9 (patch)
tree61450bee0110817edf782869916e5a47848605ac
parent26b73c7f4257a29bbd259a252040e119c4526bad (diff)
downloadsysfsutils-830c7ab7af0225feb2a49a1e154896bbada39ec9.tar.gz
Add get_driver.c and get_devices_list.c
-rw-r--r--test/get_devices_list.c54
-rw-r--r--test/get_driver.c68
2 files changed, 122 insertions, 0 deletions
diff --git a/test/get_devices_list.c b/test/get_devices_list.c
new file mode 100644
index 0000000..53051c5
--- /dev/null
+++ b/test/get_devices_list.c
@@ -0,0 +1,54 @@
+/*
+ * get_devices_list.c
+ *
+ * Utility to get the list of devices on a given bus
+ *
+ * Copyright (C) IBM Corp. 2003
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "libsysfs.h"
+
+void print_usage(void)
+{
+ fprintf(stdout, "Usage: get_devices_list [bus]\n");
+}
+
+int main(int argc, char *argv[])
+{
+ struct dlist *name = NULL;
+ unsigned char *cur = NULL;
+
+ if (argc != 2) {
+ print_usage();
+ return 1;
+ }
+ name = sysfs_open_bus_devices_list(argv[1]);
+ if (name != NULL) {
+ fprintf(stdout, "Devices on bus %s:\n", argv[1]);
+ dlist_for_each_data(name, cur, char) {
+ fprintf(stdout, "\t%s\n", cur);
+ }
+ } else
+ fprintf(stdout, "Bus %s not found\n", argv[1]);
+ sysfs_close_list(name);
+
+ return 0;
+}
+
diff --git a/test/get_driver.c b/test/get_driver.c
new file mode 100644
index 0000000..0debdbe
--- /dev/null
+++ b/test/get_driver.c
@@ -0,0 +1,68 @@
+/*
+ * get_driver.c
+ *
+ * Utility to get details of the given driver
+ *
+ * Copyright (C) IBM Corp. 2003
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "libsysfs.h"
+
+void print_usage(void)
+{
+ fprintf(stdout, "Usage: get_driver [driver]\n");
+}
+
+int main(int argc, char *argv[])
+{
+ char *bus = NULL;
+ struct sysfs_driver *driver = NULL;
+ struct sysfs_device *device = NULL;
+
+ if (argc != 2) {
+ print_usage();
+ return 1;
+ }
+
+ bus = (char *)calloc(1, SYSFS_NAME_LEN);
+ if ((sysfs_find_driver_bus(argv[1], bus, SYSFS_NAME_LEN)) < 0) {
+ fprintf(stdout, "Driver %s not found\n", argv[1]);
+ free(bus);
+ return 1;
+ }
+ fprintf(stdout, "Driver %s is a member of bus %s\n", argv[1], bus);
+ driver = sysfs_open_driver_by_name(argv[1], bus, SYSFS_NAME_LEN);
+ if (driver == NULL) {
+ fprintf(stdout, "Device %s not found\n", argv[1]);
+ free(bus);
+ return 1;
+ }
+ if (driver->devices != NULL) {
+ fprintf(stdout, "%s is used by:\n", argv[1]);
+ dlist_for_each_data(driver->devices, device, struct sysfs_device)
+ fprintf(stdout, "\t\t%s\n", device->bus_id);
+ } else
+ fprintf(stdout, "%s is presently not used by any device\n", argv[1]);
+
+ sysfs_close_drv(driver);
+ free(bus);
+ return 0;
+}
+