summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Xcode/libusb.xcodeproj/project.pbxproj224
-rw-r--r--android/jni/examples.mk11
-rw-r--r--android/jni/libusb.mk3
-rw-r--r--android/jni/tests.mk1
-rw-r--r--examples/dpfp.c56
-rw-r--r--examples/sam3u_benchmark.c2
-rw-r--r--libusb/version_nano.h2
8 files changed, 154 insertions, 147 deletions
diff --git a/.gitignore b/.gitignore
index 1dc2e35..343a446 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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