diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Xcode/libusb.xcodeproj/project.pbxproj | 224 | ||||
-rw-r--r-- | android/jni/examples.mk | 11 | ||||
-rw-r--r-- | android/jni/libusb.mk | 3 | ||||
-rw-r--r-- | android/jni/tests.mk | 1 | ||||
-rw-r--r-- | examples/dpfp.c | 56 | ||||
-rw-r--r-- | examples/sam3u_benchmark.c | 2 | ||||
-rw-r--r-- | libusb/version_nano.h | 2 |
8 files changed, 154 insertions, 147 deletions
@@ -38,6 +38,8 @@ examples/hotplugtest examples/sam3u_benchmark examples/testlibusb tests/stress +android/libs +android/obj *.exe *.pc doc/api-1.0 diff --git a/Xcode/libusb.xcodeproj/project.pbxproj b/Xcode/libusb.xcodeproj/project.pbxproj index dd33f35..fcda7e2 100644 --- a/Xcode/libusb.xcodeproj/project.pbxproj +++ b/Xcode/libusb.xcodeproj/project.pbxproj @@ -34,11 +34,10 @@ 006AD4261C8C5AD9007F8C6A /* libusb-1.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 008FBF311628B79300BC5BE2 /* libusb-1.0.0.dylib */; }; 008A23DA236C85AF004854AA /* stress.c in Sources */ = {isa = PBXBuildFile; fileRef = 008A23C6236C8445004854AA /* stress.c */; }; 008A23DB236C85AF004854AA /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 008A23CB236C849A004854AA /* testlib.c */; }; - 008A23DC236C85BD004854AA /* libusb-1.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 008FBF311628B79300BC5BE2 /* libusb-1.0.0.dylib */; }; 008FBF861628B7E800BC5BE2 /* core.c in Sources */ = {isa = PBXBuildFile; fileRef = 008FBF541628B7E800BC5BE2 /* core.c */; }; 008FBF871628B7E800BC5BE2 /* descriptor.c in Sources */ = {isa = PBXBuildFile; fileRef = 008FBF551628B7E800BC5BE2 /* descriptor.c */; }; 008FBF881628B7E800BC5BE2 /* io.c in Sources */ = {isa = PBXBuildFile; fileRef = 008FBF561628B7E800BC5BE2 /* io.c */; }; - 008FBF891628B7E800BC5BE2 /* libusb.h in Headers */ = {isa = PBXBuildFile; fileRef = 008FBF5A1628B7E800BC5BE2 /* libusb.h */; }; + 008FBF891628B7E800BC5BE2 /* libusb.h in Headers */ = {isa = PBXBuildFile; fileRef = 008FBF5A1628B7E800BC5BE2 /* libusb.h */; settings = {ATTRIBUTES = (Public, ); }; }; 008FBF901628B7E800BC5BE2 /* libusbi.h in Headers */ = {isa = PBXBuildFile; fileRef = 008FBF671628B7E800BC5BE2 /* libusbi.h */; }; 008FBF921628B7E800BC5BE2 /* darwin_usb.c in Sources */ = {isa = PBXBuildFile; fileRef = 008FBF6C1628B7E800BC5BE2 /* darwin_usb.c */; }; 008FBF931628B7E800BC5BE2 /* darwin_usb.h in Headers */ = {isa = PBXBuildFile; fileRef = 008FBF6D1628B7E800BC5BE2 /* darwin_usb.h */; }; @@ -52,16 +51,10 @@ 008FBFA91628B88000BC5BE2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 008FBFA81628B88000BC5BE2 /* IOKit.framework */; }; 008FBFAB1628B8CB00BC5BE2 /* libobjc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 008FBFAA1628B8CB00BC5BE2 /* libobjc.dylib */; }; 008FBFEF1628BA3500BC5BE2 /* xusb.c in Sources */ = {isa = PBXBuildFile; fileRef = 008FBFED1628BA0E00BC5BE2 /* xusb.c */; }; - 008FBFF01628BA3A00BC5BE2 /* libusb-1.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 008FBF311628B79300BC5BE2 /* libusb-1.0.0.dylib */; }; 008FBFFF1628BB9600BC5BE2 /* dpfp.c in Sources */ = {isa = PBXBuildFile; fileRef = 008FBFD71628BA0E00BC5BE2 /* dpfp.c */; }; - 008FC0001628BBCD00BC5BE2 /* libusb-1.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 008FBF311628B79300BC5BE2 /* libusb-1.0.0.dylib */; }; - 008FC00F1628BBE400BC5BE2 /* dpfp_threaded.c in Sources */ = {isa = PBXBuildFile; fileRef = 008FBFDB1628BA0E00BC5BE2 /* dpfp_threaded.c */; }; - 008FC0101628BBE900BC5BE2 /* libusb-1.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 008FBF311628B79300BC5BE2 /* libusb-1.0.0.dylib */; }; 008FC01F1628BC1500BC5BE2 /* fxload.c in Sources */ = {isa = PBXBuildFile; fileRef = 008FBFE11628BA0E00BC5BE2 /* fxload.c */; }; - 008FC0201628BC1B00BC5BE2 /* libusb-1.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 008FBF311628B79300BC5BE2 /* libusb-1.0.0.dylib */; }; 008FC0211628BC5200BC5BE2 /* ezusb.c in Sources */ = {isa = PBXBuildFile; fileRef = 008FBFDC1628BA0E00BC5BE2 /* ezusb.c */; }; 008FC0301628BC7400BC5BE2 /* listdevs.c in Sources */ = {isa = PBXBuildFile; fileRef = 008FBFE71628BA0E00BC5BE2 /* listdevs.c */; }; - 008FC0311628BC7800BC5BE2 /* libusb-1.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 008FBF311628B79300BC5BE2 /* libusb-1.0.0.dylib */; }; 1438D77A17A2ED9F00166101 /* hotplug.c in Sources */ = {isa = PBXBuildFile; fileRef = 1438D77817A2ED9F00166101 /* hotplug.c */; }; 1438D77B17A2ED9F00166101 /* hotplug.h in Headers */ = {isa = PBXBuildFile; fileRef = 1438D77917A2ED9F00166101 /* hotplug.h */; }; 1438D77F17A2F0EA00166101 /* strerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 1438D77E17A2F0EA00166101 /* strerror.c */; }; @@ -69,8 +62,10 @@ 2018D96124E453D0001589B2 /* events_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 2018D96024E453D0001589B2 /* events_posix.h */; }; 20468D70243298C100650534 /* sam3u_benchmark.c in Sources */ = {isa = PBXBuildFile; fileRef = 20468D6E243298C100650534 /* sam3u_benchmark.c */; }; 20468D7E2432990100650534 /* testlibusb.c in Sources */ = {isa = PBXBuildFile; fileRef = 20468D7C2432990000650534 /* testlibusb.c */; }; - 20468D7F2432993300650534 /* libusb-1.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 008FBF311628B79300BC5BE2 /* libusb-1.0.0.dylib */; }; - 20468D802432993C00650534 /* libusb-1.0.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 008FBF311628B79300BC5BE2 /* libusb-1.0.0.dylib */; }; + 20951C0325630F5F00ED6351 /* dpfp.c in Sources */ = {isa = PBXBuildFile; fileRef = 008FBFD71628BA0E00BC5BE2 /* dpfp.c */; settings = {COMPILER_FLAGS = "-DDPFP_THREADED"; }; }; + 20951C0625630F8F00ED6351 /* ezusb.h in Headers */ = {isa = PBXBuildFile; fileRef = 008FBFDD1628BA0E00BC5BE2 /* ezusb.h */; }; + 20951C0F25630FD300ED6351 /* libusb_testlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 008A23CA236C849A004854AA /* libusb_testlib.h */; }; + 20951C152563125200ED6351 /* libusb.h in Headers */ = {isa = PBXBuildFile; fileRef = 008FBF5A1628B7E800BC5BE2 /* libusb.h */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -209,90 +204,6 @@ }; /* End PBXContainerItemProxy section */ -/* Begin PBXCopyFilesBuildPhase section */ - 006AD41A1C8C5A90007F8C6A /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; - 008A23D1236C8594004854AA /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; - 008FBFBB1628B9FE00BC5BE2 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; - 008FBFF31628BB8B00BC5BE2 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; - 008FC0031628BBDB00BC5BE2 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; - 008FC0131628BC0300BC5BE2 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; - 008FC0241628BC6B00BC5BE2 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; - 20468D65243298AE00650534 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; - 20468D73243298D300650534 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ 006AD41C1C8C5A90007F8C6A /* hotplugtest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = hotplugtest; sourceTree = BUILT_PRODUCTS_DIR; }; 006AD4231C8C5AAE007F8C6A /* hotplugtest.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.c; path = hotplugtest.c; sourceTree = "<group>"; tabWidth = 4; usesTabs = 1; }; @@ -319,7 +230,6 @@ 008FBFAA1628B8CB00BC5BE2 /* libobjc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libobjc.dylib; path = usr/lib/libobjc.dylib; sourceTree = SDKROOT; }; 008FBFBD1628B9FE00BC5BE2 /* xusb */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = xusb; sourceTree = BUILT_PRODUCTS_DIR; }; 008FBFD71628BA0E00BC5BE2 /* dpfp.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.c; path = dpfp.c; sourceTree = "<group>"; tabWidth = 4; usesTabs = 1; }; - 008FBFDB1628BA0E00BC5BE2 /* dpfp_threaded.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.c; path = dpfp_threaded.c; sourceTree = "<group>"; tabWidth = 4; usesTabs = 1; }; 008FBFDC1628BA0E00BC5BE2 /* ezusb.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.c; path = ezusb.c; sourceTree = "<group>"; tabWidth = 4; usesTabs = 1; }; 008FBFDD1628BA0E00BC5BE2 /* ezusb.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = ezusb.h; sourceTree = "<group>"; tabWidth = 4; usesTabs = 1; }; 008FBFE11628BA0E00BC5BE2 /* fxload.c */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.c; path = fxload.c; sourceTree = "<group>"; tabWidth = 4; usesTabs = 1; }; @@ -359,7 +269,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 008A23DC236C85BD004854AA /* libusb-1.0.0.dylib in Frameworks */, + 006AD4261C8C5AD9007F8C6A /* libusb-1.0.0.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -377,7 +287,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 008FBFF01628BA3A00BC5BE2 /* libusb-1.0.0.dylib in Frameworks */, + 006AD4261C8C5AD9007F8C6A /* libusb-1.0.0.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -385,7 +295,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 008FC0001628BBCD00BC5BE2 /* libusb-1.0.0.dylib in Frameworks */, + 006AD4261C8C5AD9007F8C6A /* libusb-1.0.0.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -393,7 +303,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 008FC0101628BBE900BC5BE2 /* libusb-1.0.0.dylib in Frameworks */, + 006AD4261C8C5AD9007F8C6A /* libusb-1.0.0.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -401,7 +311,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 008FC0201628BC1B00BC5BE2 /* libusb-1.0.0.dylib in Frameworks */, + 006AD4261C8C5AD9007F8C6A /* libusb-1.0.0.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -409,7 +319,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 008FC0311628BC7800BC5BE2 /* libusb-1.0.0.dylib in Frameworks */, + 006AD4261C8C5AD9007F8C6A /* libusb-1.0.0.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -417,7 +327,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 20468D7F2432993300650534 /* libusb-1.0.0.dylib in Frameworks */, + 006AD4261C8C5AD9007F8C6A /* libusb-1.0.0.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -425,7 +335,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 20468D802432993C00650534 /* libusb-1.0.0.dylib in Frameworks */, + 006AD4261C8C5AD9007F8C6A /* libusb-1.0.0.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -510,7 +420,6 @@ isa = PBXGroup; children = ( 008FBFD71628BA0E00BC5BE2 /* dpfp.c */, - 008FBFDB1628BA0E00BC5BE2 /* dpfp_threaded.c */, 008FBFDC1628BA0E00BC5BE2 /* ezusb.c */, 008FBFDD1628BA0E00BC5BE2 /* ezusb.h */, 008FBFE11628BA0E00BC5BE2 /* fxload.c */, @@ -556,11 +465,11 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 008FBF891628B7E800BC5BE2 /* libusb.h in Headers */, 008FBFA51628B84200BC5BE2 /* config.h in Headers */, 008FBF931628B7E800BC5BE2 /* darwin_usb.h in Headers */, 2018D96124E453D0001589B2 /* events_posix.h in Headers */, 1438D77B17A2ED9F00166101 /* hotplug.h in Headers */, - 008FBF891628B7E800BC5BE2 /* libusb.h in Headers */, 008FBF901628B7E800BC5BE2 /* libusbi.h in Headers */, 008FBF9B1628B7E800BC5BE2 /* threads_posix.h in Headers */, 008FBFA11628B7E800BC5BE2 /* version.h in Headers */, @@ -568,6 +477,89 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 20951BFF25630EBE00ED6351 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 008FBFA51628B84200BC5BE2 /* config.h in Headers */, + 20951C152563125200ED6351 /* libusb.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 20951C0125630F4100ED6351 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 008FBFA51628B84200BC5BE2 /* config.h in Headers */, + 20951C152563125200ED6351 /* libusb.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 20951C0425630F7600ED6351 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 008FBFA51628B84200BC5BE2 /* config.h in Headers */, + 20951C0625630F8F00ED6351 /* ezusb.h in Headers */, + 20951C152563125200ED6351 /* libusb.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 20951C0725630F9D00ED6351 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 008FBFA51628B84200BC5BE2 /* config.h in Headers */, + 20951C152563125200ED6351 /* libusb.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 20951C0925630FA900ED6351 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 008FBFA51628B84200BC5BE2 /* config.h in Headers */, + 20951C152563125200ED6351 /* libusb.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 20951C0B25630FB400ED6351 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 008FBFA51628B84200BC5BE2 /* config.h in Headers */, + 20951C152563125200ED6351 /* libusb.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 20951C0D25630FC000ED6351 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 008FBFA51628B84200BC5BE2 /* config.h in Headers */, + 20951C0F25630FD300ED6351 /* libusb_testlib.h in Headers */, + 20951C152563125200ED6351 /* libusb.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 20951C1025630FE300ED6351 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 008FBFA51628B84200BC5BE2 /* config.h in Headers */, + 20951C152563125200ED6351 /* libusb.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 20951C1225630FEE00ED6351 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 008FBFA51628B84200BC5BE2 /* config.h in Headers */, + 20951C152563125200ED6351 /* libusb.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -575,9 +567,9 @@ isa = PBXNativeTarget; buildConfigurationList = 006AD4221C8C5A90007F8C6A /* Build configuration list for PBXNativeTarget "hotplugtest" */; buildPhases = ( + 20951C0725630F9D00ED6351 /* Headers */, 006AD4181C8C5A90007F8C6A /* Sources */, 006AD4191C8C5A90007F8C6A /* Frameworks */, - 006AD41A1C8C5A90007F8C6A /* CopyFiles */, ); buildRules = ( ); @@ -593,9 +585,9 @@ isa = PBXNativeTarget; buildConfigurationList = 008A23D7236C8594004854AA /* Build configuration list for PBXNativeTarget "stress" */; buildPhases = ( + 20951C0D25630FC000ED6351 /* Headers */, 008A23CF236C8594004854AA /* Sources */, 008A23D0236C8594004854AA /* Frameworks */, - 008A23D1236C8594004854AA /* CopyFiles */, ); buildRules = ( ); @@ -611,9 +603,9 @@ isa = PBXNativeTarget; buildConfigurationList = 008FBF351628B79300BC5BE2 /* Build configuration list for PBXNativeTarget "libusb" */; buildPhases = ( + 008FBF2F1628B79300BC5BE2 /* Headers */, 008FBF2D1628B79300BC5BE2 /* Sources */, 008FBF2E1628B79300BC5BE2 /* Frameworks */, - 008FBF2F1628B79300BC5BE2 /* Headers */, ); buildRules = ( ); @@ -628,9 +620,9 @@ isa = PBXNativeTarget; buildConfigurationList = 008FBFC61628B9FE00BC5BE2 /* Build configuration list for PBXNativeTarget "xusb" */; buildPhases = ( + 20951C1225630FEE00ED6351 /* Headers */, 008FBFB91628B9FE00BC5BE2 /* Sources */, 008FBFBA1628B9FE00BC5BE2 /* Frameworks */, - 008FBFBB1628B9FE00BC5BE2 /* CopyFiles */, ); buildRules = ( ); @@ -646,9 +638,9 @@ isa = PBXNativeTarget; buildConfigurationList = 008FBFFC1628BB8C00BC5BE2 /* Build configuration list for PBXNativeTarget "dpfp" */; buildPhases = ( + 20951BFF25630EBE00ED6351 /* Headers */, 008FBFF11628BB8B00BC5BE2 /* Sources */, 008FBFF21628BB8B00BC5BE2 /* Frameworks */, - 008FBFF31628BB8B00BC5BE2 /* CopyFiles */, ); buildRules = ( ); @@ -664,9 +656,9 @@ isa = PBXNativeTarget; buildConfigurationList = 008FC00C1628BBDB00BC5BE2 /* Build configuration list for PBXNativeTarget "dpfp_threaded" */; buildPhases = ( + 20951C0125630F4100ED6351 /* Headers */, 008FC0011628BBDB00BC5BE2 /* Sources */, 008FC0021628BBDB00BC5BE2 /* Frameworks */, - 008FC0031628BBDB00BC5BE2 /* CopyFiles */, ); buildRules = ( ); @@ -682,9 +674,9 @@ isa = PBXNativeTarget; buildConfigurationList = 008FC01C1628BC0300BC5BE2 /* Build configuration list for PBXNativeTarget "fxload" */; buildPhases = ( + 20951C0425630F7600ED6351 /* Headers */, 008FC0111628BC0300BC5BE2 /* Sources */, 008FC0121628BC0300BC5BE2 /* Frameworks */, - 008FC0131628BC0300BC5BE2 /* CopyFiles */, ); buildRules = ( ); @@ -700,9 +692,9 @@ isa = PBXNativeTarget; buildConfigurationList = 008FC02D1628BC6B00BC5BE2 /* Build configuration list for PBXNativeTarget "listdevs" */; buildPhases = ( + 20951C0925630FA900ED6351 /* Headers */, 008FC0221628BC6B00BC5BE2 /* Sources */, 008FC0231628BC6B00BC5BE2 /* Frameworks */, - 008FC0241628BC6B00BC5BE2 /* CopyFiles */, ); buildRules = ( ); @@ -718,9 +710,9 @@ isa = PBXNativeTarget; buildConfigurationList = 20468D6B243298AE00650534 /* Build configuration list for PBXNativeTarget "sam3u_benchmark" */; buildPhases = ( + 20951C0B25630FB400ED6351 /* Headers */, 20468D63243298AE00650534 /* Sources */, 20468D64243298AE00650534 /* Frameworks */, - 20468D65243298AE00650534 /* CopyFiles */, ); buildRules = ( ); @@ -736,9 +728,9 @@ isa = PBXNativeTarget; buildConfigurationList = 20468D79243298D300650534 /* Build configuration list for PBXNativeTarget "testlibusb" */; buildPhases = ( + 20951C1025630FE300ED6351 /* Headers */, 20468D71243298D300650534 /* Sources */, 20468D72243298D300650534 /* Frameworks */, - 20468D73243298D300650534 /* CopyFiles */, ); buildRules = ( ); @@ -855,7 +847,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 008FC00F1628BBE400BC5BE2 /* dpfp_threaded.c in Sources */, + 20951C0325630F5F00ED6351 /* dpfp.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/android/jni/examples.mk b/android/jni/examples.mk index 74139ce..30b5c84 100644 --- a/android/jni/examples.mk +++ b/android/jni/examples.mk @@ -28,6 +28,7 @@ LOCAL_SRC_FILES := \ $(LIBUSB_ROOT_REL)/examples/dpfp.c LOCAL_C_INCLUDES += \ + $(LOCAL_PATH)/.. \ $(LIBUSB_ROOT_ABS) LOCAL_SHARED_LIBRARIES += libusb1.0 @@ -41,12 +42,13 @@ include $(BUILD_EXECUTABLE) include $(CLEAR_VARS) LOCAL_SRC_FILES := \ - $(LIBUSB_ROOT_REL)/examples/dpfp_threaded.c + $(LIBUSB_ROOT_REL)/examples/dpfp.c LOCAL_C_INCLUDES += \ + $(LOCAL_PATH)/.. \ $(LIBUSB_ROOT_ABS) -LOCAL_CFLAGS := -pthread +LOCAL_CFLAGS := -DDPFP_THREADED -pthread LOCAL_SHARED_LIBRARIES += libusb1.0 @@ -63,6 +65,7 @@ LOCAL_SRC_FILES := \ $(LIBUSB_ROOT_REL)/examples/fxload.c LOCAL_C_INCLUDES += \ + $(LOCAL_PATH)/.. \ $(LIBUSB_ROOT_ABS) LOCAL_SHARED_LIBRARIES += libusb1.0 @@ -79,6 +82,7 @@ LOCAL_SRC_FILES := \ $(LIBUSB_ROOT_REL)/examples/hotplugtest.c LOCAL_C_INCLUDES += \ + $(LOCAL_PATH)/.. \ $(LIBUSB_ROOT_ABS) LOCAL_SHARED_LIBRARIES += libusb1.0 @@ -95,6 +99,7 @@ LOCAL_SRC_FILES := \ $(LIBUSB_ROOT_REL)/examples/listdevs.c LOCAL_C_INCLUDES += \ + $(LOCAL_PATH)/.. \ $(LIBUSB_ROOT_ABS) LOCAL_SHARED_LIBRARIES += libusb1.0 @@ -111,6 +116,7 @@ LOCAL_SRC_FILES := \ $(LIBUSB_ROOT_REL)/examples/sam3u_benchmark.c LOCAL_C_INCLUDES += \ + $(LOCAL_PATH)/.. \ $(LIBUSB_ROOT_ABS) LOCAL_SHARED_LIBRARIES += libusb1.0 @@ -127,6 +133,7 @@ LOCAL_SRC_FILES := \ $(LIBUSB_ROOT_REL)/examples/xusb.c LOCAL_C_INCLUDES += \ + $(LOCAL_PATH)/.. \ $(LIBUSB_ROOT_ABS) LOCAL_SHARED_LIBRARIES += libusb1.0 diff --git a/android/jni/libusb.mk b/android/jni/libusb.mk index 656f903..dacf1ee 100644 --- a/android/jni/libusb.mk +++ b/android/jni/libusb.mk @@ -24,9 +24,6 @@ LIBUSB_ROOT_ABS := $(LOCAL_PATH)/../.. include $(CLEAR_VARS) -LIBUSB_ROOT_REL := ../.. -LIBUSB_ROOT_ABS := $(LOCAL_PATH)/../.. - LOCAL_SRC_FILES := \ $(LIBUSB_ROOT_REL)/libusb/core.c \ $(LIBUSB_ROOT_REL)/libusb/descriptor.c \ diff --git a/android/jni/tests.mk b/android/jni/tests.mk index 6136f58..b42bd1c 100644 --- a/android/jni/tests.mk +++ b/android/jni/tests.mk @@ -29,6 +29,7 @@ LOCAL_SRC_FILES := \ $(LIBUSB_ROOT_REL)/tests/testlib.c LOCAL_C_INCLUDES += \ + $(LOCAL_PATH)/.. \ $(LIBUSB_ROOT_ABS) LOCAL_SHARED_LIBRARIES += libusb1.0 diff --git a/examples/dpfp.c b/examples/dpfp.c index cbbfc8d..f05fa08 100644 --- a/examples/dpfp.c +++ b/examples/dpfp.c @@ -35,31 +35,42 @@ #if defined(DPFP_THREADED) #if defined(PLATFORM_POSIX) +#include <fcntl.h> #include <pthread.h> #include <semaphore.h> +#include <unistd.h> #define THREAD_RETURN_VALUE NULL -typedef sem_t semaphore_t; +typedef sem_t * semaphore_t; typedef pthread_t thread_t; -static inline int semaphore_init(semaphore_t *semaphore) +static inline semaphore_t semaphore_create(void) { - return sem_init(semaphore, 0, 0); + sem_t *semaphore; + char name[50]; + + sprintf(name, "/org.libusb.example.dpfp_threaded:%d", (int)getpid()); + semaphore = sem_open(name, O_CREAT | O_EXCL, 0, 0); + if (semaphore == SEM_FAILED) + return NULL; + /* Remove semaphore so that it does not persist after process exits */ + (void)sem_unlink(name); + return semaphore; } -static inline void semaphore_give(semaphore_t *semaphore) +static inline void semaphore_give(semaphore_t semaphore) { (void)sem_post(semaphore); } -static inline void semaphore_take(semaphore_t *semaphore) +static inline void semaphore_take(semaphore_t semaphore) { (void)sem_wait(semaphore); } -static inline void semaphore_destroy(semaphore_t *semaphore) +static inline void semaphore_destroy(semaphore_t semaphore) { - (void)sem_destroy(semaphore); + (void)sem_close(semaphore); } static inline int thread_create(thread_t *thread, @@ -84,26 +95,24 @@ typedef DWORD thread_return_t; typedef unsigned thread_return_t; #endif -static inline int semaphore_init(semaphore_t *semaphore) +static inline semaphore_t semaphore_create(void) { - *semaphore = CreateSemaphore(NULL, 0, 1, NULL); - return *semaphore != NULL ? 0 : -1; + return CreateSemaphore(NULL, 0, 1, NULL); } -static inline void semaphore_give(semaphore_t *semaphore) +static inline void semaphore_give(semaphore_t semaphore) { - (void)ReleaseSemaphore(*semaphore, 1, NULL); + (void)ReleaseSemaphore(semaphore, 1, NULL); } -static inline void semaphore_take(semaphore_t *semaphore) +static inline void semaphore_take(semaphore_t semaphore) { - (void)WaitForSingleObject(*semaphore, INFINITE); + (void)WaitForSingleObject(semaphore, INFINITE); } -static inline void semaphore_destroy(semaphore_t *semaphore) +static inline void semaphore_destroy(semaphore_t semaphore) { - (void)CloseHandle(*semaphore); - *semaphore = NULL; + (void)CloseHandle(semaphore); } static inline int thread_create(thread_t *thread, @@ -170,7 +179,7 @@ static void request_exit(sig_atomic_t code) { do_exit = code; #if defined(DPFP_THREADED) - semaphore_give(&exit_semaphore); + semaphore_give(exit_semaphore); #endif } @@ -605,7 +614,6 @@ int main(void) goto out_deinit; /* async from here onwards */ - setup_signals(); r = alloc_transfers(); @@ -613,15 +621,15 @@ int main(void) goto out_deinit; #if defined(DPFP_THREADED) - r = semaphore_init(&exit_semaphore); - if (r < 0) { + exit_semaphore = semaphore_create(); + if (!exit_semaphore) { fprintf(stderr, "failed to initialise semaphore\n"); goto out_deinit; } r = thread_create(&poll_thread, poll_thread_main, NULL); if (r) { - semaphore_destroy(&exit_semaphore); + semaphore_destroy(exit_semaphore); goto out_deinit; } @@ -630,7 +638,7 @@ int main(void) request_exit(2); while (!do_exit) - semaphore_take(&exit_semaphore); + semaphore_take(exit_semaphore); #else r = init_capture(); if (r < 0) @@ -647,7 +655,7 @@ int main(void) #if defined(DPFP_THREADED) thread_join(poll_thread); - semaphore_destroy(&exit_semaphore); + semaphore_destroy(exit_semaphore); #endif if (img_transfer) { diff --git a/examples/sam3u_benchmark.c b/examples/sam3u_benchmark.c index 5cc4065..33e8913 100644 --- a/examples/sam3u_benchmark.c +++ b/examples/sam3u_benchmark.c @@ -64,7 +64,7 @@ static void get_timestamp(struct timeval *tv) (void)clock_gettime(CLOCK_MONOTONIC, &ts); tv->tv_sec = ts.tv_sec; - tv->tv_usec = ts.tv_nsec / 1000L; + tv->tv_usec = (int)(ts.tv_nsec / 1000L); #else gettimeofday(tv, NULL); #endif diff --git a/libusb/version_nano.h b/libusb/version_nano.h index 047bfa8..593d086 100644 --- a/libusb/version_nano.h +++ b/libusb/version_nano.h @@ -1 +1 @@ -#define LIBUSB_NANO 11575 +#define LIBUSB_NANO 11576 |