diff options
| author | Iliyan Malchev <malchev@google.com> | 2009-11-02 15:07:04 -0800 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2009-11-02 15:07:04 -0800 |
| commit | 8ba42ba83b206929c4c13c0b8ef24de87a92f42c (patch) | |
| tree | e1c4b46396275be44634ed090e0b2f867c8f48bc | |
| parent | fb1d992f4b8addad729a94cb006a732a40b62756 (diff) | |
| parent | cd767bfd1c8e3103f99207ecfa34385e76518e82 (diff) | |
| download | frameworks_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.h | 3 | ||||
| -rw-r--r-- | libs/binder/MemoryHeapBase.cpp | 6 |
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(); |
