示例#1
0
gboolean
drvctl_find_parent(const gchar *devnode, char *parent)
{
	gboolean ret;

	ret = drvctl_find_device_with_child("mainbus0", devnode, parent);
	if (ret == FALSE) {
		ret = drvctl_find_device_with_child("armfdt0", devnode, parent);
	}

	return ret;
}
示例#2
0
static gboolean
drvctl_find_device_with_child(const gchar *curnode, const gchar *devnode,
    char *parent)
{
	struct devlistargs laa;
	u_int i;

	if (drvctl_list (curnode, &laa) == -1)
		return FALSE;

	for (i = 0; i < laa.l_children; i++) {
		if (strcmp (laa.l_childname[i], devnode) == 0) {
			strlcpy(parent, curnode, 16);
			free(laa.l_childname);
			return TRUE;
		}
		if (drvctl_find_device_with_child (laa.l_childname[i], devnode, parent) == TRUE) {
			free(laa.l_childname);
			return TRUE;
		}
	}

	if (laa.l_childname)
		free(laa.l_childname);

	HAL_INFO (("%s: couldn't find device with child %s", curnode, devnode));
	return FALSE;
}
示例#3
0
文件: drvctl.c 项目: petabi/pkgsrc
gboolean
drvctl_find_parent(const gchar *devnode, char *parent)
{
	return drvctl_find_device_with_child("mainbus0", devnode, parent);
}