From baef6141a3239c7dd9bad0e2cd8a9ece5eef5a7e Mon Sep 17 00:00:00 2001 From: Iliyan Malchev Date: Thu, 29 Oct 2009 22:55:00 -0700 Subject: 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 --- libs/binder/MemoryHeapBase.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'libs/binder') diff --git a/libs/binder/MemoryHeapBase.cpp b/libs/binder/MemoryHeapBase.cpp index 5df078f..624f7eb 100644 --- a/libs/binder/MemoryHeapBase.cpp +++ b/libs/binder/MemoryHeapBase.cpp @@ -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(); -- cgit v1.1