xref: /linux/tools/usb/usbip/src/usbip_port.c (revision 0e2b2a76278153d1ac312b0691cb65dabb9aef3e)
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * Copyright (C) 2011 matt mooney <mfm@muteddisk.com>
4  *               2005-2007 Takahiro Hirofuchi
5  */
6 
7 #include "vhci_driver.h"
8 #include "usbip_common.h"
9 
10 static int list_imported_devices(void)
11 {
12 	int i;
13 	struct usbip_imported_device *idev;
14 	int ret;
15 
16 	if (usbip_names_init(USBIDS_FILE))
17 		err("failed to open %s", USBIDS_FILE);
18 
19 	ret = usbip_vhci_driver_open();
20 	if (ret < 0) {
21 		err("open vhci_driver (is vhci_hcd loaded?)");
22 		goto err_names_free;
23 	}
24 
25 	printf("Imported USB devices\n");
26 	printf("====================\n");
27 
28 	for (i = 0; i < vhci_driver->nports; i++) {
29 		idev = &vhci_driver->idev[i];
30 
31 		if (usbip_vhci_imported_device_dump(idev) < 0)
32 			goto err_driver_close;
33 	}
34 
35 	usbip_vhci_driver_close();
36 	usbip_names_free();
37 
38 	return ret;
39 
40 err_driver_close:
41 	usbip_vhci_driver_close();
42 err_names_free:
43 	usbip_names_free();
44 	return -1;
45 }
46 
47 int usbip_port_show(__attribute__((unused)) int argc,
48 		    __attribute__((unused)) char *argv[])
49 {
50 	int ret;
51 
52 	ret = list_imported_devices();
53 	if (ret < 0)
54 		err("list imported devices");
55 
56 	return ret;
57 }
58