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