Merge "IMemory: add read/readRange APIs."
diff --git a/transport/memory/1.0/IMemory.hal b/transport/memory/1.0/IMemory.hal
index 66f37b3..14dcfb1 100644
--- a/transport/memory/1.0/IMemory.hal
+++ b/transport/memory/1.0/IMemory.hal
@@ -34,7 +34,20 @@
     updateRange(uint64_t start, uint64_t length);
 
     /**
-     * Notify that you are done modifying this memory.
+     * Notify that you are about to start reading all of this memory.
+     */
+    read();
+
+    /**
+     * Notify that you are about to read the specific range.
+     *
+     * @param start Offset from start of buffer about to be read.
+     * @param length Number of bytes to be read.
+     */
+    readRange(uint64_t start, uint64_t length);
+
+    /**
+     * Notify that you are done reading and/or writing this memory.
      *
      * Must commit all previous update's and updateAll's.
      */
diff --git a/transport/memory/1.0/default/AshmemMemory.cpp b/transport/memory/1.0/default/AshmemMemory.cpp
index 912b724..0729608 100644
--- a/transport/memory/1.0/default/AshmemMemory.cpp
+++ b/transport/memory/1.0/default/AshmemMemory.cpp
@@ -46,6 +46,16 @@
     return Void();
 }
 
+Return<void> AshmemMemory::read() {
+    // NOOP (since non-remoted memory)
+    return Void();
+}
+
+Return<void> AshmemMemory::readRange(uint64_t /* start */, uint64_t /* length */) {
+    // NOOP (since non-remoted memory)
+    return Void();
+}
+
 Return<void> AshmemMemory::commit() {
     // NOOP (since non-remoted memory)
     return Void();
diff --git a/transport/memory/1.0/default/AshmemMemory.h b/transport/memory/1.0/default/AshmemMemory.h
index 825d74e..cf2d543 100644
--- a/transport/memory/1.0/default/AshmemMemory.h
+++ b/transport/memory/1.0/default/AshmemMemory.h
@@ -44,6 +44,8 @@
     // Methods from ::android::hidl::memory::V1_0::IMemory follow.
     Return<void> update() override;
     Return<void> updateRange(uint64_t start, uint64_t length) override;
+    Return<void> read() override;
+    Return<void> readRange(uint64_t start, uint64_t length) override;
     Return<void> commit() override;
     Return<void*> getPointer() override;
     Return<uint64_t> getSize() override;