Guard against too fast deletion of wl_buffers

When creating a wl_buffer using the android_wlegl protocol the server
registers with the native handle only when it processes the request later.
If the client destroys the wl_buffer and the native handle before the server
registers with it, the native handle will be gone and trying to register it
will fail. The server will then send a protocol error because it cannot know
the handle was valid when the client issued the request.
To solve it, register a wl_callback after creating the wl_buffer, which
will be used to block before destroying a buffer if the done event was not
fired yet.

Done-with: Jonas Ådahl <jadahl@gmail.com>
Merge pull request #230 from giucam/buffer_race

Guard against too fast deletion of wl_buffers
fix finishswap stuck forever in sync fence

Turns out on nexus5, not setting the flush flag makes client wait
forever in the finishswap fence.
increase runtime of test_glesv2

It was discovered that a file descriptor leak on fbdev mode would
manifest in a frozen client after around 15s. Therefore increase runtime
of the test and make runtime configurable.
Merge pull request #232 from heeen/master

Two changes for EGL and gles
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>