summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* sync: store the num_fences from first SYNC_IOC_FILE_INFOSaurabh Shah2017-09-251-0/+2
| | | | | | | | | | | | Fixes a bug with the signal time of devices using the modern sync file interface. The bug only affects kernels running an Android kernel 4.9 and later. b/63395253 Test: tests/sync_test.cpp Change-Id: I6fb00bcb8e16a3268c357153edd8e35a44546caa
* libsync: Fix a double-free.George Burgess IV2017-09-051-1/+0
| | | | | | | | | | | sync_file_info, the only caller of legacy_fence_info_to_sync_file_info, unconditionally frees legacy_info after legacy_fence_info_to_sync_file_info is called. So, if this calloc fails, we'll end up freeing legacy_info twice. Bug: 27101951 Test: mma. Static analyzer complaint about double-free is gone. Change-Id: I43bf820af9aadf30cb8eabce57416f69a8fccf89
* sync: Cache knowledge of kernel uapi versionJesse Hall2017-03-081-21/+95
| | | | | | | | | | | Previously all libsync calls would try first the modern/mainline uapi and if that failed try the legacy uapi, or vice versa. This is inefficient, and confusing when looking at strace. With this change, after the first successful syscall, libsync know's what uapi version the kernel supports, and will only try that version in the future. Test: sync-unit-tests on bullhead Change-Id: I8b5de0194da0cfc6c080c0180318e16bb673d3c9
* sync: rename sync/sync.h to android/sync.hJesse Hall2017-02-231-1/+1
| | | | | | | | | Leave a temporary symlink from the old name to avoid having to change all dependencies simultaneously. Bug: 1901466 Test: m Change-Id: Id210f0091457e52e1a6e048d241a723bdbe8779b
* sync: move declarations from sync/sync.h to sync.cJesse Hall2017-02-231-0/+39
| | | | | | | None of these should be needed or used outside of sync.c. Test: lunch bullhead-eng ; m Change-Id: I548a499d0e2ada2ab4987e63a8116327c3be0076
* sync: implement sync_file_infoJesse Hall2017-02-231-0/+57
| | | | | | | | | Also modifies sync-unit-test to use sync_file_info instead of the deprecated sync_fence_info, but check that they match in several tests. Bug: 35138793 Test: sync-unit-tests on bullhead Change-Id: Ic672d1c89798435a8b71469500e82c770a66bf4d
* sync: refactor sync_fence_infoJesse Hall2017-02-231-36/+60
| | | | | | | | | Split the sync_fence_info implementation into multiple functions. This clarifies the logic, and allows the parts to be reused in the upcoming sync_file_info function. Test: sync-unit-tests on bullhead Change-Id: I0ea37067dddf41b831670f08eb99e0b7fd52adce
* sync: Use correct type in size calculationJesse Hall2017-02-231-1/+1
| | | | | | | | | | The previous and current types are the same size, so this wouldn't have caused a bug in practice, but it is confusing, and would have been a problem in the unlikely event we changed the size of one of the types. Test: sync-unit-tests on bullhead Change-Id: Ic43b81f3b4ff214af86b6b6d4d02c648f95d0c4b
* libsync: add support to new Sync APIGustavo Padovan2017-01-171-17/+109
| | | | | | | | | | | | | Change libsync functions in a way that it can run dynamically on both APIs. v2: fix whitespace changes and poll return handling v3: handle error cases on sync_wait() Test: Sync unit tests still passes. Change-Id: I743ab92ce39cbfa75dca41dd0a435efa9f2aab66 hange-Id: Ib56f2c6441b41028bc9f66998676790b7713988a
* libsync: open new location of sw_sync fileGustavo Padovan2017-01-171-1/+7
| | | | | | | | | sw_sync file for debug was moved to debugfs. Try to open it and if it fails try to open /dev/sw_sync. Test: Sync unit tests still passes. Change-Id: Ie078fbc2eb5294f28b916a9e65b7fcd3a18a8580 hange-Id: I216874964368d939bed2779d98cd89e527a57d45
* libsync: move kernel headers for sync ioctls to sync.hGustavo Padovan2017-01-171-16/+4
| | | | | | | | This patch moves the legacy API to the internal sync.h header and add documentation to it. Test: Sync unit tests still passes. Change-Id: I9b17eb23af30043b3df5fb9e857affad68ba8521
* Update for kernel headers v4.8.14.Christopher Ferris2016-12-121-2/+10
| | | | | | | | Update sync.c to include the structurs from sw_sync.h. This uapi header has been deleted. Test: Built mips/arm/arm64/x86/x86_64. Built and booted angler. Change-Id: I2495cb17b35f697fb8a2a00f6633ccb53f78293f
* Update for kernel headers v4.7.2.Christopher Ferris2016-08-261-1/+15
| | | | | | | | | | The new uapi kernel headers added a new SEGV reason code, so add it to the tombstone code. Update sync.c to include the needed data structures itself. Someone else will be fixing this to work on old versus new kernels. Change-Id: Icb27713ea38a20003c7671a9bca262eebd96099b
* Add missing <malloc.h> and <string.h> includes.Elliott Hughes2015-01-281-0/+1
| | | | Change-Id: Ia41756e607663d056e7d2fdd7ecbec7e5841a913
* update libsync to support new timeout semanticsErik Gilling2012-08-211-2/+2
| | | | Change-Id: Ibedbd261bb96a84785c4e679b6fc4061287d5d7d
* libsync: remove linux includes from sync/sync.hJamie Gennis2012-06-191-2/+3
| | | | | | | | This change removes the #includes of "linux/*.h" headers from the libsync header. It currently does this by copying the needed structs that are in the linux headers. This is intended to be a temporary solution. Change-Id: Ie7e1a8e05fcf8809ba4aa0e2427efe141dae5327
* sync: Add lib sync helper libraryErik Gilling2012-04-181-0/+115
Used to talk to kernel synchronization framework Change-Id: I66e1f4a90f5d58d384bf1cec09db52101f182c5e Signed-off-by: Erik Gilling <konkers@android.com>