xref: /openbmc/linux/tools/usb/usbip/src/usbip_port.c (revision e2c75e76)
1 /*
2  * Copyright (C) 2011 matt mooney <mfm@muteddisk.com>
3  *               2005-2007 Takahiro Hirofuchi
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  */
15 
16 #include "vhci_driver.h"
17 #include "usbip_common.h"
18 
19 static int list_imported_devices(void)
20 {
21 	int i;
22 	struct usbip_imported_device *idev;
23 	int ret;
24 
25 	if (usbip_names_init(USBIDS_FILE))
26 		err("failed to open %s", USBIDS_FILE);
27 
28 	ret = usbip_vhci_driver_open();
29 	if (ret < 0) {
30 		err("open vhci_driver");
31 		goto err_names_free;
32 	}
33 
34 	printf("Imported USB devices\n");
35 	printf("====================\n");
36 
37 	for (i = 0; i < vhci_driver->nports; i++) {
38 		idev = &vhci_driver->idev[i];
39 
40 		if (usbip_vhci_imported_device_dump(idev) < 0)
41 			goto err_driver_close;
42 	}
43 
44 	usbip_vhci_driver_close();
45 	usbip_names_free();
46 
47 	return ret;
48 
49 err_driver_close:
50 	usbip_vhci_driver_close();
51 err_names_free:
52 	usbip_names_free();
53 	return -1;
54 }
55 
56 int usbip_port_show(__attribute__((unused)) int argc,
57 		    __attribute__((unused)) char *argv[])
58 {
59 	int ret;
60 
61 	ret = list_imported_devices();
62 	if (ret < 0)
63 		err("list imported devices");
64 
65 	return ret;
66 }
67