summaryrefslogtreecommitdiffstats
path: root/master/libusb-compat
diff options
context:
space:
mode:
authorJames <>2021-10-27 15:17:29 +0100
committerJames <>2021-10-27 15:21:02 +0100
commit499d76a43c8accc286bb06b47a4d7031afaed8bd (patch)
treec8a1232ce543009597bc34674ad1d2b4616d29c1 /master/libusb-compat
downloadmaster-52a5d0d2-pq-499d76a43c8accc286bb06b47a4d7031afaed8bd.tar.gz
master-52a5d0d2-pq-499d76a43c8accc286bb06b47a4d7031afaed8bd.tar.bz2
master-52a5d0d2-pq-499d76a43c8accc286bb06b47a4d7031afaed8bd.zip
fish
Diffstat (limited to 'master/libusb-compat')
-rw-r--r--master/libusb-compat251
1 files changed, 251 insertions, 0 deletions
diff --git a/master/libusb-compat b/master/libusb-compat
new file mode 100644
index 0000000..e4eb4b8
--- /dev/null
+++ b/master/libusb-compat
@@ -0,0 +1,251 @@
+diff --git a/package/libs/libusb-compat/Makefile b/package/libs/libusb-compat/Makefile
+new file mode 100644
+index 0000000..5f9b238
+--- /dev/null
++++ b/package/libs/libusb-compat/Makefile
+@@ -0,0 +1,54 @@
++#
++# Copyright (C) 2010-2015 OpenWrt.org
++#
++# This is free software, licensed under the GNU General Public License v2.
++# See /LICENSE for more information.
++#
++
++include $(TOPDIR)/rules.mk
++
++PKG_NAME:=libusb-compat
++PKG_VERSION:=0.1.5
++PKG_RELEASE:=2
++
++PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
++PKG_SOURCE_URL:=@SF/libusb
++PKG_HASH:=404ef4b6b324be79ac1bfb3d839eac860fbc929e6acb1ef88793a6ea328bc55a
++
++PKG_INSTALL:=1
++PKG_BUILD_PARALLEL:=1
++PKG_LICENSE:=LGPL-2.1
++
++PKG_MAINTAINER := Felix Fietkau <nbd@nbd.name>
++
++include $(INCLUDE_DIR)/package.mk
++
++define Package/libusb-compat
++ SECTION:=libs
++ CATEGORY:=Libraries
++ TITLE:=libusb-0.1 compatibility library
++ DEPENDS:=+libusb-1.0
++ URL:=http://libusb.wiki.sourceforge.net/
++ ABI_VERSION:=4
++endef
++
++define Package/libusb-compat/description
++ libusb is a C library that gives applications easy access to USB devices on
++ many different operating systems.
++endef
++
++TARGET_CFLAGS += $(FPIC)
++
++define Build/InstallDev
++ $(INSTALL_DIR) $(1)
++ $(CP) $(PKG_INSTALL_DIR)/* $(1)/
++ $(INSTALL_DIR) $(2)/bin
++ $(CP) $(PKG_INSTALL_DIR)/usr/bin/libusb-config $(2)/bin/
++endef
++
++define Package/libusb-compat/install
++ $(INSTALL_DIR) $(1)/usr/lib
++ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libusb-0.1.so* $(1)/usr/lib/
++endef
++
++$(eval $(call BuildPackage,libusb-compat))
+diff --git a/package/libs/libusb-compat/patches/001-fix-musl-stdint.patch b/package/libs/libusb-compat/patches/001-fix-musl-stdint.patch
+new file mode 100644
+index 0000000..333bc09
+--- /dev/null
++++ b/package/libs/libusb-compat/patches/001-fix-musl-stdint.patch
+@@ -0,0 +1,185 @@
++--- a/libusb/usb.h
+++++ b/libusb/usb.h
++@@ -27,6 +27,7 @@
++
++ #include <unistd.h>
++ #include <stdlib.h>
+++#include <stdint.h>
++ #include <limits.h>
++
++ #include <dirent.h>
++@@ -78,40 +79,40 @@
++
++ /* All standard descriptors have these 2 fields in common */
++ struct usb_descriptor_header {
++- u_int8_t bLength;
++- u_int8_t bDescriptorType;
+++ uint8_t bLength;
+++ uint8_t bDescriptorType;
++ };
++
++ /* String descriptor */
++ struct usb_string_descriptor {
++- u_int8_t bLength;
++- u_int8_t bDescriptorType;
++- u_int16_t wData[1];
+++ uint8_t bLength;
+++ uint8_t bDescriptorType;
+++ uint16_t wData[1];
++ };
++
++ /* HID descriptor */
++ struct usb_hid_descriptor {
++- u_int8_t bLength;
++- u_int8_t bDescriptorType;
++- u_int16_t bcdHID;
++- u_int8_t bCountryCode;
++- u_int8_t bNumDescriptors;
++- /* u_int8_t bReportDescriptorType; */
++- /* u_int16_t wDescriptorLength; */
+++ uint8_t bLength;
+++ uint8_t bDescriptorType;
+++ uint16_t bcdHID;
+++ uint8_t bCountryCode;
+++ uint8_t bNumDescriptors;
+++ /* uint8_t bReportDescriptorType; */
+++ /* uint16_t wDescriptorLength; */
++ /* ... */
++ };
++
++ /* Endpoint descriptor */
++ #define USB_MAXENDPOINTS 32
++ struct usb_endpoint_descriptor {
++- u_int8_t bLength;
++- u_int8_t bDescriptorType;
++- u_int8_t bEndpointAddress;
++- u_int8_t bmAttributes;
++- u_int16_t wMaxPacketSize;
++- u_int8_t bInterval;
++- u_int8_t bRefresh;
++- u_int8_t bSynchAddress;
+++ uint8_t bLength;
+++ uint8_t bDescriptorType;
+++ uint8_t bEndpointAddress;
+++ uint8_t bmAttributes;
+++ uint16_t wMaxPacketSize;
+++ uint8_t bInterval;
+++ uint8_t bRefresh;
+++ uint8_t bSynchAddress;
++
++ unsigned char *extra; /* Extra descriptors */
++ int extralen;
++@@ -129,15 +130,15 @@ struct usb_endpoint_descriptor {
++ /* Interface descriptor */
++ #define USB_MAXINTERFACES 32
++ struct usb_interface_descriptor {
++- u_int8_t bLength;
++- u_int8_t bDescriptorType;
++- u_int8_t bInterfaceNumber;
++- u_int8_t bAlternateSetting;
++- u_int8_t bNumEndpoints;
++- u_int8_t bInterfaceClass;
++- u_int8_t bInterfaceSubClass;
++- u_int8_t bInterfaceProtocol;
++- u_int8_t iInterface;
+++ uint8_t bLength;
+++ uint8_t bDescriptorType;
+++ uint8_t bInterfaceNumber;
+++ uint8_t bAlternateSetting;
+++ uint8_t bNumEndpoints;
+++ uint8_t bInterfaceClass;
+++ uint8_t bInterfaceSubClass;
+++ uint8_t bInterfaceProtocol;
+++ uint8_t iInterface;
++
++ struct usb_endpoint_descriptor *endpoint;
++
++@@ -155,14 +156,14 @@ struct usb_interface {
++ /* Configuration descriptor information.. */
++ #define USB_MAXCONFIG 8
++ struct usb_config_descriptor {
++- u_int8_t bLength;
++- u_int8_t bDescriptorType;
++- u_int16_t wTotalLength;
++- u_int8_t bNumInterfaces;
++- u_int8_t bConfigurationValue;
++- u_int8_t iConfiguration;
++- u_int8_t bmAttributes;
++- u_int8_t MaxPower;
+++ uint8_t bLength;
+++ uint8_t bDescriptorType;
+++ uint16_t wTotalLength;
+++ uint8_t bNumInterfaces;
+++ uint8_t bConfigurationValue;
+++ uint8_t iConfiguration;
+++ uint8_t bmAttributes;
+++ uint8_t MaxPower;
++
++ struct usb_interface *interface;
++
++@@ -172,28 +173,28 @@ struct usb_config_descriptor {
++
++ /* Device descriptor */
++ struct usb_device_descriptor {
++- u_int8_t bLength;
++- u_int8_t bDescriptorType;
++- u_int16_t bcdUSB;
++- u_int8_t bDeviceClass;
++- u_int8_t bDeviceSubClass;
++- u_int8_t bDeviceProtocol;
++- u_int8_t bMaxPacketSize0;
++- u_int16_t idVendor;
++- u_int16_t idProduct;
++- u_int16_t bcdDevice;
++- u_int8_t iManufacturer;
++- u_int8_t iProduct;
++- u_int8_t iSerialNumber;
++- u_int8_t bNumConfigurations;
+++ uint8_t bLength;
+++ uint8_t bDescriptorType;
+++ uint16_t bcdUSB;
+++ uint8_t bDeviceClass;
+++ uint8_t bDeviceSubClass;
+++ uint8_t bDeviceProtocol;
+++ uint8_t bMaxPacketSize0;
+++ uint16_t idVendor;
+++ uint16_t idProduct;
+++ uint16_t bcdDevice;
+++ uint8_t iManufacturer;
+++ uint8_t iProduct;
+++ uint8_t iSerialNumber;
+++ uint8_t bNumConfigurations;
++ };
++
++ struct usb_ctrl_setup {
++- u_int8_t bRequestType;
++- u_int8_t bRequest;
++- u_int16_t wValue;
++- u_int16_t wIndex;
++- u_int16_t wLength;
+++ uint8_t bRequestType;
+++ uint8_t bRequest;
+++ uint16_t wValue;
+++ uint16_t wIndex;
+++ uint16_t wLength;
++ };
++
++ /*
++@@ -254,7 +255,7 @@ struct usb_device {
++
++ void *dev; /* Darwin support */
++
++- u_int8_t devnum;
+++ uint8_t devnum;
++
++ unsigned char num_children;
++ struct usb_device **children;
++@@ -266,7 +267,7 @@ struct usb_bus {
++ char dirname[PATH_MAX + 1];
++
++ struct usb_device *devices;
++- u_int32_t location;
+++ uint32_t location;
++
++ struct usb_device *root_dev;
++ };