Merge pull request #71 from groleo/for-upstream

fbdev_window: some drivers have numFramebuffers set to zero
hooks: Use SHM between hybris instances for pshared mutex and condition

When some android code uses a process-shared mutex and/or condition, hybris should also use process-shared mutex/condition. To do so, we have to use a shared memory segment to store the corresponding glibc mutex/conditions.

Current limitations:
 - There is a maximum number (1000) of mutex and conditions that can be allocated
 - The shared memory segment is located at a pre-determined address (0x50000000), to be able to identify which mutexes are located in a shared memory region.

Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com>
hooks: implement a more dynamic and reliable management of pshared mutex/cond/rwlock

 * The memory region is now mapped dynamically, and not using a predefined address
 * The pointer is considered as an shm offset if it is above 0xFF000000
 * The allocation can mix pshared mutex, conditions or rwlock
 * The shared memory management has been isolated in a separate file, hooks_shm.c/.h
 * The SHM segment can grow dynamically on-demand, up to 16MB of data

Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com>
hooks: implemented pthread_cond_timedwait_relative_np correctly

 * it was previously wrongly hooked to  pthread_cond_timedwait, but the timespec argument meaning is not the same (absolute versus relative time)

Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com>
Merge pull request #49 from Tofee/work

hooks: various improvements of handling of process-shared conditions and mutexes
tests: gps: Fix NMEA callback prints

The NMEA sentence string isn't guaranteed to be nul-terminated so we
need to obey the length. While we're at it, let's make sure we only
print NMEA data if it's the correct size.

Signed-off-by: Kalle Vahlman <kalle.vahlman@movial.com>
Merge pull request #72 from kvahlman/nmea-fix

tests: gps: Fix NMEA callback prints
egl: add HYBRIS_EGLPLATFORM along EGL_PLATFORM

Mesa uses EGL_PLATFORM env variables for its own
purposes.
When the EGL_PLATFORM becomes wayland, mesa
will also try to initialize its wayland backend
when instead it should just stick to fbdev.

Signed-off-by: Adrian Negreanu <groleo@gmail.com>