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 <hoegsberg@google.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6821>
This commit is contained in:
parent
e8c89a9bcb
commit
27b8887946
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue