Ejemplo n.º 1
0
int
gp_port_library_list (GPPortInfoList *list)
{
    DIR *dir;
    struct dirent *dirent;
    int ret;
    GPPortInfo info;
    unsigned short vendor_id, product_id;

    dir = opendir ("/sys/class/scsi_generic");
    if (dir == NULL)
        return GP_OK;

    while ((dirent = readdir (dir))) {
        char path[4096];
        if (gp_port_usbscsi_get_usb_id (dirent->d_name,
                                        &vendor_id, &product_id) != GP_OK)
            continue; /* Not a usb device */

        gp_port_info_new (&info);
        gp_port_info_set_type (info, GP_PORT_USB_SCSI);
        snprintf (path, sizeof (path),
                  "usbscsi:/dev/%s",
                  dirent->d_name);
        gp_port_info_set_path (info, path);
        gp_port_info_set_name (info, _("USB Mass Storage raw SCSI"));
        ret = gp_port_info_list_append (list, info);
        if (ret < GP_OK) /* can only be out of memory */
            break;
    }
    closedir (dir);
    return GP_OK;
}
Ejemplo n.º 2
0
int
gp_port_library_list (GPPortInfoList *list)
{
	DIR *dir;
	struct dirent *dirent;
	GPPortInfo info;
	unsigned short vendor_id, product_id;

	dir = opendir ("/sys/class/scsi_generic");
	if (dir == NULL)
		return GP_OK;

	while ((dirent = readdir (dir))) {
		if (gp_port_usbscsi_get_usb_id (dirent->d_name,
				&vendor_id, &product_id) != GP_OK)
			continue; /* Not a usb device */

		info.type = GP_PORT_USB_SCSI;
		snprintf (info.path, sizeof (info.path),
			  "usbscsi:/dev/%s",
			  dirent->d_name);
		snprintf (info.name, sizeof (info.name),
			  _("USB Mass Storage raw SCSI"));
		CHECK (gp_port_info_list_append (list, info))
	}
	closedir (dir);
	return GP_OK;
}
Ejemplo n.º 3
0
static int
gp_port_usbscsi_find_device(GPPort *port, int idvendor, int idproduct)
{
    unsigned short vendor_id, product_id;
    const char *sg;

    C_PARAMS (port);

    sg = strrchr (port->settings.usbscsi.path, '/');
    C_PARAMS (sg);
    sg++;

    CHECK (gp_port_usbscsi_get_usb_id (sg, &vendor_id, &product_id))
    if (vendor_id != idvendor || product_id != idproduct)
        return GP_ERROR_IO_USB_FIND;

    return GP_OK;
}