summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIliyan Malchev <malchev@google.com>2009-11-02 15:07:04 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2009-11-02 15:07:04 -0800
commit8ba42ba83b206929c4c13c0b8ef24de87a92f42c (patch)
treee1c4b46396275be44634ed090e0b2f867c8f48bc
parentfb1d992f4b8addad729a94cb006a732a40b62756 (diff)
parentcd767bfd1c8e3103f99207ecfa34385e76518e82 (diff)
downloadframeworks_base-8ba42ba83b206929c4c13c0b8ef24de87a92f42c.zip
frameworks_base-8ba42ba83b206929c4c13c0b8ef24de87a92f42c.tar.gz
frameworks_base-8ba42ba83b206929c4c13c0b8ef24de87a92f42c.tar.bz2
am cd767bfd: am d4649b2f: Merge change Ibaef6141 into eclair
Merge commit 'cd767bfd1c8e3103f99207ecfa34385e76518e82' into eclair-mr2-plus-aosp * commit 'cd767bfd1c8e3103f99207ecfa34385e76518e82': libbinder: add a NO_CACHING flag to MemoryHeapBase
-rw-r--r--include/binder/MemoryHeapBase.h3
-rw-r--r--libs/binder/MemoryHeapBase.cpp6
2 files changed, 7 insertions, 2 deletions
diff --git a/include/binder/MemoryHeapBase.h b/include/binder/MemoryHeapBase.h
index 435540e..d793c24 100644
--- a/include/binder/MemoryHeapBase.h
+++ b/include/binder/MemoryHeapBase.h
@@ -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
};
/*
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();