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

Commit 0db1a893 authored by Iliyan Malchev's avatar Iliyan Malchev
Browse files

libbinder: add a NO_CACHING flag to MemoryHeapBase



The NO_CACHING flag translates to opening a memory region with O_SYNC.

Signed-off-by: default avatarIliyan Malchev <malchev@google.com>
parent db95a9e8
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -35,7 +35,8 @@ public:
        MAP_ONCE = IMemoryHeap::MAP_ONCE,
        // memory won't be mapped locally, but will be mapped in the remote
        // process.
        DONT_MAP_LOCALLY = 0x00000100
        DONT_MAP_LOCALLY = 0x00000100,
        NO_CACHING = 0x00000200
    };

    /* 
+5 −1
Original line number Diff line number Diff line
@@ -67,7 +67,11 @@ MemoryHeapBase::MemoryHeapBase(const char* device, size_t size, uint32_t flags)
    : mFD(-1), mSize(0), mBase(MAP_FAILED), mFlags(flags),
      mDevice(0), mNeedUnmap(false)
{
    int fd = open(device, O_RDWR);
    int open_flags = O_RDWR;
    if (flags & NO_CACHING)
        open_flags |= O_SYNC;

    int fd = open(device, open_flags);
    LOGE_IF(fd<0, "error opening %s: %s", device, strerror(errno));
    if (fd >= 0) {
        const size_t pagesize = getpagesize();