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

Commit d43e7985 authored by Hridya Valsaraju's avatar Hridya Valsaraju
Browse files

Add libion API to check if modular heaps are being used

Bug: 140916230
Test: ./ion-unit-tests

Change-Id: Iabb050a70d9a838f2720c509df4017d6031ce1fe
parent 45d4da35
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ int ion_query_heap_cnt(int fd, int* cnt);
int ion_query_get_heaps(int fd, int cnt, void* buffers);

int ion_is_legacy(int fd);
int ion_is_using_modular_heaps(int fd);

__END_DECLS

+10 −0
Original line number Diff line number Diff line
@@ -35,6 +35,8 @@

#include <log/log.h>

#define ION_ABI_VERSION_MODULAR_HEAPS 2

enum ion_version { ION_VERSION_UNKNOWN, ION_VERSION_MODERN, ION_VERSION_LEGACY };

static atomic_int g_ion_version = ATOMIC_VAR_INIT(ION_VERSION_UNKNOWN);
@@ -75,6 +77,14 @@ static int ion_ioctl(int fd, int req, void* arg) {
    return ret;
}

int ion_is_using_modular_heaps(int fd) {
    int ion_abi_version = 0;
    int ret = 0;

    ret = ion_ioctl(fd, ION_IOC_ABI_VERSION, &ion_abi_version);
    return (ret == 0 && ion_abi_version >= ION_ABI_VERSION_MODULAR_HEAPS);
}

int ion_alloc(int fd, size_t len, size_t align, unsigned int heap_mask, unsigned int flags,
              ion_user_handle_t* handle) {
    int ret = 0;