summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devel/android-tools-fastboot-devel/Makefile1
-rw-r--r--devel/android-tools-fastboot-devel/files/pkg-message.in7
-rw-r--r--devel/android-tools-fastboot-devel/files/usb_freebsd.cpp208
-rw-r--r--devel/android-tools-fastboot/files/usb_freebsd.cpp2
4 files changed, 1 insertions, 217 deletions
diff --git a/devel/android-tools-fastboot-devel/Makefile b/devel/android-tools-fastboot-devel/Makefile
index c526e5b36904..2deae98def1f 100644
--- a/devel/android-tools-fastboot-devel/Makefile
+++ b/devel/android-tools-fastboot-devel/Makefile
@@ -14,7 +14,6 @@ CONFLICTS_INSTALL= ${PORTNAME}-[0-9]*
MASTERDIR= ${.CURDIR}/../android-tools-fastboot
DISTINFO_FILE= ${.CURDIR}/distinfo
-FILESDIR= ${.CURDIR}/files
EXTRA_PATCHES= ${.CURDIR}/files/patch-*
.include "${MASTERDIR}/Makefile"
diff --git a/devel/android-tools-fastboot-devel/files/pkg-message.in b/devel/android-tools-fastboot-devel/files/pkg-message.in
deleted file mode 100644
index 32713248181a..000000000000
--- a/devel/android-tools-fastboot-devel/files/pkg-message.in
+++ /dev/null
@@ -1,7 +0,0 @@
-The port installed fastboot(1) under %%PREFIX%%/bin. However, there's
-a different fastboot(8) under /sbin. To avoid accidentally invoking
-the wrong command make sure either to
-
-- adjust PATH environment variable to have fastboot(1) found first
-- create a shell alias with absolute path to fastboot(1)
-- create a symlink with different name in PATH e.g., under ~/bin
diff --git a/devel/android-tools-fastboot-devel/files/usb_freebsd.cpp b/devel/android-tools-fastboot-devel/files/usb_freebsd.cpp
deleted file mode 100644
index c7664e67697a..000000000000
--- a/devel/android-tools-fastboot-devel/files/usb_freebsd.cpp
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright (C) 2011 Hans Petter Selasky. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <libusb.h>
-
-#include <memory>
-
-#include "usb.h"
-
-struct usb_handle {
- libusb_device_handle *handle;
- libusb_device *dev;
- unsigned char ep_in;
- unsigned char ep_out;
- unsigned char iface;
-};
-
-class LibusbUsbTransport : public Transport {
-public:
- explicit LibusbUsbTransport(std::unique_ptr<usb_handle> handle):
- h(std::move(handle)) {}
- ~LibusbUsbTransport() override = default;
-
- ssize_t Read(void *_data, size_t len) override;
- ssize_t Write(const void *_data, size_t len) override;
- int Close() override;
-
-private:
- std::unique_ptr<usb_handle> h;
-
- DISALLOW_COPY_AND_ASSIGN(LibusbUsbTransport);
-};
-
-static int
-probe(std::unique_ptr<usb_handle> &h, ifc_match_func callback)
-{
- usb_ifc_info info;
- libusb_device_descriptor ddesc;
- libusb_config_descriptor *pcfg;
- int i, j;
-
- if (libusb_open(h->dev, &h->handle) < 0)
- return (-1);
-
- if (libusb_get_device_descriptor(h->dev, &ddesc) < 0) {
- libusb_close(h->handle);
- return (-1);
- }
- memset(&info, 0, sizeof(info));
-
- info.dev_vendor = ddesc.idVendor;
- info.dev_product = ddesc.idProduct;
- info.dev_class = ddesc.bDeviceClass;
- info.dev_subclass = ddesc.bDeviceSubClass;
- info.dev_protocol = ddesc.bDeviceProtocol;
- info.writable = 1;
-
- snprintf(info.device_path, sizeof(info.device_path), "usb:%d:%d",
- libusb_get_bus_number(h->dev), libusb_get_device_address(h->dev));
-
- if (ddesc.iSerialNumber != 0) {
- libusb_get_string_descriptor_ascii(h->handle, ddesc.iSerialNumber,
- (unsigned char *)info.serial_number, sizeof(info.serial_number));
- }
- if (libusb_get_active_config_descriptor(h->dev, &pcfg)) {
- libusb_close(h->handle);
- return (-1);
- }
-
- for (i = 0; i < pcfg->bNumInterfaces; i++) {
-
- h->ep_in = 0;
- h->ep_out = 0;
- h->iface = i;
-
- for (j = 0; j < pcfg->interface[i].altsetting[0].bNumEndpoints; j++) {
-
- unsigned char temp = pcfg->interface[i].altsetting[0].
- endpoint[j].bEndpointAddress;
- unsigned char type = pcfg->interface[i].altsetting[0].
- endpoint[j].bmAttributes & 0x03;
-
- /* check for BULK endpoint */
- if ((type & 0x03) == 0x02) {
- /* check for IN endpoint */
- if (temp & 0x80)
- h->ep_in = temp;
- else
- h->ep_out = temp;
- }
- }
-
- info.ifc_class = pcfg->interface[i].altsetting[0].bInterfaceClass;
- info.ifc_subclass = pcfg->interface[i].altsetting[0].bInterfaceSubClass;
- info.ifc_protocol = pcfg->interface[i].altsetting[0].bInterfaceProtocol;
- info.has_bulk_in = (h->ep_in != 0);
- info.has_bulk_out = (h->ep_out != 0);
-
- if (libusb_claim_interface(h->handle, h->iface) < 0)
- continue;
-
- if (callback(&info) == 0) {
- libusb_free_config_descriptor(pcfg);
- return (0);
- }
- libusb_release_interface(h->handle, h->iface);
- }
-
- libusb_free_config_descriptor(pcfg);
- libusb_close(h->handle);
- return (-1);
-}
-
-static std::unique_ptr<usb_handle>
-enumerate(ifc_match_func callback)
-{
- static libusb_context *ctx = NULL;
- std::unique_ptr<usb_handle> h;
- libusb_device **ppdev;
- ssize_t ndev;
- ssize_t x;
-
- if (ctx == NULL)
- libusb_init(&ctx);
-
- ndev = libusb_get_device_list(ctx, &ppdev);
- for (x = 0; x < ndev; x++) {
-
- h.reset(new usb_handle);
-
- h->dev = ppdev[x];
-
- if (probe(h, callback) == 0) {
- libusb_ref_device(h->dev);
- libusb_free_device_list(ppdev, 1);
- return (h);
- }
- }
- h.reset();
- libusb_free_device_list(ppdev, 1);
- return (nullptr);
-}
-
-ssize_t
-LibusbUsbTransport::Write(const void *_data, size_t len)
-{
- int actlen;
-
- if (libusb_bulk_transfer(h->handle, h->ep_out,
- (unsigned char *)_data, len, &actlen, 0) < 0)
- return (-1);
- return (actlen);
-}
-
-ssize_t
-LibusbUsbTransport::Read(void *_data, size_t len)
-{
- int actlen;
-
- if (libusb_bulk_transfer(h->handle, h->ep_in,
- (unsigned char *)_data, len, &actlen, 0) < 0)
- return (-1);
- return (actlen);
-}
-
-int
-LibusbUsbTransport::Close()
-{
- libusb_close(h->handle);
- h->handle = NULL;
- libusb_unref_device(h->dev);
- h.reset();
- return (0);
-}
-
-Transport *
-usb_open(ifc_match_func callback)
-{
- std::unique_ptr<usb_handle> h = enumerate(callback);
- return (h ? new LibusbUsbTransport(std::move(h)) : nullptr);
-}
diff --git a/devel/android-tools-fastboot/files/usb_freebsd.cpp b/devel/android-tools-fastboot/files/usb_freebsd.cpp
index 1eb0ca809ee6..c7664e67697a 100644
--- a/devel/android-tools-fastboot/files/usb_freebsd.cpp
+++ b/devel/android-tools-fastboot/files/usb_freebsd.cpp
@@ -82,7 +82,7 @@ probe(std::unique_ptr<usb_handle> &h, ifc_match_func callback)
info.dev_protocol = ddesc.bDeviceProtocol;
info.writable = 1;
- snprintf(info.device_path, sizeof(info.device_path), "ugen%d.%d",
+ snprintf(info.device_path, sizeof(info.device_path), "usb:%d:%d",
libusb_get_bus_number(h->dev), libusb_get_device_address(h->dev));
if (ddesc.iSerialNumber != 0) {