Merge "Improve documentation related to execution."
diff --git a/current.txt b/current.txt
index f4aa57e..ce3d7b5 100644
--- a/current.txt
+++ b/current.txt
@@ -478,4 +478,6 @@
# ABI preserving changes to HALs during Android R
b69a7615c508acf5c5201efd1bfa3262167874fc3594e2db5a3ff93addd8ac75 android.hardware.keymaster@4.0::IKeymasterDevice
+ad431c8de51c07934a068e3043d8dd0537ac4d3158627706628b123f42df48dc android.hardware.neuralnetworks@1.0::IPreparedModel
+aafcc10cf04ab247e86d4582586c71c6b4c2b8c479241ffa7fe37deb659fc942 android.hardware.neuralnetworks@1.2::IPreparedModel
1a6e2bd289f22931c526b21916910f1d4c436b7acb9556e4243de4ce8e6cc2e4 android.hardware.soundtrigger@2.0::ISoundTriggerHwCallback
diff --git a/neuralnetworks/1.0/IPreparedModel.hal b/neuralnetworks/1.0/IPreparedModel.hal
index ecaa7f8..5320050 100644
--- a/neuralnetworks/1.0/IPreparedModel.hal
+++ b/neuralnetworks/1.0/IPreparedModel.hal
@@ -42,6 +42,13 @@
* execute function. This callback must be provided with the ErrorStatus of
* the execution.
*
+ * If the launch is successful, the caller must not change the content of
+ * any data object referenced by 'request' (described by the
+ * {@link DataLocation} of a {@link RequestArgument}) until the
+ * asynchronous task has invoked the callback object. The asynchronous task
+ * must not change the content of any of the data objects corresponding to
+ * 'request' inputs.
+ *
* If the prepared model was prepared from a model wherein all
* tensor operands have fully specified dimensions, and the inputs
* to the function are valid, then the execution should launch
diff --git a/neuralnetworks/1.2/IPreparedModel.hal b/neuralnetworks/1.2/IPreparedModel.hal
index 5d2d80f..ba16334 100644
--- a/neuralnetworks/1.2/IPreparedModel.hal
+++ b/neuralnetworks/1.2/IPreparedModel.hal
@@ -47,6 +47,13 @@
* execute_1_2 function. This callback must be provided with the ErrorStatus of
* the execution.
*
+ * If the launch is successful, the caller must not change the content of
+ * any data object referenced by 'request' (described by the
+ * {@link @1.0::DataLocation} of a {@link @1.0::RequestArgument}) until the
+ * asynchronous task has invoked the callback object. The asynchronous task
+ * must not change the content of any of the data objects corresponding to
+ * 'request' inputs.
+ *
* If the prepared model was prepared from a model wherein all
* tensor operands have fully specified dimensions, and the inputs
* to the function are valid, then the execution should launch
@@ -90,6 +97,12 @@
* perform the execution, and must not return until the execution is
* complete.
*
+ * The caller must not change the content of any data object referenced by
+ * 'request' (described by the {@link @1.0::DataLocation} of a
+ * {@link @1.0::RequestArgument}) until executeSynchronously
+ * returns. executeSynchronously must not change the content of any of the
+ * data objects corresponding to 'request' inputs.
+ *
* If the prepared model was prepared from a model wherein all tensor
* operands have fully specified dimensions, and the inputs to the function
* are valid, then the execution should complete successfully
@@ -135,9 +148,15 @@
* @param callback A callback object used to retrieve memory resources
* corresponding to a unique identifiers ("slots").
* @param requestChannel Used by the client to send a serialized Request to
- * the Burst for execution. requestChannel must not be
- * used to pass a second Request object until a result
- * has been received from resultChannel.
+ * the Burst for execution. The client must not change
+ * the content of any data object referenced by the
+ * Request (described by the {@link @1.0::DataLocation}
+ * of an {@link OperandInformation}) until a result
+ * has been received from resultChannel. Execution
+ * must not change the content of any of the data
+ * objects corresponding to Request inputs. requestChannel
+ * must not be used to pass a second Request object
+ * until a result has been received from resultChannel.
* @param resultChannel Used by the service to return the results of an
* execution to the client: the status of the execution
* and OutputShape of all output tensors. resultChannel