Adding "map" to buffer functions that perform host memory mapping.
diff --git a/bindings/python/iree/runtime/hal.h b/bindings/python/iree/runtime/hal.h
index e0d93b6..4230260 100644
--- a/bindings/python/iree/runtime/hal.h
+++ b/bindings/python/iree/runtime/hal.h
@@ -110,8 +110,9 @@
 
   void FillZero(iree_device_size_t byte_offset,
                 iree_device_size_t byte_length) {
-    CheckApiStatus(iree_hal_buffer_zero(raw_ptr(), byte_offset, byte_length),
-                   "Error zero filling buffer");
+    CheckApiStatus(
+        iree_hal_buffer_map_zero(raw_ptr(), byte_offset, byte_length),
+        "Error zero filling buffer");
   }
 
   // TODO(laurenzo): make this take element_type instead.
diff --git a/bindings/tflite/tensor.c b/bindings/tflite/tensor.c
index 1d65159..3f52322 100644
--- a/bindings/tflite/tensor.c
+++ b/bindings/tflite/tensor.c
@@ -246,10 +246,10 @@
   IREE_TRACE_ZONE_BEGIN(z0);
   IREE_TRACE_ZONE_APPEND_VALUE(z0, tensor->buffer_mapping.contents.data_length);
 
-  // NOTE: we could use a iree_hal_buffer_write_data here but we already have
-  // the buffer mapped. If we knew the user would never use TfLiteTensorData and
-  // could avoid mapping the buffer it would be more efficient and portable to
-  // do the iree_hal_buffer_copy_data.
+  // NOTE: we could use a iree_hal_buffer_map_write here but we already
+  // have the buffer mapped. If we knew the user would never use
+  // TfLiteTensorData and could avoid mapping the buffer it would be more
+  // efficient and portable to do the iree_hal_buffer_map_copy.
   memcpy(tensor->buffer_mapping.contents.data, input_data, input_data_size);
 
   IREE_TRACE_ZONE_END(z0);
@@ -266,7 +266,7 @@
   IREE_TRACE_ZONE_APPEND_VALUE(
       z0, output_tensor->buffer_mapping.contents.data_length);
 
-  // NOTE: as with above we should use an iree_hal_buffer_read_data here.
+  // NOTE: as with above we should use an iree_hal_buffer_map_read here.
   memcpy(output_data, output_tensor->buffer_mapping.contents.data,
          output_data_size);
 
diff --git a/iree/hal/allocator.h b/iree/hal/allocator.h
index 2c99da4..71a1583 100644
--- a/iree/hal/allocator.h
+++ b/iree/hal/allocator.h
@@ -139,7 +139,7 @@
   // Indicates that the buffer can be used as a transfer source or target on the
   // a device queue (such as being the source or target of a DMA operation,
   // etc). If not set then the buffer may still be usable for
-  // iree_hal_buffer_copy_data but not with queued operations.
+  // iree_hal_buffer_map_copy but not with queued operations.
   IREE_HAL_BUFFER_COMPATIBILITY_QUEUE_TRANSFER = 1u << 10,
 
   // Indicates that the buffer can be used as an input/output to a dispatch.
diff --git a/iree/hal/buffer.c b/iree/hal/buffer.c
index cb2b4ab..77b64f6 100644
--- a/iree/hal/buffer.c
+++ b/iree/hal/buffer.c
@@ -503,17 +503,17 @@
 // Transfer
 //===----------------------------------------------------------------------===//
 
-IREE_API_EXPORT iree_status_t
-iree_hal_buffer_zero(iree_hal_buffer_t* buffer, iree_device_size_t byte_offset,
-                     iree_device_size_t byte_length) {
+IREE_API_EXPORT iree_status_t iree_hal_buffer_map_zero(
+    iree_hal_buffer_t* buffer, iree_device_size_t byte_offset,
+    iree_device_size_t byte_length) {
   const uint8_t zero = 0;
-  return iree_hal_buffer_fill(buffer, byte_offset, byte_length, &zero, 1);
+  return iree_hal_buffer_map_fill(buffer, byte_offset, byte_length, &zero, 1);
 }
 
-IREE_API_EXPORT iree_status_t
-iree_hal_buffer_fill(iree_hal_buffer_t* buffer, iree_device_size_t byte_offset,
-                     iree_device_size_t byte_length, const void* pattern,
-                     iree_host_size_t pattern_length) {
+IREE_API_EXPORT iree_status_t iree_hal_buffer_map_fill(
+    iree_hal_buffer_t* buffer, iree_device_size_t byte_offset,
+    iree_device_size_t byte_length, const void* pattern,
+    iree_host_size_t pattern_length) {
   IREE_ASSERT_ARGUMENT(buffer);
   IREE_ASSERT_ARGUMENT(pattern);
 
@@ -600,7 +600,7 @@
   return status;
 }
 
-IREE_API_EXPORT iree_status_t iree_hal_buffer_read_data(
+IREE_API_EXPORT iree_status_t iree_hal_buffer_map_read(
     iree_hal_buffer_t* source_buffer, iree_device_size_t source_offset,
     void* target_buffer, iree_device_size_t data_length) {
   if (data_length == 0) {
@@ -624,7 +624,7 @@
   return iree_ok_status();
 }
 
-IREE_API_EXPORT iree_status_t iree_hal_buffer_write_data(
+IREE_API_EXPORT iree_status_t iree_hal_buffer_map_write(
     iree_hal_buffer_t* target_buffer, iree_device_size_t target_offset,
     const void* source_buffer, iree_device_size_t data_length) {
   if (data_length == 0) {
@@ -655,7 +655,7 @@
   return status;
 }
 
-IREE_API_EXPORT iree_status_t iree_hal_buffer_copy_data(
+IREE_API_EXPORT iree_status_t iree_hal_buffer_map_copy(
     iree_hal_buffer_t* source_buffer, iree_device_size_t source_offset,
     iree_hal_buffer_t* target_buffer, iree_device_size_t target_offset,
     iree_device_size_t data_length) {
diff --git a/iree/hal/buffer.h b/iree/hal/buffer.h
index 6af80fa..9ff8bdc 100644
--- a/iree/hal/buffer.h
+++ b/iree/hal/buffer.h
@@ -386,9 +386,9 @@
 // queues; using this synchronous function may incur additional cache flushes
 // and synchronous blocking behavior and is not supported on all buffer types.
 // See iree_hal_command_buffer_fill_buffer.
-IREE_API_EXPORT iree_status_t
-iree_hal_buffer_zero(iree_hal_buffer_t* buffer, iree_device_size_t byte_offset,
-                     iree_device_size_t byte_length);
+IREE_API_EXPORT iree_status_t iree_hal_buffer_map_zero(
+    iree_hal_buffer_t* buffer, iree_device_size_t byte_offset,
+    iree_device_size_t byte_length);
 
 // Sets a range of the buffer to the given value.
 // Only |pattern_length| values with 1, 2, or 4 bytes are supported.
@@ -400,10 +400,10 @@
 // queues; using this synchronous function may incur additional cache flushes
 // and synchronous blocking behavior and is not supported on all buffer types.
 // See iree_hal_command_buffer_fill_buffer.
-IREE_API_EXPORT iree_status_t
-iree_hal_buffer_fill(iree_hal_buffer_t* buffer, iree_device_size_t byte_offset,
-                     iree_device_size_t byte_length, const void* pattern,
-                     iree_host_size_t pattern_length);
+IREE_API_EXPORT iree_status_t iree_hal_buffer_map_fill(
+    iree_hal_buffer_t* buffer, iree_device_size_t byte_offset,
+    iree_device_size_t byte_length, const void* pattern,
+    iree_host_size_t pattern_length);
 
 // Reads a block of data from the buffer at the given offset.
 //
@@ -413,7 +413,7 @@
 // queues; using this synchronous function may incur additional cache flushes
 // and synchronous blocking behavior and is not supported on all buffer types.
 // See iree_hal_command_buffer_copy_buffer.
-IREE_API_EXPORT iree_status_t iree_hal_buffer_read_data(
+IREE_API_EXPORT iree_status_t iree_hal_buffer_map_read(
     iree_hal_buffer_t* source_buffer, iree_device_size_t source_offset,
     void* target_buffer, iree_device_size_t data_length);
 
@@ -427,7 +427,7 @@
 // and synchronous blocking behavior and is not supported on all buffer types.
 // See iree_hal_command_buffer_update_buffer and
 // iree_hal_command_buffer_copy_buffer.
-IREE_API_EXPORT iree_status_t iree_hal_buffer_write_data(
+IREE_API_EXPORT iree_status_t iree_hal_buffer_map_write(
     iree_hal_buffer_t* target_buffer, iree_device_size_t target_offset,
     const void* source_buffer, iree_device_size_t data_length);
 
@@ -441,7 +441,7 @@
 // queues; using this synchronous function may incur additional cache flushes
 // and synchronous blocking behavior and is not supported on all buffer types.
 // See iree_hal_command_buffer_copy_buffer.
-IREE_API_EXPORT iree_status_t iree_hal_buffer_copy_data(
+IREE_API_EXPORT iree_status_t iree_hal_buffer_map_copy(
     iree_hal_buffer_t* source_buffer, iree_device_size_t source_offset,
     iree_hal_buffer_t* target_buffer, iree_device_size_t target_offset,
     iree_device_size_t data_length);
diff --git a/iree/hal/cts/buffer_mapping_test.h b/iree/hal/cts/buffer_mapping_test.h
index d1d8cde..2810efa 100644
--- a/iree/hal/cts/buffer_mapping_test.h
+++ b/iree/hal/cts/buffer_mapping_test.h
@@ -31,9 +31,9 @@
 //
 // Note that most of these tests first write into a buffer using one or more
 // functions then read the (possibly partial) contents of that buffer using
-// `iree_hal_buffer_read_data`. As the buffer read implementation is nontrivial,
-// particularly on implementations with complex host/device splits, test
-// failures may indicate issues in either the code doing the writing or the
+// `iree_hal_buffer_map_read`. As the buffer read implementation is
+// nontrivial, particularly on implementations with complex host/device splits,
+// test failures may indicate issues in either the code doing the writing or the
 // code doing the reading.
 //
 // Where applicable, tests for each function are organized in increasing order
@@ -87,11 +87,11 @@
 
   // Zero the entire buffer.
   IREE_ASSERT_OK(
-      iree_hal_buffer_zero(buffer, /*byte_offset=*/0, IREE_WHOLE_BUFFER));
+      iree_hal_buffer_map_zero(buffer, /*byte_offset=*/0, IREE_WHOLE_BUFFER));
 
   // Check that the contents match what we expect.
   std::vector<uint8_t> actual_data(kDefaultAllocationSize);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   std::vector<uint8_t> reference_buffer(kDefaultAllocationSize);
   std::memset(reference_buffer.data(), 0, kDefaultAllocationSize);
@@ -107,15 +107,15 @@
 
   // Fill the entire buffer then zero only a segment of it.
   uint8_t fill_value = 0xFF;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer, /*byte_offset=*/0,
-                                      IREE_WHOLE_BUFFER, &fill_value,
-                                      sizeof(fill_value)));
+  IREE_ASSERT_OK(iree_hal_buffer_map_fill(buffer, /*byte_offset=*/0,
+                                          IREE_WHOLE_BUFFER, &fill_value,
+                                          sizeof(fill_value)));
   IREE_ASSERT_OK(
-      iree_hal_buffer_zero(buffer, /*byte_offset=*/4, /*byte_length=*/8));
+      iree_hal_buffer_map_zero(buffer, /*byte_offset=*/4, /*byte_length=*/8));
 
   // Check that the contents match what we expect.
   std::vector<uint8_t> actual_data(buffer_size);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   std::vector<uint8_t> reference_buffer{0xFF, 0xFF, 0xFF, 0xFF,  //
                                         0x00, 0x00, 0x00, 0x00,  //
@@ -133,9 +133,9 @@
 
   // Fill the entire buffer.
   uint8_t fill_value = 0xFF;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer, /*byte_offset=*/0,
-                                      IREE_WHOLE_BUFFER, &fill_value,
-                                      sizeof(fill_value)));
+  IREE_ASSERT_OK(iree_hal_buffer_map_fill(buffer, /*byte_offset=*/0,
+                                          IREE_WHOLE_BUFFER, &fill_value,
+                                          sizeof(fill_value)));
 
   // Create a subspan.
   iree_device_size_t subspan_length = 8;
@@ -144,12 +144,12 @@
                                          subspan_length, &buffer_subspan));
 
   // Zero part of the subspan.
-  IREE_ASSERT_OK(iree_hal_buffer_zero(buffer_subspan, /*byte_offset=*/4,
-                                      /*byte_length=*/4));
+  IREE_ASSERT_OK(iree_hal_buffer_map_zero(buffer_subspan, /*byte_offset=*/4,
+                                          /*byte_length=*/4));
 
   // Check that the contents match what we expect.
   std::vector<uint8_t> actual_data(buffer_size);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   std::vector<uint8_t> reference_buffer{0xFF, 0xFF, 0xFF, 0xFF,  //
                                         0xFF, 0xFF, 0xFF, 0xFF,  //
@@ -158,9 +158,9 @@
   EXPECT_THAT(actual_data, ContainerEq(reference_buffer));
   // Also check the subspan.
   std::vector<uint8_t> actual_data_subspan(subspan_length);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(buffer_subspan, /*source_offset=*/0,
-                                           actual_data_subspan.data(),
-                                           actual_data_subspan.size()));
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(buffer_subspan, /*source_offset=*/0,
+                                          actual_data_subspan.data(),
+                                          actual_data_subspan.size()));
   std::vector<uint8_t> reference_buffer_subspan{0xFF, 0xFF, 0xFF, 0xFF,  //
                                                 0x00, 0x00, 0x00, 0x00};
   EXPECT_THAT(actual_data_subspan, ContainerEq(reference_buffer_subspan));
@@ -174,16 +174,17 @@
   AllocateUninitializedBuffer(kDefaultAllocationSize, &buffer);
 
   // Zero the whole buffer then "fill" 0 bytes with a different pattern.
-  IREE_ASSERT_OK(iree_hal_buffer_zero(buffer, 0, IREE_WHOLE_BUFFER));
+  IREE_ASSERT_OK(iree_hal_buffer_map_zero(buffer, 0, IREE_WHOLE_BUFFER));
   uint8_t fill_value = 0xFF;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer, /*byte_offset=*/0,
-                                      /*byte_length=*/0,  // <---- empty!
-                                      /*pattern=*/&fill_value,
-                                      /*pattern_length=*/sizeof(fill_value)));
+  IREE_ASSERT_OK(
+      iree_hal_buffer_map_fill(buffer, /*byte_offset=*/0,
+                               /*byte_length=*/0,  // <---- empty!
+                               /*pattern=*/&fill_value,
+                               /*pattern_length=*/sizeof(fill_value)));
 
   // Check that the buffer is still all zeroes.
   std::vector<uint8_t> actual_data(kDefaultAllocationSize);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   std::vector<uint8_t> reference_buffer(kDefaultAllocationSize);
   std::memset(reference_buffer.data(), 0, kDefaultAllocationSize);
@@ -197,14 +198,15 @@
   AllocateUninitializedBuffer(kDefaultAllocationSize, &buffer);
 
   uint8_t fill_value = 0xFF;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer, /*byte_offset=*/0,
-                                      /*byte_length=*/IREE_WHOLE_BUFFER,
-                                      /*pattern=*/&fill_value,
-                                      /*pattern_length=*/sizeof(fill_value)));
+  IREE_ASSERT_OK(
+      iree_hal_buffer_map_fill(buffer, /*byte_offset=*/0,
+                               /*byte_length=*/IREE_WHOLE_BUFFER,
+                               /*pattern=*/&fill_value,
+                               /*pattern_length=*/sizeof(fill_value)));
 
   // Check that the buffer is filled with the pattern.
   std::vector<uint8_t> actual_data(kDefaultAllocationSize);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   std::vector<uint8_t> reference_buffer(kDefaultAllocationSize);
   std::memset(reference_buffer.data(), fill_value, kDefaultAllocationSize);
@@ -219,16 +221,17 @@
   AllocateUninitializedBuffer(buffer_size, &buffer);
 
   // Zero the entire buffer then fill only a segment of it.
-  IREE_ASSERT_OK(iree_hal_buffer_zero(buffer, 0, IREE_WHOLE_BUFFER));
+  IREE_ASSERT_OK(iree_hal_buffer_map_zero(buffer, 0, IREE_WHOLE_BUFFER));
   uint8_t fill_value = 0xFF;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer, /*byte_offset=*/4,
-                                      /*byte_length=*/8,
-                                      /*pattern=*/&fill_value,
-                                      /*pattern_length=*/sizeof(fill_value)));
+  IREE_ASSERT_OK(
+      iree_hal_buffer_map_fill(buffer, /*byte_offset=*/4,
+                               /*byte_length=*/8,
+                               /*pattern=*/&fill_value,
+                               /*pattern_length=*/sizeof(fill_value)));
 
   // Check that only the segment of the buffer is filled with the pattern.
   std::vector<uint8_t> actual_data(buffer_size);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   std::vector<uint8_t> reference_offset_buffer{0x00, 0x00, 0x00, 0x00,  //
                                                0xFF, 0xFF, 0xFF, 0xFF,  //
@@ -245,7 +248,7 @@
   AllocateUninitializedBuffer(buffer_size, &buffer);
 
   // Zero the entire buffer.
-  IREE_ASSERT_OK(iree_hal_buffer_zero(buffer, 0, IREE_WHOLE_BUFFER));
+  IREE_ASSERT_OK(iree_hal_buffer_map_zero(buffer, 0, IREE_WHOLE_BUFFER));
 
   // Create a subspan.
   iree_device_size_t subspan_length = 8;
@@ -255,14 +258,15 @@
 
   // Fill part of the subspan.
   uint8_t fill_value = 0xFF;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer_subspan, /*byte_offset=*/4,
-                                      /*byte_length=*/4,
-                                      /*pattern=*/&fill_value,
-                                      /*pattern_length=*/sizeof(fill_value)));
+  IREE_ASSERT_OK(
+      iree_hal_buffer_map_fill(buffer_subspan, /*byte_offset=*/4,
+                               /*byte_length=*/4,
+                               /*pattern=*/&fill_value,
+                               /*pattern_length=*/sizeof(fill_value)));
 
   // Check that the contents match what we expect.
   std::vector<uint8_t> actual_data(buffer_size);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   std::vector<uint8_t> reference_buffer{0x00, 0x00, 0x00, 0x00,  //
                                         0x00, 0x00, 0x00, 0x00,  //
@@ -271,9 +275,9 @@
   EXPECT_THAT(actual_data, ContainerEq(reference_buffer));
   // Also check the subspan.
   std::vector<uint8_t> actual_data_subspan(subspan_length);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(buffer_subspan, /*source_offset=*/0,
-                                           actual_data_subspan.data(),
-                                           actual_data_subspan.size()));
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(buffer_subspan, /*source_offset=*/0,
+                                          actual_data_subspan.data(),
+                                          actual_data_subspan.size()));
   std::vector<uint8_t> reference_buffer_subspan{0x00, 0x00, 0x00, 0x00,  //
                                                 0xFF, 0xFF, 0xFF, 0xFF};
   EXPECT_THAT(actual_data_subspan, ContainerEq(reference_buffer_subspan));
@@ -289,16 +293,17 @@
 
   // Zero the first half, fill the second half.
   IREE_ASSERT_OK(
-      iree_hal_buffer_zero(buffer, /*byte_offset=*/0, /*byte_length=*/8));
+      iree_hal_buffer_map_zero(buffer, /*byte_offset=*/0, /*byte_length=*/8));
   uint8_t fill_value = 0xFF;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer, /*byte_offset=*/8,
-                                      /*byte_length=*/8,
-                                      /*pattern=*/&fill_value,
-                                      /*pattern_length=*/sizeof(fill_value)));
+  IREE_ASSERT_OK(
+      iree_hal_buffer_map_fill(buffer, /*byte_offset=*/8,
+                               /*byte_length=*/8,
+                               /*pattern=*/&fill_value,
+                               /*pattern_length=*/sizeof(fill_value)));
 
   // Read the entire buffer.
   std::vector<uint8_t> actual_data(buffer_size);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   std::vector<uint8_t> reference_buffer{0x00, 0x00, 0x00, 0x00,  //
                                         0x00, 0x00, 0x00, 0x00,  //
@@ -308,9 +313,9 @@
 
   // Read only a segment of the buffer.
   std::vector<uint8_t> actual_data_offset(8);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(buffer, /*source_offset=*/4,
-                                           actual_data_offset.data(),
-                                           actual_data_offset.size()));
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(buffer, /*source_offset=*/4,
+                                          actual_data_offset.data(),
+                                          actual_data_offset.size()));
   std::vector<uint8_t> reference_buffer_offset{0x00, 0x00, 0x00, 0x00,  //
                                                0xFF, 0xFF, 0xFF, 0xFF};
   EXPECT_THAT(actual_data_offset, ContainerEq(reference_buffer_offset));
@@ -325,13 +330,14 @@
 
   // Fill a few segments with distinct values.
   uint8_t value = 0xAA;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer, 0, 4, &value, sizeof(value)));
+  IREE_ASSERT_OK(iree_hal_buffer_map_fill(buffer, 0, 4, &value, sizeof(value)));
   value = 0xBB;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer, 4, 4, &value, sizeof(value)));
+  IREE_ASSERT_OK(iree_hal_buffer_map_fill(buffer, 4, 4, &value, sizeof(value)));
   value = 0xCC;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer, 8, 4, &value, sizeof(value)));
+  IREE_ASSERT_OK(iree_hal_buffer_map_fill(buffer, 8, 4, &value, sizeof(value)));
   value = 0xDD;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer, 12, 4, &value, sizeof(value)));
+  IREE_ASSERT_OK(
+      iree_hal_buffer_map_fill(buffer, 12, 4, &value, sizeof(value)));
 
   // Create a subspan.
   iree_device_size_t subspan_length = 8;
@@ -341,18 +347,18 @@
 
   // Read the entire buffer subspan.
   std::vector<uint8_t> actual_data(subspan_length);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(buffer_subspan, /*source_offset=*/0,
-                                           actual_data.data(),
-                                           actual_data.size()));
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(buffer_subspan, /*source_offset=*/0,
+                                          actual_data.data(),
+                                          actual_data.size()));
   std::vector<uint8_t> reference_buffer{0xBB, 0xBB, 0xBB, 0xBB,  //
                                         0xCC, 0xCC, 0xCC, 0xCC};
   EXPECT_THAT(actual_data, ContainerEq(reference_buffer));
 
   // Read only a segment of the buffer.
   std::vector<uint8_t> actual_data_offset(4);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(buffer_subspan, /*source_offset=*/4,
-                                           actual_data_offset.data(),
-                                           actual_data_offset.size()));
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(buffer_subspan, /*source_offset=*/4,
+                                          actual_data_offset.data(),
+                                          actual_data_offset.size()));
   std::vector<uint8_t> reference_buffer_offset{0xCC, 0xCC, 0xCC, 0xCC};
   EXPECT_THAT(actual_data_offset, ContainerEq(reference_buffer_offset));
 
@@ -369,13 +375,13 @@
   uint8_t fill_value = 0xFF;
   std::vector<uint8_t> reference_buffer(buffer_size);
   std::memset(reference_buffer.data(), fill_value, buffer_size);
-  IREE_ASSERT_OK(iree_hal_buffer_write_data(buffer, /*target_offset=*/0,
-                                            reference_buffer.data(),
-                                            reference_buffer.size()));
+  IREE_ASSERT_OK(iree_hal_buffer_map_write(buffer, /*target_offset=*/0,
+                                           reference_buffer.data(),
+                                           reference_buffer.size()));
 
   // Check that entire buffer was written to.
   std::vector<uint8_t> actual_data(buffer_size);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   EXPECT_THAT(actual_data, ContainerEq(reference_buffer));
 
@@ -388,17 +394,17 @@
   AllocateUninitializedBuffer(buffer_size, &buffer);
 
   // Zero the entire buffer.
-  IREE_ASSERT_OK(iree_hal_buffer_zero(buffer, 0, IREE_WHOLE_BUFFER));
+  IREE_ASSERT_OK(iree_hal_buffer_map_zero(buffer, 0, IREE_WHOLE_BUFFER));
 
   // Write over part of the buffer.
   std::vector<uint8_t> fill_buffer{0x11, 0x22, 0x33, 0x44,  //
                                    0x55, 0x66, 0x77, 0x88};
-  IREE_ASSERT_OK(iree_hal_buffer_write_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_write(
       buffer, /*target_offset=*/4, fill_buffer.data(), fill_buffer.size()));
 
   // Check that the contents match what we expect.
   std::vector<uint8_t> actual_data(buffer_size);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   std::vector<uint8_t> reference_buffer{0x00, 0x00, 0x00, 0x00,  //
                                         0x11, 0x22, 0x33, 0x44,  //
@@ -415,7 +421,7 @@
   AllocateUninitializedBuffer(buffer_size, &buffer);
 
   // Zero the entire buffer.
-  IREE_ASSERT_OK(iree_hal_buffer_zero(buffer, 0, IREE_WHOLE_BUFFER));
+  IREE_ASSERT_OK(iree_hal_buffer_map_zero(buffer, 0, IREE_WHOLE_BUFFER));
 
   // Create a subspan.
   iree_device_size_t subspan_length = 8;
@@ -425,13 +431,13 @@
 
   // Write over part of the subspan.
   std::vector<uint8_t> fill_buffer{0x11, 0x22, 0x33, 0x44};
-  IREE_ASSERT_OK(iree_hal_buffer_write_data(buffer_subspan, /*target_offset=*/4,
-                                            fill_buffer.data(),
-                                            fill_buffer.size()));
+  IREE_ASSERT_OK(iree_hal_buffer_map_write(buffer_subspan, /*target_offset=*/4,
+                                           fill_buffer.data(),
+                                           fill_buffer.size()));
 
   // Check that the contents match what we expect.
   std::vector<uint8_t> actual_data(buffer_size);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   std::vector<uint8_t> reference_buffer{0x00, 0x00, 0x00, 0x00,  //
                                         0x00, 0x00, 0x00, 0x00,  //
@@ -440,9 +446,9 @@
   EXPECT_THAT(actual_data, ContainerEq(reference_buffer));
   // Also check the subspan.
   std::vector<uint8_t> actual_data_subspan(subspan_length);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(buffer_subspan, /*source_offset=*/0,
-                                           actual_data_subspan.data(),
-                                           actual_data_subspan.size()));
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(buffer_subspan, /*source_offset=*/0,
+                                          actual_data_subspan.data(),
+                                          actual_data_subspan.size()));
   std::vector<uint8_t> reference_buffer_subspan{0x00, 0x00, 0x00, 0x00,  //
                                                 0x11, 0x22, 0x33, 0x44};
   EXPECT_THAT(actual_data_subspan, ContainerEq(reference_buffer_subspan));
@@ -458,11 +464,12 @@
   AllocateUninitializedBuffer(kDefaultAllocationSize, &buffer_b);
 
   uint8_t fill_value = 0x07;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer_a, /*byte_offset=*/0,
-                                      /*byte_length=*/kDefaultAllocationSize,
-                                      /*pattern=*/&fill_value,
-                                      /*pattern_length=*/sizeof(fill_value)));
-  IREE_ASSERT_OK(iree_hal_buffer_copy_data(
+  IREE_ASSERT_OK(
+      iree_hal_buffer_map_fill(buffer_a, /*byte_offset=*/0,
+                               /*byte_length=*/kDefaultAllocationSize,
+                               /*pattern=*/&fill_value,
+                               /*pattern_length=*/sizeof(fill_value)));
+  IREE_ASSERT_OK(iree_hal_buffer_map_copy(
       /*source_buffer=*/buffer_a,
       /*source_offset=*/0, /*target_buffer=*/buffer_b, /*target_offset=*/0,
       /*data_length=*/kDefaultAllocationSize));
@@ -471,7 +478,7 @@
   std::memset(reference_buffer.data(), fill_value, kDefaultAllocationSize);
 
   std::vector<uint8_t> actual_data(kDefaultAllocationSize);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer_b, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   EXPECT_THAT(actual_data, ContainerEq(reference_buffer));
 
@@ -480,16 +487,16 @@
 }
 
 // Maps a buffer range for reading from device -> host.
-// This is roughly what iree_hal_buffer_read_data does internally.
+// This is roughly what iree_hal_buffer_map_read does internally.
 TEST_P(buffer_mapping_test, MapRangeRead) {
   iree_device_size_t buffer_size = 16;
   iree_hal_buffer_t* buffer = NULL;
   AllocateUninitializedBuffer(buffer_size, &buffer);
 
   uint8_t fill_value = 0xEF;
-  IREE_ASSERT_OK(iree_hal_buffer_fill(buffer, /*byte_offset=*/0,
-                                      IREE_WHOLE_BUFFER, &fill_value,
-                                      sizeof(fill_value)));
+  IREE_ASSERT_OK(iree_hal_buffer_map_fill(buffer, /*byte_offset=*/0,
+                                          IREE_WHOLE_BUFFER, &fill_value,
+                                          sizeof(fill_value)));
 
   iree_hal_buffer_mapping_t mapping;
   IREE_ASSERT_OK(iree_hal_buffer_map_range(
@@ -510,7 +517,7 @@
 }
 
 // Maps a buffer range for writing from host -> device.
-// This is roughly what iree_hal_buffer_write_data does internally.
+// This is roughly what iree_hal_buffer_map_write does internally.
 TEST_P(buffer_mapping_test, MapRangeWrite) {
   iree_device_size_t buffer_size = 16;
   iree_hal_buffer_t* buffer = NULL;
@@ -530,7 +537,7 @@
   IREE_ASSERT_OK(iree_hal_buffer_flush_range(&mapping, /*byte_offset=*/0,
                                              /*byte_length=*/buffer_size));
   std::vector<uint8_t> actual_data(buffer_size);
-  IREE_ASSERT_OK(iree_hal_buffer_read_data(
+  IREE_ASSERT_OK(iree_hal_buffer_map_read(
       buffer, /*source_offset=*/0, actual_data.data(), actual_data.size()));
   std::vector<uint8_t> reference_buffer(buffer_size);
   std::memset(reference_buffer.data(), fill_value, buffer_size);
diff --git a/iree/hal/cts/command_buffer_test.h b/iree/hal/cts/command_buffer_test.h
index 6dcb621..3c31e03 100644
--- a/iree/hal/cts/command_buffer_test.h
+++ b/iree/hal/cts/command_buffer_test.h
@@ -38,7 +38,8 @@
     IREE_CHECK_OK(iree_hal_allocator_allocate_buffer(
         iree_hal_device_allocator(device_), params, buffer_size,
         iree_const_byte_span_empty(), &device_buffer));
-    IREE_ASSERT_OK(iree_hal_buffer_zero(device_buffer, 0, IREE_WHOLE_BUFFER));
+    IREE_ASSERT_OK(
+        iree_hal_buffer_map_zero(device_buffer, 0, IREE_WHOLE_BUFFER));
     *out_buffer = device_buffer;
   }
 
diff --git a/iree/hal/local/inline_command_buffer.c b/iree/hal/local/inline_command_buffer.c
index adc426e..e9aca83 100644
--- a/iree/hal/local/inline_command_buffer.c
+++ b/iree/hal/local/inline_command_buffer.c
@@ -278,8 +278,8 @@
     iree_hal_buffer_t* target_buffer, iree_device_size_t target_offset,
     iree_device_size_t length, const void* pattern,
     iree_host_size_t pattern_length) {
-  return iree_hal_buffer_fill(target_buffer, target_offset, length, pattern,
-                              pattern_length);
+  return iree_hal_buffer_map_fill(target_buffer, target_offset, length, pattern,
+                                  pattern_length);
 }
 
 //===----------------------------------------------------------------------===//
@@ -290,7 +290,7 @@
     iree_hal_command_buffer_t* base_command_buffer, const void* source_buffer,
     iree_host_size_t source_offset, iree_hal_buffer_t* target_buffer,
     iree_device_size_t target_offset, iree_device_size_t length) {
-  return iree_hal_buffer_write_data(
+  return iree_hal_buffer_map_write(
       target_buffer, target_offset,
       (const uint8_t*)source_buffer + source_offset, length);
 }
@@ -304,8 +304,8 @@
     iree_hal_buffer_t* source_buffer, iree_device_size_t source_offset,
     iree_hal_buffer_t* target_buffer, iree_device_size_t target_offset,
     iree_device_size_t length) {
-  return iree_hal_buffer_copy_data(source_buffer, source_offset, target_buffer,
-                                   target_offset, length);
+  return iree_hal_buffer_map_copy(source_buffer, source_offset, target_buffer,
+                                  target_offset, length);
 }
 
 //===----------------------------------------------------------------------===//
diff --git a/iree/hal/local/task_command_buffer.c b/iree/hal/local/task_command_buffer.c
index 9412063..10313a7 100644
--- a/iree/hal/local/task_command_buffer.c
+++ b/iree/hal/local/task_command_buffer.c
@@ -516,7 +516,7 @@
       iree_min(length_per_slice, remaining_length);
   IREE_TRACE_ZONE_APPEND_VALUE(z0, (uint64_t)slice_length);
 
-  iree_status_t status = iree_hal_buffer_fill(
+  iree_status_t status = iree_hal_buffer_map_fill(
       cmd->target_buffer, cmd->target_offset + slice_offset, slice_length,
       cmd->pattern, cmd->pattern_length);
 
@@ -581,7 +581,7 @@
   const iree_hal_cmd_update_buffer_t* cmd =
       (const iree_hal_cmd_update_buffer_t*)user_context;
   IREE_TRACE_ZONE_BEGIN(z0);
-  iree_status_t status = iree_hal_buffer_write_data(
+  iree_status_t status = iree_hal_buffer_map_write(
       cmd->target_buffer, cmd->target_offset, cmd->source_buffer, cmd->length);
   IREE_TRACE_ZONE_END(z0);
   return status;
@@ -655,7 +655,7 @@
       iree_min(length_per_slice, remaining_length);
   IREE_TRACE_ZONE_APPEND_VALUE(z0, (uint64_t)slice_length);
 
-  iree_status_t status = iree_hal_buffer_copy_data(
+  iree_status_t status = iree_hal_buffer_map_copy(
       cmd->source_buffer, cmd->source_offset + slice_offset, cmd->target_buffer,
       cmd->target_offset + slice_offset, slice_length);
 
diff --git a/iree/hal/string_util_test.cc b/iree/hal/string_util_test.cc
index 22e9063..453f99c 100644
--- a/iree/hal/string_util_test.cc
+++ b/iree/hal/string_util_test.cc
@@ -411,7 +411,7 @@
     iree_device_size_t total_byte_length = byte_length();
     std::vector<T> result(total_byte_length / sizeof(T));
     iree_status_t status =
-        iree_hal_buffer_read_data(get(), 0, result.data(), total_byte_length);
+        iree_hal_buffer_map_read(get(), 0, result.data(), total_byte_length);
     IREE_RETURN_IF_ERROR(std::move(status));
     return std::move(result);
   }
diff --git a/iree/hal/utils/buffer_transfer.c b/iree/hal/utils/buffer_transfer.c
index ce619b1..553d049 100644
--- a/iree/hal/utils/buffer_transfer.c
+++ b/iree/hal/utils/buffer_transfer.c
@@ -123,8 +123,8 @@
 
   // Read back the staging buffer into memory, if needed.
   if (iree_status_is_ok(status) && !target.device_buffer) {
-    status = iree_hal_buffer_read_data(target_buffer, 0,
-                                       target.host_buffer.data, data_length);
+    status = iree_hal_buffer_map_read(target_buffer, 0, target.host_buffer.data,
+                                      data_length);
   }
 
   // Discard staging buffers, if they were required.
diff --git a/iree/tools/iree-e2e-matmul-test.c b/iree/tools/iree-e2e-matmul-test.c
index fb27add..ac3c027 100644
--- a/iree/tools/iree-e2e-matmul-test.c
+++ b/iree/tools/iree-e2e-matmul-test.c
@@ -492,8 +492,8 @@
 static iree_status_t copy_buffer(iree_hal_allocator_t* hal_allocator,
                                  iree_hal_buffer_view_t* src,
                                  iree_hal_buffer_view_t** dst) {
-  // TODO(benvanik): change this to use iree_hal_buffer_copy_data. Or something.
-  // I can't understand what all this code is doing.
+  // TODO(benvanik): change this to use iree_hal_buffer_map_copy. Or
+  // something. I can't understand what all this code is doing.
   iree_hal_buffer_mapping_t src_mapping = {{0}};
   IREE_RETURN_IF_ERROR(iree_hal_buffer_map_range(
       iree_hal_buffer_view_buffer(src), IREE_HAL_MAPPING_MODE_PERSISTENT,