libbinder: add a NO_CACHING flag to MemoryHeapBase
The NO_CACHING flag translates to opening a memory region with O_SYNC. Signed-off-by: Iliyan Malchev <malchev@google.com>
This commit is contained in:
parent
db95a9e824
commit
0db1a8931b
@ -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
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user