To get multi hal working on both 32 & 64 bit targets,
removing hardcoded paths & checks in multi HAL.
Sensor HAL libs must be installed path that is available through
LD_LIBRARY_PATH.
/system/lib & /system/vendor/lib for 32-bit targets.
/system/lib64 & /system/vendor/lib64 for 64-bit targets.
Change-Id: Ib1c1f25f08855c4584d53cc04fbe82a3a768b180
Ignore calls to any HALs that are not 1_0 or 1_3 compliant.
Fix an unused parameter compiler warning.
Bug: 17645248
Change-Id: Ia50f7512dfe35f37973440bba84e1b1b177a7bd3
If an event packet is read containing an unknown sensor handle,
don't pass it on to Sensor Services. Drop it on the floor instead
as it's causing Sensor Services to crash.
Moved read of queue size in sensors_poll_context_t::poll() to post
queue mutex grab for safety.
Bug: 15285345
Change-Id: I2ebc0f8591a1ae60f09bf9599b8321c5a3dfae69
MultiHal will now accept sensor HALs listed in the hals.conf file that
reside in either /system/lib/hw or /system/vendor/lib.
Bug: 14994424
Change-Id: I13f17352b97c36b97cfbcee8c9b6a0d2e1ed6dc3
This prevents crashes and undefined behavior when someone
calls sensor HAL methods with nonexistent handles.
It also adds checks and warnings if bad sensor HALs provide
garbage sensor handles in their sensor events.
Tested by making sure pedometer and tilt still work.
Bug: 13513595
Change-Id: Ie1489d3f2972bec82ee1c73189e532f6658d1eca
Fix a null pointer dereference bug that caused the multihal to crash
in an endless loop continuously trying to open a sensor HAL when it
reports back an error.
Change-Id: I6d82e8fdd9acde53f378a5fb3dfdb02c39d7b433
Squashed commit of:
Move sensors multi HAL to libhardware
Added a SensorEventQueue, a circular buffer meant for reading with one thread
and polling a subhal with another. The writing thread gets access to pointers
in the internal buffer. This design avoids a memcpy on write when the multihal
fetches subhal events using poll().
Unit-tests include multithreaded reading and writing lots of events, in
random-sized chunks.
This is not used by the multihal yet. That will be a different CL.
MultiHal multithreaded polling
Tests SensorEventQueue I/O when the queue is full.
Reduced debug logging in multihal.
deactivated multihal logspam, made warnings warnings, left critical startup info
Removed unneeded linux/input.h includes, to fix Mac SDK build
Change-Id: I1e35508949df98a1acef7a4a2d012eea87b4a5eb