Merge "cutils: add ashmem_init"

This commit is contained in:
Treehugger Robot 2019-04-05 09:35:11 +00:00 committed by Gerrit Code Review
commit 55ba959c13
3 changed files with 17 additions and 1 deletions

View File

@ -73,6 +73,8 @@ static pthread_mutex_t __ashmem_lock = PTHREAD_MUTEX_INITIALIZER;
#ifndef __ANDROID_VNDK__
using openFdType = int (*)();
static openFdType openFd;
openFdType initOpenAshmemFd() {
openFdType openFd = nullptr;
void* handle = dlopen("libashmemd_client.so", RTLD_NOW);
@ -221,7 +223,10 @@ static int __ashmem_open_locked()
int fd = -1;
#ifndef __ANDROID_VNDK__
static auto openFd = initOpenAshmemFd();
if (!openFd) {
openFd = initOpenAshmemFd();
}
if (openFd) {
fd = openFd();
}
@ -480,3 +485,11 @@ int ashmem_get_size_region(int fd)
return __ashmem_check_failure(fd, TEMP_FAILURE_RETRY(ioctl(fd, ASHMEM_GET_SIZE, NULL)));
}
void ashmem_init() {
#ifndef __ANDROID_VNDK__
pthread_mutex_lock(&__ashmem_lock);
openFd = initOpenAshmemFd();
pthread_mutex_unlock(&__ashmem_lock);
#endif //__ANDROID_VNDK__
}

View File

@ -82,3 +82,5 @@ int ashmem_get_size_region(int fd)
return buf.st_size;
}
void ashmem_init() {}

View File

@ -26,6 +26,7 @@ int ashmem_set_prot_region(int fd, int prot);
int ashmem_pin_region(int fd, size_t offset, size_t len);
int ashmem_unpin_region(int fd, size_t offset, size_t len);
int ashmem_get_size_region(int fd);
void ashmem_init();
#ifdef __cplusplus
}