Merge "sync: remove legacy sync info API"

This commit is contained in:
Treehugger Robot 2018-06-13 21:34:54 +00:00 committed by Gerrit Code Review
commit 43c4bbd965
3 changed files with 52 additions and 20 deletions

View File

@ -41,28 +41,8 @@
__BEGIN_DECLS
struct sync_fence_info_data {
uint32_t len;
char name[32];
int32_t status;
uint8_t pt_info[0];
};
struct sync_pt_info {
uint32_t len;
char obj_name[32];
char driver_name[32];
int32_t status;
uint64_t timestamp_ns;
uint8_t driver_data[0];
};
/* timeout in msecs */
int sync_wait(int fd, int timeout);
struct sync_fence_info_data *sync_fence_info(int fd);
struct sync_pt_info *sync_pt_info(struct sync_fence_info_data *info,
struct sync_pt_info *itr);
void sync_fence_info_free(struct sync_fence_info_data *info);
__END_DECLS

View File

@ -30,6 +30,29 @@
#include <android/sync.h>
/* Prototypes for deprecated functions that used to be declared in the legacy
* android/sync.h. They've been moved here to make sure new code does not use
* them, but the functions are still defined to avoid breaking existing
* binaries. Eventually they can be removed altogether.
*/
struct sync_fence_info_data {
uint32_t len;
char name[32];
int32_t status;
uint8_t pt_info[0];
};
struct sync_pt_info {
uint32_t len;
char obj_name[32];
char driver_name[32];
int32_t status;
uint64_t timestamp_ns;
uint8_t driver_data[0];
};
struct sync_fence_info_data* sync_fence_info(int fd);
struct sync_pt_info* sync_pt_info(struct sync_fence_info_data* info, struct sync_pt_info* itr);
void sync_fence_info_free(struct sync_fence_info_data* info);
/* Legacy Sync API */
struct sync_legacy_merge_data {

View File

@ -15,6 +15,35 @@
#include <random>
#include <unordered_map>
/* These deprecated declarations were in the legacy android/sync.h. They've been removed to
* encourage code to move to the modern equivalents. But they are still implemented in libsync.so
* to avoid breaking existing binaries; as long as that's true we should keep testing them here.
* That means making local copies of the declarations.
*/
extern "C" {
struct sync_fence_info_data {
uint32_t len;
char name[32];
int32_t status;
uint8_t pt_info[0];
};
struct sync_pt_info {
uint32_t len;
char obj_name[32];
char driver_name[32];
int32_t status;
uint64_t timestamp_ns;
uint8_t driver_data[0];
};
struct sync_fence_info_data* sync_fence_info(int fd);
struct sync_pt_info* sync_pt_info(struct sync_fence_info_data* info, struct sync_pt_info* itr);
void sync_fence_info_free(struct sync_fence_info_data* info);
} // extern "C"
// TODO: better stress tests?
// Handle more than 64 fd's simultaneously, i.e. fix sync_fence_info's 4k limit.
// Handle wraparound in timelines like nvidia.