Make binding helper macros available to out of tree components

Signed-off-by: Simon Busch <morphis@gravedo.de>
Switch to CLOCK_MONOTONIC_RAW instead of CLOCK_REALTIME

Using CLOCK_REALTIME can cause problems as it's time value is influenced by different
sources where CLOCK_MONOTONIC_RAW is not. CLOCK_MONOTONIC isn't safe to use as on
linux systems it can be influenced by NTP as well.

Signed-off-by: Simon Busch <morphis@gravedo.de>
properties: when property service is not available list properties from cache

Signed-off-by: Simon Busch <morphis@gravedo.de>
Redirect access to /dev/log/* to /dev/log_*

Android has a different log management approach and defines different log buffers (system,
main, events, radio) which are normally in Android available at /dev/log/{system,main,events,
radio}. In libhybris environments /dev/log is already occupied by the system logging
daemon (syslogd, journald, ...) so mapping isn't possible. To avoid patching the android
parts to use /dev/log_* directly instead of /dev/log/* we're installing a hook for the
open system call which checks for possible redirects. The implementend mechanism is
extensible so other redirects can be added easily.

Signed-off-by: Simon Busch <morphis@gravedo.de>
Merge pull request #231 from webOS-ports/for-upstream

For upstream
Add wayland-server support to nullws

Adds support for running a wayland compositor off of nullws.
This allows for platforms that have trouble bringing up fbdev and
hwcomposer to run a wayland compositor using null EGL platform for the
compositor.

tested using nexus5, qml-compositor and hellogl_es2 client.
Merge pull request #233 from heeen/null-compositor

Add wayland-server support to nullws
Add additional android specific kernel headers

Binder and Android alarm interfaces are needed from userspace at compile time and we
should ship the same as Android does with it's kernel header package.

Signed-off-by: Simon Busch <morphis@gravedo.de>
Generate pkg-config configuration file for our header package

Signed-off-by: Simon Busch <morphis@gravedo.de>
Cleanup the buffers from the list once destroyed

Since we dispatch the wayland queue in destroyBuffer() a wl_buffer.release
event may come while we're still mid-through deleting all the buffers.
When getting a release event we go through the list of the buffers, and so
we risk of accessing a deleted buffer object. To fix this remove the deleted
buffers from the list as soon as possible.
Merge pull request #234 from webOS-ports/kernel-headers

Kernel headers
Merge pull request #235 from giucam/master

Cleanup the buffers from the list once destroyed
egl:fbdev: lazily allocate buffers.

No point in reallocating the buffers 3-4 times before we start drawing.
Instead, delay creating them until the first dequeu.

This incidientally fixes an issue where we fail to allocate a third
buffer beceause setBufferCount gets called after queueBuffer().
Because one buffer is locked by the fb device (due to the post())
we end up with only being able to reallocate 2 buffers this time
and the application continues with 2 buffers rather than 3.
Hook __system_property_get

Normally we don't have to wrap __system_property_get (libc.so) as it is only used
through the property_get (libcutils.so) function. However when property_get is used
internally in libcutils.so we don't have any chance to hook our replacement in.
Therefore we have to hook __system_property_get too and just replace it with the
implementation of our internal property handling

This was discovered when debugfs was mounted to /sys/kernel/debug. Once this is done the
internal atrace functionality of Android is activated which sits also in libcutils. It
needs additionally to the mounted debugfs a property set to enable the trace
functionality. As soon as this property was tried to read through bionic the whole
process crashed. With hooking __system_property_get everything works again.

Signed-off-by: Simon Busch <morphis@gravedo.de>
propcache: Remove one unnecessary strdup().

By simply returning the already allocated value, we avoid an unnecessary
allocation, as the caller already copies the value anyway.
Merge pull request #239 from sletta/fbdev-lazy-allocate

egl:fbdev: lazily allocate buffers.
Merge pull request #238 from rburchell/master

propcache: Remove one unnecessary strdup().
Merge pull request #236 from webOS-ports/atrace-crash

Hook __system_property_get
Prevent users from running standalone EGL clients with wayland platform

Running standalone EGL clients with the wayland EGL platform isn't supported and it is
better to prevent us from doing so rather than crashing with a segmentation fault later.

Upstream-Status: Pending (http://github.com/libhybris/libhybris)

Signed-off-by: Simon Busch <morphis@gravedo.de>
Merge pull request #237 from webOS-ports/egl-standalone

Prevent users from running standlone EGL clients with wayland platform