Commit 27b88879 authored by Eric Anholt's avatar Eric Anholt Committed by Marge Bot

android: Add pre-4.7 Android kernel compatibility to our libsync header.

The downstream Android kernels had a different API than was merged
upstream, and libsync on Android abstracts over that for us.  Use their
sync_merge() and sync_wait(), at the cost of linking against libsync
(which Android.mk and meson both do).
Reviewed-by: Kristian H. Kristensen's avatarKristian H. Kristensen <hoegsberg@google.com>
Part-of: <!6821>
parent e8c89a9b
......@@ -40,6 +40,14 @@
extern "C" {
#endif
#ifdef ANDROID
/* On Android, rely on the system's libsync instead of rolling our own
* sync_wait() and sync_merge(). This gives us compatibility with pre-4.7
* Android kernels.
*/
#include <android/sync.h>
#else
#ifndef SYNC_IOC_MERGE
/* duplicated from linux/sync_file.h to avoid build-time dependency
* on new (v4.7) kernel headers. Once distro's are mostly using
......@@ -101,6 +109,8 @@ static inline int sync_merge(const char *name, int fd1, int fd2)
return data.fence;
}
#endif /* !ANDROID */
/* accumulate fd2 into fd1. If *fd1 is not a valid fd then dup fd2,
* otherwise sync_merge() and close the old *fd1. This can be used
* to implement the pattern:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment