<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libusb.git/Xcode/libusb.xcodeproj/project.pbxproj, branch master</title>
<subtitle>github.com: libusb/libusb.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libusb.git/'/>
<entry>
<title>core: Refactor initialization and how the default context is handled</title>
<updated>2021-06-03T04:53:59+00:00</updated>
<author>
<name>Chris Dickens</name>
<email>christopher.a.dickens@gmail.com</email>
</author>
<published>2021-01-20T19:18:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libusb.git/commit/?id=32a22069428cda9d63aa666e92fb8882a83d4515'/>
<id>32a22069428cda9d63aa666e92fb8882a83d4515</id>
<content type='text'>
Highlights for this change:

 - usbi_default_context is only set if libusb_init() is called with NULL.
 - All hotplug related functionality (e.g. initialization, processing) has been
   moved to hotplug.c
 - Backends are simplified by removing initialization mutexes. Mutual exclusion
   between init()/exit() is provided by default_context_lock.
 - Make hotplug types and functions part of libusbi.h with the common usbi_
   prefixes (removes hotplug.h).

Addresses issue highlighted in #855

Closes #856

Signed-off-by: Chris Dickens &lt;christopher.a.dickens@gmail.com&gt;
Signed-off-by: Nathan Hjelm &lt;hjelmn@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Highlights for this change:

 - usbi_default_context is only set if libusb_init() is called with NULL.
 - All hotplug related functionality (e.g. initialization, processing) has been
   moved to hotplug.c
 - Backends are simplified by removing initialization mutexes. Mutual exclusion
   between init()/exit() is provided by default_context_lock.
 - Make hotplug types and functions part of libusbi.h with the common usbi_
   prefixes (removes hotplug.h).

Addresses issue highlighted in #855

Closes #856

Signed-off-by: Chris Dickens &lt;christopher.a.dickens@gmail.com&gt;
Signed-off-by: Nathan Hjelm &lt;hjelmn@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>darwin: add authorization for device capture</title>
<updated>2021-05-16T21:15:05+00:00</updated>
<author>
<name>osy</name>
<email>50960678+osy@users.noreply.github.com</email>
</author>
<published>2021-05-12T03:58:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libusb.git/commit/?id=6a902c3b207a017cd699ac8bb6659abf32eb0c99'/>
<id>6a902c3b207a017cd699ac8bb6659abf32eb0c99</id>
<content type='text'>
To use USBDeviceReEnumerate with kUSBReEnumerateCaptureDeviceMask your app
either needs to be running as root OR have the 'com.apple.vm.device-access'
entitlement AND have the user authorization requested via
IOServiceAuthorize().

We can use the capture re-enumerate APIs if either 1) the process is running
as root or 2) the 'com.apple.vm.device-access' entitlement is used AND
IOServiceAuthorize() is called. We assume that if the entitlement is not
there then we are running as root--if this is not true, then
darwin_detach_kernel_driver will fail anyways.

The authorization status is cached in the device's start() so we have to
stop() and start() the device by destroying the plugin and recreating it
again.

Signed-off-by: Nathan Hjelm &lt;hjelmn@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To use USBDeviceReEnumerate with kUSBReEnumerateCaptureDeviceMask your app
either needs to be running as root OR have the 'com.apple.vm.device-access'
entitlement AND have the user authorization requested via
IOServiceAuthorize().

We can use the capture re-enumerate APIs if either 1) the process is running
as root or 2) the 'com.apple.vm.device-access' entitlement is used AND
IOServiceAuthorize() is called. We assume that if the entitlement is not
there then we are running as root--if this is not true, then
darwin_detach_kernel_driver will fail anyways.

The authorization status is cached in the device's start() so we have to
stop() and start() the device by destroying the plugin and recreating it
again.

Signed-off-by: Nathan Hjelm &lt;hjelmn@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>build: Fix Android and Xcode compilation errors/warnings</title>
<updated>2020-11-16T21:03:52+00:00</updated>
<author>
<name>Chris Dickens</name>
<email>christopher.a.dickens@gmail.com</email>
</author>
<published>2020-11-16T21:03:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libusb.git/commit/?id=9d23ed25b44ae351eaf839805722d6796f9b018a'/>
<id>9d23ed25b44ae351eaf839805722d6796f9b018a</id>
<content type='text'>
Commit f69548c3b3 ("examples: Enable all examples to build on all
platforms") modified dpfp and sam3u_benchmark to be buildable on any
platform, however there were some oversights and regressions introduced
for Android and Xcode.

Update the Android and Xcode build files to account for the removal of
dpfp_threaded.c as well as the inclusion of config.h from examples
and/or tests source.

Additionally switch the threaded version of dpfp to use sem_open()
instead of sem_init() as the latter is in fact deprecated on MacOS.

Closes #808

Signed-off-by: Chris Dickens &lt;christopher.a.dickens@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit f69548c3b3 ("examples: Enable all examples to build on all
platforms") modified dpfp and sam3u_benchmark to be buildable on any
platform, however there were some oversights and regressions introduced
for Android and Xcode.

Update the Android and Xcode build files to account for the removal of
dpfp_threaded.c as well as the inclusion of config.h from examples
and/or tests source.

Additionally switch the threaded version of dpfp to use sem_open()
instead of sem_init() as the latter is in fact deprecated on MacOS.

Closes #808

Signed-off-by: Chris Dickens &lt;christopher.a.dickens@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>core: Introduce platform events abstraction</title>
<updated>2020-08-12T23:06:38+00:00</updated>
<author>
<name>Chris Dickens</name>
<email>christopher.a.dickens@gmail.com</email>
</author>
<published>2020-08-12T23:06:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libusb.git/commit/?id=d67eb5beaa44c17c09f089a522ff483f4978a978'/>
<id>d67eb5beaa44c17c09f089a522ff483f4978a978</id>
<content type='text'>
The way in which system handles or resources are represented differs
greatly between Unix-like operating systems and Windows. Ever since
Windows support was added to libusb, Windows been emulating principles
of Unix-like operating systems such as file descriptors and poll().

This commit introduces an abstraction layer that completely removes the
need to perform any emulation. Fundamentally there are three things that
each platform provides to libusb:

  1) A signallable event
  2) A timer (not required, but useful)
  3) A means to wait for event sources such as the above to be triggered

The POSIX abstraction for Unix-like operating systems uses file
descriptors as the "handles" to the underlying system resources. The
signallable event is implemented using a pipe, the timer as a timerfd
(where supported) and the poll() system call is used to wait for events.

The Windows abstraction uses native HANDLEs as the "handles" to the
underlying system resources. The signallable event is implemented using
a manual-reset event, the timer as a manual-reset waitable timer, and
the WaitForMultipleObjects() system call is used to wait for events.

Closes #252

Signed-off-by: Chris Dickens &lt;christopher.a.dickens@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The way in which system handles or resources are represented differs
greatly between Unix-like operating systems and Windows. Ever since
Windows support was added to libusb, Windows been emulating principles
of Unix-like operating systems such as file descriptors and poll().

This commit introduces an abstraction layer that completely removes the
need to perform any emulation. Fundamentally there are three things that
each platform provides to libusb:

  1) A signallable event
  2) A timer (not required, but useful)
  3) A means to wait for event sources such as the above to be triggered

The POSIX abstraction for Unix-like operating systems uses file
descriptors as the "handles" to the underlying system resources. The
signallable event is implemented using a pipe, the timer as a timerfd
(where supported) and the poll() system call is used to wait for events.

The Windows abstraction uses native HANDLEs as the "handles" to the
underlying system resources. The signallable event is implemented using
a manual-reset event, the timer as a manual-reset waitable timer, and
the WaitForMultipleObjects() system call is used to wait for events.

Closes #252

Signed-off-by: Chris Dickens &lt;christopher.a.dickens@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Xcode: Update project file</title>
<updated>2020-03-30T23:53:43+00:00</updated>
<author>
<name>Chris Dickens</name>
<email>christopher.a.dickens@gmail.com</email>
</author>
<published>2020-03-30T23:53:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libusb.git/commit/?id=09d0312fbb466ce2457df94e314ba1348039138d'/>
<id>09d0312fbb466ce2457df94e314ba1348039138d</id>
<content type='text'>
Add '-fvisibility=hidden' to the additional compiler flags of the libusb
target so that internal library symbols are hidden.

Add '-pthread' to the additional compiler flags of the targets that
directly use pthread functionality

Add the 'sam3u_benchmark' and 'testlibusb' targets so that all examples
are now built and fix build warnings that occur when building
'sam3u_benchmark'.

Fix target dependencies so that all targets are able to build without
issues.

Signed-off-by: Chris Dickens &lt;christopher.a.dickens@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add '-fvisibility=hidden' to the additional compiler flags of the libusb
target so that internal library symbols are hidden.

Add '-pthread' to the additional compiler flags of the targets that
directly use pthread functionality

Add the 'sam3u_benchmark' and 'testlibusb' targets so that all examples
are now built and fix build warnings that occur when building
'sam3u_benchmark'.

Fix target dependencies so that all targets are able to build without
issues.

Signed-off-by: Chris Dickens &lt;christopher.a.dickens@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Xcode: add tests/stress target</title>
<updated>2019-11-01T15:45:50+00:00</updated>
<author>
<name>Ludovic Rousseau</name>
<email>ludovic.rousseau@free.fr</email>
</author>
<published>2019-11-01T15:29:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libusb.git/commit/?id=4bf9c343598900188a48e58408aa7e340f7caf87'/>
<id>4bf9c343598900188a48e58408aa7e340f7caf87</id>
<content type='text'>
Also build tests/stress
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also build tests/stress
</pre>
</div>
</content>
</entry>
<entry>
<title>Xcode: apply suggested changes from Xcode 11.2</title>
<updated>2019-11-01T15:43:45+00:00</updated>
<author>
<name>Ludovic Rousseau</name>
<email>ludovic.rousseau@free.fr</email>
</author>
<published>2019-11-01T15:13:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libusb.git/commit/?id=93b0ed5789897a8f3587a06e79f5d92575c95fbd'/>
<id>93b0ed5789897a8f3587a06e79f5d92575c95fbd</id>
<content type='text'>
Enable code signing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enable code signing.
</pre>
</div>
</content>
</entry>
<entry>
<title>Xcode: apply suggested changes from Xcode 10.3</title>
<updated>2019-09-15T15:52:38+00:00</updated>
<author>
<name>Ludovic Rousseau</name>
<email>ludovic.rousseau@free.fr</email>
</author>
<published>2019-09-15T15:50:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libusb.git/commit/?id=0c4f65ab0cfe393ebd7d515e2b01316c64548ae1'/>
<id>0c4f65ab0cfe393ebd7d515e2b01316c64548ae1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed Xcode 10.1 warning by setting project setting 'ALWAYS_SEARCH_USER_PATHS = NO'</title>
<updated>2019-04-05T03:20:48+00:00</updated>
<author>
<name>Sean McBride</name>
<email>sean@rogue-research.com</email>
</author>
<published>2019-02-07T20:11:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libusb.git/commit/?id=0aeb46c3dd96e0e6c01a169414a6ba5f34d9ea18'/>
<id>0aeb46c3dd96e0e6c01a169414a6ba5f34d9ea18</id>
<content type='text'>
The warning was: "Traditional headermap style is no longer supported; please migrate to using separate headermaps and set 'ALWAYS_SEARCH_USER_PATHS' to NO."

Also made sure all targets are referencing the xcconfig files.

Closes #532

Signed-off-by: Nathan Hjelm &lt;hjelmn@me.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The warning was: "Traditional headermap style is no longer supported; please migrate to using separate headermaps and set 'ALWAYS_SEARCH_USER_PATHS' to NO."

Also made sure all targets are referencing the xcconfig files.

Closes #532

Signed-off-by: Nathan Hjelm &lt;hjelmn@me.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>darwin: Configure Xcode project to specify tab/space, indent amount</title>
<updated>2018-01-08T18:25:13+00:00</updated>
<author>
<name>Sean McBride</name>
<email>sean@rogue-research.com</email>
</author>
<published>2017-12-29T17:57:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libusb.git/commit/?id=6bd5658dd7691dc044cd89a24050927eca87909a'/>
<id>6bd5658dd7691dc044cd89a24050927eca87909a</id>
<content type='text'>
All source files are now tagged as using tabs of 4 spaces, except
darwin_usb.c and darwin_usb.h which use spaces of 2 spaces. This allows
editing files in Xcode without it messing up any particular files.

Signed-off-by: Chris Dickens &lt;christopher.a.dickens@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All source files are now tagged as using tabs of 4 spaces, except
darwin_usb.c and darwin_usb.h which use spaces of 2 spaces. This allows
editing files in Xcode without it messing up any particular files.

Signed-off-by: Chris Dickens &lt;christopher.a.dickens@gmail.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
