18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (C) 2011 matt mooney <mfm@muteddisk.com> 48c2ecf20Sopenharmony_ci * 2005-2007 Takahiro Hirofuchi 58c2ecf20Sopenharmony_ci */ 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#include "vhci_driver.h" 88c2ecf20Sopenharmony_ci#include "usbip_common.h" 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_cistatic int list_imported_devices(void) 118c2ecf20Sopenharmony_ci{ 128c2ecf20Sopenharmony_ci int i; 138c2ecf20Sopenharmony_ci struct usbip_imported_device *idev; 148c2ecf20Sopenharmony_ci int ret; 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci if (usbip_names_init(USBIDS_FILE)) 178c2ecf20Sopenharmony_ci err("failed to open %s", USBIDS_FILE); 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci ret = usbip_vhci_driver_open(); 208c2ecf20Sopenharmony_ci if (ret < 0) { 218c2ecf20Sopenharmony_ci err("open vhci_driver"); 228c2ecf20Sopenharmony_ci goto err_names_free; 238c2ecf20Sopenharmony_ci } 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci printf("Imported USB devices\n"); 268c2ecf20Sopenharmony_ci printf("====================\n"); 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci for (i = 0; i < vhci_driver->nports; i++) { 298c2ecf20Sopenharmony_ci idev = &vhci_driver->idev[i]; 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci if (usbip_vhci_imported_device_dump(idev) < 0) 328c2ecf20Sopenharmony_ci goto err_driver_close; 338c2ecf20Sopenharmony_ci } 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci usbip_vhci_driver_close(); 368c2ecf20Sopenharmony_ci usbip_names_free(); 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci return ret; 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_cierr_driver_close: 418c2ecf20Sopenharmony_ci usbip_vhci_driver_close(); 428c2ecf20Sopenharmony_cierr_names_free: 438c2ecf20Sopenharmony_ci usbip_names_free(); 448c2ecf20Sopenharmony_ci return -1; 458c2ecf20Sopenharmony_ci} 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ciint usbip_port_show(__attribute__((unused)) int argc, 488c2ecf20Sopenharmony_ci __attribute__((unused)) char *argv[]) 498c2ecf20Sopenharmony_ci{ 508c2ecf20Sopenharmony_ci int ret; 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci ret = list_imported_devices(); 538c2ecf20Sopenharmony_ci if (ret < 0) 548c2ecf20Sopenharmony_ci err("list imported devices"); 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci return ret; 578c2ecf20Sopenharmony_ci} 58