Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 723c4df5 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "cutils: add ashmem_init" into qt-dev

parents c202a4f8 943f1c1d
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -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__
}
+2 −0
Original line number Diff line number Diff line
@@ -82,3 +82,5 @@ int ashmem_get_size_region(int fd)

    return buf.st_size;
}

void ashmem_init() {}
+1 −0
Original line number Diff line number Diff line
@@ -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
}