| 1 | |
| 2 | |
| 3 | * Copyright (C) 2011 matt mooney <[email protected]>
|
| 4 | * 2005-2007 Takahiro Hirofuchi
|
| 5 | * Copyright (C) 2015-2016 Samsung Electronics
|
| 6 | * Igor Kotrasinski <[email protected]>
|
| 7 | * Krzysztof Opasiak <[email protected]>
|
| 8 |
|
| 9 |
|
| 10 | #include <unistd.h>
|
| 11 | #include <libudev.h>
|
| 12 |
|
| 13 | #include "usbip_host_common.h"
|
| 14 | #include "usbip_host_driver.h"
|
| 15 |
|
| 16 | #undef PROGNAME
|
| 17 | #define PROGNAME "libusbip"
|
| 18 |
|
| 19 | static int is_my_device(struct udev_device *dev)
|
| 20 | {
|
| 21 | const char *driver;
|
| 22 |
|
| 23 | driver = udev_device_get_driver(dev);
|
| 24 | return driver != NULL && !strcmp(driver, USBIP_HOST_DRV_NAME);
|
| 25 | }
|
| 26 |
|
| 27 | static int usbip_host_driver_open(struct usbip_host_driver *hdriver)
|
| 28 | {
|
| 29 | int ret;
|
| 30 |
|
| 31 | hdriver->ndevs = 0;
|
| 32 | INIT_LIST_HEAD(&hdriver->edev_list);
|
| 33 |
|
| 34 | ret = usbip_generic_driver_open(hdriver);
|
| 35 | if (ret || hdriver->ndevs == 0)
|
| 36 | info("please load " USBIP_CORE_MOD_NAME ".ko and "
|
| 37 | USBIP_HOST_DRV_NAME ".ko");
|
| 38 |
|
| 39 | return ret;
|
| 40 | }
|
| 41 |
|
| 42 | struct usbip_host_driver host_driver = {
|
| 43 | .edev_list = LIST_HEAD_INIT(host_driver.edev_list),
|
| 44 | .udev_subsystem = "usb",
|
| 45 | .ops = {
|
| 46 | .open = usbip_host_driver_open,
|
| 47 | .close = usbip_generic_driver_close,
|
| 48 | .refresh_device_list = usbip_generic_refresh_device_list,
|
| 49 | .get_device = usbip_generic_get_device,
|
| 50 | .read_device = read_usb_device,
|
| 51 | .read_interface = read_usb_interface,
|
| 52 | .is_my_device = is_my_device,
|
| 53 | },
|
| 54 | };
|